7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Actions でClaude Codeを動かすClaude Actionsを月額プランで動かしてみた

7
Last updated at Posted at 2026-02-03

Claude Code GitHub Actions を「月額プランだけ」で動かしてみた

はじめに

結構前に話題になっていたGitHub上で動くClaude Code、 ClaudeActions を導入しました。

GitHub Issue に @claude と書くだけで

  • 実装状態を確認してくれたり
  • 実装してくれたり
  • PR を作ってくれたり

ができるとのことで実際に試してみました。

ただし、思った以上にハマりどころが多く、

月額のサブスクだけで動くの?
やっぱり API キー(従量課金)が必要なんじゃないの?

という疑問にぶつかりました。

実際にハマったポイントと、最終的に完全に動いた構成をメモします。

結論:月額プランだけで動きます

結論から言うと、

  • Claude Code GitHub Actions は API キー不要
  • Claude Pro(月額課金)だけで動かせます

ただし、

  • OAuth トークンが必要
  • GitHub Actions workflow への渡し方がかなり分かりにくい

です。

やりたかったこと

やりたかったのは、次のような運用です。

  • GitHub Issue / PR に @claude とコメント
  • Claude が
    • リポジトリを読む
    • 実装状態を確認 or 実装
    • Issue / PR に日本語で返信
    • 必要なら PR 作成
  • API 従量課金は使わない

最初に出るエラーと勘違い

最初に出るエラーがこちらです。

Either ANTHROPIC_API_KEY or CLAUDE_CODE_OAUTH_TOKEN is required

これを見ると、無理なのかなと思ってしまいましたが、これは誤解でした。

必要なのは OAuth トークン

Claude Code GitHub Actions は、

  • ANTHROPIC_API_KEY
  • または
  • CLAUDE_CODE_OAUTH_TOKEN

どちらか を受け取る実装になっています。

重要ポイント

  • ⭕ API キーは不要
  • env: で渡すだけでは 動かない
  • Action input(with:)で明示的に渡す必要あり

ここが最大のハマりどころでした。


OAuth トークンの取得方法

Claude CLI を使って発行します。

claude setup-token

実行すると次のような表示が出ます。

Your OAuth token (valid for 1 year): sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxx

⚠️ このトークンは 一度しか表示されません
必ずコピーして安全な場所に保存してください。


GitHub Secrets に登録する

GitHub リポジトリの設定画面で、

Settings → Secrets and variables → Actions

から Secret を追加します。

Name Value
CLAUDE_CODE_OAUTH_TOKEN CLI で取得した OAuth トークン

GitHub Actions workflow の正解例

ここが一番重要です。
以下の構成で 完全に動作 しました。

name: Claude Code

on:
  issue_comment:
    types: [created]

permissions:
  id-token: write
  contents: write
  pull-requests: write
  issues: write

jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - uses: anthropics/claude-code-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}

ポイント

  • actions/checkout は必須
    .git が無いとブランチ操作で失敗します
  • OAuth トークンは env ではなく with で渡す
  • ここを間違えると永遠にエラーが出ます

実際に動かしてみた

Issue に次のように書くだけです。

@claude テスト。返信して

結果:

  • GitHub Actions が起動
  • Claude がリポジトリを解析
  • Issue に 日本語で詳細な返信
  • 実装済み機能やコード位置まで指摘

「本当に動いた」感が一気に出ます。


実運用で使える指示例

Issue 本文を整理させる

@claude
Issue本文を背景・目的・受け入れ条件の形に整理してください。

実装して PR を作らせる

@claude
この Issue の受け入れ条件を満たすように実装して PR を作ってください。

PR をレビューさせる

@claude
この PR をレビューして懸念点と改善案を出してください。

Claude の挙動をカスタマイズする

⚠️ 重要:prompt: パラメータの落とし穴

Claude Actions v1.0 では、prompt: パラメータの有無でモードが切り替わります

パラメータ モード 動作
prompt: なし Interactive Mode @claude メンションで起動し、コメントに自動返信
prompt: あり Automation Mode ワークフローイベントで自動起動、コメント返信なし

よくある間違い

@claude で呼び出す Interactive Mode の workflow に prompt: を追加すると、コメントが返信されなくなります

# ❌ 間違った例:Interactive Mode で prompt: を使うとコメントが返信されない
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          prompt: "日本語で簡潔に回答すること"  # ← これを追加するとモードが切り替わる

これは prompt:Automation Mode への切り替えトリガーだからです。

Interactive Mode でカスタマイズする正しい方法

@claude コメントで使う場合、prompt: は使わずに以下の方法でカスタマイズします。

方法1:CLAUDE.md ファイル(推奨)

リポジトリのルートに CLAUDE.md を作成すると、Claude が自動で読み込みます。

## コーディング規約

- Python コードは PEP 8 に従う
- 関数には必ず docstring を書く
- セキュリティ脆弱性をチェックする

方法2:claude_args で追加指示

claude_args: '--append-system-prompt "指示内容"' を使います。

# ⭕ 正しい例:Interactive Mode のまま動作をカスタマイズ
jobs:
  claude:
    if: contains(github.event.comment.body, '@claude')
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          claude_args: '--append-system-prompt "日本語で簡潔に回答すること。結論を最初に述べ、詳細は折りたたむ。"'

これなら Interactive Mode のまま、Claude の挙動をカスタマイズできます。

Automation Mode を使う場合

自動実行したい場合(PR オープン時の自動レビューなど)は、別の workflow ファイルを作成します。

# .github/workflows/claude-auto-review.yml
name: Claude Auto Review

on:
  pull_request:
    types: [opened]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          prompt: "/review"  # Automation Mode で自動レビュー

Interactive Mode 用Automation Mode 用で workflow を分けることで、両方の機能を使い分けられます

モデルを指定する

Claude Code Actions では、使用するモデルを明示的に選択できます。

claude_args:--model オプションを渡します。

      - uses: anthropics/claude-code-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
          claude_args: "--model claude-opus-4-6"

指定可能なモデル例

モデル名 特徴
claude-opus-4-6 最新の高性能モデル
claude-sonnet-4-5 バランス型(デフォルト)
claude-haiku-4 高速・軽量

プロンプトとモデル指定を組み合わせることで、
日本語対応 × 高精度な自動開発環境を構築できます。


なぜこの記事を書いたか

情報自体は少しずつ出ていますが、

  • API キー前提の説明が多い
  • OAuth の話が散在している
  • env: で渡すと失敗する仕様が分かりにくい

という理由で、かなりハマりました。

同じところで時間を溶かす人が減ればと思い、
Qiita 用にまとめました。


おわりに

Claude Pro(月額課金)だけで GitHub Actions を回すことは可能です。

ただし、

  • OAuth トークンは CLI で取得
  • Action input(with)で渡す

この2点を外すと動きません。

うまくハマると、
Issue 駆動 × AI 開発が一気に現実的になります。

質問や補足があれば、Qiita のコメントでどうぞ。

参考サイト

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?