更新日:2026年5月11日

15分で読めます

Claude CodeとGitLab:リリースまでの3つのワークフロー

エージェント型AIコーディングツールを使用するとコードを素早く書けるようになります。しかし、リリースするのは誰でしょうか?Claude CodeとGitLab Duo Agent Platformを組み合わせることで、バグレポートから本番環境での修正まで一貫して実現できます。本ブログでは、その方法をご紹介します。

Claude Codeが開発者に支持される理由は、ターミナルやIDE内でシニアエンジニアとペアプログラミングをしているような感覚を味わえるからです。なじみのないコードの理解、修正の提案、新機能のスキャフォールディングを素早く行えます。

しかし、注目すべきパターンがあります。エージェント型コーディングツールがコードを書く能力を向上させるほど、ソフトウェアライフサイクルの残りの工程がそれに追いつけなくなっていきます。バグのバックログは増加し、パイプラインの失敗率は上昇し、セキュリティの脆弱性はチームがトリアージできるペースよりも速く蓄積されていきます。コードを書くことと、ソフトウェアをリリースすることは同じではなく、両者の間には確かなギャップが存在します。

GitLabは、Claude Codeの後に続くソフトウェアライフサイクルの残りのすべての工程(CI/CD、セキュリティスキャン、コードレビュー、承認)を、一か所で、監査証跡付きで加速します。

このチュートリアルでは、Claude Codeがコードベースで素早く動作し、GitLabがそのコードを認定されたリリース可能な変更へと仕上げる3つのシナリオを紹介します。

  • C++のバグをClaude Codeで修正し、GitLab CI/CD、セキュリティスキャン、Duo Code Reviewに後の処理を任せる。
  • GitLab MCPのコンテキストを追加して、Claudeがローカルファイルだけでなく実際のイシューから作業できるようにする。
  • Duo Agent PlatformのClaudeを利用した外部エージェントを使用して、MR内のコードレビューフィードバックに直接対応する。

前提条件

  1. ターミナルで設定済みかつ実行中のClaude Code
  2. バグレポートや機能提案のイシューが含まれるGitLabプロジェクト(例:Tanuki Iot Platformプロジェクト)。
  3. 特定のユースケース向け:GitLab MCPサーバー外部エージェントを備えたGitLab Duo Agent Platform。
  4. コードのビルドに必要なもの:C++向けのCMake、Make、gcc/clang++、JavaはMaven。

GitLabプロジェクトの準備

このチュートリアルの手順を自分の開発環境で再現する場合は、以下を実施してください。

  • Tanuki Iot PlatformプロジェクトをGitLab環境にインポートします。オープンイシューもすべてインポートしてください。
  • プロジェクトをローカル環境にクローンし、ディレクトリに移動します。
  • ターミナルを開き、claudeコマンドでClaude Codeを起動します。
      git clone https://gitlab.example.com/examplegroup/tanuki-iot-platform.git
cd tanuki-iot-platform

claude

    

プロンプトでプロジェクトの目的を確認します。

      What is this project about?

    

Claude CodeとGitLabを使い始める

最初のシナリオでは、C++で書かれたハードウェアセンサーのバグを修正します。Arduinoコレクターは、USB接続されたArduino Uno R4ボードからメトリクスを読み取りますが、デバイス/dev/ttyACM0が接続されていない場合にクラッシュします。

Arduino IoTコレクターのクラッシュバグレポートを示すGitLabイシューArduino IoTコレクターのクラッシュバグレポートを示すGitLabイシュー

イシュー4のバグレポートを確認した後、main.cppファイルのコードを調べます。例えばvimを使って確認できます。

      vim sensors/arduino-iot-collector/src/main.cpp

    

vimで開いたArduino IoTコレクターのソースコードvimで開いたArduino IoTコレクターのソースコード

CMakeでコレクターのバイナリをビルドして実行し、問題を再現します。

      cmake -S . -B build
cmake --build build

./build/arduino_iot_collector
Starting Arduino IoT Collector Application...
libc++abi: terminating due to uncaught exception of type std::runtime_error: Failed to initialize Arduino temperature sensor: Arduino port not found: /dev/ttyACM0
[1]    85289 abort      ./build/arduino_iot_collector

    

Claude Codeを開き、次のプロンプトで修正を依頼します。

      Please help me fix the Arduino IoT Collector sensor - it crashes.

    

