【サーバー代ゼロ】Claude Code × GitHub Actions でプルリクエストを自動レビューする設定方法

【サーバー代ゼロ】Claude Code × GitHub Actions でプルリクエストを自動レビューする設定方法 AI

VSCode での日本語設定が終わったら、次は GitHub と連携して、プルリクエスト(PR)を作った瞬間に Claude がコードをレビューしてくれる環境を作りましょう。

使うのは Anthropic 公式の GitHub Action「Claude Code GitHub Actions」です。自前のサーバーは不要で、ワークフローファイルを 1 つ置くだけで動きます。後半では、レビューコメントを日本語にそろえるための CLAUDE.md テンプレートも紹介します。

この記事でできあがるもの

  • PR を作成・更新すると、Claude が自動で差分をレビューする
  • 指摘は PR の該当行へのインラインコメントとして付く(指摘がなければ概要コメントが 1 件付く)
  • レビューの言語や観点は、リポジトリ直下の CLAUDE.md で指定できる

先に知っておきたい:本当に「ゼロ円」なのはどこまでか

サーバーを借りる必要はありませんが、完全に無料というわけではありません。かかる可能性があるのは次の 2 つです。

項目 内容
GitHub Actions の実行時間 パブリックリポジトリは無料。プライベートリポジトリは無料プランで月 2,000 分まで(執筆時点。最新の条件は GitHub の請求ドキュメント を確認してください)
Claude の利用料 API キーで認証する場合は、レビューのたびにトークン量に応じた API 料金 が発生します。Claude のサブスクリプション(Pro / Max / Team / Enterprise)で認証する場合は、API 請求ではなくプランの利用枠を消費します

つまり「追加のサーバー代はゼロ、Claude の利用分は別途」と考えておくのが正確です。費用を抑える設定は、記事の後半でまとめます。

前提条件

  • 対象リポジトリの管理者権限があること
  • Claude API キー、または Claude のサブスクリプションがあること
  • (クイックセットアップを使う場合)ローカルに Claude Code と GitHub CLI が入っていること

いちばん早い方法:/install-github-app

ローカルで Claude Code を使っているなら、コマンド 1 つでセットアップが終わります。

  1. gh auth login で GitHub CLI にログインしておく
  2. 対象リポジトリのディレクトリで claude を起動する
  3. /install-github-app を実行し、画面の案内に従う

Claude Code が GitHub App のインストール、認証シークレットの登録、ワークフローファイルを含む PR の準備までを行います。途中でレビュー用のワークフローを選び、作成された PR をマージすれば完了です。

ワークフローの中身を自分で管理したい場合や、コマンドがうまく動かない場合は、以下の手動セットアップに進んでください。

手動セットアップ

ステップ 1:Claude GitHub App をインストールする

Claude GitHub App を開き、対象のリポジトリにインストールします。Action は標準でこのアプリとして認証し、PR にコメントを書き込みます。

ステップ 2:認証情報を GitHub Secrets に登録する

  1. リポジトリの Settings > Secrets and variables > Actions を開く
  2. New repository secret をクリックする
  3. 認証方法に合わせて、次のどちらかを登録する
Name Value 取得方法
ANTHROPIC_API_KEY Claude API キー Claude Console で発行
CLAUDE_CODE_OAUTH_TOKEN サブスクリプション用の OAuth トークン ローカルで claude setup-token を実行

注意: キーやトークンをワークフローファイルやコードに直接書かないでください。必ず Secrets に保存し、${{ secrets.ANTHROPIC_API_KEY }} の形で参照します。

ステップ 3:ワークフローファイルを作成する

リポジトリに .github/workflows/claude-review.yml を作成し、以下を貼り付けます。

name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize, ready_for_review, reopened]

# 同じPRに連続でpushしたとき、古い実行を止めて無駄な消費を防ぐ
concurrency:
  group: claude-review-${{ github.event.pull_request.number }}
  cancel-in-progress: true

jobs:
  review:
    runs-on: ubuntu-latest
    timeout-minutes: 15 # 暴走防止の上限
    permissions:
      contents: read
      pull-requests: read
      issues: read
      id-token: write # Claude GitHub App としての認証に必要
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 1

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
          plugins: "code-review@claude-code-plugins"
          prompt: "/code-review:code-review --comment ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"
          claude_args: '--allowedTools "mcp__github_inline_comment__create_inline_comment"'

サブスクリプションで認証する場合は、anthropic_api_key の行を次の 1 行に置き換えてください。

claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

押さえておきたいポイントは 3 つです。

  • --comment:これがあると、レビュー結果が PR に投稿されます。外すと結果はワークフローの実行ログにしか出ません。
  • claude_args の --allowedTools:インラインコメントを投稿するための指定です。消すとコメントが付かなくなるので、そのまま残してください。
  • concurrency と timeout-minutes:公式サンプルにはない、費用対策として足した設定です。不要なら削除しても動作します。

