GitHubのIssueからAIが自動的にコード化!Claude Code GitHub Actions の使い方

記事タイトルとURLをコピーする

みなさんこんにちは。マネージドサービス課の塩野です。

「Issue を書いたらそのまま PR が来てた」——そんな開発体験が、すでに現実のものになっています。今日はそんな話題を記事にしてみました。

GitHub の Issue を AI が自動コード化!Claude Code GitHub Actions の使い方

はじめに

Claude Code GitHub Actions は、GitHub のワークフローに AI による自動化を組み込む仕組みです。PR やイシューのコメントで @claude とメンションするだけで、Claude がコードを分析し、実装し、プルリクエストを作成してくれます。開発者がゼロからコードを書き起こす前に、AI が実装の叩き台を用意してくれるイメージです。

この記事では、Claude Code GitHub Actions の概要と使うメリット、そして実際にセットアップして動かすまでの手順を紹介します。GitHub Actions の基本的な使い方を知っている方であれば、比較的スムーズに試せる内容ですので、ぜひ最後まで読んでみてください。


1. Claude Code GitHub Actions とは

1-1. 機能の概要

Claude Code GitHub Actions は、Anthropic が提供する GitHub Action です。リポジトリの Issue や PR のコメントに @claude と書くだけで、Claude が自動的にその内容を読み取り、コードの実装・修正・PR 作成までを行ってくれます。

内部的には Claude Agent SDK の上に構築されており、単純なコード生成にとどまらず、リポジトリの構造やコーディング規約を理解したうえで動作するのが特徴です。プロジェクトのルートに CLAUDE.md というファイルを置いておくと、コーディング標準やレビュー基準を Claude に伝えられます。チームのルールを守りながら自動化できるのは、実務での導入を考えたときに安心感があります。

なお、デフォルトでは Claude Sonnet が使われますが、--model claude-opus-4-6 のように引数を渡すことで Opus 4.6 への切り替えも可能です。

1-2. できること、そして使うメリット

具体的にできることを整理すると、次のような操作を GitHub 上から自然言語で指示できます。

  • @claude イシューの内容をもとにこの機能を実装してください
  • @claude ユーザーダッシュボードコンポーネントの TypeError を修正してください
  • @claude このエンドポイントにユーザー認証を実装するにはどうすればよいですか?

Issue を起票して @claude をメンションすると、Claude がその内容を解釈して実装し、PR を自動で作成してくれます。コメントに書くだけで対話的にコードを修正することも可能で、PR レビューのやり取りを Claude と行うような使い方もできます。

このような仕組みを活用することで、開発者にとってのメリットは主に 3 つあります。

まず、実装の出発点を用意する時間を省ける点です。新しい機能を実装するとき、最初の雛形を書くのに意外と時間がかかるものです。Issue の内容を元に Claude が叩き台を作ってくれれば、開発者はレビューと修正に集中できます。

次に、チームの開発フロー標準化に役立つ点です。CLAUDE.md に規約を記述しておけば、Claude は毎回それを参照して実装します。コードスタイルの揺れを自動的に抑えられるのは、チームでの利用を考えたときに大きな利点です。

そして、セットアップが軽い点も見逃せません。後述しますが、コマンド 1 つで初期設定が完了します。複雑なインフラを用意しなくても始められるので、個人開発や小規模なチームにも向いています。


2. セットアップ手順

2-1. 前提条件

セットアップを始める前に、以下を用意してください。

  • GitHub リポジトリ(管理者権限があること)
  • Anthropic API キー(console.anthropic.com で取得)
  • Claude Code がローカルにインストールされていること

Claude Code のインストールは、OS に合わせて以下のコマンドを実行します。

macOS / Linux / WSL の場合はターミナルで次を実行します。

curl -fsSL https://claude.ai/install.sh | bash

Windows(PowerShell)の場合はこちらです。

irm https://claude.ai/install.ps1 | iex

Homebrew を使っている方は brew install --cask claude-code でもインストールできます。なお、ネイティブインストール(curl/PowerShell)が公式推奨で、自動アップデートにも対応しています。

2-2. クイックセットアップ(推奨)

一番手軽な方法は、ターミナルで Claude Code を開いて /install-github-app コマンドを実行することです。

/install-github-app

このコマンドを実行すると、GitHub App のインストールとシークレットの設定を対話形式でガイドしてくれます。リポジトリ管理者であれば、数分で完了するはずです。ただし、この方法は Anthropic API を直接利用しているユーザー向けで、AWS Bedrock や Google Vertex AI 経由の場合は手動セットアップが必要です。

2-3. 手動セットアップ

クイックセットアップが使えない場合や、設定の中身を把握しておきたい場合は、以下の 3 ステップで進めます。

① GitHub App をリポジトリにインストール

https://github.com/apps/claude からインストールします。このアプリには Contents・Issues・Pull requests に対する読み取り・書き込みの権限が必要です。

② API キーをシークレットに登録

リポジトリの Settings → Secrets and variables → Actions から、ANTHROPIC_API_KEY という名前でシークレットを追加します。API キーをコードに直接書かず、必ず Secrets を経由するのが鉄則です。

ここで登録する認証情報には、利用プランに応じて 2 種類の選択肢があります。

① Anthropic API キー(従量課金) console.anthropic.com で発行するキーを ANTHROPIC_API_KEY という名前で登録します。トークン使用量に応じた従量課金となるため、後述の --max-turns を使ったコスト管理と合わせて確認しておくとよいでしょう。

