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_KEY
は Anthropic Console から取得して、GitHubリポジトリの Settings → Secrets and variables → Actions に登録します。
案の定、最初はうまくいかなかった
🐛 トークン設定し忘れ
ワークフローは動くけどコメントが投稿されない...
→ github_token: ${{ secrets.GITHUB_TOKEN }}
を追加し忘れてました
🐛 権限が足りない(403エラー)
今度は403エラーが出る...
→ permissions
で pull-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プロジェクトにも導入予定です!同じような課題で困ってる人がいたら、試してみる価値はあると思います 🚀
Discussion