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