Stacked pull requests が 10月から github.com の全プランで使える。大きな変更を依存順の短い PR 層に分け、各層を独立してレビューしたうえで、下位層ごと、またはスタック全体を一括マージできる。GitHub Enterprise Server は今後のリリースに同梱される。
7月のパブリックプレビュー以降、スタックを使うリポジトリは同規模比でマージ量が 9% 増え、上位 1% のリポジトリの 3 分の 2 超が採用して time-to-merge が 5% 改善した。
マージと rebase:
- 未変更コードの Rebase stack では、stale approval を却下する設定でも承認が残る
- Rebase stack と部分マージ後の自動 rebase は、ブランチルールが署名を要求するか元コミットが署名済みなら、置換コミットを署名する
- リポジトリルールの bypass 権限は、スタック最下位の未マージ PR に使える
- merge queue にはスタック全体が 1 つの merge group として入り、merge commit 方式では PR ごとに 1 つの merge commit を作る
- スタックの base ブランチ削除時は最下位 PR を閉じず、自動で retarget する
- スタックの auto-merge は数週間かけて展開。条件を満たした PR 群をまとめてマージできる
ナビと自動化:
- PR ページの固定ヘッダと一覧にスタック情報を常時表示
Shift+J/Shift+Kでスタック内を移動- スタックへの追加・削除がタイムラインに残る。
pull_requestwebhook にstackedアクションが付く gh stack拡張が Git worktrees に対応し、init / checkout / ナビを改善
同一リポジトリ内のブランチのみ対象。クロスフォークと GitHub Desktop は非対応。API 経由のマージは非同期の merge API が必要。