メインコンテンツへスキップ

PRレビューとIssue整理を任せる

  • レッスン 4
  • 16分

このレッスンで

終わる頃には、次ができるようになります

  • PRの自動レビュー、Issueの分類、定期実行という3つの自動化を、公式の使用例に沿って組み込める
  • GitHub Actionsのワークフローとマネージドの Code Review、Routines を目的に応じて使い分けられる
  • ターン数の上限・タイムアウト・同時実行の制限・バージョン固定・権限の最小化で自動化を暴走させない設定ができる

前のレッスンで、リポジトリに claude-code-action を入れ、コメントで @claude と呼べば応える状態にしました。

ここから一段進めます。誰かが呼ぶのを待つのではなく、決まった出来事が起きたら自動で動く形です。公式ドキュメントとリポジトリの解説ページには、PRが開かれたら動くレビュー、Issueが立ったら動くトリアージ、そして決まった時刻に動く定期実行という3つの使用例が載っています。どれも「GitHubにClaudeを置く」で入れた claude-code-action の上に、トリガーとプロンプトを変えて乗せているだけです。

このレッスンでは、この3つがそれぞれ何をして、あなたが何を見ればいいかを確認します。あわせて、同じ役目を持つマネージドの機能(Code Review・Routines)との使い分けと、自動である以上必ず要る「暴走させない設定」もまとめて押さえます。


PRを自動でレビューしてもらう

公式ドキュメントが「Run a skill」として挙げている例は、PRが開かれる・更新されるたびに動くレビューのワークフローです。トリガーは pull_request イベントの4種類(開かれた・コードが更新された・下書きから戻された・再開された)。ここでAnthropic公式の code-review プラグインを読み込み、/code-review:code-review --comment を実行させます。

きっかけ

PRが開かれる・更新される・下書きから戻される・再開される

Claudeがすること

code-reviewプラグインで差分を読み、/code-review:code-review --comment を実行する

人が見るもの

PRのタイムラインに、Claudeのアカウントからインラインコメントが並ぶ

PR自動レビューの流れ

見るべき場所は普段のレビューコメントと同じです。レビューする人が入れ替わるわけではなく、最初の一読み分をClaudeが引き受けている状態だと考えてください。出てきたコメントをチームがどう扱うかは、次のレッスンで扱います。


Issueを分類してラベルを付ける

2つ目は、Issueが立った瞬間に動くトリアージです。anthropics/claude-code-action リポジトリのドキュメントに、issues: opened をトリガーにした完全な例が載っています。権限は issues: write と id-token: write の2つだけ。用意したスクリプト(ラベル編集用・GitHub操作用の2本)だけを許可リストに入れ、それ以外は触らせません。

きっかけ

新しいIssueが開かれる(issues: opened)

Claudeがすること

本文とタイトルを読み、許可されたスクリプト経由でラベルを付ける。似たIssueがあれば重複を指摘するコメントを残す

人が見るもの

Issue一覧にラベルが並んだ状態。重複と判断されればコメントが1件増える

Issue分類・ラベル付けの流れ

ここで効いてくるのが権限の絞り方です。レビューのワークフローは contents・pull-requests・issues を読み取りだけで済ませているのに対し、トリアージは issues を書き込みで持ちます。同じ仕組みでも、やらせたい仕事が変われば渡す権限も変えます。これは後半でもう一度出てきます。


決まった時刻に動かす(schedule)

3つ目は、人の行動をきっかけにせず、時刻だけをきっかけにする方法です。公式ドキュメントの「Run on a schedule」は「Daily Report」という名前で、毎日9:00 UTCに動き、GitHub用のMCPツールで前日のコミットとIssueを要約します。同じリポジトリのドキュメントには、毎週日曜0時に依存関係の点検・npm audit・古いIssueの棚卸しを1つのIssueにまとめる「Weekly Maintenance」の例もあります。

きっかけ

cronで決めた時刻(例: 毎日9:00 UTC、毎週日曜0時)

Claudeがすること

前日の変更を要約する、依存関係やnpm auditをまとめて点検するなど、指示した棚卸し作業

人が見るもの

既定ではワークフロー実行ログのみ。Issueにまとめさせる指示を書けば、要約Issueが1件増える

定期実行の流れ

注意

結果はどこにも出ない、が既定の動き

プロンプトを渡して起動する「automation mode」は、@claude へのメンションを待たずに動く代わりに、結果を既定ではワークフロー実行ログにしか出しません。PRにコメントを残す(1つ目の例)、Issueを作る(Weekly Maintenanceの例)といった「見える形」は、プロンプト側でそう指示して初めて実現します。動かしたのに何も起きていないように見えるときは、たいてい結果の置き場所を指定し忘れているだけです。


Actionsで自分で書くか、マネージドに任せるか

ここまでの3つは、すべて自分でワークフローファイルを書いて維持するやり方です。同じ目的を、ワークフローを持たずに実現する選択肢も用意されています。

GitHub Actionsワークフロー(このレッスンの方法)

プロンプト・モデル・トリガーを自分で制御したいときの選択肢。ワークフローファイルの維持は自分の責任になる

マネージド Code Review

