オープンソース
スタックされたPRがGitHubで利用可能になりました
Stacked PRs are now live on GitHub (github.blog)
要約
GitHubは、大規模な変更を小さくレビュー可能なプルリクエスト(PR)に分割する「スタックされたPR」機能をパブリックプレビューでリリースしました。この機能により、開発者は変更の各レイヤーを独立してレビュー・チェックし、まとめてマージできるようになります。これにより、レビュー時間の短縮、品質の維持、手動でのリベース作業の削減が期待され、Next.jsやjQueryなどのプロジェクトで既にその効果が確認されています。CLI拡張機能のインストールやGitHub.com、GitHub CLI、モバイルアプリ、Copilotなどのコーディングエージェントからも利用可能です。
全文翻訳
チェンジログに戻る
スタックされたプルリクエストは、大きな変更を小さくレビュー可能なプルリクエストに分割します。それらは、各々が集中した変更のレイヤーを表す、順序付けられたプルリクエストのシリーズです。スタックを使用すると、各プルリクエストを個別にレビューおよびチェックしてから、ワンクリックで全てをマージできます。レビューに永遠にかかる単一の大きなプルリクエストを開いたり、手動でリベースし続ける必要がある複数のブランチに作業を分割したりする必要はもうありません。
「私たちは過去数ヶ月間、Next.jsでGitHubのスタックPRを使用しています。これにより、より大きな機能をリリースしながら、個々の小さな変更を導入することが容易になり、PRのレビューがしやすくなりました。– Tim Neutkens、NextJSリード、Vercel」
スタックされたプルリクエストにより、チームは以下のことが可能になります。
短く、スコープの狭いプルリクエストを並行してレビューすることで、大きな変更を進め続けることができます。
集中したプルリクエストレビューと既存のブランチ保護を組み合わせて、各レイヤーの品質を維持し、mainブランチを保護します。
1つ、いくつか、または全てをマージする: スタック全体を一度に適用するか、個々のレイヤーを一度に1つずつ適用します。
そして、スタックされたプルリクエストはGitHubに組み込まれているため、既存のレビュー、チェック、およびマージ要件はすべてそのまま機能します。
「新しいGithub Stacked PRプレビューは信じられないほどです。5つのスタックされたPRを一度にマージキューに直接投入しました!A+++!これにより、多くの摩擦が解消されます(gh CLIツールとエージェントスキルが非常に役立ちます)」– John Resig、クリエーター、jQuery
CLI拡張機能で開始する
CLI拡張機能をインストールし、1分以内に最初のスタックを作成します。
gh extension install github/gh-stack
ターミナルまたはgithub.comからスタックを作成する
github.com、GitHub CLI、GitHubモバイルアプリ、またはGitHub Copilotのようなコーディングエージェントとgh-stackスキルを使用してスタックを操作します。最初の変更のためのブランチとプルリクエストから始めます。次に、その上にブランチとプルリクエストを追加します。各プルリクエストは、その下のレイヤーをターゲットにします。
各レイヤーを個別にレビューする
スタック内の任意のプルリクエストを開いて、その特定のレイヤーの差分のみをレビューします。プルリクエストの上部にあるスタックマップを使用して、レビューしている変更がより大きな作業にどのように適合するかを確認します。あなたとあなたのチームメイトは、さらなる作業をブロックすることなく、各レイヤーを並行してレビューできます。
「AIはTEDの開発者を劇的に生産的にしましたが、それは新しいボトルネックを生み出しました。PRはレビュー担当者が苦労するほど大きくなっていました。スタックされたPRはそれを解決するのに役立ちます。大きな変更を小さく、依存関係で順序付けられたピースに分割することにより、レビューはより小さな論理的なチャンクで行われます。これは、PRレビューが速いだけでなく、より正確になります。スタックされたPRは、フィードバックループを締め、安定したコードをより速くted.comに提供するのに役立ちます。」– Andy Merryman、CTO、TED
すべてをワンクリックでマージする
最新の準備ができたプルリクエストをマージすると、それとそれより下の未マージのレイヤーすべてが1つの操作で適用されます。スタックの一部を適用するには、1つ以上の下位レイヤーをマージします。それより上のプルリクエストは開いたままになり、自動的にリベースおよび再ターゲットされます。既存のブランチ保護と必須チェックは、引き続きmainに到達するものを管理します。
「大きな変更は、誰もレビューしたがらない巨大なPRを意味していました。今では、レビュー担当者が実際に追える小さなPRのスタックになり、スタック全体が一度にマージされます。GitHubの上に構築されたツールのように感じるのではなく、GitHubのように感じ始めました。」– Mayank Saini、コネクティビティエンジニア、WHOOP
詳細を確認し、フィードバックを共有する
スタックされたプルリクエストは、今後数日間で全てのレポジトリでパブリックプレビューとしてロールアウトされます。スタックされたプルリクエストのマージキューサポートは、今後数週間で段階的にロールアウトされます。詳細については、スタックされたプルリクエストのドキュメントを確認し、スタックディスカッションでフィードバックを共有してください。
7月23日 リリース
GitHub Issuesにおけるエージェント自動化コントロールがパブリックプレビューに
コラボレーションツール
Copilot
プロジェクト&イシュー
+2
7月22日
廃止予定
GHESの変更がサポートバンドルのアップロードに影響
コラボレーションツール
7月16日 リリース
リポジトリ管理者はプルリクエストをアーカイブできます
コラボレーションツール
7月9日 リリース
新しいプルリクエストダッシュボードが一般提供開始
コラボレーションツール
6月30日 改善
リリース: サイドバーナビゲーションとアセットごとのダウンロード数
コラボレーションツール
6月29日 改善
イシューの作成をコラボレーターのみに制限
コラボレーションツール
6月25日 改善
GitHub Copilot for Jiraが一般提供開始
コラボレーションツール
Copilot
+1
6月18日 改善
Copilotが作成したプルリクエストが作成者検索に含まれるようになりました
クライアントアプリ
コラボレーションツール
Copilot
+2
6月18日 改善
リポジトリセレクターがグローバルナビゲーションで一般提供開始
コラボレーションツール