Open2

Github Actionsを用いたコードレビューへのLLM活用比較

mmatthew_43mmatthew_43

Deep Researchによる調査レポート

GitHub ActionsでLLMを用いたPull Request自動レビュー手法の比較

概要

GitHub Actionsを活用し、GitHub CopilotやAnthropic Claudeなどの大規模言語モデル(LLM)を用いてプルリクエスト(PR)の自動レビューを行う手法を比較します。

それぞれの方式における設定方法、システムプロンプトの記述方法、レビューの粒度、対応言語、コスト、セキュリティ対策、実運用の注意点などを網羅的に整理しました。


比較表

観点 GitHub Copilot(自動コードレビュー) Anthropic Claude(Claude Code Action)
システムプロンプト設定 直接設定不可。Enterpriseプランで「コーディングガイドライン」設定可。 prompt で任意指定可能。CLAUDE.md に自然言語でガイドライン記述も可。
事前設定 Copilot契約(Pro以上)。PRレビュー設定の有効化。Secrets等は不要。 APIキー取得、GitHub Secrets (ANTHROPIC_API_KEY) 登録。Claude GitHub Appの導入。
対応言語・ファイル種別 C/C++、Go、Java、JS/TS、Python、Markdownなど主要言語対応。 全テキスト言語に対応。Claude 2では100kトークンの文脈長処理が可能。
レビュー粒度 行単位インラインコメント+PR全体レビュー。 PR全体への1コメント出力(まとめ形式)。
コスト・課金 月額(例:$10)。月ごとのレビュー回数制限あり。 API従量課金(1回数円~数十円)。GitHub Actions実行分も必要。
精度・実用性 コーディングスタイルや簡易バグ検出に有効。 プロンプト次第でセキュリティや性能チェックも可能。自動修正対応もあり。
セキュリティ対策 GitHub内部で完結。破壊的変更不可。 外部API通信あり。allowed_tools や GitHub App権限制御で誤動作対策可能。

1. GitHub CopilotによるPR自動レビュー

特徴

  • GitHubのUIからPRレビューを有効にすると、PR作成時にCopilotが自動レビューコメントを生成。
  • GitHubの「コードレビュー」機能に統合されており、別途YAMLなどの設定は不要。

システムプロンプトの設定方法

  • エンタープライズプランでは、自然言語でコーディングガイドラインを設定可能。
  • 例:「すべてのJSファイルでは2スペースインデント」「エラー処理を忘れずに実装」など。

事前設定

  • 利用プラン:Copilot for Business または Enterprise。
  • リポジトリ設定画面 → Rulesets で「Pull Request Review」にCopilotを追加。

対応言語

  • GitHubがサポートする主要言語すべて。
  • MarkdownやYAMLもレビュー対象となる。

レビュー粒度

  • PR内の変更行に対するインラインコメント
  • さらにPR全体に対する要約コメント。

コスト

  • 月額固定(例:$10〜)。
  • 「高度な機能(プレミアムリクエスト)」として月間上限あり(PRレビュー1件 = 1リクエスト)。

セキュリティ

  • GitHub内で完結。APIキー等不要。
  • PRにレビューコメントを残すのみで、コード修正や自動Push等は行わない。

2. Anthropic ClaudeによるPR自動レビュー

特徴

  • AnthropicのClaude APIを使い、GitHub Actions上でLLMにPRレビューを依頼。
  • コメントや修正提案を含めたレビューをPRに投稿可能。
  • GitHub Appを経由することで、Fork PRにも安全に対応。

システムプロンプトの設定方法

- uses: anthropics/claude-code-action@beta
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    prompt: "Please review this PR for code quality, bug risks, and security issues."
mmatthew_43mmatthew_43

また、CLAUDE.md をプロジェクトルートにおくことで、プロジェクト独自のコーディングルールやレビュー観点を自然言語で記述できます。Claudeはその内容をレビュー時に参照し、指摘内容を調整します。

例:CLAUDE.md

# プロジェクトのレビューガイドライン

- すべてのJavaScriptコードはセミコロンを付けてください。
- console.logの使用は禁止です。
- 入力値は必ずバリデーションしてください。
- セキュリティリスク(XSS、SQLインジェクションなど)に注意してください。