エージェント

GitHub Agent Merge:Copilotはプルリクエストを自動で修正できるか

GitHubのAgent Mergeは、失敗したActionsワークフローとマージコンフリクトをプルリクエスト上で監視する。仕組み、費用、制約を整理する。

執筆: ·

プルリクエストがレビュー可能になった時点で、GitHub Actionsのワークフローが失敗する。原因を調べ終える前にベースブランチが更新され、マージコンフリクトが発生する。GitHubのAgent Mergeは、こうした障害を監視し、開発者が別の作業に移っている間に対応を始めるよう設計されている。

GitHubは10月28日、Agent Mergeをgithub.com上のプルリクエストのマージボックスに直接搭載した。Copilotは、失敗したActionsワークフロー、マージコンフリクト、またはその両方を監視できる。選択した障害が発生するとバックグラウンドで作業を行うが、変更内容のレビューとリポジトリのマージ要件の充足は引き続き開発者が行う必要がある(GitHub)。

Agent Mergeの機能

GitHubでは、Agent MergeはクラウドのCopilotの一部である。プルリクエストで有効にし、対応させたい障害を選択すると、Copilotは障害を検知した時点で修復を試みる。エージェントが起動した理由は、プルリクエストのタイムラインに更新として投稿される(GitHub Docs)。

Agent Mergeの機能
障害Copilotに許可される操作
失敗したGitHub Actionsワークフロー調査して修正を試みる
マージコンフリクトプルリクエストのブランチとベースブランチの間のコンフリクトの解消を試みる

修復の試行は成功を保証するものではない。テストの失敗は、誤ったアサーション、依存関係の問題、実際のリグレッションのいずれによるものかもしれない。コンフリクトも、意図された挙動がテキストだけでは判断できない2つの正当な変更に起因することがある。変更を受け入れる前に、差分を確認し、関連するチェックを再実行または検査する必要がある。

GitHubでの有効化方法

クラウドのCopilotを利用できる有料のCopilotプランが必要である。組織やエンタープライズ経由で利用している場合は、そのポリシーでクラウド機能が許可されていなければならない。リポジトリのCopilotポリシー「Enable automations」も有効にする必要がある(GitHub Docs)。

  1. GitHubでプルリクエストを開く。
  2. マージボックスで「Watch and fix」を選択する。
  3. 「Fix failed Actions workflows」「Resolve merge conflicts」のいずれか、または両方を選ぶ。
  4. マージボックスとプルリクエストのタイムラインで、Agent Mergeの更新を確認する。
  5. Copilotが加えた変更をレビューし、ワークフローの結果を確認する。

自分が作成するプルリクエストで既定で有効にすることもでき、設定は「Settings → Copilot → Cloud」にある。個別のプルリクエストで停止するには、マージボックスで「Unassign Copilot」を選択する。GitHubによると、この機能はスタックされたプルリクエストやフォークから作成されたプルリクエストには対応していない。

Agent Mergeはプルリクエストをマージするのか

GitHubのクラウド機能はプルリクエストを準備・維持するもので、有効にしても自動マージはオンにならない。GitHubの別機能である自動マージはAgent Mergeと組み合わせることができ、リポジトリで必須とされるレビューとチェックが満たされた時点でマージされる(GitHub Docs)。

この区別は重要である。自動マージが有効な場合、修復が成功すると、設定された要件が満たされ次第マージされる可能性がある。手動の確認が必ず入ると決めてかからず、リポジトリのルールと提案された変更を確認すべきである。

Copilotアプリでは体験が異なる。GitHubによると、アプリ版ではレビューコメントへの対応も可能で、GitHubが許可すればプルリクエストをマージすることもできる。VS Codeにも、独自のオプションを持つ実験的なAgent Mergeの体験が記載されている。これらを、GitHub上の「Watch and fix」と同一視すべきではない(GitHub Docs、VS Code)。

費用

Agent Mergeのクラウド機能には、有料のCopilotプランが必要である。AIクレジットの使用分は、プルリクエストで機能を有効にした人に課金される。この人はプルリクエストの作成者とは限らない。GitHubはAgent Mergeのドキュメントで修復1回あたりの固定費用を示しておらず、使用量は作業内容と使用されるモデルによって変わる(GitHub Docs)。

GitHubの個人向け課金ドキュメントでは、Copilot Proが月額10ドル、Pro+が39ドル、Maxが100ドルとされ、含まれるAIクレジットの枠はそれぞれ異なる。これらはプランの価格であり、Agent Mergeの料金ではない。修復で消費される量は、適用される枠と課金ルールの範囲内の別の使用分となる(GitHub billing)。広く有効にする前に、使用状況ダッシュボードとプランの条件を確認したい。

修正はどこで実行されるか

Agent MergeはクラウドのCopilotに属するが、GitHubによると、修正はクラウドのサンドボックスではなく、GitHub Actionsベースの開発環境で実行される。リポジトリのカスタム指示、エージェントスキル、.github/workflows/copilot-setup-steps.ymlのセットアップ手順を利用できる(GitHub Docs)。

そのため、リポジトリの設定が結果に影響する。依存関係の不足や不正確な指示は、エージェントの見え方を左右しうる。テスト、権限、ワークフロー設定に関わる変更には特に注意が必要である。緑のチェックは有用だが、ワークフローの本来の意図や安全性が保たれたことの証明にはならない。

我々の見方

Agent Mergeが狙うのは、チェックの完了を待ち、失敗に気づき、ブランチをマージ可能にするためだけに戻るという、よくある手間である。個人の開発者や小規模なチームにとって、バックグラウンドでの修復はこの中断を短縮する可能性がある。

価値は、提案される修正の質と、その検証にかかる時間で決まる。チェックが明確なプルリクエストから始め、対応させる障害の種類は必要なものだけに絞り、エージェントの差分を元の目的と照らして確認したい。クレジットの使用量はレビュー時間と並べて追跡する。意味のある成果は、正しく保守しやすい変更が適切なチェックを通過することであり、マージボックスが緑になることだけではない。

出典

この記事の誤りに気づかれましたか? 報告する · 訂正ポリシー

Rekhaのアイコン:一筆書きで描かれた家

同じ筆者による作品 自社紹介

一筆書きの道を、指でたどる

OrigoTechの筆者が作ったiPhoneゲーム「Rekha」:同じ線を二度たどらずに、すべての点を一筆でつなぐ。500種類の図形は、どれも必ず解けます。

OrigoTechニュースレター

AIツールのニュースを、出典付きで毎週まとめて配信。

次に読む