【Claude Code 連載 第36回】Claude Code GitHub Actions(github-actions)

スポンサーリンク
【Claude Code 連載 第36回】Claude Code GitHub Actions(github-actions) 用語解説
【Claude Code 連載 第36回】Claude Code GitHub Actions(github-actions)
この記事は約11分で読めます。
よっしー
よっしー

こんにちは。よっしーです(^^)

スポンサーリンク

背景

この連載では、Claude Codeの公式ドキュメントを1ページずつ読み解いていきます。公式ドキュメントは情報が網羅されている分、「結局どの機能を、どんな場面で使えばいいのか」は自分で考える必要があり、読むのに意外と時間がかかります。そこで、私が実務で使うために読み込んだ内容を「使う場面→実例コード」の順に整理して残していくことにしました。専門家の解説というより、一次情報を読んだ記録です。推測や動作を確認していない部分には、その都度そう書きます。

一言でいうと何か

Claude Code を GitHub のワークフローに組み込む公式アクションです。PR や Issue で @claude とメンションすると、Claude がコードを分析し、機能を実装し、バグを修正し、プルリクエストを作成します(いずれもプロジェクトの CLAUDE.md や既存パターンに従います)。中核は anthropics/claude-code-action(v1)で、Claude Agent SDK の上に構築されており、@claude への応答だけでなく、スケジュールや任意の GitHub イベントで動くカスタム自動化も組めます。コードは GitHub のランナー上に留まるため、既定で安全に扱えます。

どういう場面で役立つか

Issue や PR のコメントから、実装・修正・PR 作成を対話的に任せたいとき。「この Issue の説明どおり機能を実装して」「このエンドポイントの認証はどう実装すべき?」のように @claude に頼めば、コンテキストを分析して応答します。

無人の cron 駆動で定期作業を回したいとき。schedule トリガーで日次レポート生成などを走らせられ、/loop や Desktop タスクと違ってマシンもセッションも要りません(第35回の住み分けの「CI で動かす」側です)。

チーム独自のレビューやチェックを全 PR に自動で走らせたいとき。プラグインやスキルを prompt から呼び出し、pull_request イベント(オープンや更新)で毎回実行できます。イシューを1コマンドで動くコードに変えたり、変更一式を含む完全な PR を作らせたりする使い方も想定されています。

不要・向かないケース:単に「すべての PR に自動でレビューを投稿する」だけが目的なら、専用の GitHub Code Review のほうが向きます。また GitHub ホストランナーの Actions 分と、各インタラクションの API トークンの両方でコストが発生するため、無制限に走らせる用途には注意が要ります。Amazon Bedrock や Google Cloud の Agent Platform で動かす場合は、クイックセットアップは使えずエンタープライズ向けの手動設定(OIDC/Workload Identity など)が必要です。

セットアップとワークフローの実例

前提とクイックセットアップ

GitHub App のインストールとシークレット追加にはリポジトリ管理者権限が必要で、App は Contents・Issues・Pull requests の読み書き権限を要求します。Claude API を直接使う場合、最速はターミナルで次を実行する方法です。

/install-github-app

これは Claude GitHub App をリポジトリにインストールし、GitHub Actions ワークフローと API キーシークレットの追加を対話的に案内します(v2.1.187 以降は Skip for now で App のインストールだけ先に済ませ、後で再実行してワークフロー/シークレットに戻れます)。失敗した場合や手動でやる場合は、App を github.com/apps/claude から入れ、ANTHROPIC_API_KEY をリポジトリシークレットに追加し、examples/claude.yml.github/workflows/ にコピーします。手順としては、App のインストール、シークレット追加、ワークフローファイルの配置、の3つを満たせばよく、インストーラーと API キーがあれば数分で始められます。なお、このクイックセットアップは Claude API 直接ユーザー向けで、Bedrock/GCP は後述のエンタープライズ設定を使います。

基本ワークフロー(@claude 応答)

コメントの @claude に応答する最小構成は次のとおりです。

name: Claude Code
on:
  issue_comment:
    types: [created]
  pull_request_review_comment:
    types: [created]
jobs:
  claude:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          # Responds to @claude mentions in comments

アクションは設定に応じて、@claude メンションに応答する「インタラクティブモード」か、prompt 付きで即実行する「自動化モード」かを自動検出します(v1 で mode 設定が不要になったのはこのためです)。セットアップ後は、Issue や PR コメントで @claude をタグ付けして動作をテストします。

@claude implement this feature based on the issue description
@claude how should I implement user authentication for this endpoint?
@claude fix the TypeError in the user dashboard component

カスタム自動化と設定(v1)

スケジュールや任意イベントでは prompt を渡して自動実行します。次は毎日9時に前日のコミットと未解決 Issue の要約を作る例です。

name: Daily Report
on:
  schedule:
    - cron: "0 9 * * *"
jobs:
  report:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          prompt: "Generate a summary of yesterday's commits and open issues"
          claude_args: "--model opus"

