Die GitHub REST- und GraphQL-APIs machen gestapelte Pull Requests verfügbar. Die REST-API unterstützt das Lesen und Verwalten von Stapeln, während die GraphQL-API schreibgeschützte Leseabfragen unterstützt.
Verwenden Sie die API, um die Stapelmitgliedschaft eines Pull Requests zu lesen oder Ihre eigenen Automatisierungs- und Integrationen für gestapelte Pull Requests zu erstellen.
REST API
Die REST-API macht gestapelte Pull Requests auf zwei Arten verfügbar:
- Das
stackObjekt für Pull-Request-Ressourcen. Wenn ein Pull Request zu einem Stapel gehört, enthält die REST-Ressource einstackObjekt. Auf diese Weise können Sie die Zugehörigkeit zum Stack des Pull Requests lesen, einschließlich der Anzahl und Größe des Stapels und der Position und Basis des Pull Requests direkt aus dem Pull Request. - Die Stacks-API. Eine dedizierte Gruppe von Endpunkten zum Auflisten, Lesen, Erstellen, Erweitern und Auflösen von Stapeln. Dies ist die Oberfläche zum Erstellen und Ändern von Stacks.
Zu Endpunkten, Parametern und Schemata siehe REST-API-Endpunkte für Pullanforderungen.
Wichtig
Wenn Sie über die API zusammenführen und gestapelte Pull Requests verwenden möchten, müssen Sie die neue asynchrone Zusammenführungs-API verwenden.
API-Zusammenführung
Wenn Sie einen gestapelten Pull Request über die API zusammenführen, müssen Sie den asynchronen Zusammenführungsendpunkt verwenden.
Ein Stapel kann nicht mit den älteren synchronen Zusammenführungsendpunkten oder Mutations zusammengeführt werden. Wenn Sie einen gestapelten Pull Request zusammenführen, wird jeder Pull Request im Stapel bis einschließlich des Pull Requests, den Sie anfordern, zusammengeführt oder in die Warteschlange für das Zusammenführen in den Basis-Branch eingereiht. Das Zusammenführen eines Pull-Request-Stacks kann mehrere Pull Requests umfassen, deren Zusammenführung einige Minuten dauern kann. Aus diesem Grund wird der Merge im Hintergrund ausgeführt, wenn Sie einen Merge-Request übermitteln, und Sie können dann das Ergebnis abfragen.
Nur der grundlegende Pull-Request-Status wird geprüft, wenn Sie eine geöffnete PR übermitteln. Branch-Schutz und Repository-Regeln werden später ausgewertet, wenn der Merge tatsächlich ausgeführt wird, und ein Regelfehler wird beim Polling als fehlgeschlagenes Ergebnis gemeldet. Eine Stack-Merge-Anfrage ist atomar, d. h. entweder wird die gesamte Gruppe von Pull Requests zusammengeführt, oder sie wird der Merge-Warteschlange hinzugefügt, oder keine davon.
Ausführliche Informationen findest du unter REST-API-Endpunkte für Pullanforderungen.
GraphQL-API
Die GraphQL-API macht die Stapelmitgliedschaft eines Pull Requests über schreibgeschützte stack- und stackEntry-Felder für den Typ PullRequest verfügbar. Verwenden Sie diese Felder, um den Stack abzufragen, zu dem ein Pull Request gehört, und dessen Position darin.
Die GraphQL-API ist schreibgeschützt für Stacks. Es gibt keine Stack-Mutationen. Verwenden Sie die REST-API, um Stapel zu erstellen oder zu ändern.
Informationen zu Feldern, Objekten und Schemas finden Sie unter Pull-Anfragen.
Webhooks
Wenn ein Pull Request zu einem Stack gehört, fügt GitHub dem stack-Objekt in Webhook-Ereignisnutzdaten eine pull_request-Eigenschaft hinzu. Auf diese Weise können Apps und Integrationen die Zielverzweigung des Stapels prüfen, nicht nur die direkte übergeordnete Verzweigung des Pull Request.
Das stack Objekt ist in der pull_request Webhook-Nutzlast für Pull-Request-Lebenszyklusereignisse enthalten, die auftreten, während der Pull Request Teil eines Stapels ist.
Siehe Webhook-Ereignisse und Webhook-Nutzlasten.