この記事について
この記事は、「PRレビュー、順番待ちやめました — AI時代の"交通整理"を自動化した話」の続編です。
前回の記事では、Claude Code を使った ローカル環境でのコードレビュー 手法を紹介しました。自作の review-pr コマンドを活用し、手動で Claude にレビューを依頼する方法を解説しています。
本記事では、前回記事の「今後の展望: GitHub Actions による完全自動化」セクションの続きとして、実際に GitHub Actions で Claude Code を活用する方法を詳しく解説します。PR レビューの自動化だけでなく、Issue での質問やコード調査など、様々な用途に対応できます。
目次
前回記事からの発展
前回の記事で言及していた「今後の展望」について、GitHub Actions による自動化自体は従来から 別料金で API キーを発行すれば実現可能 でした。
しかし、2025年7月のアップデートにより、よりコスパの良い方法が登場しました。
- 個人 Subscription でのトークン共有が可能に(別途 API 課金不要)
-
簡単なセットアップコマンド(
/install-github-app)の提供 -
PR レビュー以外の用途にも対応(Issue での
@claudeコメント等)
これにより、追加コストを抑えながら Claude Code を活用できるようになりました。
今後の展望(実現編): GitHub Actions による完全自動化
個人 Subscription とトークンの共有
2025年7月のアップデート以降、Claude Code Action with OAuth を使用することで、個人の Claude subscription とトークンを共有できるようになりました。
従来の方法 vs 新しい方法
| 方法 | コスト | セットアップ |
|---|---|---|
| 従来: API キー方式 | 別途 API 課金が必要 | API キーの発行・管理 |
| 新しい: OAuth 方式 | 個人 Subscription のみ |
/install-github-app で完了 |
対応する用途
以下のワークフローを追加することで、様々な用途で Claude を活用できます。
-
.github/workflows/claude-code-review.yml- PR の自動レビュー -
.github/workflows/claude.yml- Issue や PR での@claudeコメントによる各種タスク実行- コードの説明・質問
- バグ調査の支援
- ドキュメント生成
- リファクタリング提案
- など
セットアップ手順
1. GitHub App のインストール
Claude Code CLI から以下のコマンドを実行します。
/install-github-app
このコマンドにより、必要な GitHub App の認証とセットアップが自動的に行われます。
2. ワークフローファイルの作成
.github/workflows/claude-code-review.yml
PR オープン時の自動レビュー用ワークフロー
name: Claude Code Review
on:
pull_request:
types: [opened] # ⚠️ 重要: opened のみに限定
# 特定のディレクトリの変更のみ監視(オプション)
paths:
- "frontend/src/**"
jobs:
claude-review:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code Review
id: claude-review
uses: anthropics/claude-code-action@v1
with:
# 個人の Claude subscription の OAuth トークンを使用
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
prompt: |
REPO: ${{ github.repository }}
PR NUMBER: ${{ github.event.pull_request.number }}
`.claude/commands/review-pr.md`の指示に従ってこのPRをレビューしてください。
重要な点:
- フロントエンド: `frontend/CLAUDE.md` を参照
- バックエンド: `api/CLAUDE.md` を参照
- インラインコメントはGitHub APIを使用して投稿
- レビューサマリーは `gh pr review` で投稿
- 良い実装への賞賛コメントは不要(改善提案と確認事項のみ)
# 許可するツールを制限(セキュリティのため)
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(gh pr review:*),Bash(gh api:*),Bash(cat *)"'
ポイント:
-
claude_code_oauth_tokenを使用(anthropic_api_keyではない) - カスタムプロンプトで
.claude/commands/review-pr.mdを参照 -
pathsフィルターで特定のディレクトリの変更のみ監視(オプション) -
claude_argsでセキュリティのため実行可能なツールを制限
.github/workflows/claude.yml
PR レビューだけでなく、Issue での質問やコード調査など多用途に対応します。
@\claude コメント経由での各種タスク実行用ワークフロー
name: Claude Code
on:
issue_comment:
types: [created]
pull_request_review_comment:
types: [created]
issues:
types: [opened, assigned]
pull_request_review:
types: [submitted]
jobs:
claude:
# @claude を含むコメントや Issue のみ実行
if: |
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
(github.event_name == 'issues' && (contains(github.event.issue.body, '@claude') || contains(github.event.issue.title, '@claude')))
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
issues: read
id-token: write
actions: read # CI結果を読むために必要
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@v1
with:
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
# Claude が PR の CI 結果を読めるようにする(オプション)
additional_permissions: |
actions: read
# カスタムプロンプト(オプション)
prompt: |
REPO: ${{ github.repository }}
コメントの指示に従ってタスクを実行してください。
PRレビューを依頼された場合は、`.claude/commands/review-pr.md`の指示に従ってレビューしてください。
- フロントエンド: `frontend/CLAUDE.md` を参照
- バックエンド: `api/CLAUDE.md` を参照
- インラインコメントはGitHub APIを使用して投稿
- レビューサマリーは `gh pr review` で投稿
- 良い実装への賞賛コメントは不要(改善提案と確認事項のみ)
その他のタスクの場合は、CLAUDE.mdのガイドラインに従ってください。
# 許可するツールを制限(セキュリティのため)
claude_args: '--allowed-tools "Bash(gh issue view:*),Bash(gh search:*),Bash(gh issue list:*),Bash(gh pr comment:*),Bash(gh pr diff:*),Bash(gh pr view:*),Bash(gh pr list:*),Bash(gh pr review:*),Bash(gh api:*),Bash(cat *)"'
ポイント:
- 複数のトリガーイベントに対応(Issue コメント、PR レビューコメント、Issue 作成など)
-
@claudeを含むコメントや Issue で自動実行 -
actions: readpermission で CI 結果を読める - カスタムプロンプトで PR レビューとその他のタスクを両方カバー
使用例
PR でのレビュー依頼:
@claude このPRをレビューしてください
Issue での質問:
@claude このエラーの原因を調査してください
コードの説明:
@claude src/services/user.ts の実装を説明してください
リファクタリング提案:
@claude この関数をもっと読みやすくリファクタリングする方法を提案してください
3. Secrets の設定
/install-github-app コマンドを実行すると、OAuth トークンが自動的に設定されます。
手動で設定する場合は、GitHub リポジトリの Settings > Secrets and variables > Actions から、以下の Secret を追加します:
-
CLAUDE_CODE_OAUTH_TOKEN: Claude Code の OAuth トークン(個人の subscription から取得)
注意: 従来の API キー方式(ANTHROPIC_API_KEY)とは異なり、OAuth トークンを使用します。
⚠️ 重要: PR トリガータイミングの最適化
問題点
以下のように複数のトリガーを設定すると、subsequent pushes(追加のプッシュ)のたびにレビューが走り、あっという間に session トークンが枯渇します。
# ❌ 非推奨: トークンがすぐに切れる
on:
pull_request:
types: [opened, synchronize, reopened]
推奨運用方法
-
PR オープン時の自動レビュー(1回のみ)
-
types: [opened]のみに限定 - PR が作成された時点で一度だけ自動レビューが実行される
-
-
追加レビューは手動でトリガー
- PR のコメント欄で
@claude このPRをレビューしてくださいとコメント - 必要な時だけレビューを実行できるため、トークン消費を最小限に抑えられる
- PR のコメント欄で
まとめ
前回の記事「PRレビュー、順番待ちやめました — AI時代の"交通整理"を自動化した話」で紹介した ローカル環境でのレビュー手法 に加え、本記事で紹介した GitHub Actions による自動化 を組み合わせることで、ハイブリッド運用が可能になります。

