ローカルで便利なClaude Codeを、GitHub上のCI/CDに組み込むとさらに強力です。IssueやPRで@claudeとメンションするだけで、コードを解析し、変更を実装し、コミットまで押してくれます。この記事では、Claude CodeのGitHub Actions連携のセットアップから、実用的なワークフロー例、コスト管理までを解説します。
何ができるのか
anthropics/claude-code-actionは、リポジトリのワークフロー内でClaude Codeを動かすGitHub Actionです。
- Issueをプルリクエストに変える:Issueに
@claude implement this featureと書くだけで実装+PR作成 - コメントからバグ修正:PRコメントに
@claude fix the TypeError... - PRの自動レビュー:PRが開くたびに自動でレビューコメントを投稿
- 定期タスク:cronで毎朝コミットとIssueのサマリーを生成
セットアップ(クイックセットアップ)
一番簡単なのは、ローカルのClaude Codeから設定する方法です。事前にGitHub CLI(gh)をインストールし、gh auth loginで認証しておきます。
対象リポジトリでclaudeを起動し、次を実行します。
/install-github-app
プロンプトに従うと、Claude Codeが以下を自動で行います。
- Claude GitHubアプリをインストール
- 認証シークレットを設定(APIキーなら
ANTHROPIC_API_KEY、サブスクリプションのトークンならCLAUDE_CODE_OAUTH_TOKEN) - ワークフローファイルを含むブランチをpushし、PRを開く
このPRを作成・マージすれば、そのリポジトリで@claudeが使えるようになります。リポジトリの管理者権限が必要です。
手動セットアップの要点
/install-github-appを使わない場合は、次の3ステップです。
- Claude GitHubアプリをリポジトリにインストール(Contents・Issues・Pull requestsの読み書き権限を使用)
- 認証シークレットを追加(
ANTHROPIC_API_KEYまたはCLAUDE_CODE_OAUTH_TOKEN) - ワークフローファイルを
.github/workflows/にコピー
重要:APIキーやトークンをリポジトリに直接コミットしてはいけません。必ずGitHub Secretsに保存し、
${{ secrets.ANTHROPIC_API_KEY }}のように参照してください。
ワークフロー例:@claudeメンションに応答
IssueやPRのコメントで@claudeとメンションされたら応答する、最も基本的な構成です。
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
jobs:
claude:
if: contains(github.event.comment.body, '@claude')
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 1
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
導入後は、任意のIssueやPRコメントでこう書くだけです。
@claude implement this feature based on the issue description
@claude fix the TypeError in the user dashboard component
@claude how should I implement user authentication for this endpoint?
Claudeが同じIssue/PRにコメントで返信し、作業しながら内容を更新していきます。
インタラクティブモードと自動モード
このActionは、ワークフローの書き方で動作を自動判定します。
- インタラクティブモード:
prompt入力がない場合。@claudeメンションを待って応答する - 自動モード:
prompt入力がある場合。メンションを待たず、GitHubイベント(cronなど)で自動実行する
たとえば毎朝9時(UTC)にサマリーを生成する定期実行はこう書けます。
name: Daily Report
on:
schedule:
- cron: "0 9 * * *"
jobs:
report:
runs-on: ubuntu-latest
permissions:
contents: read
issues: read
id-token: write
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 claude-opus-4-8
--allowedTools "mcp__github__list_commits,mcp__github__list_issues"
誰が実行できるか(セキュリティ)
無制限に動くわけではありません。実行前に2つのチェックが入ります。
- 書き込み権限:IssueやPRイベントでは、トリガーしたユーザーがリポジトリへの書き込み権限を持つ必要がある
- 人間のアクター:ボットによるトリガーは既定で拒否される(ループ暴走の防止)
コスト管理
各実行は2種類のリソースを消費します。
- GitHub Actionsの分(minutes):GitHubホストランナー上で動くため、Actionsの利用時間を消費する
- APIトークン:プロンプトと応答の長さ・タスクの複雑さ・コードベースの規模に応じて消費(OAuthトークン認証ならサブスクリプション側で消費)
コストを抑えるコツ:
@claudeへの依頼を具体的に書き、往復ターンを減らす- CLAUDE.mdを簡潔に保つ(毎回読まれるため)
claude_argsに--max-turnsを設定して反復回数を制限する- ワークフローにタイムアウトを設定し、暴走を防ぐ
まとめ
Claude CodeのGitHub Actions連携は、コードレビュー・Issue対応・定期レポートといった繰り返し作業をパイプラインに載せる仕組みです。まずは/install-github-appで@claudeメンションを有効化し、小さなIssueで試すところから始めましょう。シークレットの保護と--max-turnsによるコスト制御を忘れなければ、チームの開発フローを安全に自動化できます。
GitHubを使わない、使えない場合はどうする?
ここまでGitHub Actionsとの連携について解説してきましたが、これはあくまで「使える環境なら強力な選択肢の一つ」であって、Claude Codeを使うために必須の仕組みではありません。GitHubにコードを置きたくない、あるいは置けない事情がある方も少なくないはずです。
ローカルの対話利用だけでも十分価値がある
Claude Codeの本体価値は、ターミナル上でコードベースを理解しながら対話的に作業を進められる点にあります。PRレビューの自動化やIssue対応の自動化は、あくまで「繰り返し作業を楽にする追加機能」です。手元のPCやサーバー内で完結させて、コーディング・デバッグ・リファクタリングの相棒として使うだけでも、開発効率は十分に上がります。CI/CD連携は後からいつでも追加できるので、まずはローカルでの対話利用に慣れることを優先しても問題ありません。
機密性の高いコードを扱う場合
業務委託先のソースコードや顧客データを含むプロジェクト、社内規定でクラウドサービスへのアップロードが制限されている環境では、publicはもちろんprivateリポジトリであってもGitHubへのアップロード自体を避けたいケースがあります。その場合は、gitリポジトリを外部に一切プッシュせず、ローカルのファイルシステム上だけでClaude Codeとやり取りする運用が現実的です。バージョン管理自体をローカルgitに留めておく、あるいはgitを使わずファイルのバックアップだけで運用するという選択肢もあります。
組織のポリシーで連携が制限されている場合
会社のセキュリティポリシーでGitHub Appsの導入やAPIキーの外部連携が禁止されている場合は、無理に対応しようとせず、承認されたローカル環境の範囲でClaude Codeを使うのが安全です。GitHub Actions連携は数ある使い方の一つに過ぎず、使わないことが「劣った使い方」というわけではありません。自分の環境や制約に合わせて、無理のない範囲で活用することが大切です。
Views: 5
