GitHub:Copilot が作ったプルリクのチェックが動かない・マージできない
既定では、Copilot がプルリクに変更を push しても、GitHub Actions のワークフローは自動では動きません。動かすには、リポジトリに書き込みの権限がある人が、プルリクのマージの欄で Approve and run workflows を押します(GitHub の説明「Troubleshooting GitHub Copilot cloud agent」・2026年10月28日に確認)。同じプルリクには、レビューにも別の決まりがあります。Copilot はそれをレビュー準備完了にも、承認にも、マージにもできず、Copilot に頼んだ本人も承認できません。
Copilot pushes to the pull request workflows wait for Approve and run workflows a draft from Copilot a person marks it ready for review the person who asked Copilot cannot approve it Copilot under its own app identity one more approval than the rule asks for Copilot itself cannot approve or merge
起きる理由
- ワークフローは強い権限を持ちうる:GitHub Actions のワークフローは秘密の値に触れられることがあるので、GitHub は Copilot が変えた所を人が見るまで動かしません。
.github/workflows/のワークフローのファイルの変更は特によく見ます(GitHub の説明「Review output from Copilot」)。 - 必須のチェックも待つ:そのワークフローから来る必須のチェックは、実行が承認されるまで報告する物がないので、プルリクはブロックされたままです(必須のチェックが Expected のままへ)。
- 下書き:Copilot のクラウドエージェントが作った下書きのプルリクは、人がレビューしてマージします。Copilot は自分のプルリクを Ready for review(レビュー準備完了)にできず、プルリクの承認もマージもできません(GitHub の説明「Risks and mitigations for GitHub Copilot cloud agent」)。
- 頼んだ本人:Copilot のクラウドエージェントにプルリクを作らせた人は、そのプルリクを承認できません。これで Required approvals(必須の承認)のルールとブランチの保護が意味を保ちます。リポジトリが承認を求めているなら、別のレビュアーの承認が要ります。自動の実行(オートメーション)も同じで、そのプルリクは自動の実行を作った人のものとされ、その人は承認できません。
- 人のものとされない:Copilot が自分のアプリの名前でプルリクを開いたとき(たとえばグループのスレッドやチャンネルのような共有の場から頼まれたとき)は、少なくとも1つの承認が求められている限り、決めた数より1つ多い承認が要ります。承認1つを求めるルールセットなら、書き込みの権限がある人の承認が2つ要ります(GitHub の説明「Available rules for rulesets」)。
- 既定で入っている:ルールセットでは Require an additional approval for unattributed Copilot pull requests という設定で、公開プレビュー中、新しいルールセットにも今あるルールセットにも入っています。管理者はそこで外せます。ブランチの保護のルールでは、いつも効きます。
- ブランチは1つ:Copilot が push できるのは、新しく作られた
copilot/のブランチか、Copilot を呼んだプルリクのブランチだけで、そのブランチにもリポジトリのブランチの保護と必須のチェックが効きます。
直す所
- 実行を承認する:書き込みの権限がある人が変更を見て(
.github/workflows/の中は特に念入りに)、プルリクのマージの欄で Approve and run workflows を押します。 - 承認なしで動かす:リポジトリの管理者は承認を外せます。リポジトリの Settings を開き、Code, planning, and automation の下の Copilot、続けて cloud agent を選び、Actions workflow approval の欄で Require approval for workflow runs を切ります。GitHub は、これで Copilot が書いたレビュー前のコードがリポジトリへの書き込みの権限や GitHub Actions の秘密の値に届くおそれがある、と注意しています(GitHub の説明「Configuring settings for GitHub Copilot cloud agent」)。
- レビュー準備完了にする:変更がよければ、人が下書きを Ready for review にします。Copilot にはできません。
- 別の人に承認してもらう:自分が Copilot に頼んだプルリクなら、書き込みの権限がある別の人が承認します。
- 承認を1つ多く数える:Copilot のアプリの名前のプルリクなら、ルールが求める数より1つ多く承認をもらうか、管理者にルールセットの Require an additional approval for unattributed Copilot pull requests を外してもらいます。最後に push した人以外の承認も求めているなら、少なくとも1つの承認は最後の push の後のもので、Copilot 以外の人からのものである必要があります(最後の push の承認へ)。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。プルリクのレビュー・チェック・会話を差分の隣に出し、対象のブランチが許す方法でマージします。GitHub が先頭のコミットに返すチェックを並べます。下書きなら、マージのチェックで先にレビュー準備完了にするよう言い(「下書きです。先にレビュー準備完了にしてください」)、プラグインから下書きをレビュー準備完了にできます。GitHub がプルリクをブロック中と言うときは、そのコミットでまだ報告していない必須のチェックを名指しし(「必須のチェック「名前」が、このコミットでまだ報告されていません」)、GitHub がまだレビューが要ると言う間は、承認がもう並んでいても、ルールがまだ承認のレビューを求めていると言います。ワークフローの実行の承認は GitHub で行い、プラグインは実行を承認も開始もしません。受信箱・差分・会話は無料、承認・コメント・解決・下書き・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
GitHub は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:GitHub のマージの断り(405・409) · GitHub のレビューの断り(422) · GitHub の検索の 422「Validation Failed」 · 「Resource not accessible by personal access token」 · 401「Bad credentials」 · 「Resource protected by organization SAML enforcement」 · 「API rate limit exceeded」 · GitHub の差分の 406「too_large」・3,000件 · GitHub の行のコメントの 422「must be part of the diff」 · GitHub のブランチの更新の断り(422) · GitHub のプルリクが作れない(422・403) · GitHub の自動マージの断り · GitHub の下書き・レビュー準備完了・閉じるの断り · GitHub の会話の解決の断り · GitHub のチェックが出ない(check runs の 403) · GitHub のファイルの中身が読めない · GitHub の比較の断り(404・422) · GitHub のコメント・返信の断り(ロック・アーカイブの 403) · GitHub のマージの方法の断り(405) · GitHub のブランチが見つからない(404・301) · GitHub Enterprise Server につながらない · GitHub のレビューの依頼が出ない · GitHub のプルリクの一覧が足りない · GitHub の 404・名前を変えたリポジトリ(301・307) · GitHub の行のコメントが outdated・差分に無い · GitHub のプルリクの更新・通知が遅い · GitHub の変更の提案が適用できない · GitHub の必須チェックが Expected のまま · GitHub でコードオーナーのレビューが要る · GitHub で未解決の会話がマージを止める · GitHub で署名の無いコミットがマージを止める · GitHub のマージキューでマージするブランチ · GitHub でマージが最後の push の承認を待っている · GitHub でマージがコードスキャンの結果を待っている · GitHub でマージがコード品質の結果を待っている · GitHub でコードのカバレッジの水準がマージを止める · GitHub でライセンスの適合の結果がマージを止める · GitHub でブランチのロックや更新の制限がマージを止める · GitHub でマージの後にブランチが消えない · GitHub でチームの承認(Required reviewers)がマージを止める · GitHub でシークレットスキャンのアラートがマージを止める · GitHub でスタックしたプルリクがマージできない · GitHub で push の規則が push を止める · GitHub でコミットのメタデータの規則がマージを止める · GitHub で強制 push が止められる · GitHub でプルリクをマージしても issue が閉じない · GitHub のプルリクを手元にチェックアウトできない · GitHub のプルリクがマージ先と衝突している · GitHub で変更を依頼された・レビューを取り消す · GitHub で共同作者がコミットに数えられない · GitHub で依存関係のレビューのチェックが失敗する · GitHub で Dependabot がプルリクをリベースしない · GitHub でフォークが同期できない · GitHub でプルリクのベースのブランチを変えられない · GitHub でプルリクを取り消せない · GitHub でプルリクのテンプレートが出ない · GitHub でプルリクにラベルや担当者が付かない · GitHub でプルリクを閉じられない・開き直せない · GitHub でプッシュ保護にプッシュを止められた · GitHub でプルリクのコメントが隠された · GitHub でデプロイが成功するまでプルリクをマージできない · GitHub でチームに頼んだレビューがメンバーに置き換わった · GitHub でプルリクのファイルの Viewed が外れた · GitHub でマージしていないプルリクがマージ済みになった · GitHub で Copilot のレビューが承認に数えられない · GitHub でワークフローが作ったプルリクのチェックが動かない · GitHub でプルリクに Update branch のボタンが出ない · GitHub で Dependabot のプルリクのチェックが失敗する · GitHub でフォークからのプルリクのチェックが失敗する · GitHub でコミットメッセージの [skip ci] でチェックが動かない · GitHub で保存期間を過ぎてチェックが消えた · GitHub の公開リポジトリのコードレビューの制限 · GitHub でリポジトリのプルリクがオフ・制限されている · GitHub でスタックのプルリクごとにチェックが走る · GitHub でスカッシュでマージ済みのコミットが次のプルリクに出る · GitHub のプルリクでファイルの差分が出ない · GitHub でフォークのプルリクのブランチに push できない · GitHub のプルリクのチェックが取り消された · GitHub で Rebase and merge が使えない · GitHub のマージのコミットメッセージが思った形にならない · GitHub のプルリクでファイルの全行が変わったと出る · GitHub の API がタイムアウトした · GitHub のプルリクで画像や文書の差分が見た目で出ない · GitHub のレビューの依頼が断られる(422) · GitHub の push が GH006・GH013 で断られる · GitHub で承認が足りずマージできない・数に入らない承認 · JetBrains の IDE で GitHub のプルリクを扱う · English