Claude CodeをGitLab CI/CDで使う方法|@claudeで依頼

この記事の要点
- GitLabのCI/CDでClaude Codeを動かし、イシューやMRで@claudeと書いて修正を頼める(ベータ・GitLabが管理)
- .gitlab-ci.yml にジョブを1つ足し、APIキーをマスク付きの変数に入れれば試せる
- 変更は必ずMRとして出るので、いつもの確認・承認の流れがそのまま使える
GitHub では Claude Code を動かす公式の仕組みがよく知られていますが、GitLab を使っているチーム でも同じように AI に修正を頼めます。
この記事では、Claude Code の公式ドキュメント(2026年10月30日確認)にもとづいて、GitLab CI/CD で Claude Code を動かす方法 と、仕事で使うときの注意をまとめます。なお、この連携は ベータ版 で、GitLab 側が管理 しています。
結論:イシューやMRに「@claude」と書くと、修正案がMRで返ってくる
流れは次の3段です。
- イシューやマージリクエスト(MR)のコメントに
@claude 〜してと書く - GitLab のジョブが起動し、そのやりとりとリポジトリの中身を読んで Claude Code を動かす
- Claude がブランチに変更を書き、MR として出す
変更は必ず MR を通るので、ブランチの保護や承認のルールはそのまま効きます。AI の修正も、ほかの人の修正と同じように確認してから取り込めます。
できること
- イシューの説明から MR を作る・更新する
- 機能をブランチに実装し、MR を開く
- テストやコメントで見つかった不具合を直す
- 遅くなった処理を調べて改善案を出す
- 追加のコメントに応じて、修正をくり返す
コメントの例:
@claude この課題の説明どおりに機能を実装して
@claude ユーザー画面のコンポーネントで出ている TypeError を直して
最小の設定(まず試す)
1. 鍵を「マスク付きの変数」に入れる
GitLab の「設定 → CI/CD → 変数」で ANTHROPIC_API_KEY を追加し、マスク(画面に出さない) を付けます。必要に応じて「保護」も付けます。
2. .gitlab-ci.yml にジョブを1つ足す
公式の例を短くすると、次のような形です。
stages:
- ai
claude:
stage: ai
image: node:24-alpine3.21
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
before_script:
- apk add --no-cache git curl bash
- curl -fsSL https://claude.ai/install.sh | bash
- export PATH="$HOME/.local/bin:$PATH"
script:
- >
claude
-p "${AI_FLOW_INPUT:-'Review this MR and implement the requested changes'}"
--permission-mode acceptEdits
--allowedTools "Bash Read Edit Write mcp__gitlab"
足したら「CI/CD → パイプライン」から手で動かすか、MR から動かして確かめます。コメントの @claude に反応させるには、コメントを受け取ってパイプラインを起動する仕組み(Webhook と受け口)を別に用意します。
コマンドの -p は、画面を開かずに1回だけ動かす使い方です。詳しくは ヘッドレス実行の記事 で解説しています。
本番で使うときの設定
| 項目 | 公式のすすめ |
|---|---|
| AIの呼び先 | Claude API、Amazon Bedrock、Google Cloud から選べる。会社の契約やデータの置き場所に合わせる |
| クラウドの認証 | 長く使う鍵より、OIDC など一時的な認証を使う |
| GitLabの操作用の権限 | 既定の CI_JOB_TOKEN、または api 権限のプロジェクトトークン(マスク付きで保存) |
| ジョブの権限 | 権限と外への通信を必要最小限にしぼる |
鍵や認証情報をリポジトリに書かない のが大前提です。必ず CI/CD の変数に入れます。
チームのルールは CLAUDE.md に
リポジトリの一番上に CLAUDE.md を置くと、Claude は実行のたびにそれを読み、書き方のルールやレビューの基準に従います。短く、要点だけにするのがコツです。書き方は CLAUDE.mdの記事 にまとめています。
費用を抑えるコツ
費用は2種類かかります。
- GitLab のランナーの時間:ジョブが動いている分だけ計算時間を使う
- AIの利用料:依頼の長さや、リポジトリの大きさで変わる
抑えるには、次の3つが効きます。
@claudeの依頼を具体的に書き、やりとりの回数を減らす--max-turnsとジョブのtimeoutを決めておく- 同時に動く数をしぼる
つまずきやすい点
| 症状 | 見直す点 |
|---|---|
@claude に反応しない | パイプラインが起動しているか、受け口がコメントを拾っているか、変数があるか |
| コメントやMRを書けない | CI_JOB_TOKEN に十分な権限があるか、api 権限のトークンを使うか、ジョブで mcp__gitlab を許可しているか |
| 認証エラー | APIキーが有効か。クラウド経由なら OIDC の設定・地域・使えるモデル |
まとめ
- GitLab でも、イシューや MR に
@claudeと書いて修正を頼める(ベータ) .gitlab-ci.ymlにジョブを1つと、マスク付きの鍵の変数で試せる- 変更は MR で返るので、人の確認を残したまま 任せられる
GitHub を使っている場合は GitHub Actionsの記事 もあわせて読んでください。
出典
この記事はAIを使って下書きし、著者が事実確認・加筆しています。ツールの機能や料金は変わることがあるため、最新の情報は各社の公式ページでご確認ください。


