はじめに
みなさんこんにちは。株式会社インプルの岩崎です。
本日はGitHubのissueに連動して自動で実行するClaudeの仕組みについて紹介です!
Claudeとは
Claudeとは、アメリカのAnthropic(アンソロピック)社が提供しているLLMの一つです。
今回は、そのclaudeを使用してコーディングができるclaude codeをclaude API経由で呼び出し、GitHubのissueを実行させてみる、という内容です。
claude codeやclaude APIについては過去にも紹介していますので、ぜひご覧ください。
準備
実行していく前に、まずは準備を進めていきましょう。
GitHubのリポジトリーを準備
今回はテスト用に簡単な実行環境を作成してみました。
この中には、自動で実行するように .github/workflows に格納した claude.yml と、src/ 配下にTypeScriptで作られた簡単なファイル、CLAUDE.md と README.md が含まれています。

claude.yml では、claudeが自動で実行できるよう、下記のような設定を組み込んでいます。
オープンしているissueのラベルが claude の時に、Claude APIを使ってClaude codeを呼び出し、issueのタスクを実行してPR手前まで実行しよう、という内容になっています。今回のコードでは、PRの自動化までは実施していませんが、その辺りも調整すれば対応可能かと思います。
name: Claude Code Agent
on:
issues:
types: [opened, labeled]
issue_comment:
types: [created]
jobs:
claude:
if: |
(github.event_name == 'issues' && contains(github.event.issue.labels.*.name, 'claude')) ||
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude'))
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run Claude Code
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
Claude APIを設定
続いて、Claude codeを呼び出せるように、ClaudeAPIをセットします。
リポジトリーの Settings > Secrets and variables > Actions から設定してしまいましょう!

Repository secrets 右側の緑のボタン New repository secret をクリックすると、下記の入力項目が出てきますので、それぞれ下記の通り入力し、Add secret で登録してください。

Name : ANTHROPIC_API_KEY
Secret:sk- から始まる Claude APIキー
claudeとGitHubの連携許可
ClaudeをGitHubで連携させる際には、あらかじめ許可を出しておく必要があります。
下記リンクから対処のリポジトリーにインストールし、問題なく連携できるようにしておいてください。

Labelの作成
続いて、Claude codeが動き出すトリガーとなる Claude というラベル作成します。
issueから右上の Labels をクリックすると、下記のような画面が表示されますので、右上の New label で新規ラベルを作成しましょう。

すると、下記のような画面が表示されますので、各項目に下記の情報をそれぞれ入力してください。

Name:claude (←cは小文字にしてください!)
Description:ここは記入してもしなくても大丈夫です。私はわかりやすいように このラベルを付与するとClaudeが自動で動作します。 と記載しました。
Color:お任せです!
実行してみよう
それでは準備が完了したら、早速実行してみましょう。
タイトルとissueの説明、Labelsに claude ラベルを貼り付けます。
これでCreateをクリックすると、ActionsでClaudeが動き出したことが確認できます。


さて、issueに戻ってみると、Claudeのアイコンとともに、Claude codeが仕事を始めているのが確認できると思います。これであとは放っておくだけです。今回のタスクは簡単な内容ですので、3分ほどすると、完成したよと通知が来ました。

右上にCreate PRがあるので、それをクリックしてみましょう。すると、PR作成の画面に映ります。ここで実行結果を確認しPR作成、そこからはいつも通りの流れで、実行結果を確認することでmergeできます。

おわりに
いかがだったでしょうか?
今回は簡単なプログラムでしたので、スムーズに実行することができました。これから規模を大きくした時にどうなっていくか、実際の開発には活用できるのか、、、それは気になるところですね。
ご覧いただき、ありがとうございました。

