GitHub:プルリクを閉じられない・開き直せない
プルリクをマージせずに閉じるには、プルリクの一番下、コメントの欄の下にある Close pull request を押します(GitHub の説明「プルリクを閉じる」・2026年10月27日に確認)。REST API では state を closed か open にします。組織のリポジトリで、すべての issue とプルリクを閉じる・開き直すには、トリアージ以上のロールが要ります。リポジトリや会話がアーカイブされたプルリクと、スタックの中のプルリクには、別の決まりがあります。
PATCH /repos/OWNER/REPO/pulls/NUMBER {"state": "closed"}
PATCH /repos/OWNER/REPO/pulls/NUMBER {"state": "open"}
200 OK | 403 Forbidden | 422 Validation failed
閉じられない・開き直せない理由
- ロール:「すべての issue とプルリクを閉じる・開き直す・割り当てる」は、組織のリポジトリのトリアージ・書き込み・メンテナンス・管理のロールにあり、読み取りにはありません(GitHub の説明「組織のリポジトリのロール」)。個人アカウントのリポジトリでは、コラボレーターがプルリクを作る・マージする・閉じることができます(「個人アカウントのリポジトリの権限」)。
- REST の答え:
PATCH /repos/OWNER/REPO/pulls/NUMBERはstateにopenかclosedを取り、200、403(禁止)、または検証に失敗したかエンドポイントに送りすぎたときの 422 を返します。説明には、公開リポジトリでプルリクを開く・変えるには head かソースのブランチへの書き込み権限が要り、組織のリポジトリではその組織のメンバーである必要がある、とあります(GitHub の説明「プルリクを変える」)。 - アーカイブされたリポジトリ:issue・プルリク・コメントなどが、すべての人にとって読み取り専用になります。何かを変えるには、先にリポジトリのアーカイブを解きます(GitHub の説明「リポジトリのアーカイブ」)。
- アーカイブされたプルリク:アーカイブするとプルリクは閉じられ、会話は読み取り専用になります。アーカイブを解くと見えるようになりますが、閉じたままです。開き直すのは別の操作です。見えるのはトリアージ以上の権限がある人だけで、ほかの人には 404 です(GitHub の説明「プルリクのアーカイブ」)。
- スタック:スタックの途中のプルリクを閉じると、その上のプルリクはすべてマージできなくなります。スタックのつながりは残るので、別のプルリクを開いたりスタックの形を変えたりするには、先にスタックを解いてから作り直します。スタックを解いて外れるのは、開いている・下書き・閉じたプルリクだけです(GitHub の説明「スタックしたプルリクの問題」)。
Close pull request を押さずに閉じる場合
- ブランチの削除:開いているプルリクが1つでも使っているブランチを消すと、警告の後にそのプルリクが閉じます(GitHub の説明「リポジトリのブランチの管理」)。
- 閉じるキーワード:別のプルリクのコメントをキーワードで参照すると2つはつながり、参照した側をマージすると参照された側も閉じます(GitHub の説明「プルリクと issue をつなぐ」)。閉じるキーワードを参照。
- Dependabot のコマンド:
@dependabot ignore this dependency(または this major/minor/patch version)はプルリクを閉じ、そのプルリクを開き直すか自分で上げるまで、Dependabot はそれ以上のプルリクを作りません(GitHub の説明「Dependabot のプルリクのコメントのコマンド」)。
直す所
- ベースのブランチの間違い:閉じて作り直すのではなく、ベースのブランチを変えます。閉じ方の説明もそう勧めています。ベースのブランチの変え方を参照。
- 探す:
is:closed is:unmergedはマージされずに閉じたプルリクを、is:archivedはトリアージ以上の権限がある人にアーカイブされたプルリクを見つけます(GitHub の説明「issue とプルリクの検索」)。 - ブランチ:閉じたプルリクの下の Delete branch は、ほかに開いているプルリクが使っていなければブランチを消し、Restore branch は head のブランチを戻します。ブランチが消えないを参照。
- ロールを頼む:組織のリポジトリで、すべてのプルリクを閉じる・開き直せる一番下のロールはトリアージです。
IntelliJ IDEA の Close と Reopen は、IDE がつないだ時に GitHub が返した権限で決まる
IntelliJ IDEA に入っている GitHub の機能が、プルリクをどう閉じて開き直すか。ソース(2026年10月31日に確認・IntelliJ IDEA:GHPRDetailsActionsComponentFactory.kt・CodeReviewDetailsActionsComponentFactory.kt・GHPRCloseAction.kt・GHPRReviewFlowViewModelImpl.kt・GHPRDetailsServiceImpl.kt)では:
- ボタンの場所:開いているプルリクでは Close Pull Request が「その他の操作」のメニューの中にあり、閉じたプルリクに出るボタンは Reopen Pull Request だけです。下書きにはどちらも出ず、Post Pull Request だけです(下書き・レビュー準備完了・閉じるが断られた理由)。
- 押せる人:プルリクの作者か、Triage 以上の権限のアカウントのときだけです(権限は IDE がリポジトリにつないだ時に GitHub が返した物)。
- 送る物:上の REST の
PATCHに、stateをclosedかopenにして送ります。 - GitHub が断ると、画面には何も出ません。ソースはエラーを IDE のログに書くだけで、画面に出すのは「これから」と書かれています。その後プルリクを読み直すので、ボタンは GitHub での今の状態に合わせて変わります。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。プルリクのレビュー・チェック・会話を差分の隣に出し、対象のブランチが許す方法でマージします。「閉じる」は先に確かめ、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 でプルリクのファイルの 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