Claude Code × GitHub Actionsで開発パイプラインを構築する【workflow.yml設定例付き】

スポンサーリンク
未来的な開発者ワークスペースにGitHub ActionsパイプラインとClaude AIが統合されたビジュアライゼーション CI/CD

PR作成のたびに自動でコードレビュー・テスト生成・結果コメント投稿。Claude CodeをGitHub Actionsに組み込むworkflow.ymlの設定例付きで構築手順を解説します。コストを抑えながら実務に使えるパイプラインを一歩一歩作っていきましょう。

スポンサーリンク
  1. Claude Code × CI/CDの全体像
    1. Claude Codeをワークフローに組み込む意義
    2. claude-code-actionとは何か
    3. どんなことが自動化できるか(PRレビュー・テスト生成・コメント投稿)
  2. GitHub Actionsワークフローの基本設計
    1. 必要なもの(GitHub App・APIキー・リポジトリ設定)
    2. セットアップの3ステップ(/install-github-appまたは手動)
    3. 最初のworkflow.ymlを書く
  3. workflow.ymlの設定例(PRレビュー自動化)
    1. PRオープン時にレビューコメントを投稿する
    2. @claudeメンションで対話的に指示する
    3. イベントフィルタリングで無駄なトリガーを減らす
  4. テスト生成の自動化パイプライン
    1. PRに対してテストを自動生成させる
    2. テスト結果をコメントで報告させる
    3. ドキュメント・PR概要の自動生成
  5. セキュリティとAPIキーの管理
    1. GitHub Secretsへの保存方法
    2. 最小権限の原則(Contents・Issues・Pull Requests)
    3. show_full_outputとシークレットリークのリスク
    4. Gitleaks / GitHub Secret Scanningの活用
  6. コスト最適化とレート制限への対応
    1. トリガーイベントの絞り込み(opened のみ、paths-ignore)
    2. –max-turnsとモデル選択でコストをコントロール
    3. Batch API・Prompt Cachingの活用(最大90%削減)
    4. コンカレンシー制御でレート制限を回避する
  7. まとめ:Claude Code × GitHub Actionsで開発体験を変えよう
  8. あわせて読みたいおすすめ書籍
  9. 引用・出典

Claude Code × CI/CDの全体像

GitHubのPR作成からClaude Code AIレビュー、コメント投稿までの自動化フローチャート
Claude Code × GitHub Actionsの自動レビューフロー

Claude Codeをワークフローに組み込む意義

開発チームの日常にはコードレビュー、テスト作成、ドキュメント更新など、繰り返し発生する作業が山積みです。これらを手作業で行うと、どうしても品質にムラが生まれたり、レビューの時間が後回しになったりしがちです。

Claude CodeをGitHub Actionsに組み込むことで、PRが作成された瞬間にAIがコードを解析してレビューコメントを投稿し、テストを生成し、PR概要を自動で記述してくれます。開発者はフィードバックを待つ時間を大幅に削減でき、本質的な開発作業に集中できるようになります。出典: code.claude.com

claude-code-actionとは何か

claude-code-actionは、AnthropicがGitHub Marketplace向けに公開している公式のGitHub Actionsです。GitHub上のPRやIssueのイベントをトリガーとして、Claude Codeを呼び出し、コードレビューや実装補助、テスト生成などを行います。

リポジトリに.github/workflows/以下にYAMLファイルを1つ追加するだけで動き始め、@claudeとメンションするだけで対話的な指示も出せます。出典: github.com

どんなことが自動化できるか(PRレビュー・テスト生成・コメント投稿)

claude-code-actionで自動化できる主な作業は以下の通りです。

  • PRのコードレビューと改善提案
  • テストケースの自動生成
  • PR概要・コミットメッセージの自動記述
  • Issueのトリアージとラベル付け
  • セキュリティスキャンと脆弱性報告
  • 依存関係の更新チェック
  • ドキュメントの自動更新

