メインコンテンツへスキップ

GitHubにClaudeを置く(GitHub Actions)

  • レッスン 3
  • 13分

このレッスンで

終わる頃には、次ができるようになります

  • claude-code-actionの2つの動作モード(メンションに応答する形と、自動で実行される形)を説明できる
  • /install-github-appと手動セットアップの2通りで、リポジトリにGitHub Actionsを導入できる
  • secretsの2つの選択肢と、権限を絞ったworkflow設定を選べる

@claudeと書くだけで、Claudeが動き出す

あるチームのことです。GitHubでPull RequestとIssueは毎日使っている。レビューのコメントも、Issueへのラベル付けも人の手でやってきた。GitHub Actionsという言葉は聞いたことがあるけれど、設定したことは一度もない。

こういうチームがまず試すことになるのが、claude-code-actionです。Claude Codeの公式のGitHub Actionで、ワークフローファイルを1つ置くだけで、リポジトリの中にClaudeを常駐させられます。

動き方は2つあります。

Interactive

ワークフローにpromptを指定しない設定。コメントに既定のトリガーフレーズ「@claude」を書き込むと、それに応答して動く

Automation

ワークフローにpromptを指定した設定。メンションを待たず、PRやIssueのイベントをきっかけに自動で動く

claude-code-actionの2つの動き方

前者はPRのコメント欄に「@claude ここのテストが落ちてる理由を調べて」のように書きかけて使う形、後者は「PRが開かれたら自動でレビューする」のように仕込んでおく形です。個々の使い道は次のレッスンで扱うので、ここでは導入までを一通り済ませます。


導入は2通りある

窓口は2つあります。GitHub CLIが使えるならクイックセットアップの方が早く、そうでなくても手動で3ステップで終わります。どちらの窓口も、対象リポジトリに対して管理者権限を持つ人が行う前提です。GitHub Appのインストールやsecretsの登録は、リポジトリの設定そのものを変える操作なので、閲覧権限だけのメンバーでは進められません。

クイックセットアップ

クイックセットアップ

01

GitHub CLIで認証

ghをインストールし gh auth login。リポジトリの管理者権限が必要

02

/install-github-app を実行

対象リポジトリで claude を開いて実行し、案内に従う

03

Appとsecretsが自動設定される

Claude GitHub Appが入り、ANTHROPIC_API_KEY か CLAUDE_CODE_OAUTH_TOKEN がリポジトリのsecretとして保存される

04

PRを作成してマージする

Claude Codeがワークフローのブランチをpushしpull requestを用意する。作成してマージすると @claude が使えるようになる

/install-github-app が使えるのはgithub.comのリポジトリだけです。GitLabやBitbucketで管理しているなら、次の手動セットアップになります。

手動セットアップ

手動セットアップ

01

Claude GitHub Appをインストール

github.com/apps/claude。Contents・Issues・Pull requestsの読み書き権限を使う

02

secretsを登録

ANTHROPIC_API_KEY か CLAUDE_CODE_OAUTH_TOKEN をリポジトリのSecretsに追加

03

ワークフローファイルを配置

公式リポジトリのexamples/claude.ymlを.github/workflows/にコピー

どちらの窓口を通っても、最終的にリポジトリの中身は同じです。ワークフローファイルとsecretsが揃えば準備完了です。

動作を確かめたいときは、実際にPRかIssueのコメント欄で「@claude」と書き込んでみるのがいちばん早い方法です。しばらくしてClaudeからの返信やコミットが付けば、ここまでの設定は正しく効いています。


secretsに何を入れるか

認証に使えるsecretsは2種類あります。値そのものは、対象リポジトリのGitHub画面にあるSettingsタブの中のSecrets and variables(Actions)から登録します。登録する名前は、ワークフローファイルが参照する名前(ANTHROPIC_API_KEYまたはCLAUDE_CODE_OAUTH_TOKEN)と一字一句そろえてください。名前がずれていると、ワークフロー自体は動いても認証だけ失敗します。

secretsの選び方

ANTHROPIC_API_KEY
Claude ConsoleのAPIキー。従量課金。特定の個人のサブスクに紐づかないので、複数のリポジトリで共有するsecretにはこちらが向きます。
CLAUDE_CODE_OAUTH_TOKEN
Claudeのサブスクリプション(Pro・Max・Team・Enterprise)で認証するトークン。ローカルで claude setup-token を実行して発行します。実行した人個人のサブスクに紐づきます。