research preview。Team・Enterpriseプラン限定(Zero Data Retention組織は不可)。管理者がadmin settingsでリポジトリを登録するだけでよく、ワークフローファイルを持たない。1回のレビューは平均15〜25ドルで、契約プランの使用量には含まれず別課金される(2026年9月27日確認)

Routines

research preview。Pro・Max・Team・Enterpriseで利用可。プロンプト・リポジトリ・connectorを1つにまとめてクラウドで実行する仕組みで、起動条件はScheduled・API・GitHub(PR・Release)の3種類。個人のclaude.aiアカウントに属し、チームには共有されない

3つの手段の使い分け

マネージドのCode Reviewは、有効にした後も動くタイミングをリポジトリごとに選べます。組織のOwnerがadmin settingsで一度有効化した後、対象リポジトリごとに「PR作成時のみ」「毎プッシュ」「手動」のどれかを選びます。手動を選んだ場合は、PRのコメントで @claude review と書けばその場で一度だけ、@claude review always と書けば以降のプッシュもレビュー対象に登録されます。ワークフローファイルの on: を書き換えなくても、この設定変更だけで頻度を調整できるのがマネージド版の利点です。

Routinesはレビューだけの機能ではなく、この章の「決まった時刻に動かす」の受け皿でもあります。cronを自分で書きたくなければ、RoutinesのScheduledトリガーで同じことができます。ただし成果物は実行した本人のアカウント名義になります。チームの成果として履歴に残したいなら、Actionsで書いて残す方が向いています。


暴走させないための設定

自動で動くということは、誰も見ていない時間にClaudeが判断し続けるということでもあります。公式ドキュメントがコスト対策として挙げている項目は、そのまま暴走対策としても読めます。

ターン数の上限

claude_args に --max-turns を渡し、1回の起動で繰り返せる回数に天井をつける

タイムアウト

ジョブ全体に時間の上限を置き、想定外に長引いた実行を止める(GitHub Actionsの標準機能)

同時実行の制限

GitHubのconcurrency制御で、同じ対象への並列実行数を絞る(GitHub Actionsの標準機能)

バージョン固定

アクション自体を @beta ではなく @v1 で指定する。中身が変わらないことを保証する

権限の最小化

そのワークフローが本当に必要な権限だけを渡す。レビューはpull-requests、トリアージはissuesだけ、というように仕事ごとに絞る

暴走させないための5つの設定

最後の権限の最小化は、前の2つの例がそのまま実例です。レビューのワークフローは contents・pull-requests・issues を読み取りだけ持ち、書き込みを渡すのは id-token だけです。差分を読んでコメントを残すだけなら、コードやIssueへの書き込み権限は要りません。対してトリアージのワークフローは、ラベルを付け替える仕事のために issues と id-token を両方書き込みで持ちます。仕事の中身が変われば、渡す権限の質も変わります。

jobs:
  review:
    timeout-minutes: 15
    concurrency:
      group: claude-review-${{ github.event.pull_request.number }}
      cancel-in-progress: true
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          claude_args: "--max-turns 5"

timeout-minutes と concurrency はGitHub Actions自体の標準機能、permissions の中身と claude_args・@v1 の指定がClaude Code側の設定です。

注意

公開リポジトリではもう一段の注意が要る

公開リポジトリでは、フォークから送られたPRにGitHubがシークレットを渡さないため、レビューは同じリポジトリのブランチから開かれたPRでしか動きません。それでも、トリガーフレーズを含むコメントであれば、投稿者の権限を確認する前にクレデンシャル取得のステップまでは進んでしまいます。公開リポジトリでこの仕組みを使うなら、投稿者の書き込み権限を確認するステップを、クレデンシャル取得より先に置いてください。


今日のまとめ

  • PRの自動レビュー、Issueの分類、定期実行は、どれも同じ claude-code-action にトリガーとプロンプトを変えて乗せているだけ
  • automation modeの結果は既定でワークフロー実行ログにしか出ない。見える形にするにはプロンプト側で指示が要る
  • ワークフローを自分で書く代わりに、マネージドのCode ReviewやRoutinesに任せるという選択肢もある

自動化したレビューやIssue整理を、チームがどう受け止めるかは別の話です。次のレッスン「AIが書いた変更をチームで受け止める」で、レビュー規約とコストの見える化を扱います。

セルフチェック

1. 定期実行(schedule)でプロンプトを渡して起動した場合、結果は既定でどこに出ますか?

2. Issueのトリアージ(分類・ラベル付け)のワークフローに渡す権限として、公式の例に沿っているのは?

3. マネージドのCode Reviewが使えないのはどの組織ですか?

SourceDOCUMENTATION
Claude Code: GitHub Actions

メンション応答・Code Reviewスキル・定期実行の3つの使用例と、コスト削減策の一次情報。

Webcode.claude.com
code.claude.com/docs/en/github-actions
SourceDOCUMENTATION
claude-code-action: Solutions

Issue Auto-Triage、Weekly Maintenance、Documentation Syncなど、完全なYAML例が載っているドキュメント。

Webgithub.com/anthropics
github.com/anthropics/claude-code-action/blob/main/docs/solutions.md
SourceDOCUMENTATION
Claude Code: Code Review

マネージドCode Reviewの対象プラン・料金・トリガー設定の一次情報。

Webcode.claude.com
code.claude.com/docs/en/code-review

このレッスンは役に立ちましたか?