Claude Codeはコードベースを検索し、main.cppファイルの問題を特定します。このファイルではstd::runtime_error()例外がスローされ、アプリケーションが即座にクラッシュしています。期待される動作は、ユーザーフレンドリーな設定エラーをログに記録し、アプリケーションの実行を継続することです。

ソースコードの修正とビルドが成功したら、Gitブランチの作成、コミット、マージリクエストの作成を行い、CI/CDパイプライン、セキュリティスキャン、コードレビューのワークフローをトリガーします。

Claude CodeでGitを操作するには、いくつかの方法があります。

  • プロンプトを使用する:Please help me create a Git branch and commit and push the changes.
  • シェルコマンドを実行する:!でコマンドプロンプトを開き、git checkout -b fix-arduino-sensorgit commit -avm "..."git pushコマンドを順に実行します。git pushの出力にMR作成URLが生成されます。クリックするとブラウザが開き、フォームに入力できます。

MRが作成されるとCI/CDパイプラインがトリガーされ、ビルドとテストの動作を確認します。セキュリティスキャンにより、新たな脆弱性が導入されていないことを確認します。新しいMRは自動的にGitLab Duo Code Review Flowをトリガーし、修正の正確性を評価します。開発スタイルガイドとカスタムレビュー指示に従って評価が行われます。

C++向けGitLab Duo Code Reviewのカスタム指示C++向けGitLab Duo Code Reviewのカスタム指示

GitLab Duo Code Review FlowのレビューフィードバックコメントGitLab Duo Code Review Flowのレビューフィードバックコメント

Claude Code、GitLab CI/CD、GitLab Duo Agent Platformの動作を紹介する短い録画をご覧いただけます。

GitLab MCPを使ったClaude CodeによるC++バグの修正

前のシナリオでは、Claude Codeがローカルのコードリポジトリを検索し、利用可能なコンテキストを基に修正を推定しました。しかし、バグを説明するGitLabイシュー、デバッグの議論、問題の修正方法や長期的な対処法についての情報が欠けていました。また、マージリクエストやイシューに保存された過去のコード変更の履歴(ソフトウェア開発ライフサイクル(SDLC)のコンテキスト)も考慮されていませんでした。

このような豊富なGitLab SDLCコンテキストを活用するために、GitLab MCPサーバーをClaude Codeに統合できます。

GitLab MCPサーバーの設定

GitLab MCPサーバーがインスタンスまたはトップレベルグループで有効化されていることを確認してください。

新しいターミナルを開き、httpトランスポートタイプを使用してGitLab MCPサーバーをClaude Codeに追加します。

gitlab.example.comをご自身のGitLabインスタンスのURLに変更するか、GitLab.comを使用してください。

      claude mcp add --transport http GitLab https://gitlab.example.com/api/v4/mcp

    

新しいターミナルセッションでclaudeを実行し、/mcpと入力して、開いたブラウザページでOAuthを使用してGitLab MCPサーバーで認証します。

      claude

/mcp

    

接続を確認するには、Claudeに次のように質問します。

      Which GitLab MCP tools are available to you?

Show the GitLab MCP Server version

    

GitLab MCPサーバーのバージョンを確認するClaude CodeGitLab MCPサーバーのバージョンを確認するClaude Code

Claude CodeをGitLab MCPサーバーで認証すると、OAuthを通じて接続され、昇格された別個の権限ではなく、既存のGitLabアイデンティティで動作します。実際には、Claude Codeはアカウントとプロジェクト/グループのメンバーシップを通じてすでにアクセス権を持っているプロジェクト、イシュー、マージリクエスト、その他のGitLabデータのみを閲覧できます。これは重要なガードレールです。MCPはAIツール内のコンテキストを拡張しますが、GitLabの可視性制御を回避したり、独自に広範なアクセス権を生成したりすることはありません。

2つ目のガードレールはユーザー承認です。このフローでは、Claude Codeが呼び出したいMCPツールを特定し、処理を進める前に承認を求めるため、外部コンテキストが取得される際も開発者がループに留まります。セキュリティに敏感な環境では、プロンプトで公開されるデータに注意を払い、MCPは主に信頼できるGitLabコンテンツと併用することも重要です。

バグレポートのイシューに取り組む

