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

Claude Codeが開発者に支持される理由は、ターミナルやIDE内でシニアエンジニアとペアプログラミングをしているような感覚を味わえるからです。なじみのないコードの理解、修正の提案、新機能のスキャフォールディングを素早く行えます。
しかし、注目すべきパターンがあります。エージェント型コーディングツールがコードを書く能力を向上させるほど、ソフトウェアライフサイクルの残りの工程がそれに追いつけなくなっていきます。バグのバックログは増加し、パイプラインの失敗率は上昇し、セキュリティの脆弱性はチームがトリアージできるペースよりも速く蓄積されていきます。コードを書くことと、ソフトウェアをリリースすることは同じではなく、両者の間には確かなギャップが存在します。
GitLabは、Claude Codeの後に続くソフトウェアライフサイクルの残りのすべての工程(CI/CD、セキュリティスキャン、コードレビュー、承認)を、一か所で、監査証跡付きで加速します。
このチュートリアルでは、Claude Codeがコードベースで素早く動作し、GitLabがそのコードを認定されたリリース可能な変更へと仕上げる3つのシナリオを紹介します。
このチュートリアルの手順を自分の開発環境で再現する場合は、以下を実施してください。
claudeコマンドでClaude Codeを起動します。 git clone https://gitlab.example.com/examplegroup/tanuki-iot-platform.git
cd tanuki-iot-platform
claude
プロンプトでプロジェクトの目的を確認します。
What is this project about?
最初のシナリオでは、C++で書かれたハードウェアセンサーのバグを修正します。Arduinoコレクターは、USB接続されたArduino Uno R4ボードからメトリクスを読み取りますが、デバイス/dev/ttyACM0が接続されていない場合にクラッシュします。
Arduino IoTコレクターのクラッシュバグレポートを示すGitLabイシュー
イシュー4のバグレポートを確認した後、main.cppファイルのコードを調べます。例えばvimを使って確認できます。
vim sensors/arduino-iot-collector/src/main.cpp
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-sensor、git commit -avm "..."、git pushコマンドを順に実行します。git pushの出力にMR作成URLが生成されます。クリックするとブラウザが開き、フォームに入力できます。MRが作成されるとCI/CDパイプラインがトリガーされ、ビルドとテストの動作を確認します。セキュリティスキャンにより、新たな脆弱性が導入されていないことを確認します。新しいMRは自動的にGitLab Duo Code Review Flowをトリガーし、修正の正確性を評価します。開発スタイルガイドとカスタムレビュー指示に従って評価が行われます。
C++向けGitLab Duo Code Reviewのカスタム指示
GitLab Duo Code Review Flowのレビューフィードバックコメント
Claude Code、GitLab CI/CD、GitLab Duo Agent Platformの動作を紹介する短い録画をご覧いただけます。
前のシナリオでは、Claude Codeがローカルのコードリポジトリを検索し、利用可能なコンテキストを基に修正を推定しました。しかし、バグを説明するGitLabイシュー、デバッグの議論、問題の修正方法や長期的な対処法についての情報が欠けていました。また、マージリクエストやイシューに保存された過去のコード変更の履歴(ソフトウェア開発ライフサイクル(SDLC)のコンテキスト)も考慮されていませんでした。
このような豊富なGitLab SDLCコンテキストを活用するために、GitLab MCPサーバーをClaude Codeに統合できます。
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 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 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 Code
GitLabでは、MRの作成イベントにより複数の並列ワークフローが自動的にトリガーされます。
GitLab内のこれらの自動化されたエージェント型ワークフローは、Claude Codeがイシュー解決のためのAIコーディングを加速するのと同じくらい、ソフトウェアデリバリーを加速します。
MR内のCI/CDパイプラインステータス - テストとセキュリティスキャン
ブラウザでMRを開くか、ターミナルに留まってClaude Codeに次のように確認できます。
Is the Merge Request running OK?
MCPツールのget_merge_request_pipelinesを使用して、MRパイプラインのステータスを取得し、グリーンでマージ準備完了であることを確認します。
MCPツールを使用してMRパイプラインのステータスを取得するClaude Code
GitLab MCPサーバーのサポートを受けてClaude Codeが問題を修正する方法を学びたい方は、録画をご覧ください。
最後のシナリオでは、Claude Codeがイシュー24の要件(REST/WebSocketバックエンドを持つSpring Boot APIサーバー)を基に新機能を実装しました。CI/CDパイプラインとセキュリティスキャンは問題なく通過していますが、MRにはコードレビューのフィードバックが待機しています。
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のカスタムレビュー指示に従っています。

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フィードバック
ソフトウェア開発が組織のガードレール内に収まるようにするための次のステップを以下に示します。
CI/CDパイプライン、必要な承認、セキュリティの検出結果、マージステータスを示すマージリクエストウィジェット
Claude CodeがGitLab Duo Agent Platformの外部エージェントとしてレビューを支援する方法を学びたい方は、こちらの動画をご覧ください。
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つの方法を紹介しました。
3つすべてに共通する原則は同じです。Claudeが速く動き、GitLabが作業を保証します。
GitLab Duo Agent Platformをまだお使いでない方は、無料トライアルからお始めください。
GitLabの無料プランをご利用中の方は、いくつかの簡単な手順でGitLab Duo Agent Platformにサインアップできます。
GitLab PremiumまたはUltimateの既存サブスクライバーの方は、Duo Agent Platformを有効にするだけで開始でき、サブスクリプションに含まれているGitLab Creditsをすぐにご利用いただけます。
このブログ記事を楽しんでいただけましたか?ご質問やフィードバックがあればお知らせください。GitLabコミュニティフォーラムで新しいトピックを作成してあなたの声を届けましょう。
フィードバックを共有する