GitHub REST API と GraphQL API の両方で、スタックされたプルリクエストが公開されます。 REST API はスタックの読み取りと管理をサポートし、GraphQL API は読み取り専用クエリをサポートします。
API を使用して、プルリクエストのスタックへの所属を読み取るか、スタックされたプルリクエストの独自の自動化と統合を構築します。
REST API
REST API は、次の 2 つの方法でスタックプル要求を公開します。
- pull request リソース上の
stackオブジェクト。 プル リクエストがスタックに属している場合、その REST リソースにはstackオブジェクトが含まれます。 これにより、プル リクエストから直接、スタックの番号とサイズ、プル リクエストの位置とベースなど、プル リクエストのスタックへの所属を読み取ることができます。 - The Stacks API。 スタックの一覧表示、読み取り、作成、拡張、および削除を行う専用のエンドポイント セット。 これは、スタックを作成および変更するためのサーフェスです。
エンドポイント、パラメーター、およびスキーマについては、 Pull request 用 REST API エンドポイント を参照してください。
重要
API を使用してマージし、stacked pull request を使用する場合は、新しい非同期マージ API を使用する必要があります。
マージ API
API を使用してスタック プル要求をマージする場合は、非同期マージ エンドポイントを使用する必要があります。
スタックを従来の同期マージ エンドポイントまたはミューテーションとマージすることはできません。 スタックされたプル要求をマージすると、指定したそのプル リクエストを含めて、そのプル リクエストまでのスタック内のすべてのプル要求がマージされるか、ベース ブランチにマージするためのキューに入れられます。 プル リクエスト スタックのマージには、マージに数分かかるプル リクエストがいくつか含まれる場合があります。 このため、マージ要求を送信すると、マージがバックグラウンドで実行され、結果をポーリングできます。
オープン PR を送信すると、基本的な pull request 状態のみがチェックされます。 ブランチ保護とリポジトリルールは、マージが実際に実行されたときに後で評価され、ポーリング中に失敗した結果としてルールの失敗が報告されます。 スタック マージ要求はアトミックです。つまり、プル リクエストのグループ全体がマージされるか、マージ キューに追加されるか、そのどちらも行われません。
詳細については、「Pull request 用 REST API エンドポイント」を参照してください。
GraphQL API
GraphQL API は、PullRequest型の読み取り専用のstackフィールドとstackEntryフィールドを通じて、プル リクエストのスタック メンバーシップを公開します。 これらのフィールドを使用して、プル リクエストが属するスタックとその中の位置を照会します。
GraphQL API はスタックの読み取り専用です。スタックのミューテーションはありません。 スタックを作成または変更するには、REST API を使用します。
フィールド、オブジェクト、およびスキーマについては、 Pull Request を参照してください。
Webhooks
プルリクエストがスタックに属している場合、GitHubは webhook イベント ペイロードのpull_request オブジェクトにstack プロパティを追加します。 これにより、アプリと統合は、プルリクエストの直接の親ブランチだけでなく、スタックのターゲット ブランチを検査できます。
stack オブジェクトは、プルリクエストがスタックの一部である間に発生するプルリクエスト ライフサイクル イベントのpull_request webhook ペイロードに含まれます。
「Webhook のイベントとペイロード」を参照してください。