Claude Code PRレビューステータスの見方(GitHub/GitLab)
フッターに出るPR/MRバッジの色分けと更新頻度、GitHub(gh CLI)とGitLab(glab CLI、v2.1.234以降)それぞれの必要条件を扱います。
フッターのバッジが示すもの
オープンなプルリクエストのあるブランチで作業していると、Claude Codeはプロンプトフッターに「PR #446」のようなクリック可能なリンクを表示します。リンクには色付きの下線が付いていて、レビューの状態を一目で示します。
- 緑: 承認済み(approved)
- 黄: レビュー待ち(pending review)
- 赤: 変更要求あり(changes requested)
- グレー: draft
プルリクエストがマージまたはクローズされると、バッジは自動的に消えます。macOSではCmd+クリック、Windows/LinuxではCtrl+クリックでブラウザ上のプルリクエストを直接開き、ブラウザでの詳細レビューにそのまま移れます。
この機能自体はClaude Code v2.1.20でフッターへのPRレビュー状態表示として導入されました。Claudeが実装したプルリクエストを人間がレビューする流れでは、ターミナルを離れずにレビュー状況を追えます。
更新頻度はプロバイダーで変わる
バッジの状態は自動で更新されますが、その間隔は接続しているプロバイダーによって細かく異なります。
- Anthropic APIでfeature-flag fetchingが有効: セッション中アクティブなら約90秒ごと。アイドル中・ターミナル非フォーカス中・対象ブランチにプルリクエストが見つからない状態が続くときはより低頻度になります
- Amazon Bedrock・Google CloudのAgent Platform・Microsoft Foundry・Claude Platform on AWS、またはfeature-flag fetchingが無効: 60秒ごと
どちらのスケジュールでも即座の再取得トリガーがあります。セッション内でgit pushが成功したとき、またはgh pr createやgh pr mergeのようにプルリクエストの状態を変えるgh prコマンドが成功したときです。1時間以上入力が無いと自動更新は止まり、次にプロンプトを送った時点で再開します。
GitHub側に必要な前提条件
GitHubリポジトリでPRステータスを表示するには、gh CLIがインストールされ、gh auth loginで認証済みである必要があります。この前提が満たされていないと、対象ブランチにプルリクエストがあってもバッジ自体が出ないため、まずここを疑います。
GitLab対応(v2.1.234以降)
Claude Code v2.1.234から、GitLabのマージリクエストにも同じ仕組みが対応しました。GitHubのPRリンクが表示されるのと同じフッターの位置に、MR !Nという形式のバッジが出ます。!NはGitLab独自のマージリクエスト番号の書式です。
色分けはGitHubと少し異なります。
- 緑: GitLabがマージ可能(mergeable)と報告している状態
- 黄: それ以外のオープンな状態
- グレー: draft
赤に相当する状態は無く、GitHub版の「変更要求あり」のような専用色はありません。マージリクエストがマージまたはクローズされるとバッジは消え、更新頻度はGitHubのバッジと同じスケジュールに従います。glab mr createまたはgit pushが成功した直後にも即座に再取得が走ります。
バッジを表示するには次の3つが必要です。
- Claude Code v2.1.234以降
- gitlab.comまたは自己ホスト(self-managed)インスタンスを指すリポジトリのリモート
glabCLIが実行パス上にあり、での認証が済んでいること
GitLab連携をCI/CDパイプライン側から使う@claudeメンション自動化については、Claude CodeをGitLab CI/CDに組み込むで扱っています。フッターバッジはローカルの対話セッション向けの機能であり、CI/CD連携とは別の仕組みです。
claude agentsパネルは別の色分けを使う
複数セッションを一覧するclaude agentsパネル(agent view)にも、行の右端にプルリクエスト・マージリクエストへのリンクが表示されます。ラベルの書式はフッターと同じで、GitHubのプルリクエストなら#1234、GitLabのマージリクエストなら!1234です。ただし色の意味はフッターのバッジと異なります。
| 色 | agent viewでの意味 |
|---|---|
| 黄 | agent viewでの意味CIチェック待ちまたはレビュー待ち、あるいはチェック失敗 |
| 緑 | agent viewでの意味チェック通過かつレビューがブロックしていない |
| 紫 | agent viewでの意味マージ済み |
| グレー | agent viewでの意味draftまたはクローズ済み |
フッターのバッジが表すのは「承認済み/レビュー待ち/変更要求あり/draft」というレビュー状態そのものです。一方、agent viewのラベルは「このタスクは片付いたか」を判断するための色分けで、CIチェックの結果も加味されます。同じ緑でも指している中身が違うため、両方の画面を併用するときは意味を読み替える必要があります。1つのセッションが複数のプルリクエストにリンクしている場合、ラベルは3 PRsのように件数表示になり、色は最も対応が必要なプルリクエストに合わせて決まります。
agent view全体の設計や、セッションの状態遷移の読み方はClaude Codeのagent view — 複数セッションを束ねる常駐プロセス設計で扱っています。
セッションとプルリクエストがどう紐付くか
agent viewのラベルは、セッションがプルリクエストを開いた時点で自動的に付きますが、既存のプルリクエストへ後から紐付くケースもあります。紐付け方はClaudeが実行したコマンドによって変わります。
ghでプルリクエストの編集・コメント・クローズ・draft解除を行った場合、そのコマンド自身の出力が名指ししたプルリクエストにリンクします。出力が対話端末にしか表示されないgh pr mergeのようなコマンドは、出力からプルリクエストを特定できず新しいリンクを作りませんgh pr checkoutでチェックアウトした場合や、ブランチにプッシュした場合は、gh pr viewでブランチを逆引きしてオープンなプルリクエストにリンクします- プッシュした時点でプルリクエストがまだ存在しなくても構いません。同じディレクトリで後続する
gitghglabcurlコマンドが最大5回実行されるたびにブランチの再検索が走るため、GitHub REST API経由でClaudeが後から作成したプルリクエストも、次の再検索で見つかり次第リンクされます
ハイパーリンクが働かないとき
SSH接続やtmux内など、Claude Codeがターミナルのハイパーリンク対応を自動検出できない環境でも、バッジは常にハイパーリンクとしてレンダリングされます。クリックしても反応しない、あるいは奇妙な文字列が見える場合は、環境変数FORCE_HYPERLINKを0に設定するとプレーンテキスト表示に切り替わります。環境変数の全体像はClaude Code環境変数リファレンスにまとめています。
カスタムステータスラインからPRステータスを読む
statusLineスクリプトを自作している場合、フッターと同じ情報をJSONフィールドとして直接受け取れます。Claude Codeが渡すJSONにはprオブジェクトが含まれ、対象ブランチにオープンなプルリクエストまたはマージリクエストが見つかっている間だけ存在します。
| フィールド | 内容 |
|---|---|
pr.number / pr.url | 内容プルリクエスト番号とURL。GitLabのマージリクエストではマージリクエスト番号が入る(v2.1.234以降) |
pr.review_state | 内容approved / pending / changes_requested / draftのいずれか。prが存在していても独立に欠けることがある |
pr.kind | 内容GitLabのマージリクエストのときだけmr。GitHubのプルリクエストでは存在しない(v2.1.234以降) |
jq -r 'if .pr then "\(.pr.kind // "pr"): #\(.pr.number) [\(.pr.review_state // "unknown")]" else empty end'このようにpr.kindの有無で分岐すれば、GitHubのプルリクエストとGitLabのマージリクエストを同じスクリプトで扱えます。フィールドが欠けている場合を想定し、//演算子でフォールバック値を用意しておくと安全です。
GitHub/GitLab早見表
| 項目 | GitHub | GitLab |
|---|---|---|
| バッジ表記 | GitHubPR #446 | GitLabMR !N |
| 必要CLI | GitHubgh(gh auth login済み) | GitLabglab(glab auth login済み) |
| 対応開始バージョン | GitHubv2.1.20 | GitLabv2.1.234 |
| 色の種類 | GitHub緑・黄・赤・グレーの4段階 | GitLab緑・黄・グレーの3段階(赤なし) |
| 更新トリガー | GitHubgit push / gh pr系コマンド成功時 | GitLabgit push / glab mr create成功時 |
よくある質問
対象ブランチにプルリクエストが無いとどうなりますか
バッジは表示されません。GitHubの場合、プルリクエストが見つからない状態が続くと自動更新の頻度自体も下がり、無駄なポーリングを抑える動きになります。
自己ホストのGitLabインスタンスでも使えますか
使えます。gitlab.comだけでなく、自己ホストのGitLabインスタンスを指すリモートにも対応しています。
自作のstatusLineスクリプトでもGitLabのマージリクエストを区別できますか
できます。JSONのpr.kindがmrならGitLabのマージリクエスト、存在しなければGitHubのプルリクエストです。この判定にはClaude Code v2.1.234以降が必要です。
フッターとagent viewの色は混同しませんか
用途が異なるためです。フッターは今作業しているブランチ1本のレビュー状態を、人間視点(承認/変更要求/待ち)で示します。一方のagent viewは、複数セッションを俯瞰して「どのタスクが片付いたか」をCIチェックの結果まで含めて判断する画面です。両方を同時に見るときは、フッターの色を先に確認し、agent viewの色はタスク管理の優先順位付けとして使い分けると混同しにくくなります。
まとめ
フッターのPR/MRバッジは、GitHubならgh CLI、GitLabならglab CLIの認証済み状態を前提に、プッシュやPR/MR操作のたびに再取得されるレビューステータス表示です。GitHubは緑・黄・赤・グレーの4色、GitLab(v2.1.234以降)は緑・黄・グレーの3色で状態を示し、どちらも環境変数のトークンだけでは動かずCLIログインが必須です。複数セッションを俯瞰するclaude agentsパネルにも同じ書式のラベルが出ますが、色の意味はCIチェックとレビューを合成した別の基準なので、フッターの色とは読み替えが必要です。ハイパーリンクが機能しない環境ではFORCE_HYPERLINK=0で回避できます。