Remarque
Cette fonctionnalité est disponible en préversion publique et peut être modifiée.
Les GitHub API REST et GraphQL exposent les demandes de tirage empilées. L’API REST prend en charge la lecture et la gestion des piles, tandis que l’API GraphQL prend en charge les requêtes en lecture seule.
Utilisez l’API pour lire l’appartenance à la pile d’une demande de tirage ou pour créer vos propres automatisations et intégrations pour les demandes de tirage empilées.
API REST
L’API REST expose les demandes de tirage empilées de deux façons :
- Objet
stacksur les ressources de demande de tirage (pull request). Lorsqu’une demande de tirage appartient à une pile, sa ressource REST inclut unstackobjet. Cela vous permet de lire l’appartenance à la pile de la demande de tirage, y compris le nombre et la taille de la pile, ainsi que la position et la base de la demande de tirage, directement à partir de la demande de tirage. - API Stacks. Ensemble dédié de points de terminaison pour répertorier, lire, créer, étendre et dissolution des piles. Il s’agit de la surface permettant de créer et de modifier des piles.
Pour les points de terminaison, les paramètres et les schémas, consultez Points de terminaison d’API REST pour les pull requests.
Important
Si vous fusionnez via l’API et que vous souhaitez utiliser des demandes de tirage empilées, vous devez utiliser la nouvelle API de fusion asynchrone.
API de fusion
Lorsque vous fusionnez une demande de tirage empilée via l’API, vous devez utiliser le point de terminaison de fusion asynchrone.
Une pile ne peut pas être fusionnée avec les points de terminaison de fusion synchrones hérités ou les mutations. Lorsque vous fusionnez une demande de tirage empilée, chaque demande de tirage dans la pile jusqu’à celle que vous demandez est fusionnée ou mise en file d’attente pour fusionner dans la branche de base. La fusion d’une pile de demandes de tirage peut impliquer plusieurs demandes de tirage qui peuvent prendre quelques minutes pour fusionner. En raison de cela, la fusion s’exécute en arrière-plan lorsque vous envoyez une demande de fusion, puis vous pouvez interroger le résultat.
Seul l’état de la demande de tirage de base est vérifié lorsque vous envoyez une demande de tirage ouverte. Les règles de protection et de dépôt de branche sont évaluées ultérieurement, lorsque la fusion s’exécute réellement et qu’une défaillance de règle est signalée comme un résultat ayant échoué lors de l’interrogation. Une demande de fusion de pile est atomique, ce qui signifie que l’ensemble du groupe de demandes d’extraction fusionne ou est ajouté à la file d’attente de fusion, ou qu’aucune d’elle n’est.
Pour plus d’informations, consultez Points de terminaison d’API REST pour les pull requests.
GraphQL API
L’API GraphQL expose l’appartenance à la pile d’une demande de tirage via des champs et stack en lecture seule stackEntry sur le PullRequest type. Utilisez ces champs pour interroger la pile à laquelle une demande de tirage appartient et sa position dans celle-ci.
L’API GraphQL est en lecture seule pour les piles ; il n’y a pas de mutations de pile. Pour créer ou modifier des piles, utilisez l’API REST.
Pour les champs, les objets et les schémas, consultez Requêtes de tirage.
Webhooks
Lorsqu’une demande de tirage appartient à une pile, GitHub ajoute une stack propriété à l’objet dans les pull_request charges utiles d’événement webhook. Cela permet aux applications et aux intégrations d’inspecter la branche cible de la pile, pas seulement la branche parente directe de la demande de tirage.
L’objet stack est inclus dans la pull_request charge utile du webhook pour les événements de cycle de vie des demandes d’extraction qui se produisent pendant que la demande de tirage fait partie d’une pile.
Consultez « Événements et charges utiles du webhook ».