深夜にPull Requestを開いたら、コードの変更自体は終わっているのに、CIチェックが1件だけ失敗しています。さらにReviewコメントが残り、担当者は朝まで不在です。ここで手動修正を始めるか、マージを保留するか、それともAgentに追いかけさせるかで、翌日の作業量が大きく変わります。
GitHub Copilot App Agent Mergeは、このような「あと少しでマージできるPR」を対象に、Reviewコメントや失敗したチェックを確認し、条件が整った時点でマージまで進めるための機能です。ただし、無条件にコードを公開する機能ではありません。どのPRに使うか、何を必須条件にするか、どの時点で停止するかを先に決める必要があります。
GitHub Copilot App Agent Mergeの役割
GitHub Copilot Appは、IssueやPull Request、作業セッションを一つの画面で扱えるデスクトップアプリです。公式ドキュメントでは、PRの差分確認、Review、CIチェックの確認、マージまでをアプリ内で実行できると説明されています。(docs.github.com)
Agent Mergeを有効にすると、作業スペースのCopilotセッションがPRを読み込み、マージを妨げているReviewコメントやCIチェックを処理します。処理はバックグラウンドで継続し、アプリを再起動しても状態が維持され、PRがマージされると自動的に停止します。(docs.github.com)
ここで重要なのは、Agent Mergeがリポジトリの合流条件を無視しないことです。必須レビュー、必須ステータスチェック、競合解消、分岐保護などが設定されていれば、それらを満たさない限りマージは実行されません。分岐保護は、特定のレビュー承認やステータスチェックをマージ前の条件として設定できます。(docs.github.com)
Agent Mergeを任せやすいPR
すべてのPRを同じように扱うと、修正範囲が広がりすぎたり、意図しない変更が混ざったりします。最初は、次の条件に近いPRだけを対象にしてください。
- 変更対象が限定されたバグ修正やテスト追加
- 既存のCIチェックが安定して実行されるリポジトリ
- 仕様変更やデータ移行を含まない
- 本番用の認証情報や秘密情報を扱わない
- 必須レビューの担当者が明確になっている
- 追加コミットが入っても、担当者が差分を確認できる
反対に、認証、決済、権限、データベースのスキーマ変更、リリース設定、依存関係の大幅更新を含むPRは、Agent Mergeの対象から外す方が安全です。CIが通っても、ビジネス上の意図まで正しいとは限らないためです。
| PRの種類 | Agent Mergeの適性 | 人による確認 |
|---|---|---|
| 小規模なテスト修正 | 高い | 差分とテスト内容を確認 |
| 型エラーや単純なビルド失敗 | 中程度 | 修正が最小範囲か確認 |
| API仕様や認証の変更 | 低い | 原則として手動対応 |
| データ移行や本番設定 | 非推奨 | Agent Mergeを使わない |
| 競合を含む大規模PR | 低い | 先に手動で分割・整理 |
有効化前の確認項目
1. PRの状態
まず、PRがDraftのままではないか、対象ブランチが想定どおりか、最新コミットが自分の作業結果かを確認します。Agentが修正を加えると新しいコミットが追加されるため、開始前の差分を保存しておくと比較しやすくなります。
2. Review comments
Reviewコメントは、質問、提案、修正要求が混在します。Copilotのコードレビューはコメント形式で投稿され、必須承認として数えられるわけではありません。人間の承認を置き換えるものではない点に注意してください。(docs.github.com)
3. CI checks
失敗したチェックが、今回の変更に起因するのかを見ます。ログインできない外部サービス、ランナー不足、タイムアウト、既存の不安定テストであれば、Agentにコード修正を任せても解決しない場合があります。
必須チェックは、最新コミットに対して成功していなければ条件を満たしません。過去のコミットで成功した結果は、最新コミットの合格として扱われないことがあります。(docs.github.com)
4. 分岐保護と必須レビュー
mainなどの対象ブランチに、必須レビュー、必須チェック、会話の解決、最新ブランチの要求、マージキューが設定されているかを確認します。承認済みのPRにコード変更を追加すると、設定によっては承認が無効になり、再承認が必要になります。(docs.github.com)
5. 停止条件
「失敗が続いたら停止」「仕様変更を要求するコメントが出たら停止」「対象ファイルが増えたら停止」のように、事前に停止条件を書き出します。Agentに任せる範囲が曖昧なほど、修正と再実行のループが長くなります。
注意: Agent Mergeは、CIを通すためにテストを削除したり、必須レビューを回避したりするための機能ではありません。合格条件を緩めるのではなく、原因を確認して必要な修正だけを追加する運用にしてください。
GitHub Copilot Appでの開始手順
実際の操作は、次の順番で進めると安全です。
- GitHub Copilot Appを開き、サイドバーの
My workから対象のPull Requestを選びます。PRの概要、CIチェック、Review履歴を確認します。公式の操作手順でも、My workからPRを開き、差分とチェック結果を確認する流れが案内されています。(docs.github.com) Files changedで差分を読み、変更されたファイル数、権限関連の処理、設定ファイルの変更を確認します。- Reviewコメントを読み、単なる質問と修正要求を分けます。必要なら、複数のコメントを一度に整理してからAgentへ指示します。
- CIチェックの詳細ログを開き、失敗したジョブ名、失敗したテスト、対象コミットを記録します。
- PR上部のAgent Mergeを有効にし、現在のワークスペースのAgentにPRを追跡させます。Agent Mergeは、PRを読み、阻害要因を処理し、GitHub側で許可される状態になった時点でマージします。(docs.github.com)
- Agentが追加したコミットとコメントを確認します。ファイルの追加、依存関係の変更、テストの削除がないかを重点的に見ます。
- 必須チェックが最新コミットで完了し、必要な承認が残っていることを確認します。条件を満たしても、重要PRでは最後の人手による差分確認を行います。
Reviewとfailing checksの処理
Reviewコメントへの対応
「このコメントを修正して」とだけ指示するより、対象ファイル、期待する挙動、変更してはいけない範囲を指定してください。CopilotはPRのコメントスレッドを読み、実行可能な変更要求を優先して修正し、コミットとプッシュまで行えます。(docs.github.com)
例えば、次のように範囲を限定します。
Review commentsのうち、実装変更を求めているものだけを確認してください。
認証方式と公開APIの形は変更せず、対象テストと最小限の実装だけを修正してください。
修正後に関連テストを実行し、変更理由をPRコメントに記録してください。
failing checksの修正
「Copilotでfailing checksを修正する方法」を知りたい場合、まずログの原因を指定することが大切です。公式のCopilot CLIでは、CI失敗を診断し、原因を調べ、対象修正をプッシュし、チェックを再確認する流れが示されています。失敗がブランチ変更と無関係な場合は、その旨を報告して停止する設計です。(docs.github.com)
失敗しているCIジョブのログを確認してください。
今回の変更に起因するエラーだけを修正し、テストやチェックの削除はしないでください。
原因が外部サービス、環境差、既存の不安定テストにある場合は変更せず停止してください。
次の表を使うと、Agentに任せるか人が調べるかを判断しやすくなります。
| 失敗の兆候 | まず行う確認 | Agentへの依頼 |
|---|---|---|
| コンパイルエラー | 変更ファイルとエラー行 | 型や呼び出しの最小修正 |
| 単体テスト失敗 | 期待値と仕様 | テストと実装の整合性確認 |
| タイムアウト | 実行時間と外部依存 | 原因調査のみ、無理な最適化はしない |
| 認証エラー | シークレットと権限 | コード変更せず停止 |
| 既存テストの不安定化 | 過去の実行履歴 | 再実行と報告に限定 |
バックグラウンド監視
Agent Mergeがバックグラウンドで動いていても、放置してよいわけではありません。最低限、次の信号を確認してください。
- 新しいコミットが追加されたか
- CIが最新コミットに対して再実行されたか
- Reviewの承認が無効になっていないか
- 分岐が最新のベースブランチから遅れていないか
- 変更ファイル数や依存関係が増えていないか
- 同じ失敗を繰り返していないか
- マージキューやデプロイ保護で待機していないか
特に、分岐保護で「ベースブランチを最新に保つ」設定がある場合、過去のチェックが成功していても再実行が必要になることがあります。マージキューを使うリポジトリでは、キュー投入時のチェックを実行するワークフロー設定も確認してください。(docs.github.com)
「Agent Mergeは安全か」という疑問への答えは、機能単体ではなく、リポジトリの条件設定と監視方法で決まります。保護ルールが弱いリポジトリで有効化すれば、Agentの判断ミスだけでなく、人間が作った設定ミスもそのままマージ経路に入ります。
誤修正と意図しないマージの防止
次の4つを運用ルールにしてください。
- 最小変更を要求する
無関係なリファクタリング、依存関係更新、フォーマット変更を禁止します。 - 必須チェックを保護する
ビルド、単体テスト、静的解析、秘密情報検査など、リポジトリで必要なチェックを必須化します。 - 人間の承認を残す
AgentのReviewコメントは人間の承認として扱わず、コード所有者や担当者の承認を要求します。 - ループ回数を制限する
同じジョブが複数回失敗した場合や、Agentが同じ修正を繰り返す場合は停止し、手動調査へ切り替えます。
また、Agentが作ったコミットによって承認が無効になる設定もあります。追加コミット後に、承認者が最新差分を再確認する手順を決めておくと、古い差分への承認が残る事故を防げます。(docs.github.com)
マージされない場合の切り分け
CIが失敗し続ける場合
最新コミットのSHAに対するチェックか、過去コミットの結果かを確認します。パス条件でワークフローが実行されていない、必須ジョブ名が重複している、外部サービスが応答していないといった原因では、コード修正よりCI設定の確認が先です。(docs.github.com)
Reviewが終わらない場合
未解決スレッド、Request changes、コード所有者の未承認を確認します。人間の承認が必要なリポジトリでは、Agentが修正しても自動的に承認が付くわけではありません。
権限が足りない場合
Agentを実行するユーザーがリポジトリへの書き込み権限を持つか、組織のCopilot設定で必要な機能が有効かを確認します。Copilot BusinessやEnterpriseでは、管理者によるポリシー設定が必要になる場合があります。(docs.github.com)
競合している場合
ベースブランチを取り込み、競合を解消してからCIを再実行します。競合の解消で仕様判断が必要になる場合は、Agent Mergeを止めて担当者が差分を確認してください。
ZavCloudでの検証記録
本稿で参照できる公開情報だけでは、ZavCloudの実テストPRにおけるPR番号、実際のチェック名、Agentが追加したコミット、最終的な人手確認結果を検証できません。そのため、未確認の成功率や短縮時間を実績として掲載することは避けます。
実際にZavCloudで検証する場合は、低リスクのテストPRを1件用意し、次の順番で記録してください。
- 開始時点のPR状態と差分ファイル数
- 最初に失敗したCIジョブ名とエラーログ
- Reviewコメントの原文と修正対象
- Agentが追加したコミットのSHA
- 修正後に再実行されたチェック
- Agent Mergeが停止、継続、マージのどこで終了したか
- 最後に人が確認した差分と判断理由
記録を残すと、「Agentが修正したから安全」ではなく、「どの条件を満たしたためマージを許可したのか」を後から説明できます。社内で展開する場合も、成功例だけでなく停止した例や手動対応へ切り替えた例を残すことが重要です。
よくある疑問
Agent Mergeを有効にすれば、人間のReviewは不要ですか。
不要にはなりません。必須レビューの設定がある場合、Agentはコメント対応やコード修正を進められても、人間の承認要件を自動で置き換えるものではありません。重要な変更では、最新コミットの差分を人が確認してから承認してください。(docs.github.com)
GitHub Copilot AppでPRを自動マージできますか。
条件が整ったPRに対しては、GitHub Copilot AppのAgent Mergeで、Reviewコメントや失敗したチェックへの対応後にマージまで進められます。ただし、分岐保護、必須チェック、必須レビュー、競合などの条件を回避する機能ではありません。(github.blog)
Agent Mergeをすぐ止めたい場合はどうしますか。
まずAgent Mergeを無効化し、必要ならPRをDraftへ戻すか、対象ブランチへの書き込み権限やマージ権限を見直します。ループ中の追加コミットがある場合は、停止後に差分を確認し、不要なコミットを取り消す前に履歴とCIへの影響を確認してください。
現在の運用とMac環境の選び方
ローカルのMacだけでCI、Xcode、署名、テストを回していると、担当者の端末がスリープしたり、環境差で再現に時間がかかったり、作業中のマシンを別の用途に使えなかったりします。WindowsやLinuxのCIだけでは、macOS固有のビルドやXcode検証を同じ条件で維持しにくいケースもあります。
そのため、Agent Mergeを低リスクPRから本格運用へ広げる段階では、常時稼働できるmacOS環境を分離する方法が現実的です。ZavCloudのMacレンタル環境なら、手元の端末を占有せず、macOSやXcodeを使うCI・検証作業の専用環境として評価できます。利用条件や接続方法は、導入前にヘルプセンターで確認してください。
まずはテストPRで、分岐保護、必須チェック、必須レビュー、停止方法が期待どおり動くかを確かめることです。そのうえで、CIに継続的なmacOSやXcode環境が必要なら、現在のローカル運用とZavCloudのMac環境を比較し、Agentが修正したコードを人が確認できる運用に整えてから対象PRを広げるのが安全です。
ZavCloud Developer Infrastructure
開発作業を支えるMac環境をZavCloudで整えませんか
ZavCloudなら、必要なMac環境をクラウド経由で利用でき、開発や動作確認を効率化できます。
ビルドやテストで手元の端末に負荷がかかる場合も、リモートMacを活用して快適に作業を進められます。