② OAuth トークン(Pro・Max プラン) Claude Pro・Max プランを契約している場合は、ローカルで claude setup-token コマンドを実行して OAuth トークンを発行し、CLAUDE_CODE_OAUTH_TOKEN という名前でシークレットに登録することで、プランの範囲内で GitHub Actions を利用できます。前述のクイックセットアップ(/install-github-app)を Max プランでログインした状態で実行すると、このトークンを使ったワークフローが自動生成されます。

ただし、OAuth トークンには有効期限があり、期限切れ後は手動での再発行が必要です。安定した継続運用を重視する場合は、API キー方式の方が管理しやすい面もあります。

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

.github/workflows/claude.yml を作成します。最小構成はこのようになります。

name: Claude Code
on:
  issue_comment:
    types: [created]
  issues:
    types: [opened, assigned]
jobs:
  claude:
    runs-on: ubuntu-latest
    steps:
      - uses: anthropics/claude-code-action@v1
        with:
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

on.issuesopened を追加することで、Issue を起票した瞬間に Claude が自動で動き始めます。Issue の本文に @claude が含まれていれば、そのまま実装に取り掛かってもらえます。

2-4. 動作確認

セットアップ後、Issue またはコメントに @claude をメンションして動作を確認します。例えば Issue に次のように書いてみましょう。

@claude ログイン画面に「パスワードを忘れた場合」のリンクを追加してください

しばらくすると GitHub Actions が起動し、Claude が処理を開始します。Actions のログから進捗を確認でき、完了すると PR が自動作成されます。

2-5. 実際の挙動

実際にセットアップした後に、コード作成を依頼してみました。内容は下記画像の通りです。

しばらく待っていると、Issueが更新され下記のような完了報告がClaude Code GitHub Actionsによって作成されました。

1点注意点があるとすると、コミット・プッシュの時点では別ブランチでプッシュされますので、Create PR ➔ のリンクからプルリクを作成し、マージしないと実際のコードベースには反映されません。つまり、プルリクの時点できっちり確認してマージさえすれば mainブランチのコードは問題ないのですが、ここをサボってそのままマージしてしまうと、 mainブランチのコードが動かなくなるリスクがあるという点はご注意ください。

もちろん、このissueの回答に問題があるようなら、そのままissue内で追加でclaudeに修正指示をだすこともできます。

それではプルリクを起票してみましょう。リンクをクリックするとプルリクのコメントまで自動挿入されるので、そのまま起票すればOKです。

プルリクが起票された後のレビューも Claude Code GitHub Actions にお願いしちゃいましょう。

動作確認のためすごく雑に依頼していますが、この程度の指示内容でもきっちりレビューしてくれるのはさすがClaudeだからという感じでしょうか。回答内容はここでは割愛しますが、要修正(バグ・設計上の問題)だけでなく推奨改善まで提案してくれます。

もちろんコード改修もそのままプルリクの中からclaudeに修正指示を出すことができます。

何度かレビュー依頼→コード修正のサイクルを回すことでコードの品質をある程度担保することができますし、Copilotなど他のLLMエンジンにレビューをさせて、そのレビュー内容をClaudeに修正させるということもできるでしょう。ある程度の品質が担保できれば、そのままマージすることで修正内容がmainブランチなどの指定したブランチに反映されます。


4. 設定時に押さえておきたいポイント

CLAUDE.md でプロジェクトルールを伝える

リポジトリのルートに CLAUDE.md を置くと、Claude がコードを書くときに参照する指針を定義できます。コーディング規約、使用するライブラリのルール、PR 作成時のフォーマットなどを書いておくと、チームのスタイルに沿った実装が得られやすくなります。

# CLAUDE.md

## コーディング規約
- TypeScript を使用すること
- 関数にはすべて JSDoc コメントを付けること
- テストは Jest で記述すること

コスト管理:--max-turns を活用する

Claude のやり取りが長くなるほど API の利用コストが増えます。claude_args--max-turns を指定しておくと、1 回のアクションで消費するターン数を制限できます。

claude_args: "--max-turns 5"

タスクの複雑さに合わせて調整するのがよいでしょう。単純な修正なら 3〜5 ターン、大きな機能実装なら 10 前後を目安にするのが実用的です。

セキュリティの基本:API キーは必ず Secrets に

繰り返しになりますが、API キーをワークフローファイルに直接記載するのは厳禁です。${{ secrets.ANTHROPIC_API_KEY }} の形式で参照するようにしてください。また、Claude が生成した PR はそのままマージせず、必ず内容をレビューする運用にしておくと安全です。


まとめ

Claude Code GitHub Actions は、GitHub のワークフローに AI による自動化を組み込める仕組みです。

まずはクイックセットアップで試してみて、動きを確認してから CLAUDE.md を整備したり --max-turns を調整したりと、少しずつ自分のプロジェクトに合わせていくのがおすすめです。AI に実装の叩き台を任せることで、開発者がより本質的な設計・レビューに時間を使える環境が、すでに手の届くところにあります。

この機能を使う事で、一つのリポジトリに対して複数のIssueを使って並列開発したり、複数のリポジトリに対して同時に開発を回したりと、簡単に開発速度を上げることができるようになります。今回はAnthropicのPro/Maxプランのキーを使った話ですが、Bedrockなどのキーを使っても同様の仕組みを構築することは可能ですので、ご興味があればお試しください。

この記事がどなたかのお役に立てれば幸いです。

◆ 塩野 正人
◆ マネージドサービス部 所属
◆ X(Twitter):@shioccii
◆ 過去記事はこちら

前職ではオンプレミスで仮想化基盤の構築や運用に従事。現在は運用部隊でNew Relicを使ってサービス改善に奮闘中。New Relic User Group運営