SpyBara
Go Premium

code-review-pull-requests.md 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

This page contains 169 additions and 0 deletions.

2026
Thu 15 23:58 Tue 20 23:00 Wed 21 23:02 Thu 22 22:58 Fri 23 22:59 Sun 25 23:58

プルリクエストのレビューを読む・リクエストする

GitHub のプルリクエストで Code Review の指摘を読み、返信または却下し、@claude review でレビューをリクエストします。

Code Review は、Claude 組織の Owner が一連の GitHub リポジトリに対してオンにするマネージドサービスです。オンにすると、Claude はそれらのリポジトリのプルリクエストをレビューし、指摘をインラインコメント、レビュー本文のサマリー、そして Claude Code Review という名前のチェックランとして投稿します。レビューがプルリクエストを承認したりブロックしたりすることはなく、チェックランが失敗として終了することもありません。

Owner は、リポジトリごとにレビューを実行するタイミングとレビューの詳細度を制御します。

重大度レベル

Claude は各指摘を該当する行へのインラインコメントとして投稿し、3 つの重大度レベルのいずれかでマークします。

マーカー 重大度 意味
🔴 Important マージ前に修正すべきバグ
🟡 Nit 軽微な問題。修正する価値はあるがブロックするほどではない
🟣 Pre-existing コードベースに存在するが、この PR で導入されたものではないバグ

レビューが推論を記録した場合、指摘には折りたたまれた Why this was flagged セクションがあります。これを展開すると、Claude がその問題を指摘した理由と、問題をどのように検証したかを読むことができます。

リポジトリで Claude が指摘する内容や重大度の判定方法を変更するには、Code Review をカスタマイズするを参照してください。

指摘に対応する

リポジトリ独自のルールで求められていない限り、指摘に対応しなくてもマージできます。ブランチ保護で会話の解決が必須になっている場合は、マージする前に各指摘のスレッドを解決してください。

指摘を解消するには、そのスレッドを解決するか、修正をプッシュします。

  • コードを変更せずに却下する: GitHub 上で自分でスレッドを解決します。返信するだけでは指摘は却下されません。
  • 問題を修正する: コードを変更してプッシュします。プルリクエストの次のレビューは、問題が修正されたと判断した場合に以前のスレッドを解決します。これは、そのレビューがプッシュで自動的に実行された場合でも、リクエストによって実行された場合でも同じです。
  • 説明する、または反論する: コメントに返信します。Claude はすぐには応答せず、返信によってレビューが開始されることもありません。プルリクエストの次のレビューが以前の指摘への返信を読み、スレッドを解決するか、フォローアップの返信を 1 件投稿することがあります。同じ種類の指摘が繰り返し出る場合は、メンテナーに REVIEW.md へのルール追加を依頼してください。

プッシュせずに次のレビューを実行するには、@claude review をプルリクエストのトップレベルコメントとして投稿します。

チェックランの出力

Claude Code Review チェックランの Details リンクを開くと、GitHub がインラインコメントを受け付けなかった指摘も含め、すべての指摘が重大度順に並んだ 1 つの表で表示されます。

重大度 ファイル:行 問題
🔴 Important src/auth/session.ts:142 トークンのリフレッシュがログアウトと競合し、古いセッションがアクティブなまま残る
🟡 Nit src/auth/session.ts:88 parseExpiry が不正な入力に対して暗黙的に 0 を返す

行情報があるもののインラインコメントとして投稿されなかった指摘は、Files changed タブの該当行にアノテーションとして表示されます。Important の指摘は赤、Nit は黄、既存のバグはグレーで表示されます。

チェックランは neutral として終了します。プッシュでファイルが変更されなかったために自動レビューが実行されなかった場合は skipped として終了します。失敗として終了することはないため、完了したレビューが必須チェックを失敗させることはありません。指摘が表示されない場合やレビューが実行されなかった場合は、Code Review のトラブルシューティングを参照してください。

スクリプトから結果を読む

独自の CI でマージをゲートしたりサマリーを投稿したりするには、gh と jq を使って Details テキストの最終行を解析します。この行は機械可読なコメントになっています。

1

チェックラン ID を見つける

シェルからコミットのチェックランを一覧表示し、Claude Code Review ランの id を取得します。OWNER と REPO をリポジトリのオーナーと名前に、<commit-sha> をプルリクエストの head コミットに置き換えてください。

gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'
2

重大度ごとの件数を読む

CHECK_RUN_ID を ID に置き換えて、そのチェックランから件数を読み取ります。

gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
--jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

これにより、重大度ごとの件数を持ち、キーがアルファベット順に並んだ JSON オブジェクトが出力されます。例: {"nit": 1, "normal": 2, "pre_existing": 0}。件数には、スレッドがまだ未解決のままになっているプルリクエストの以前のレビューによる指摘も含まれます。

3

結果に基づいて処理する