v1 は設定が統一されており、指示はすべて prompt、CLI 引数は claude_args にまとめて渡します。

- uses: anthropics/claude-code-action@v1
  with:
    anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
    prompt: "Your instructions here" # Optional
    claude_args: "--max-turns 5" # Optional CLI arguments

prompt はプレーンテキストのほかスキル呼び出しも受け付けます。リポジトリの .claude/skills/ のスキルは actions/checkout の後に /skill-name を、プラグインのスキルは plugin_marketplaces/plugins でインストールして名前空間付きの /plugin-name:skill-name を渡します。次は code-review プラグインを入れ、PR がオープン/更新されるたびにそのスキルを走らせる例です。

name: Code Review
on:
  pull_request:
    types: [opened, synchronize]
jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          plugin_marketplaces: "https://github.com/anthropics/claude-code.git"
          plugins: "code-review@claude-code-plugins"
          prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

claude_args は任意の CLI 引数を通し、--max-turns(既定10)・--model--mcp-config--allowedTools--debug などがよく使われます。主なアクションパラメータには prompt(任意)・claude_argsplugin_marketplacespluginsanthropic_api_key(Claude API 直接では必須、Bedrock/GCP では不要)・github_tokentrigger_phrase(既定 @claude)・use_bedrockuse_vertex があります(全表は公式参照)。Claude の動作は、リポジトリルートの CLAUDE.md(コーディング標準・レビュー基準・プロジェクト固有ルール)と、ワークフローの prompt(そのワークフロー固有の指示)の2通りで調整でき、Claude は PR 作成や応答の際にこれらのガイドラインに従います。

ベータからの移行と Bedrock/GCP

ベータ版から v1(GA)へは破壊的変更があり、@beta@v1mode(自動検出のため削除)、direct_promptpromptmax_turns/model/custom_instructions などは claude_args へ移す、といった更新が必要です。対応の全一覧と前後の例は公式ページにあります。

Amazon Bedrock と Google Cloud の Agent Platform では、データレジデンシーと請求を自社で管理しつつ同じ機能を使えます。その代わり設定は重く、Bedrock なら GitHub OIDC Identity Provider の設定・Bedrock 権限を持つ IAM ロール・AWS_ROLE_TO_ASSUME などが、GCP なら Workload Identity Federation・Vertex AI User 権限のサービスアカウント・GCP_WORKLOAD_IDENTITY_PROVIDER/GCP_SERVICE_ACCOUNT などが必要です。3P プロバイダーでは独自の GitHub App 作成が推奨され、APP_ID/APP_PRIVATE_KEY をシークレットに入れて actions/create-github-app-token でトークンを生成し、アクション側で use_bedrock: "true"use_vertex: "true" を指定します(Bedrock のモデル ID は us.anthropic.claude-sonnet-4-6 のようにリージョンプレフィックス付き)。完全なワークフロー YAML は長いため、公式ページの該当セクションを参照してください。

セキュリティ・コスト・トラブルシューティングの要点

API キーはリポジトリに直接書かず、必ず GitHub Secrets(${{ secrets.ANTHROPIC_API_KEY }})を使い、アクションの権限は必要最小限に絞り、マージ前に Claude の提案を確認します。コストは GitHub Actions 分と API トークンの両面で発生するため、@claude コマンドを具体的にする・--max-turns を適切に設定する・ワークフローのタイムアウトや並行制御を使う、といった最適化が推奨されます。@claude に応答しないときは、App が正しく入っているか・ワークフローが有効か・API キーがシークレットにあるか・コメントが /claude でなく @claude か、を確認します。Claude のコミットで CI が走らないときは、Actions ユーザーではなく GitHub App(またはカスタム App)を使っているかを確認します。

まとめ

Claude Code GitHub Actions は、@claude メンションへの応答から、スケジュールや任意イベントでのカスタム自動化までを GitHub 上で回せる公式アクション(v1)です。導入は Claude API 直接なら /install-github-app が最速で、基本は anthropics/claude-code-action@v1anthropic_api_key を渡し、指示は prompt、CLI 引数は claude_args に集約します。スキル/プラグイン呼び出しや schedule トリガーの無人実行に対応し、Bedrock/GCP では OIDC・Workload Identity 等のエンタープライズ設定が必要です。全 PR 自動レビューだけなら GitHub Code Review、コストは Actions 分と API トークンの両面、という点を押さえておくとよいでしょう。

次回は、関連する未執筆ページ(GitHub Code Review、Channels、/goal、Agent SDK など)、あるいは長く保留している引き継ぎ課題(第5回欠番の補完・第1/2回の照合)に着手する予定です。


この記事は執筆時点の公式ドキュメントに基づいています。最新の情報は必ず公式ドキュメントをご確認ください。

よっしー
よっしー

何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。

それでは、また明日お会いしましょう(^^)

コメント

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