すべてGitHub上のイベント(PR作成、コメント、Issue登録など)をトリガーにして動くため、チームのワークフローを壊すことなく導入できます。出典: claudelab.net

GitHub Actionsワークフローの基本設計

必要なもの(GitHub App・APIキー・リポジトリ設定)

セットアップに必要なものは3点です。

  1. Claude GitHub App: AnthropicのGitHub Appをリポジトリにインストールする
  2. ANTHROPIC_API_KEY: AnthropicコンソールでAPIキーを発行し、GitHubリポジトリのSecretsに登録する
  3. workflow YAML: .github/workflows/以下にActionの設定ファイルを配置する

なお、Actionが必要とするGitHub Permissionsは最小限です。Contents・Issues・Pull Requestsの読み書き権限のみで動作します。出典: code.claude.com

セットアップの3ステップ(/install-github-appまたは手動)

最も簡単なセットアップ方法は、ターミナルでClaude Codeを開き、/install-github-appコマンドを実行することです。このコマンドが、GitHub Appのインストールからシークレットの設定、workflow YAMLの配置まで一括で行ってくれます。

手動でセットアップする場合は以下の手順です。

  1. Claude GitHub Appをリポジトリにインストールする
  2. ANTHROPIC_API_KEYをGitHub Repository Secretsに追加する
  3. 以下のworkflow YAMLを.github/workflows/claude.ymlとして配置する

最初のworkflow.ymlを書く

基本的なworkflow.ymlは以下のようになります。

name: Claude Code Review

on:
  pull_request:
    types: [opened, synchronize]
  issue_comment:
    types: [created]

jobs:
  claude-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
      pull-requests: write
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}

これだけでPR作成時に自動レビューが走り、コメントが投稿されるようになります。出典: morphllm.com

workflow.ymlの設定例(PRレビュー自動化)

PRオープン時にレビューコメントを投稿する

PRが新たに作成された(opened)タイミングだけでレビューを走らせる設定例です。synchronize(コミット追加時)を除くことで、APIコールを半分以下に抑えられます。

on:
  pull_request:
    types: [opened]  # openedのみ(synchronizeを除外)

jobs:
  claude-review:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      pull-requests: write
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_args: "--max-turns 3"
          prompt: |
            このPRのコードをレビューしてください。
            以下の観点でチェックしてください:
            1. バグや潜在的なエラー
            2. コーディング規約の遵守
            3. テストの不足
            4. セキュリティ上の問題
            日本語でコメントしてください。

@claudeメンションで対話的に指示する

PRやIssueのコメントで@claudeとメンションすると、Claudeが呼び出されて対話的に作業を行います。たとえば:

  • @claude このファイルのテストを書いてください
  • @claude このバグを修正してPRを出してください
  • @claude このIssueを解決する実装方針を提案してください

対話的メンションを受け付けるには、issue_commentイベントもトリガーに含める必要があります。出典: systemprompt.io

イベントフィルタリングで無駄なトリガーを減らす

pathspaths-ignoreを使って、AIレビューが不要なファイルへの変更ではワークフローをスキップできます。

on:
  pull_request:
    types: [opened]
    paths-ignore:
      - '**.md'          # ドキュメント変更はスキップ
      - '.github/**'     # CI設定変更はスキップ
      - 'package-lock.json'  # 依存ロックファイルはスキップ

ドキュメント更新やCI設定の変更、依存関係のバンプなどはClaude Codeの解析が不要なケースがほとんどです。このフィルタリングだけで月間のAPI使用量を大幅に削減できます。

テスト生成の自動化パイプライン

PRに対してテストを自動生成させる

テスト生成を専用のワークフローとして切り出す例です。Claudeにテストファイルを生成させ、そのままPRにコミットする構成です。

name: Auto Test Generation

on:
  pull_request:
    types: [opened]
    paths:
      - 'src/**/*.py'   # Pythonファイルが変更されたときのみ

