メインコンテンツへスキップ
← 記事一覧に戻る

Claude Code で GitHub Issue から PR まで自動化する実装ガイド

11 min readClaude Code
#Claude Code#GitHub Actions#個人開発#自動化

「Issue を立てたら、勝手に実装されて PR が来ていてほしい」——個人開発者の多くが一度は願うことです。

Claude Code と GitHub Actions を組み合わせれば、これは本当に実現できます。Issue にラベルを付けるだけで Claude が実装を始め、PR を作成し、CI を通すまで自動で進めてくれます。

この記事では、GitHub Issue → 実装 → PR までの完全自動化フローを、実際の YAML 設定付きで解説します。

結論:GitHub Actions + claude-code-action で Issue 駆動開発を実現

結論から書きます。実現の核は次の3要素です。

  1. GitHub Actions ワークフロー:Issue にラベルが付いたら起動
  2. claude-code-action:Issue 内容を Claude に渡して実装させる
  3. PR 自動作成:Claude が完了したら PR を自動で立てる

設定ファイル1つで、Issue から PR までの全フローが自動化できます。

全体フロー

実装するフローは次のとおりです。

ユーザー: Issue 作成
  ↓
ユーザー: ラベル "claude-implement" を付与
  ↓
GitHub Actions: ワークフロー起動
  ↓
Claude Code: Issue 本文を読む
  ↓
Claude Code: ブランチ作成 → 実装 → コミット
  ↓
GitHub Actions: PR 作成
  ↓
人間: PR レビュー → マージ

人間がやることは「Issue 作成」と「PR レビュー」の2つだけです。実装と PR 作成は完全自動化されます。

ステップ1:GitHub Secrets の設定

GitHub Actions から Claude Code を呼び出すために、認証情報を Secrets に登録します。

Settings → Secrets and variables → Actions → New repository secret

設定する Secret は次のとおりです。

Secret 名内容
ANTHROPIC_API_KEYAnthropic API キー
GITHUB_TOKENデフォルトで利用可(明示登録不要)

API キーは https://console.anthropic.com から取得します。Max プランの認証情報とは別なので注意してください。

ステップ2:ワークフローファイルの作成

.github/workflows/claude-implement.yml を作成します。

name: Claude Implement Issue

on:
  issues:
    types: [labeled]

jobs:
  implement:
    if: github.event.label.name == 'claude-implement'
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
      issues: write

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

      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: '22'

      - name: Install Claude Code
        run: npm install -g @anthropic-ai/claude-code

      - name: Create branch
        run: |
          BRANCH="claude/issue-${{ github.event.issue.number }}"
          git checkout -b $BRANCH
          echo "BRANCH=$BRANCH" >> $GITHUB_ENV

      - name: Run Claude Code
        env:
          ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
        run: |
          PROMPT=$(cat <<EOF
          以下の GitHub Issue を実装してください。
          
          # Issue タイトル
          ${{ github.event.issue.title }}
          
          # Issue 本文
          ${{ github.event.issue.body }}
          
          手順:
          1. プロジェクト構造を確認
          2. 必要なファイルを実装または編集
          3. 既存テストが通ることを確認
          4. 新規テストを追加(必要な場合)
          5. git add && git commit
          EOF
          )
          claude --print "$PROMPT"

      - name: Push branch
        run: git push origin $BRANCH

      - name: Create Pull Request
        env:
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: |
          gh pr create \
            --title "Claude: ${{ github.event.issue.title }}" \
            --body "Closes #${{ github.event.issue.number }}\n\nClaude Code が自動実装した PR です。レビューしてください。" \
            --base main \
            --head $BRANCH

ステップ3:使ってみる

リポジトリで新しい Issue を作成します。例:

タイトル: ヘッダーにダークモード切り替えボタンを追加したい

本文:
src/components/Header.tsx にダークモード切り替えボタンを追加してほしいです。
- 右上に配置
- アイコンは月/太陽
- 状態は localStorage に保存
- Tailwind の dark: クラスを使う

Issue を作成したら、ラベル claude-implement を付けます。GitHub Actions が起動し、数分後には PR が作成されているはずです。

安全装置:Issue → PR 駆動の罠を防ぐ

この仕組みは強力ですが、無防備に運用すると事故ります。以下の3つの安全装置を必ず入れてください。

安全装置1:自分の Issue だけ反応するように制限

外部の人が Issue を立ててラベルを付けられる状態だと、API 代を消費される攻撃が可能です。

if: github.event.label.name == 'claude-implement' && github.event.issue.author_association == 'OWNER'

OWNER(リポジトリオーナー)または MEMBER(コラボレーター)に限定するのが安全です。