ステップ 4:動作を確認する

  1. ワークフローファイルをデフォルトブランチにマージする
  2. 適当な変更を加えたブランチを作り、PR を開く
  3. Actions タブでワークフローが走ることを確認する
  4. 完了後、PR にレビューコメントが付いていれば成功

なお、次の PR はレビューがスキップされます。コメントが付かないときは、まずここを疑ってください。

  • 下書き(Draft)やクローズ済みの PR
  • 自動生成されたものや、ごく些細な変更だと Claude が判断した PR
  • すでに Claude のコメントが付いている PR

【コピペOK】レビューを日本語にそろえる CLAUDE.md テンプレート

Claude Code は、リポジトリ直下の CLAUDE.md をプロジェクトのルールとして読み込みます。これは GitHub Actions 上のレビューでも、ローカルの VSCode やターミナルでも同じです。ここに言語とレビュー方針を書いておけば、どこで動かしても出力がそろいます。

リポジトリのルートに CLAUDE.md を作成し、以下を保存してください。

# CLAUDE.md

## 言語とトーン
- 対話、コードの解説、エラーの説明、レビューコメントはすべて日本語で書く。
- 文体は「です・ます」調。高圧的な表現も、過度にへりくだった表現も使わない。
- リファクタリング、デプロイ、コンポーネント、ミドルウェアなど、
  業界で定着している技術用語は無理に訳さずカタカナのまま使う。
- 識別子、コマンド、エラーメッセージの原文は翻訳せずそのまま示す。

## コードの品質基準
- 提案するコードは、本番環境にそのまま出せる品質を前提とする。
- コードを提案するときは、省略せず完全な形で示す。
- 変更理由は、必要な箇所にだけ日本語のコメントで残す。

## レビューの観点
次の順で確認し、問題があるものだけを指摘する。
1. バグ、および想定外の入力で壊れる箇所
2. セキュリティ上のリスク(インジェクション、認証・認可の漏れ、秘密情報の露出など)
3. パフォーマンスの劣化
4. 可読性と保守性

- 指摘には「なぜ問題か」と「どう直すか」を必ず添える。
- 影響範囲や追加すべきテストがあれば、1〜2 点に絞って伝える。
- 問題がなければ、その旨を短く伝えて終える。

## コミットメッセージ
- 日本語で、変更内容と理由が伝わるように書く。
- 先頭に `feat:` `fix:` `docs:` `refactor:` `style:` などのプレフィックスを付ける。

テンプレートを使うときのコツ

  • 短く保つ。 CLAUDE.md は実行のたびに読み込まれます。長くなるほどトークンを消費するので、本当に守ってほしいルールだけを書きましょう。
  • プロジェクト固有の情報を足す。 使用している言語・フレームワーク、命名規則、テストの実行方法などを追記すると、レビューの的確さが上がります。
  • 最初の PR で確認する。 レビューコメントが日本語で付くかどうかを実際の PR で確かめ、足りなければルールを調整してください。

費用を抑えるための設定

  • claude_args に --max-turns を追加して、1 回の実行でのやり取りの回数に上限を設ける
  • timeout-minutes でジョブの実行時間に上限を設ける(上のワークフローでは設定済み)
  • concurrency で、同じ PR への重複実行を止める(同じく設定済み)
  • claude_args に --model を追加して、使うモデルを指定する
  • CLAUDE.md を簡潔に保つ

セキュリティ上の注意

  • フォークからの PR ではレビューが動きません。 パブリックリポジトリでは、フォークからの PR で起動したワークフローに GitHub が Secrets を渡さないためです。レビューが走るのは、同じリポジトリ内のブランチから作った PR です。
  • 権限は最小限に。 上のワークフローはリポジトリの内容を読み取り専用にしています。必要のない書き込み権限は足さないでください。
  • レビューは補助です。 Claude の指摘は見落としも誤りもあり得ます。最終的なマージ判断は人が行いましょう。

詳しくは公式のセキュリティドキュメントを参照してください。

うまく動かないときのチェックリスト

  • Claude GitHub App が対象リポジトリにインストールされているか
  • リポジトリの設定で GitHub Actions が有効になっているか
  • Secrets の名前が、ワークフロー内の参照と一致しているか
  • API キーやトークンが有効か(ローカルの claude で先に試すと切り分けやすい)
  • PR が下書きになっていないか、フォークからの PR ではないか

ワークフローを書かずに済ませたい場合

ここまでの方法は、プロンプトやモデル、トリガーを自分で管理したい人向けです。ワークフローファイルの保守そのものを避けたい場合は、すべての PR を自動でレビューする公式機能「Code Review」という選択肢もあります。

まとめ

  • 公式の anthropics/claude-code-action@v1 を使えば、ワークフローファイル 1 つで PR の自動レビューが始められる
  • サーバー代はかからないが、Claude の利用分(API 料金またはサブスクリプションの利用枠)は発生する
  • CLAUDE.md に言語とレビュー方針を書いておくと、GitHub 上でもローカルでも出力がそろう

まずは小さな PR で試して、コメントの内容を見ながら CLAUDE.md を育てていくのがおすすめです。

参考リンク

Views: 0