jobs:
  generate-tests:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - uses: actions/checkout@v4
        with:
          ref: ${{ github.head_ref }}
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_args: "--max-turns 5"
          prompt: |
            このPRで変更されたPythonファイルに対して、
            pytestのテストケースを生成してください。
            テストファイルはtests/ディレクトリに配置し、
            変更をコミットしてください。

このアプローチにより、テストカバレッジを自動的に向上させながらレビュー工数を削減できます。出典: claudelab.net

テスト結果をコメントで報告させる

テスト実行後の結果をClaudeが解析してPRコメントに要約させることもできます。テスト失敗の原因分析と修正提案をセットで出力させると、開発者の負担をさらに軽減できます。

      - name: Run tests
        run: pytest tests/ --json-report --json-report-file=test-results.json
        continue-on-error: true

      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          github_token: ${{ secrets.GITHUB_TOKEN }}
          prompt: |
            test-results.jsonを読み込んで、テスト結果を日本語でまとめてください。
            失敗したテストがある場合は原因分析と修正提案も含めてください。

ドキュメント・PR概要の自動生成

PRの変更内容を分析して、PR概要(Description)を自動で記述させることも可能です。「何を変更したか」「なぜ変更したか」「どうテストしたか」の3点を含むテンプレートに沿って生成させると、レビュアーが素早く変更を把握できるようになります。

セキュリティとAPIキーの管理

クラウド環境でAPIキーとシークレットをシールドが守るセキュリティのイメージ図
GitHub SecretsによるAPIキー保護のイメージ

GitHub Secretsへの保存方法

APIキーは必ずGitHub Secretsに保存し、ワークフローファイル内に直接記述しないことが鉄則です。設定方法は以下の通りです。

  1. GitHubリポジトリの「Settings」→「Secrets and variables」→「Actions」を開く
  2. 「New repository secret」をクリック
  3. Name: ANTHROPIC_API_KEY、Value: 発行したAPIキーを入力して保存
  4. ワークフローから ${{ secrets.ANTHROPIC_API_KEY }} として参照する

APIキーの誤ったコミットは最も多いセキュリティ事故の一つです。出典: support.claude.com

最小権限の原則(Contents・Issues・Pull Requests)

ワークフローのpermissionsブロックには、必要最小限の権限のみを付与してください。claude-code-actionが必要とするのは以下の3つだけです。

permissions:
  contents: read          # コードの読み取り
  issues: write           # Issueへのコメント投稿
  pull-requests: write    # PRへのコメント投稿・変更

テストをコミットさせる場合のみcontents: writeに変更が必要ですが、それ以外ではreadで十分です。出典: github.com

show_full_outputとシークレットリークのリスク

show_full_outputオプションはデフォルトで無効になっています。これを有効にすると、Claudeのすべての出力(ツール実行結果・APIレスポンス)がGitHub Actionsのログに記録されます。パブリックリポジトリでは、このログが公開されるためシークレット情報が漏洩するリスクがあります。

特に理由がない限りshow_full_outputは有効にしないことを強くおすすめします。

Gitleaks / GitHub Secret Scanningの活用

誤ってAPIキーをコミットしてしまうリスクを減らすため、以下のツールを導入しましょう。

  • Gitleaks: リポジトリ内のシークレットをスキャンするSASTツール。CI/CDに組み込んでプッシュ前に検出できます。
  • GitHub Secret Scanning: GitHubが自動でパブリックリポジトリをスキャンし、露出したAPIキーを検出する機能。AnthropicはGitHubのシークレットスキャンパートナーとして登録されており、露出が検出されると即座にキーが無効化されます。

出典: github.com

コスト最適化とレート制限への対応

トリガーイベントの絞り込み(opened のみ、paths-ignore)

コスト最適化の最も効果的な手段は、不要なトリガーを減らすことです。

  • types: [opened]のみに限定することで、追加コミットのたびに走るsynchronizeイベントを除外できます。
  • paths-ignoreでドキュメント・CI設定・依存ロックファイルを対象外にすることで、不要なAPI呼び出しを防げます。

