GitHub:自動マージが断られた理由
自動マージは、必須のレビューとステータスチェックが通ったら GitHub が自分でプルリクをマージする仕組みです。GraphQL の enablePullRequestAutoMerge で入れます。渡すのはプルリクの id と、必要なら mergeMethod・commitHeadline・commitBody・authorEmail・expectedHeadOid(そうだと思う先頭)です。断りの文は GitHub の文書にありません。以下は公開の報告から引いた文と、その裏にある GitHub の文書の決まりです(2026年10月25日に確認)。
mutation {
enablePullRequestAutoMerge(input: {pullRequestId: "PR_…", mergeMethod: SQUASH}) {
clientMutationId
}
}
GitHub の文と理由
Pull request Pull request is in clean status(GitHub は「Pull request」を2回書きます):プルリクは今すぐマージできます。GitHub の文書は、自動マージを出すのは今すぐマージできないプルリクだけ、たとえばブランチのルールがレビューやステータスチェックを待っているときだ、と書いています。GitHub のスキーマではCLEANは「マージでき、コミットのステータスも通っている」です。Pull request Pull request is in unstable status:UNSTABLEは「マージできるが、コミットのステータスが通っていない」です。落ちているチェックはあっても、ルールが必須にしているものではないので今すぐマージでき、自動マージが待つ物がありません。Auto merge is not allowed for this repository:リポジトリの Allow auto-merge の設定が切れています。GitHub の文書では、自動マージはまずリポジトリで許す必要があります。マージキューが必須のブランチには、この設定はかからず、リポジトリが許していなくても Merge when ready で自動マージが入ります。Pull request Protected branch rules not configured for this branch:マージ先のブランチに、マージを止めるルールがありません。待つ物が無いということです。公開の報告の1件は、マージ先のブランチに Require a pull request before merging などのルールを足して解消しています。Resource not accessible by integration(ワークフローのGITHUB_TOKENから):公開の報告では、pull-requests: writeだけでは足りず、contents: writeを足すと自動マージを入れられました。- だれが入れられるか:GitHub の文書は、リポジトリへの書き込みの権限がある人が自動マージを入れられると書いています。
入れたのに外れる
- GitHub の文書は、書き込みの権限の無い人が head のブランチに push したときと、マージ先のブランチが変えられたときに、自動マージが外れると書いています。
- 外せるのは、書き込みの権限のある人と、プルリクを作った人です。
- マージキューが必須のブランチでは、GitHub のスキーマによると、渡したマージの方法とコミットメッセージは使われません。
直し方
- clean・unstable:今マージするか、気になるチェックを先に待ちます。
- リポジトリで許されていない:リポジトリの Settings → General → Pull Requests で Allow auto-merge を選びます。
- ブランチにルールが無い:マージ先のブランチに、レビューかステータスチェックを必須にするルールを足すか、準備ができたら自分でマージします。
- ワークフロー:ジョブに
contents: writeとpull-requests: writeを与えます。 - 自動マージでなくマージが断られたなら:GitHub がマージを断った理由へ。
IntelliJ IDEA に自動マージは無く、Merge… は今すぐマージできるときに押せる
IntelliJ IDEA に入っている GitHub の機能が、まだマージできないプルリクをどう扱うか。ソース(2026年10月31日に確認・IntelliJ IDEA:GraphQL のファイル・GithubApiRequests.kt・GHPullRequestMergeStateStatus.kt・GHPRMergeabilityStateBuilder.kt・GHPRReviewFlowViewModelImpl.kt)では:
- 自動マージは無い:78本の GraphQL のファイル(うち20本は mutation)にも、REST の問い合わせにも、自動マージは出てきません。そのため IDE は自動マージを入れも外しもせず、入っているかも読みません。それは GitHub で行います。
- Merge… と Squash and Merge… が押せるとき:GitHub の
mergeStateStatusがCLEAN・HAS_HOOKS・UNSTABLEのとき、つまり今すぐマージできるときで、上で GitHub が自動マージを断る clean と unstable もここに入ります。BLOCKEDかBEHINDの間はAdmin の権限のアカウントで、かつ GitHub が向き先のブランチのルールを返しているときだけ押せ、マージはその場で送ります(ルールがそろうまで待つのではありません)。ほかの状態では押せないので、IDE にはレビューやチェックを待つ物がありません。ボタンのほかの条件はRebase and merge が使えないにあります。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。マージのダイアログの「要件を満たしたら自動でマージ」は、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 のチェックが出ない(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 で Copilot が作ったプルリクのチェックが動かない・承認が数えられない · GitHub の push が GH006・GH013 で断られる · GitHub で承認が足りずマージできない・数に入らない承認 · JetBrains の IDE で GitHub のプルリクを扱う · English