🛠️

Claude Code GitHub ActionsでAIレビューを試してみた話

に公開

なぜAIレビューを導入したのか

最近、チームのコードレビューがちょっと大変になってきました😅

うちのチームは 2 approve体制(2人の承認が必要)なんですが、こんな課題が:

  • レビュワーの減少(人員の変動)
  • 一人当たりのレビュー時間が増加、機能開発に割く時間が減少
  • 細かいところを見落としがち

「AIにお手伝いしてもらえないかな?」ということで、AIレビューの導入を検討してみました。

どのツールを選んだか

主要なAIレビューツールを調査しました:

  • Coderabbit: AIコードレビューツールの先駆け。PR自動レビュー、複数言語対応
  • GitHub Copilot: GitHub公式のAI機能。コード生成は強力だが、レビュー機能は限定的
  • Claude Code GitHub Actions: Anthropic社のClaude APIを活用したGitHub Actions統合

最終的にClaude Code GitHub Actionsを選択した理由:

  • 既存の活用実績 - クライアント側の開発で既にClaude Code (MAX)を利用中
  • API統合の柔軟性 - GitHub Actionsでカスタマイズ可能
  • 言語理解力 - 日本語でのレビューコメントの品質
  • 統一された開発体験 - 開発とレビューで同じAIモデルを利用

実際に導入してみた

まずは基本設定から

.github/workflows/claude.yml を作って、とりあえず動くようにしました:
Claude公式のサンプルを参考にしました)

name: Claude PR Review
on:
  pull_request:
    types: [opened, synchronize]
  issue_comment:
    types: [created]

jobs:
  claude-code-action:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write  # PRへのコメント投稿に必要
      issues: read
      id-token: write
    
    steps:
      - name: Run Claude PR Action
        uses: anthropics/claude-code-action@beta
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

APIキーについて

実はClaude.aiのMAXプランでも利用できるらしいんですが、うちのチームでは以下の理由でAPI キーを使うことにしました:

  • チーム全体での利用を想定 - 個人アカウントに依存しない
  • 使用量の管理がしやすい - APIダッシュボードで詳細な利用状況を確認できる
  • 費用の透明性 - プロジェクトごとのコストが明確

ANTHROPIC_API_KEYAnthropic Console から取得して、GitHubリポジトリの Settings → Secrets and variables → Actions に登録します。

案の定、最初はうまくいかなかった

🐛 トークン設定し忘れ

ワークフローは動くけどコメントが投稿されない...
github_token: ${{ secrets.GITHUB_TOKEN }} を追加し忘れてました

🐛 権限が足りない(403エラー)

今度は403エラーが出る...
permissionspull-requests: write にする必要がありました(最初 read にしてた)

問題解決後、ついに動いた!

上記の権限問題を解決した後、再度レビューを依頼してみたら...

ついにClaudeからのレビューコメントが投稿されました!🎉

正直、初めてAIからのレビューコメントがPRに表示されたときは、ちょっと感動しました。

1週間使ってみた結果

数字で見る実績

  • 導入期間: 1週間
  • レビュー件数: 83件
  • API使用料: $25.63
  • Token使用量: 31,369,289 tokens
  • 平均コスト: PR当たり $0.31
  • 平均Token: PR当たり 378,064 tokens

使用量グラフ

AIレビューの質はどうだった?

正直、思っていたより良かったです!こんな指摘をしてくれました:

実際に役立った指摘

💡 より良いコードの書き方を提案
改善案の提案
「こう書いた方が効率的ですよ」って具体的に教えてくれる

🔍 見落としがちな条件分岐をキャッチ
条件分岐の指摘
「この場合はどうなります?」的な鋭い指摘

😅 コメントとコードが合ってない問題を発見
不整合の検出
人間だと意外と見落としがちなやつ

でも気になる点もいくつか...

  • たまに英語でコメントしてくる(下記のプロンプトで改善)
  • 優先度がよくわからない(「直したほうがいいかも」レベルなのか「絶対直して」なのか)
  • 1行の修正でもトークンをがっつり使う(コスト的にちょっと心配)

プロンプトをちょっと改良

最初の運用時、みなさん各自@claudeの後、プロンプトを追加して、レビューしてもらいました。
1週間使ってみて、大体下記のようにプロンプトは固めたので、claude.ymlに下記の感じでプロンプトを改善しました:

    direct_prompt: |
        - 指摘事項を、nits、should、imo、mustの粒度で分類して指摘する
        - 日本語でコメントする
        - 対応が必要な項目はチェックボックスで記載
        - 問題なければLGTMを記載

コストはどのくらい?

お金の話

  • 月間予想: 約$102.52(4週間換算)
  • 年間予想: 約$1,332.76

エンジニアの時間コストを考えれば全然アリな金額です 💰

これからやりたいこと

  • トークン使用量を減らす工夫(小さいPRは簡易モードとか)
  • Android プロジェクトにも横展開
  • チーム全体でのレビュー基準統一

まとめ:AIレビュー、けっこういいじゃん

1週間使ってみた感想:

レビュワーが2人必須から1人に - AIがもう1人分の役割を担ってくれる
細かいところを見つけてくれる - 人間が疲れてるときに見落とすやつ
コスパがいい - エンジニアの時間の方が高い
勉強になる - 「こういう書き方もあるのか」的な発見がある

もちろん人間のレビューは必要ですが、AIがサポートしてくれると開発がスムーズになりました。

次はAndroidプロジェクトにも導入予定です!同じような課題で困ってる人がいたら、試してみる価値はあると思います 🚀

Kurashiru Tech Blog

Discussion