安全装置2:実装範囲を制限する Skill

GitHub Actions 環境用の SKILL.md を .claude/skills/github-action-impl/SKILL.md に置いておきます。

---
name: github-action-impl
description: TRIGGER when running inside GitHub Actions for issue-to-PR automation. Restricts changes to feature implementation, never modifies CI/CD configs or secrets.
---

GitHub Actions 環境での実装ルール:
1. .github/ ディレクトリは変更しない
2. .env や secrets 関連ファイルは編集しない
3. package.json の依存関係追加は最小限に
4. 既存テストを壊さない
5. 1 PR は 1 機能に限定

これで Claude が暴走して CI 設定を書き換える事故を防げます。

安全装置3:トークン消費上限

長時間ループを防ぐため、ワークフローにタイムアウトを設定します。

jobs:
  implement:
    timeout-minutes: 30

30分以内に終わらない場合は強制停止です。これでトークン代の無限消費を防げます。

💡

事例: Anthropic 公式(claude-code-action)の体験談

Anthropic は anthropics/claude-code-action を GitHub Marketplace で「Claude Code Action Official」として公式提供しています。 このアクションは「@claude メンション、Issue assignment、明示的な自動化プロンプト」のいずれでもトリガーでき、Anthropic API、Amazon Bedrock、Google Vertex AI、Microsoft Foundry の4つの認証方式に対応しています。 公式の Solutions Guide には、自動 PR コードレビュー、パス指定レビュー、外部コントリビューターレビュー、カスタムレビューチェックリスト、スケジュールメンテナンス、Issue トリアージ&ラベリングなど、すぐに動く完全な実装例が掲載されています。Anthropic 社内の Product Design チームも、GitHub Actions 経由で Claude が PR コメントの自動化、フォーマット問題の修正、テストケースのリファクタリングを行っていると公表しています。

出典: anthropics/claude-code-action GitHub / Claude Code GitHub Actions Docs / Solutions Guide

応用:Issue タイプ別の Skill 切り替え

ラベルを claude-implement-feature, claude-implement-bugfix, claude-implement-test のように分けて、Skill を切り替えると更に効果的です。

- name: Determine skill
  run: |
    case "${{ github.event.label.name }}" in
      claude-implement-feature) echo "SKILL=feature-impl" >> $GITHUB_ENV ;;
      claude-implement-bugfix)  echo "SKILL=bugfix-impl"  >> $GITHUB_ENV ;;
      claude-implement-test)    echo "SKILL=test-impl"    >> $GITHUB_ENV ;;
    esac

それぞれの Skill に「機能追加用ルール」「バグ修正用ルール」「テスト追加用ルール」を書いておけば、同じワークフローで複数のタスクを使い分けられます。

で、どう稼ぐ? — Issue 駆動開発が個人開発者を変える

Issue → PR 自動化の経済的価値は 「思いつきと実装の距離をゼロに近づける」 ことです。

1. 改善アイデアが「捨てられない」状態になる

「これ直したいけど後でいいや」と放置していた小さな改善が、Issue に書くだけで自動実装されます。プロダクトの細かい改善が積み重なり、ユーザー体験が継続的に向上します。

2. 並列作業時間の大幅な拡張

GitHub Actions は無料枠が月2,000分あります。これを使えば、本業中に Issue を書いておき、夜にはすべて PR が来ている状態が作れます。

3. クライアント案件への適用

クライアントが Issue を書き、Claude が PR を作り、人間がレビューして承認、というフローは 受託開発の納期短縮の決定打 になります。「Issue を書くだけで進む開発」を売り物にできます。

まとめ

GitHub Issue → PR 自動化の重要ポイントは次のとおり。

  • GitHub Actions + claude-code-action + ラベルトリガー の3点セットで実現
  • OWNER 限定 + Skill による制限 + タイムアウト の3つの安全装置は必須
  • Issue タイプ別の Skill 切り替え で更に効果を最大化

最初に試すなら、自分の個人プロジェクトで小さな Issue(タイポ修正、ボタン追加など)から始めるのが良いです。1週間運用すれば、思いつきから実装までの距離が劇的に縮まる感覚が得られるはずです。

次のエピソード Ep.09 は 有料記事 です。サブエージェント並列実行の本番運用パターンを5つ全公開します。

次に読む

Claude Code で作る「売れる SaaS」開発フロー — Skill × MCP の統合設計 (¥800)

Issue → PR の自動化ができたら、次はその自動化を「売れる SaaS」に直結させる開発フローです。LP 公開から課金開始まで 7 日で到達する具体パイプラインを有料記事で全公開しています。

← 記事一覧に戻る