Les GitHub API REST et GraphQL exposent les pull requests en pile. L’API REST prend en charge la lecture et la gestion des stacks, tandis que l’API GraphQL prend en charge les requêtes en lecture seule.
Utilisez l’API pour consulter l’appartenance à une pile d’une pull request ou pour créer vos propres automatisations et intégrations pour les pull requests empilées.
API REST
L’API REST expose les pull requests empilées de deux façons :
- Objet
stacksur les ressources de pull request. Lorsqu’une pull request appartient à un empilement, sa ressource REST inclut un objetstack. Cela vous permet de lire directement depuis la pull request son association à la pile, y compris le numéro et la taille de la pile, ainsi que la position et la base de la pull request. - The Stacks API. Ensemble dédié de points de terminaison pour répertorier, lire, créer, étendre et dissoudre des piles. Il s’agit de la surface permettant de créer et de modifier des stacks.
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 pull requests empilées, vous devez utiliser la nouvelle API de fusion asynchrone.
API de fusion
Lorsque vous fusionnez une pull request empilée via l’API, vous devez utiliser l’endpoint de fusion asynchrone.
Un stack ne peut pas être fusionné avec les points de terminaison de fusion synchrones hérités ou les opérations de mutation. Lorsque vous fusionnez une pull request empilée, chaque pull request dans la pile jusqu’à et y compris celle que vous avez demandée est fusionnée ou mise en file d’attente pour fusionner dans la branche de base. La fusion d’une pile de pull requests peut impliquer plusieurs pull requests et prendre quelques minutes. 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 base de la pull request est vérifié lorsque vous envoyez une pull request ouverte. Les règles de protection des branches et de référentiel 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 d’empilement est atomique, ce qui signifie que l’ensemble du groupe de pull requests fusionne, ou est ajouté à la file d’attente de fusion, ou aucune ne l’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 pull request via les champs stack et stackEntry en lecture seule sur le type PullRequest. Utilisez ces champs pour interroger la pile à laquelle une pull request appartient et sa position dans celle-ci.
L’API GraphQL est en lecture seule pour les stacks ; il n’y a pas de mutations de stack. Pour créer ou modifier des stacks, utilisez l’API REST.
Pour les champs, les objets et les schémas, consultez Requêtes de tirage.
Webhooks
Lorsqu’une pull request appartient à une stack, GitHub ajoute la propriété stack à l’objet pull_request dans les charges utiles d’événements 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 pull request.
L’objet stack est inclus dans le pull_request payload du webhook pour les événements du cycle de vie des pull requests qui se produisent pendant que la pull request fait partie d’une stack.
Consultez « Événements et charges utiles du webhook ».