📣

Claude Code Action v1で日本語で自動でインラインレビューする(v1.0.8)

に公開

はじめに

コードレビューの自動化のためにclaude code actionをベータ版から使用していました。
8月頃にclaude code actionのv1.0がリリースされて以降、beta版からの変更点が多く知っておくべきことが増え、コードレビューの用途ではバグがあったのかレビューできない状況で仕方なくbeta版のまま使い続けてきました。
v1.0.8でうまく動くことが確認できたのでサンプルとともに共有します。

個人的なおすすめ

かなり頻繁にリリースされていて、変更が多いのでリリースのページを眺めています。
https://github.com/anthropics/claude-code-action/releases

v1.0.8で自動レビューするGitHub Actions用のコード

公式リポジトリの以下サンプルをベースにPrompt部分とclaudeのMaxプランで定額利用できるようにAPIキーではなくOAuthトークンに変更したものを使用しています。

公式サンプル:
https://github.com/anthropics/claude-code-action/blob/v1/examples/pr-review-comprehensive.yml

プロンプト部分はBeta版の際にNoteのこちらの記事で共有されていたものをほぼそのまま使わせてもらっています。
https://note.com/reality_eng/n/n873a4cab65ee

name: PR Review with Progress Tracking

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

jobs:
  review-with-tracking:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
      id-token: write
    steps:
      - name: Checkout repository
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
        with:
          fetch-depth: 1

      - name: PR Review with Progress Tracking
        uses: anthropics/claude-code-action@7ed3b616d54fd445625b77b219342949146bae9e # v1.0.8
        with:
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          track_progress: true

          prompt: |
            REPO: ${{ github.repository }}
            PR NUMBER: ${{ github.event.pull_request.number }}

            このプルリクエスト(PR)をレビューし、GitHub のレビュー機能を使ってフィードバックをしてください。作業は次の手順に沿って進めてください:
            1.  **レビューを開始する:** `mcp__github__create_pending_pull_request_review` を使って、保留中のレビューを開始します。
            2.  **変更内容を確認する:** `mcp__github__get_pull_request_diff` を使って、コードの変更点や行番号を把握します。
            3.  **インラインコメントを追加する:** 改善点や懸念事項があるコードの行には `mcp__github__add_pull_request_review_comment_to_pending_review` を使ってコメントを追加してください。修正方針が明確な場合には積極的にsuggestionを利用してください。
            4.  **レビューを提出する:** `mcp__github__submit_pending_pull_request_review` を使って、イベントタイプを「COMMENT」に設定してレビューを提出してください。まとめコメントは空文字列("")で構いません(※「REQUEST_CHANGES」は使わないでください)。

            **コメントの書き方に関する重要事項**

            * **インラインコメントの構成:**
                * **結論を先に:** 各インラインコメントの冒頭で、指摘内容の要点を一行で簡潔に述べてください。
                * **理由と提案:** 結論の後に、そのように判断した理由や背景、具体的な修正案を詳しく説明してください。
                * **指摘中心に:** インラインコメントは、修正提案、バグの可能性、可読性の問題など、具体的な改善点に焦点を当ててください。

            * **ポジティブなフィードバックについて:**
                * **インラインコメントでは禁止:** インラインコメントでは肯定的なコメントは一切残さないでください。改善点や懸念事項の指摘のみに徹してください。
                * **自動更新コメントのみ使用:** レビュー自体にまとめコメントは不要です。Claude Code Actionが自動的に更新する同一コメント内で全ての情報を提供するため、個別のまとめコメントは記載しないでください。

            * **レビューの観点について:**
            - 保守性や可読性は十分か
            - 設計やアーキテクチャに妥当性があるか
            - コード品質とベストプラクティスの遵守
            - 潜在的なバグや問題
            - セキュリティ上の懸念点

            **重要な再確認事項:**
            このPRレビューを実施する際は、上記のすべての指示に従ってください。特に以下の点を必ず守ってください:
            1. インラインコメントは改善点・懸念事項・バグの可能性の指摘のみに限定する(肯定的コメントは一切禁止)
            2. レビュー提出時のまとめコメントは空文字列("")とし、個別のレビュー完了コメントは投稿しない
            3. スティッキーコメントが自動更新されるため、それ以外の総括的なコメントは不要
            4. 各インラインコメントでは結論を先に述べ、その後に理由と具体的な修正案を提示する
            
            すべてのフィードバックは日本語で、建設的かつ実用的な内容にしてください。

          claude_args: |
            --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*)"

PRの作成/更新時に投稿されるレビューコメントは以下のようになります。

まとめのコメント

インラインレビュー

beta版との違い

大きく2点実感しています。

  1. インラインレビューを指示した場合でもGitHub MCP使用がうまくできていなかったためbeta版では一つの大きなコメントが投稿されるだったのが、インラインレビューも上手く扱えるようになったため視認性がよくなりました。
  2. track_progress: trueを指定することでPR上でのコメント等をコンテキストに含めるようになりPRの更新に合わせて新しいレビューが投稿されるようになります。beta版ではPRの更新後にも同じようなレビューが投稿されたりしていたのがある程度改善されています。
  • 地味にResolvedにしてPR上で見えなくしやすい点も使いやすいです。

beta版からの更新の参考になれば幸いです。

Discussion