プロンプトでイシュー4を参照して、イシューのコンテキストをClaude Codeに取得します。プロジェクトにイシューがない場合は、イシュー4をクローン/コピーして、プロンプトの番号を調整してください。

      Please help me fix issue 4

    

Claude Codeはイシューのコンテキストを取得するためにget_issueというMCPツールを呼び出す必要があると判断し、承認を求めます。将来の使用を自動的に承認することもできます。

MCPツールを使用してイシューのコンテキストを取得するClaude CodeMCPツールを使用してイシューのコンテキストを取得するClaude Code

Claude Codeがイシューから必要なコンテキストを取得すると、センサーのC++ソースコードを直接分析し始めます。修正を作成して確認した後、Claude Codeがまだ行っていない場合は、新しいGitブランチの作成、コミット、MRの作成を依頼できます。

      Please create a new Git branch, commit the changes, and create a new merge request

    

Claude Codeはcreate_merge_requestというMCPツールを見つけ、ブラウザを開くことなく直接MRを作成します。

MCPツールを使用してMRを作成し、イシュー4にリンクしたClaude CodeMCPツールを使用してMRを作成し、イシュー4にリンクしたClaude Code

GitLabでは、MRの作成イベントにより複数の並列ワークフローが自動的にトリガーされます。

GitLab内のこれらの自動化されたエージェント型ワークフローは、Claude Codeがイシュー解決のためのAIコーディングを加速するのと同じくらい、ソフトウェアデリバリーを加速します。

MR内のCI/CDパイプラインステータス - テストとセキュリティスキャンMR内のCI/CDパイプラインステータス - テストとセキュリティスキャン

ブラウザでMRを開くか、ターミナルに留まってClaude Codeに次のように確認できます。

      Is the Merge Request running OK?

    

MCPツールのget_merge_request_pipelinesを使用して、MRパイプラインのステータスを取得し、グリーンでマージ準備完了であることを確認します。

MCPツールを使用してMRパイプラインのステータスを取得するClaude CodeMCPツールを使用してMRパイプラインのステータスを取得するClaude Code

GitLab MCPサーバーのサポートを受けてClaude Codeが問題を修正する方法を学びたい方は、録画をご覧ください。

外部エージェントレビュアーとしてのClaude Code

最後のシナリオでは、Claude Codeがイシュー24の要件(REST/WebSocketバックエンドを持つSpring Boot APIサーバー)を基に新機能を実装しました。CI/CDパイプラインとセキュリティスキャンは問題なく通過していますが、MRにはコードレビューのフィードバックが待機しています。

Spring Boot APIサーバーMRに対するGitLab Duo Code ReviewフィードバックSpring Boot APIサーバーMRに対するGitLab Duo Code Reviewフィードバック

イシュー、エピック、MRにClaude Codeをコラボレーションパートナーとして追加し、タスクに一緒に取り組むことができます。前提条件については外部エージェントのドキュメントを参照してください。

プロジェクトメニューのAI > AgentsからClaude Agent by GitLabを有効にします。後でエージェントをメンションまたはアサインする方法として、サービスアカウント名(パターン:@ai-<agent-name>-<top-level-group-name>)を確認しておいてください。

次に、コードレビューのフィードバックが含まれるMRを開き、要求された変更を確認します。スクリーンショットはMR 78を使用しており、GitLab Duo Code ReviewはJavaのカスタムレビュー指示に従っています。