シンプルなPRレビュー1回あたりのAPI使用量は5,000〜15,000トークン程度です。月50PRのチームで総APIコストは$5以下に収まることが多いです。出典: dev.to

–max-turnsとモデル選択でコストをコントロール

claude_args--max-turnsを指定することで、1回のワークフロー実行でのClaude Codeのターン数(反復回数)を制限できます。

        with:
          claude_args: "--max-turns 3"  # 最大3ターンで打ち切り

また、タスクの複雑さに応じてモデルを選択することも重要です。フォーマットチェックや軽微なレビューには安価・高速なモデル、アーキテクチャレビューには高性能モデルと使い分けることで、コストを10〜60倍の範囲でコントロールできます。出典: dev.to

Batch API・Prompt Cachingの活用(最大90%削減)

Anthropic APIには、コストをさらに削減できる2つの機能があります。

  • Batch API: 緊急性の低いタスク(夜間のバッチ処理など)に使用。通常料金の50%で実行できます。
  • Prompt Caching: 繰り返し送るコンテキスト(CLAUDE.mdの内容やシステムプロンプトなど)をキャッシュする機能。キャッシュヒット時は最大90%のコスト削減が可能です。

特にPrompt Cachingは、毎回同じCLAUDE.mdやプロジェクト規約を送るCI/CDワークフローと相性が良く、導入効果が高いです。

コンカレンシー制御でレート制限を回避する

複数のPRが同時にオープンされると、Anthropic APIのレート制限に引っかかることがあります。GitHub ActionsのConcurrencyグループを使うと、同じワークフローが同時に複数起動しないよう制御できます。

concurrency:
  group: claude-review-${{ github.ref }}
  cancel-in-progress: false  # 実行中のジョブはキャンセルしない

より大規模なチームでは、AWS BedrockやGoogle Vertex AI経由でClaude APIをルーティングし、クラウドプロバイダーのレート制限・予算アラートと組み合わせる方法もあります。OIDC認証が使えるためAPIキーの静的管理も不要になります。出典: systemprompt.io

まとめ:Claude Code × GitHub Actionsで開発体験を変えよう

Claude CodeをGitHub Actionsに組み込むことで、コードレビュー・テスト生成・ドキュメント更新といった繰り返しタスクをAIに任せられるようになります。

この記事のポイントをまとめます。

  • anthropics/claude-code-actionを使えば、workflow.yml数十行で導入できます
  • APIキーはGitHub Secretsに保存し、ワークフローに直書きしないこと
  • トリガーをopenedのみに絞り、paths-ignoreを活用してコストを最小化する
  • --max-turnsとモデル選択でコストとパフォーマンスのバランスを調整する
  • Prompt Cachingで繰り返しコンテキストのコストを最大90%削減できる

まずは小さく始めて、PRレビューの自動化から導入してみてください。チームの開発体験が確実に変わります。

あわせて読みたいおすすめ書籍

引用・出典

とつ

某SIer企業勤務。
生成AI(ChatGPT、Claude、Gemini)に強い関心を抱き、業務に積極的に活用している。本アカウントでは、最新技術の実践例と活用法を発信する。
また、仕事以外では家事育児やヘルスケアにおいても、生成AIの可能性を模索し、日常生活での利活用に努める。

老け顔から「とっつあん」とあだ名で呼ばれ、それが「とつ」といつしか略されるようになったのがハンドルネームの由来。
「リベラルアーツ大学」をきっかけに、稼ぐ力を養いたいという思いからBlogサイトの運営を開始し、Blogの成長とともにAWSのスキルアップにも注力している。
家族は妻と8歳長男、4歳次男。

とつをフォローする
CI/CDClaude CodeGitHub Actions自動化
スポンサーリンク
シェアする
とつをフォローする

コメント

タイトルとURLをコピーしました