スクリプトで次のケースを処理するようにします。

  • normal が 0 より大きい: マージをゲートしたい場合はジョブを失敗させます。normal キーには Important の指摘の件数が入っているため、Claude がマージ前に修正すべきバグを少なくとも 1 件見つけたことを意味します。
  • 行が存在しない: 指摘 0 件ではなく、判定なしとして扱います。失敗した、タイムアウトした、キャンセルされた、または新しいレビューに置き換えられたレビューのチェックランにはこの行がなく、完了したレビューの中にもこの行がないものがあります。

レビューをリクエストする

プルリクエストがドラフトである場合やフォークからのものである場合、自動レビューはスキップされるため、コメントコマンドでレビューをリクエストしてください。プルリクエストのレビューを受けるには、次のいずれかを行います。

  • オープンする、または ready にする: Once after PR creation または After every push に設定されたリポジトリでは、プルリクエストをオープンまたは再オープンしたとき、あるいはドラフトを ready for review にしたときにレビューが開始されます。
  • コマンドをコメントする: プルリクエストに @claude review を投稿します。
  • コミットをプッシュする: After every push に設定されたリポジトリ、または @claude review always でサブスクライブしたプルリクエストでは、プッシュによってレビューが開始されます。
  • Re-run をクリックする: フォークからではないプルリクエストでレビューが失敗またはタイムアウトした場合は、チェックランから再実行します。
  • 自動再試行を待つ: セッションが中断されたレビューは、自動的に 1 回再試行されます。再試行が行われている場合は、チェックランのサマリーにその旨が表示されます。

コメントコマンド

次のいずれかのコマンドをプルリクエストへのコメントとして投稿します。

コマンド 動作 使用するタイミング
@claude review 今後のプッシュに PR をサブスクライブせずに、1 回だけレビューを開始する 今すぐ 1 回レビューしたい場合。たとえば Manual に設定されたリポジトリのプルリクエストや、他のモードですぐにもう一度レビューしたい場合
@claude review always レビューを開始し、以降はプッシュでトリガーされるレビューに PR をサブスクライブする 以降のプッシュごとに新しいレビューを開始したい場合。たとえば Manual に設定されたリポジトリの優先度の高い PR
@claude review once @claude review と同じ: サブスクライブせずに 1 回だけレビューを開始する @claude review と同じケース

これらのコマンドでレビューを開始するには、次の条件をすべて満たす必要があります。

  • 新しいプルリクエストのトップレベルコメントとして投稿すること。差分の行へのインラインコメントやレビュー本文では機能しません。以前のコメントを編集しても対象になりません。
  • コマンドをコメントの先頭に置き、always をコマンドの他の部分と同じ行に書くこと。大文字と小文字は区別されません。
  • リポジトリに対する write、maintain、または admin 権限を持っていること。Claude はコメントした各ユーザーについて GitHub でこれを確認し、ボットからのコメントではレビューは開始されません。
  • プルリクエストがオープンであること。

コマンドが受け付けられると、Code review queued... というタイトルの Claude Code Review チェックランがプルリクエストに表示されます。レビューが開始されると、タイトルは Code review in progress... に変わります。Claude がコメントに 👀 でリアクションすることもありますが、このリアクションはレビューが開始されない場合にも表示されることがあるため、代わりにチェックランを確認してください。

プルリクエストの最新コミットですでにレビューが実行中の場合、新しいリクエストによって 2 つ目のレビューが開始されることはありません。

以降のレビューの対象範囲

プッシュ後など、自動的に開始される以降のレビューは、前回のレビュー以降に変更された部分に焦点を当て、Nit や既存の問題の指摘を少なく投稿します。そのサマリーには、除外した件数が "found and not posted" または "outside the scope of this re-review and not posted." で終わる行に記載されます。

これらを何も除外しないレビューを受けるには、@claude review をコメントしてください。プルリクエスト全体が改めてレビューされます。

ドラフトとフォークからのプルリクエストをレビューする

自動レビューはこれらの両方をスキップするため、コメントコマンドでレビューをリクエストしてください。

  • ドラフトのプルリクエスト: コメントコマンドはドラフトでも実行されるため、プルリクエストを ready にする前にレビューをリクエストできます。ドラフトへのプッシュでは、@claude review always の後でもレビューは開始されません。サブスクリプションは、プルリクエストを ready にした時点で有効になります。
  • フォークからのプルリクエスト: リポジトリの Review runs 設定にかかわらず、Claude はフォークからのプルリクエストを自動的にはレビューしません。レビューを開始するには、プルリクエストに @claude review をコメントします。コメントコマンドの条件は引き続き適用され、必要な書き込み権限はフォークではなくベースリポジトリに対するものです。

フォークからのプルリクエストでも @claude review always は機能しますが、以降のプッシュでのレビューにプルリクエストがサブスクライブされることはありません。また、そこではチェックランの Re-run をクリックしてもレビューは開始されません。

Claude Code GitHub Action と併用する

リポジトリで Claude Code GitHub Action もデフォルトの @claude トリガーフレーズを使ったインタラクティブモードで実行している場合、@claude review コメントによって Action も開始されます。2 つを区別するには、Action の trigger_phrase 入力を別のフレーズに設定してください。