![MRで導入されたAPIエンドポイントの、安全でない"AllowedOriginPatterns"に対するGitLab Duo Code Review Flowフィードバック](https://res.cloudinary.com/about-gitlab-com/image/upload/v1778079039/gvgqmcnijllptvnnyyjc.png "MRで導入されたAPIエンドポイントの、安全でない"AllowedOriginPatterns"に対するGitLab Duo Code Review Flowフィードバック")

Claude Codeエージェントをメンションして新しいコメントを作成します。

      @ai-claude-agent-by-gitlab-<top-level-groupname> Can you help me address the review feedback?

    

このメンションにより、バックグラウンドで新しいエージェントセッションが生成され、Claude Codeエージェントのセットアップが行われ、レビューフィードバックへの対応が開始されます。完了すると、Gitコミットの作成とMRへのサマリーコメントの投稿という指示に従って処理が完了します。

Claude Agentによって解決されたGitLab Duo Code ReviewフィードバックClaude Agentによって解決されたGitLab Duo Code Reviewフィードバック

ソフトウェア開発が組織のガードレール内に収まるようにするための次のステップを以下に示します。

  • 残りのレビューフィードバックに対応する。
  • CI/CDパイプラインジョブの警告を確認する。
  • 潜在的なセキュリティの脆弱性を確認する(例:SAST脆弱性解消を使用)。
  • コードオーナーとして設定された承認権限を持つ開発者からマージリクエストの承認を取得する。

CI/CDパイプライン、必要な承認、セキュリティの検出結果、マージステータスを示すマージリクエストウィジェットCI/CDパイプライン、必要な承認、セキュリティの検出結果、マージステータスを示すマージリクエストウィジェット

Claude CodeがGitLab Duo Agent Platformの外部エージェントとしてレビューを支援する方法を学びたい方は、こちらの動画をご覧ください。

Claude CodeとGitLabのヒント

カスタム指示

AGENTS.mdのエントリを使用して、コミット前にコードをビルドしてテストすること、変更を最小限に抑えること、プロジェクトのアーキテクチャをより深く理解することをエージェントに指示できます。Tanuki IoT Platformでは以下の本番環境の例を使用しています。

      ## Working with sensors

### Before editing
1. Identify the sensor directory you're working with
2. Check for an `AGENTS.md` file in that directory
3. Read sensor-specific instructions before making changes
4. Follow language-specific style guides

### Making changes
- Keep changes minimal and focused on the user request
- Do not refactor existing code unless specifically instructed
- Preserve original code formatting
- Only modify code necessary to solve the specific request

### Creating MRs
- Always run local builds and tests first
- Create a new branch for changes
- Automatically create a merge request after successful commits
- Reference relevant issues or tasks in the MR description

    

これらのカスタム指示は、GitLab Duo Agent Platform上のエージェントとフローでも処理されます。

Claude CodeはCLAUDE.mdを優先しますが、これをAGENTS.mdに向けることもできます。

      @AGENTS.md

    

まとめ

AIコーディングツールはコードを書く工程での開発者の速度を向上させます。しかし、コードを書くこととソフトウェアをリリースすることは別物です。ツールが最初の工程で非常に優れているからこそ、両者のギャップは広がっていきます。より多くのコードが書かれ、バグのバックログが増加し、パイプラインの失敗率が上昇し、セキュリティの脆弱性が蓄積されていきます。

Claude Codeは、コードが存在する場所での生産性を維持します。なじみのないコードベースを理解し、修正を提案し、機能を素早くスキャフォールディングできます。GitLab Duo Agent Platformは、エンタープライズ組織のソフトウェアチームに属する多くの開発者にとって、その速度を実際にリリースして認定できる安全なソフトウェアへと変換するものです。GitLabを使えば、ソフトウェアライフサイクルの残りの工程(CI/CDパイプラインの修正、セキュリティスキャン、自動修正、コードレビュー、人間が介在するワークフローなど)を、すべてのエージェント型アクションにおいて追跡し、組織のガードレールとセキュリティポリシーの範囲内で実行するよう設定できます。

このチュートリアルでは、Claude CodeとGitLab Duo Agent Platformを組み合わせる3つの方法を紹介しました。

  • Claude Codeでバグを修正し、GitLab CI/CD、セキュリティスキャン、Duo Code Reviewに後の処理を任せる。
  • GitLab MCPのコンテキストを追加して、ClaudeがGitLabイシュー内に保存された実際のコンテキストから作業できるようにする(ローカルファイルのみではなく)。
  • GitLab Duo Agent PlatformのClaudeを利用した外部エージェントを使用して、MR内のレビューフィードバックに直接対応する。

3つすべてに共通する原則は同じです。Claudeが速く動き、GitLabが作業を保証します。

GitLab Duo Agent Platformをまだお使いでない方は、無料トライアルからお始めください。

GitLabの無料プランをご利用中の方は、いくつかの簡単な手順でGitLab Duo Agent Platformにサインアップできます。

GitLab PremiumまたはUltimateの既存サブスクライバーの方は、Duo Agent Platformを有効にするだけで開始でき、サブスクリプションに含まれているGitLab Creditsをすぐにご利用いただけます。

ご意見をお寄せください

このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。

フィードバックを共有する

今すぐ開発をスピードアップ

DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。