Claude Code GitHub Actionsを使えば、Issue登録だけで誰でもプルリクを作れるようになる
株式会社JX通信社 / 小笠原みつき
CTO・VPoE / CTO / 従業員規模: 11名〜50名
| 利用プラン | 利用機能 | ツールの利用規模 | ツールの利用開始時期 | 事業形態 |
|---|---|---|---|---|
Vertex AI経由(従量課金) | Claude Code GitHub Actions | 10名以下 | 2025年5月 | B to B B to C |
| 利用プラン | Vertex AI経由(従量課金) |
|---|---|
| 利用機能 | Claude Code GitHub Actions |
| ツールの利用規模 | 10名以下 |
| ツールの利用開始時期 | 2025年5月 |
| 事業形態 | B to B B to C |
アーキテクチャ
%20(3).png?disposition=inline)
アーキテクチャの意図・工夫
1. Issueテンプレートに @claude 実装して と入れておく
Claude Code GitHub Actionsは、 @claude というメンションをトリガーに動作します。これを開発者が意識せずとも利用できるよう、Issueテンプレートにあらかじめ @claude 実装して と入れておくようにしました。
これにより、利用者は「テンプレートを埋めてIssueを起票するだけ」という体験のまま、Claude Codeによる自動実装の恩恵を受けることができます。
2. Self-Hosted Runnerによるコストとリソースの最適化
Claude Codeによる実装プロセスは、CPU負荷は低いものの、APIのレスポンス待ち(I/O Wait)により実行時間が長くなる傾向があります。そのため、従量課金(分単位)のGitHub Hosted Runnerではコスト効率が悪化します。 そこで、余っていた社内のKubernetesクラスター上にActions Runner Controller (ARC) を導入しました。低スペックなマシンでも十分稼働するため、GitHubの料金を気にせず安価にClaude Code GitHub Actionsを稼働させる環境を構築しています。
3. AIフレンドリーなREADMEの拡充
AIの回答精度を高めるため、ルート直下のREADMEだけでなく、各モジュールごとに詳細なREADMEやexampleコードを整備しました。 結果として、Claude Codeの実装精度向上だけではなく、DevinやCodexなど、他のAIツールを利用する開発者の開発効率も向上しています。
4. AIによる自動レビュー
Terraformの運用において、terraform plan の長大なログから「意図しない破壊的変更」を見抜くのは負荷が高い作業です。
そこで、AIがplan結果の差分を自動で解析し、Pull Requestの意図と一致しているか、誤ったリソース削除がないか等を確認することで、意図しないインフラ変更(事故)を防ぐようにしています。
レビュー結果の例)
### 🤖 Gemini による Terraform Plan レビュー
🟢安全
Terraform Planをレビューしました。このプランは安全に適用可能です。
### ✅ チェックリスト
1. **in-place updateがあるか**
* ありません。
2. **削除されてしまうものがあるか**
* ありません。 (`0 to destroy`)
3. **更新があるか**
* ありません。 (`0 to change`)
4. **ユーザー招待を伴うか**
* ありません。
5. **PR Diffにない差分があるか**
* ありません。PRで追加された `module "***"` に基づくリソース作成のみです。
6. **意図した作成だけの場合**
* はい。`google_project` と `google_tags_tag_binding` の2つのリソースが新規に作成されるのみで、PRの意図と一致しています。
### 📝 コメント
PRの意図通り、新しいGoogle Cloudプロジェクト `***` を作成する内容となっています。
破壊的な変更は含まれていないため、安全に `apply` できます 👍
※コード生成の実装自体にはClaude Codeを使っていますが、このterraform planのレビュー部分に関しては、Gemini APIを直接呼び出しています。単にテキストを解析して判定するだけのタスクなので、Claude Code GitHub Actionsで実現するよりも、シンプルにAPIを叩く方が挙動が読みやすく、実装も容易だったためです。Plan結果のテキストが長大になることを見越して、ロングコンテキストに定評のあるGeminiを採用しました。
導入の背景・解決したかった問題
導入背景
ツール導入前の課題
JX通信社ではプロジェクトごとのクラウド権限付与、GitHub組織のリポジトリ/チーム管理など、様々な権限管理をインフラのコード(IaC)で行う方針をとっています。元々はすべて情シス(=CTO一人)の手作業で各種権限付与設定を行っていましたが、2024年11月頃、それまで手作業や個別スクリプトで行っていたこれらの権限設定を一元管理・自動化するため、Terraformを用いたリポジトリを整備しました。
権限管理のIaC化の狙いは、権限管理申請のセルフサービス化です。情シスがすべての依頼を受けて作業するのではなく、
- 権限が必要な開発者自身がTerraformコードを(Pull Requestとして)起案
- 情シスはレビュー・承認するだけ
というワークフローを目指しました。しかしTerraformコードを書いてPull Requestで申請する運用は、社内に展開するのには課題がありました。
- 作業の手間 → 権限変更のたびに、TerraformのHCLコードを編集・記述するのは、どうしても手間がかかります。この仕組みを用意したCTOですら、「早く手作業で終わらせたいのにな...」という感じるほどでした。
- 学習コスト → すべてのエンジニアがTerraformに慣れ親しんでいるわけではないので、「HCLコードを直接編集してPull Requestを投げてね」という社内ポリシーはかなりハードルが高いです。
今までは(Terraform化以前は)Slack で依頼内容を入力して提出するだけで申請できていたのに、IaC化によって逆にハードルが上がってしまう、という問題がありました。
どのような状態を目指していたか
Claude Codeを使って、権限申請を「フォーム入力」レベルまで簡易化することを目指しました。
- エンジニア(申請者) → GitHubのIssueテンプレート(=入力フォーム)に必要な項目(例:ユーザー名、付与したい権限)を埋めるだけ。HCLの学習コストや手間はゼロ。
- 裏側(Claude Code GitHub Actions) → フォームの入力内容を基に、Terraformコードの差分を自動で生成し、Pull Requestを作成。
- 情シス(承認者) → AIが生成したコードをレビュー・承認するだけ
これであれば、今まで情シス(CTO)が担当していたTerraformコードを書く手間が、セルフサービス化によってエンジニアに(学習コストとして)押し付けられることなく、組織全体として効率化できると考えました。
導入の成果
改善したかった課題はどれくらい解決されたか
導入前に課題としていた「作業の手間」と「学習コスト」は、どちらも解消されました。
- 作業の手間(HCLの手書き) → 導入から約6ヶ月間で約200件のPull Requestが作成されました。これらのほぼすべてがClaude Code ActionsまたはDevinによって自動生成されています。CTO(情シス)やエンジニアがHCLを手書きする手間は、ほぼゼロになりました。
- 学習コスト(スキルの障壁) → 直近1ヶ月のPull Requestは、ほぼすべてが情シス以外のメンバーから作成されています。普段Terraformを書かないアプリエンジニアも申請しています。
結果として、権限申請のセルフサービス化のルールについても運用できています。
導入に向けた社内への説明
上長・チームへの説明
今回の導入はCTOである私が推進したため、厳密な「上長への説明」プロセスはありません。その代わり、スムーズに導入するため、以下の2点を工夫しました。
1. コスト面での工夫
Claude CodeはAnthropic社と直接契約せず、Google CloudのVertex AI経由で利用する構成を採用することにしました。元々Google CloudはJX通信社のメインインフラとして利用していたため、新たなツール利用の稟議申請なども不要でした。固定費もかからず、従量課金で利用できます(月々500円程度に収まっています)。
2. チームの利用ハードルを下げる工夫
チームのメンバーがTerraformの知識なしに使えるように、
- AIが自動でコードを正しく生成できるようにするためのREADMEの拡充
- GitHubのIssueテンプレートの整備
- AIによるterraform planの解説や自動レビュー
を行いました。これにより、エンジニア(権限申請をしたい人)はHCLを意識することなく、日本語のIssueテンプレートに必要な項目を埋れば、申請が完了します。terraform planの結果をLLMで日本語解説するようにしたため、Pull Requestに問題があれば申請者が自分で改善できます。
また、READMEの拡充によって、Slack上でDevin経由で簡単に権限申請することも可能になりました。
活用方法
リポジトリの .github/ISSUE_TEMPLATE 配下に、「申請したい内容」ごとのIssueテンプレートを用意しています。
- Cloudflareの権限申請
- Google Cloudの権限申請
- GitHubのメンバー追加依頼
- GitHubのリポジトリ作成依頼
- Google CloudのWorkload Identity設定
- etc...
各Issueテンプレートには @claude 上記作業をお願いします といった文言を予め記載してあるため、Issueを起票するだけで自動的に権限申請が完了します。
GitHub のメンバー追加申請の例)
---
name: GitHubメンバー招待・管理
about: GitHub組織へのメンバー招待や権限変更の依頼
title: '[GitHub Member] '
labels: ['github', 'member']
assignees: []
---
## 依頼内容
- [ ] 新しいメンバーの招待
- [ ] 既存メンバーの権限変更
- [ ] メンバーの削除
## メンバー情報
### GitHubユーザー名
<!-- 例: example-user -->
### メールアドレス
<!-- 例: example@jxpress.net -->
### 権限レベル
- [ ] admin (管理者)
- [x] member (一般メンバー)
---
@claude 上記の内容でGitHubメンバーをお願いします。
よく使う機能
Claude Code GitHub Actionsのメイン機能ですが、Issueの本文内で @claude 実装して などとメンションを飛ばすと、Pull Request作成や自動でコード修正を行います。
ツールの良い点
- 月数百円から始められる
- セットアップが簡単
ツールの課題点
- Pull Request作成をしないなど、不安定な挙動が見られる。特に導入時は安定していなかった。
株式会社JX通信社 / 小笠原みつき
CTO・VPoE / CTO / 従業員規模: 11名〜50名
よく見られているレビュー
株式会社JX通信社 / 小笠原みつき
CTO・VPoE / CTO / 従業員規模: 11名〜50名
レビューしているツール
目次
- アーキテクチャ
- 導入の背景・解決したかった問題
- 活用方法


