Skip to main content

マージキューの管理

この記事では、次の項目が扱われます。

リポジトリ内の pull request のマージ キューを使って、開発速度を向上させることができます。

Who can use this feature

People with admin permissions can manage merge queues for pull requests targeting selected branches of a repository.

Note: The pull request merge queue feature is currently in limited public beta and subject to change.

マージ キューについて

マージ キューを使用すると、必要なすべてのブランチ保護チェックに合格することを保証しつつ、pull request がビジー状態のターゲット ブランチにマージされる速度を上げることができます。

pull request が必要なすべてのブランチ保護チェックに合格すると、リポジトリへの書き込みアクセス権を持つユーザーは、その pull request をマージ キューに追加できます。

マージ キューでは、GitHub Actions を使用できます。 詳細については、「GitHub Actions」を参照してください。

pull request 変更の有効性を検証する特別なプレフィックスを付け、一時的なブランチがマージキューによって作成されます。 次に、pull request の変更は、base_branch の最新バージョンとキューでそれに先行する変更と共に、merge_group にグループ化されます。 GitHub では、base_branch のブランチに必須のチェックで合格すると、これらの変更がすべてマージし、base_branch が作られます。

マージ方法について詳しくは、「pull request のマージについて」を参照してください。

注:

  • マージキューは、ブランチ名パターンにワイルドカード文字 (*) を使用するブランチ保護ルールで有効にできません。

pull request をターゲット ブランチの最新バージョンとグループ化し、キュー内でその前に変更した後、必要な状態チェックが失敗した場合、またはベース ブランチと競合した場合、GitHub によって pull request がキューから削除されます。 pull request タイムラインには、その pull request がキューから削除された理由が表示されます。

GitHub Actions を使ってマージ グループのチェックをトリガーする

merge_group イベントを使って、pull request がマージ キューに追加されたときに GitHub Actions ワークフローをトリガーできます。 これは pull_request イベントや push イベントとは異なるイベントであることに注意してください。

ターゲット ブランチの保護で必要なチェックを報告するワークフローは、次のようになります。

on:
  pull_request:
  merge_group:

詳細については、「ワークフローをトリガーするイベント」を参照してください。

他の CI プロバイダーを使ってマージ グループのチェックをトリガーする

他の CI プロバイダーを使う場合、特別なプレフィックス gh-readonly-queue/{base_branch} で始まるブランチが作成されたときに実行するように CI 構成を更新する必要がある場合があります。

マージキューの管理

リポジトリ管理者は、ベースブランチの保護ルールで「マージキューを必須にする」ブランチ保護設定を有効にし、マージを必須にできます。

マージキュー保護設定を有効にする方法については、「ブランチ保護ルールの管理」を参照してください。

参考資料