どちらを選んでも、値そのものはリポジトリのSecretsに保存し、ワークフローからは${{ secrets.ANTHROPIC_API_KEY }}のように参照します。コードやCLAUDE.mdにキーの値をそのまま書き込まない理由は、APIキー、Claudeに渡してませんか?で扱った通りです。会話にキーを貼らないのと同じ理由で、リポジトリにも直接書きません。


最小のworkflow構成

公式ドキュメントに載っている構成要素を組み合わせると、@claudeのメンションに応答する最小のworkflowはこうなります。permissionsのブロックと、アクションの呼び出し方は公式ドキュメントの記載をそのまま使っています。

name: Claude Code
on:
  issue_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
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

anthropics/claude-code-action@v1のように、バージョンを固定して参照します。ワークフローファイルはコードと同じ扱いです。git管理下に置き、変更はレビューを経てからマージします。

onに指定したissue_commentは、Issueのコメントだけでなく、Pull Requestのコメントにも反応します。GitHubの仕様上、PRのコメントもissue_commentイベントとして扱われるためです。ifの行で本文に「@claude」が含まれるかを確認しているので、それ以外のコメントではジョブ自体は起動しても、Claudeは何もしません。


権限は必要な分だけ

VoicesDOCUMENTATION

“Grant the workflow only the permissions it needs, and review Claude's changes before merging.”

筆者訳

ワークフローには必要な権限だけを与え、Claudeの変更はマージする前にレビューすること。

Claude Code公式ドキュメントGitHub Actionscode.claude.com/docscode.claude.com/docs/en/github-actions

id-token: writeは、既定のGitHub App認証に必要な権限で、APIキーそのものを扱っているわけではありません。actions: readは、PRのCI結果をClaudeに読ませるための権限です。使わない権限までは足さないのが基本です。

呼び出す側にも既定の歯止めがあります。IssueやPRのコメントでは、リポジトリへの書き込み権限を持つ人のコメントだけが起動条件になり、ボットのコメントは既定で拒否されます。

補足

動かないときに、まず確認する3点

コメントを書いても反応がないときは、次を順に確認してください。

  • コメント本文に既定のトリガーフレーズ「@claude」が入っているか
  • 書き込み権限を持つ人のコメントか(閲覧権限だけのメンバーやボットのコメントは、上で触れた通り既定で除外されます)
  • secretsの名前と、ワークフローファイルが参照している名前が一致しているか

ここまで確認しても直らないときは、GitHubのActionsタブで該当のワークフロー実行がそもそも始まっているかを見ると、どこで止まっているかの手がかりになります。


かかる費用は2種類

GitHub Actionsでの実行には、2種類の費用が同時にかかります。

GitHub Actionsの実行時間

GitHub-hostedランナーが動く分の、GitHub Actionsの実行時間(分)

APIトークンの利用料

プロンプトの長さやタスクの複雑さに応じたトークン利用料。CLAUDE_CODE_OAUTH_TOKENで認証している場合はAPI課金でなく、サブスクリプションの利用枠を消費する

かかる費用の内訳

具体的な金額の目安や、モデル・effortの既定をチームでどう決めるかは、次のレッスンで扱います。


今日のまとめ

3行で振り返ります。

  • claude-code-actionは、@claudeのメンションに応答するInteractiveと、prompt指定で自動実行するAutomationの2通りで動く
  • 導入は/install-github-appのクイックセットアップか、App+secrets+ワークフロー配置の手動セットアップ
  • キーは会話やコードに直接書かず、secretsに置いて権限も必要最小限に絞る

次のレッスンでは、このworkflowを土台に、PRレビューとIssue整理を自動化していきます。PRレビューとIssue整理を任せるを見ていきましょう。

セルフチェック

1. claude-code-actionのワークフローにpromptを指定しない場合、どう動きますか。

2. 複数のリポジトリで同じsecretを共有したい場合、どちらのシークレットが向いていますか。

3. workflowの権限(permissions)の考え方として、公式ドキュメントが勧めているのはどれですか。

SourceDOCUMENTATION
Claude Code 公式: GitHub Actions

導入手順・secrets・権限・ワークフロー例・費用の一次情報。2026年9月時点の内容。

Webcode.claude.com/docs
code.claude.com/docs/en/github-actions
SourceARTICLE
claude-code-action(GitHubリポジトリ)

examples/ フォルダに公式のワークフロー例がまとまっている。

Webgithub.com
github.com/anthropics/claude-code-action

このレッスンは役に立ちましたか?