[{"data":1,"prerenderedAt":1514},["ShallowReactive",2],{"/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd":3,"navigation-ja-jp":724,"banner-ja-jp":1152,"footer-ja-jp":1160,"blog-post-authors-ja-jp-Rutvik Shah|Michael Friedrich":1401,"blog-related-posts-ja-jp-developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd":1428,"blog-promotions-ja-jp":1452,"next-steps-ja-jp":1505},{"id":4,"title":5,"authors":6,"body":9,"category":700,"date":701,"description":702,"extension":703,"externalUrl":704,"faq":704,"featured":383,"heroImage":705,"meta":706,"navigation":383,"path":707,"seo":708,"slug":713,"stem":714,"tags":715,"template":721,"updatedDate":722,"__hash__":723},"blogPosts/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.md","GitLab Duo開発の現場から：AIと根本原因分析を併用したCI/CDパイプラインの修正",[7,8],"Rutvik Shah","Michael Friedrich",{"type":10,"value":11,"toc":691},"minimark",[12,22,37,49,54,57,60,63,66,73,76,89,92,95,108,111,114,117,122,131,139,145,154,176,280,291,297,309,407,410,416,425,437,464,467,471,486,492,512,533,539,549,553,556,582,586,589,592,598,601,609,612,627,630,633,642,653,657,687],[13,14,15],"p",{},[16,17,18],"em",{},[19,20,21],"strong",{},"生成AIは、ソフトウェアの開発、保護、運用を容易にし、ソフトウェア開発業界に重要な変化をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能をどのように作成、テスト、そしてデプロイするか明らかにし、DevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能がどのように役立つのかご理解いただける内容になっています。",[13,23,24,30,31,36],{},[25,26,29],"a",{"href":27,"rel":28},"https://about.gitlab.com/ja-jp/topics/ci-cd/",[],"CI/CD","パイプラインがエラーを起こして、その根本原因を突き止めるために、やむを得ずDevSecOpsワークフローを停止したり、ソフトウェアのデプロイを遅らせたりした経験はありませんか？従来のアプローチでは、ソフトウェア開発で問題が発生した場合、デベロッパーはトラブルシューティングやログファイルの分析を行い、多くの場合で、試行錯誤を繰り返しながら開発を進める必要があります。",[25,32,35],{"href":33,"rel":34},"https://about.gitlab.com/ja-jp/gitlab-duo-agent-platform/",[],"GitLab Duo根本原因分析","はGitLabの一連のAI搭載機能に含まれるもので、類推に頼ることなくCI/CDパイプラインで発生した失敗の根本原因を特定します。この記事では、根本原因分析について、また、GitLab DuoのAI搭載機能をDevSecOpsワークフローに適用する方法についてご説明します。",[38,39,40],"blockquote",{},[13,41,42,43,48],{},"デモ動画公開！GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を体験しませんか？（",[25,44,47],{"href":45,"rel":46},"https://about.gitlab.com/ja-jp/eighteen/",[],"今すぐ登録する","）",[50,51,53],"h3",{"id":52},"根本原因分析とは","根本原因分析とは？",[13,55,56],{},"GitLab Duoの根本原因分析は、ログを分析してCI/CDジョブログにおける失敗の根本原因を特定し、修正方法を提案してくれるAI搭載機能です。",[13,58,59],{},"根本原因分析はソフトウェア開発のインシデント管理によく用いられますが、そのワークフローやデバッグの手法はあらゆるDevSecOpsワークフローにも活用されています。パイプラインの失敗を調査する際、運用チーム、管理者、そしてプラットフォームエンジニアは、Infrastructure as Code（IaC）のデプロイエラー、KubernetesやGitOpsの問題、そして長いスタックトレースなどに対処しなければなりません。",[13,61,62],{},"GitLab Duoの根本原因分析は、全員を同じインターフェイスに集め、AIを活用して要約、分析、修正提案を行うことで、組織がより迅速に安全なソフトウェアをリリースできるように支援します。",[13,64,65],{},"パイプラインの失敗の原因としては、コードの構文エラー、パイプラインに使用される依存関係の欠落、ビルドプロセスにおけるテストの失敗、KubernetesやIaCのデプロイタイムアウト、その他多くの問題が考えられます。そのような失敗が発生した場合、関係者全員が、パイプラインで生成されたログを慎重に確認する必要があります。こうしたログの確認には、詳細な出力情報を精査してエラーを特定し、パイプラインにおける失敗の根本原因を特定したりする作業が伴います。たとえば、次のパイプラインには、調査と修正が必要なジョブの失敗が複数あります。",[13,67,68],{},[69,70],"img",{"alt":71,"src":72},"複数のジョブの失敗を示す画像","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097332601.png",[13,74,75],{},"こうした失敗の修正に要する時間は、次のような要因によって大きく異なります。",[77,78,79,83,86],"ul",{},[80,81,82],"li",{},"プロジェクトに関するデベロッパーの熟知度",[80,84,85],{},"同様の問題の対処に関するデベロッパーの経験値",[80,87,88],{},"パイプラインにおけるトラブルシューティングと問題解決に関するデベロッパーの全体的なスキルレベル",[13,90,91],{},"手動での分析は非常に困難で時間がかかることがあります。これは、ログデータを構成するアプリケーションログとシステムメッセージに、さまざまな失敗の原因が含まれている可能性があるためです。一般的なパイプライン修正のプロセスでは、複数回にわたるイテレーションや、（作業を行ったり来たりすることによる）頭の切り替えが必要になります。ログの複雑さや非構造的な性質に対しては、生成AIを使うことで作業を高速化できます。AIを活用することで、パイプラインのエラーを特定して修正する時間を大幅に短縮でき、上記のようなパイプラインを修正するために必要な専門知識のハードルも下げられます。",[13,93,94],{},"以下の動画で、実際にGitLab Duoの根本原因分析を使用する流れをご覧ください。",[96,97,100,101],"figure",{"className":98},[99],"video_container","\n ",[102,103,107],"iframe",{"src":104,"frameBorder":105,"allowFullScreen":106},"https://www.youtube.com/embed/sTpSLwX5DIs?si=J6-0Bf6PtYjrHX1K","0","true"," ",[50,109,110],{"id":110},"根本原因分析の仕組み",[13,112,113],{},"根本原因分析は、CI/CDジョブログの一部をGitLab AIゲートウェイに転送することで機能します。GitLabでは、転送される内容が大規模言語モデル（LLM）のトークン制限内に収まるように調整されます。また、ジョブの失敗原因に関する洞察を提供するよう指示する既定のプロンプトも併せて送信されます。また、このプロンプトは、破損したジョブの修正方法の例をユーザーに提示するよう、LLMに指示します。",[13,115,116],{},"ここでは、根本原因分析を活用できるシナリオの例を2つご紹介します。",[118,119,121],"h4",{"id":120},"_1-pythonの依存関係エラーを分析する","1. Pythonの依存関係エラーを分析する",[13,123,124,125,130],{},"Pythonのアプリケーションでは、標準ライブラリには備わっていない機能を含むパッケージモジュールをインポートできます。プロジェクト「",[25,126,129],{"href":127,"rel":128},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config",[],"Challenge - Root Cause Analysis - Python Config（演習 - 根本原因分析 - Pythonの構成）","」では、構成の解析とSQLiteデータベースの初期化を実行するアプリケーションが実装されており、いずれも依存関係なしで正常に動作しています。また、このプロジェクトでは、Python環境とキャッシュを用いて、CI/CDのベストプラクティスを採用しています。最新の機能追加でRedisのキャッシュクライアントが導入されましたが、これを機にCI/CDビルドが何らかの理由で失敗するようになりました。",[13,132,133,134,138],{},"根本原因分析を使用すれば、",[135,136,137],"code",{},"ModuleNotFoundError","テキストの内容が、モジュールが実際にはPython環境にインストールされていないことを意味しているとすぐにわかります。また、GitLab Duoによって「PIPパッケージマネージャーを介してRedisモジュールをインストールする」ことが修正方法として提案されます。",[13,140,141],{},[69,142],{"alt":143,"src":144},"'modulenotfounderror'とGitLab Duoによって提案された解決策を示す画像","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097332602.png",[13,146,147,148,153],{},"失敗しているパイプラインは",[25,149,152],{"href":150,"rel":151},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/jobs/6992716398",[],"こちら","でご確認いただけます。",[13,155,156,157,160,161,163,164,167,168,171,172,175],{},"根本原因分析のプロンプトに問題のサマリーが表示されており、",[135,158,159],{},"redis","モジュールが欠落していることが問題のようです。では、",[135,162,159],{},"モジュールをインストールして問題を解決できるか試してみましょう。CI/CDジョブの",[135,165,166],{},"スクリプト","セクションで",[135,169,170],{},"pip install redis","を呼び出すか、",[135,173,174],{},"requirements.txt","ファイルを使用した、より高度なアプローチも選択できます。後者の方法は、開発環境とCI/CDパイプラインにインストールされている依存関係に関連した信頼できる唯一の情報源を確立するのに有効です。",[177,178,183],"pre",{"className":179,"code":180,"language":181,"meta":182,"style":182},"language-yaml shiki shiki-themes github-light","test:\n  extends: [.python-req]\n  stage: test   before_script:\n     # [🦊] hint: Root cause analysis.\n    # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt\n  script:\n    - python src/main.py\n","yaml","",[135,184,185,198,214,228,235,241,250,256,264,272],{"__ignoreMap":182},[186,187,190,194],"span",{"class":188,"line":189},"line",1,[186,191,193],{"class":192},"shJU0","test",[186,195,197],{"class":196},"sgsFI",":\n",[186,199,201,204,207,211],{"class":188,"line":200},2,[186,202,203],{"class":192},"  extends",[186,205,206],{"class":196},": [",[186,208,210],{"class":209},"sYBdl",".python-req",[186,212,213],{"class":196},"]\n",[186,215,217,220,223,226],{"class":188,"line":216},3,[186,218,219],{"class":192},"  stage",[186,221,222],{"class":196},": ",[186,224,225],{"class":192},"test   before_script",[186,227,197],{"class":196},[186,229,231],{"class":188,"line":230},4,[186,232,234],{"class":233},"sAwPA","     # [🦊] hint: Root cause analysis.\n",[186,236,238],{"class":188,"line":237},5,[186,239,240],{"class":233},"    # Solution 1: Install redis using pip\n",[186,242,244,247],{"class":188,"line":243},6,[186,245,246],{"class":196},"    - ",[186,248,249],{"class":209},"pip install redis\n",[186,251,253],{"class":188,"line":252},7,[186,254,255],{"class":233},"    # Solution 2: Add redis to requirements.txt, use pip\n",[186,257,259,261],{"class":188,"line":258},8,[186,260,246],{"class":196},[186,262,263],{"class":209},"pip install -r requirements.txt\n",[186,265,267,270],{"class":188,"line":266},9,[186,268,269],{"class":192},"  script",[186,271,197],{"class":196},[186,273,275,277],{"class":188,"line":274},10,[186,276,246],{"class":196},[186,278,279],{"class":209},"python src/main.py\n",[13,281,282,283,286,287,290],{},"欠落しているPythonの依存関係を修正した後、CI/CDジョブが再び失敗します。根本原因分析をもう一度使用すると、ジョブでRedisサービスが実行されていないことがわかります。GitLab Duoチャットに切り替え、",[135,284,285],{},"How to start a Redis service in CI/CD","（CI/CDでRedisサービスを開始する方法）というプロンプトを使用して、CI/CDジョブで",[135,288,289],{},"services","属性を構成する方法を確認します。",[13,292,293],{},[69,294],{"alt":295,"src":296},"Redisサービスを開始する方法を尋ねるプロンプトを示す画像","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097333/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097332602.png",[13,298,299,302,303,305,306,308],{},[135,300,301],{},".gitlab-ci.yml","を",[135,304,193],{},"ジョブで修正し、",[135,307,159],{},"サービスを指定します。",[177,310,312],{"className":179,"code":311,"language":181,"meta":182,"style":182},"test:\n  extends: [.python-req]\n  stage: test   before_script:\n    # [🦊] hint: Root cause analysis.\n   # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt\n  script:\n    - python src/main.py\n\n  # Solution 3 - Running Redis\n  services:\n    - redis\n",[135,313,314,320,330,340,345,350,356,360,366,372,378,385,391,399],{"__ignoreMap":182},[186,315,316,318],{"class":188,"line":189},[186,317,193],{"class":192},[186,319,197],{"class":196},[186,321,322,324,326,328],{"class":188,"line":200},[186,323,203],{"class":192},[186,325,206],{"class":196},[186,327,210],{"class":209},[186,329,213],{"class":196},[186,331,332,334,336,338],{"class":188,"line":216},[186,333,219],{"class":192},[186,335,222],{"class":196},[186,337,225],{"class":192},[186,339,197],{"class":196},[186,341,342],{"class":188,"line":230},[186,343,344],{"class":233},"    # [🦊] hint: Root cause analysis.\n",[186,346,347],{"class":188,"line":237},[186,348,349],{"class":233},"   # Solution 1: Install redis using pip\n",[186,351,352,354],{"class":188,"line":243},[186,353,246],{"class":196},[186,355,249],{"class":209},[186,357,358],{"class":188,"line":252},[186,359,255],{"class":233},[186,361,362,364],{"class":188,"line":258},[186,363,246],{"class":196},[186,365,263],{"class":209},[186,367,368,370],{"class":188,"line":266},[186,369,269],{"class":192},[186,371,197],{"class":196},[186,373,374,376],{"class":188,"line":274},[186,375,246],{"class":196},[186,377,279],{"class":209},[186,379,381],{"class":188,"line":380},11,[186,382,384],{"emptyLinePlaceholder":383},true,"\n",[186,386,388],{"class":188,"line":387},12,[186,389,390],{"class":233},"  # Solution 3 - Running Redis\n",[186,392,394,397],{"class":188,"line":393},13,[186,395,396],{"class":192},"  services",[186,398,197],{"class":196},[186,400,402,404],{"class":188,"line":401},14,[186,403,246],{"class":196},[186,405,406],{"class":209},"redis\n",[13,408,409],{},"Redisサーバーを実行すると、Pythonアプリケーションを正常に実行し、その出力をCI/CDジョブログに出力できます。",[13,411,412],{},[69,413],{"alt":414,"src":415},"Pythonアプリケーションの出力","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097332603.png",[13,417,418,419,424],{},"この解決策は、",[25,420,423],{"href":421,"rel":422},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/tree/main/solution?ref_type=heads",[],"solution/ ディレクトリ","で確認できます。",[13,426,427,430,431,436],{},[19,428,429],{},"ヒント","：以下のようなプロンプトを使用して、",[25,432,435],{"href":433,"rel":434},"https://docs.gitlab.com/ja-jp/user/gitlab_duo_chat/",[],"GitLab Duoチャット","に発生リスクのある問題のフォローアップを依頼することもできます。",[177,438,442],{"className":439,"code":440,"language":441,"meta":182,"style":182},"language-markdown shiki shiki-themes github-light","How to lint Python code? Which tools are recommended for CI/CD.\nHow to pin a package version in Python requirements file?   \nWhat are possible ways that this exception stacktrace is triggered in the future?\nAre there ways to prevent the application from failing?\n","markdown",[135,443,444,449,454,459],{"__ignoreMap":182},[186,445,446],{"class":188,"line":189},[186,447,448],{"class":196},"How to lint Python code? Which tools are recommended for CI/CD.\n",[186,450,451],{"class":188,"line":200},[186,452,453],{"class":196},"How to pin a package version in Python requirements file?   \n",[186,455,456],{"class":188,"line":216},[186,457,458],{"class":196},"What are possible ways that this exception stacktrace is triggered in the future?\n",[186,460,461],{"class":188,"line":230},[186,462,463],{"class":196},"Are there ways to prevent the application from failing?\n",[13,465,466],{},"次の例はより高度で、複数の失敗が含まれています。",[118,468,470],{"id":469},"_2-不足しているgoランタイムを分析する","2. 不足しているGoランタイムを分析する",[13,472,473,474,477,478,481,482,485],{},"CI/CDジョブは、指定された",[135,475,476],{},"イメージ","から生成されたコンテナ内で実行できます。コンテナがプログラミング言語のランタイムを提供していない場合、",[135,479,480],{},"go","バイナリを参照する実行スクリプトセクションは失敗します。たとえば、",[135,483,484],{},"/ bin/sh: eval: line 149: go: not found","というエラーメッセージが表示されたら、これを理解して修正する必要があります。",[13,487,488,489,491],{},"コンテナ内で",[135,490,480],{},"コマンドが見つからない場合、以下のような複数の理由が考えられます。",[493,494,495,502,509],"ol",{},[80,496,497,498,501],{},"ジョブが最小限のコンテナイメージ（",[135,499,500],{},"alpine","など）を使用しており、Go言語ランタイムがインストールされていない。",[80,503,504,505,508],{},"ジョブが誤ったデフォルトのコンテナイメージを使用している。これには、CI/CD構成の先頭で指定されたイメージや",[135,506,507],{},"default","キーワードを使用して指定されたイメージなどが該当する。",[80,510,511],{},"ジョブがコンテナイメージではなく、Shell executorで実行されている。ホストのオペレーティングシステムにGo言語ランタイムがインストールされていない、または設定が壊れているか正しく構成されていない。",[13,513,514,515,520,521,524,525,528,529,532],{},"プロジェクト「",[25,516,519],{"href":517,"rel":518},"https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-go-gitlab-release-fetcher",[],"Challenge - Root Cause Analysis - Go GitLab Release Fetcher（演習 - 根本原因分析 - GoのGitLabリリースフェッチャー）","」は、Goで構築されたGitLabリリースフェッチャーアプリケーションのCI/CD問題を分析し、修正するための演習課題です。このプロジェクトでは、",[135,522,523],{},"build","と",[135,526,527],{},"docker-build","のCI/CDジョブが失敗しています。この問題を解決するには、2つのポイントを抑える必要があります。ひとつはGoランタイムがインストールされていない理由を理解すること、もうひとつは",[135,530,531],{},"Dockerfile","構文について学ぶことです。",[13,534,535],{},[69,536],{"alt":537,"src":538},"変更Dockerラベルジョブの失敗を示すスクリーンショット","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097332603.png",[13,540,541,548],{},[25,542,544,547],{"href":517,"rel":543},[],[135,545,546],{},"solution/"," ディレクトリ","では、根本原因分析の次に試す2つの解決策が確認できます。",[550,551,552],"h2",{"id":552},"根本原因分析の練習",[13,554,555],{},"以下のシナリオを想定して、根本原因分析を練習してみましょう。",[77,557,558,561,564,567,570,573,576,579],{},[80,559,560],{},"Kubernetesデプロイメントのエラーやタイムアウトが発生した場合。",[80,562,563],{},"OpenTofuやTerraformのIaCパイプラインがクラウドリソースのプロビジョニングに失敗した場合。",[80,565,566],{},"AnsibleプレイブックがCI/CDで不可解な権限エラーで失敗した場合。",[80,568,569],{},"Javaのスタックトレースが10ページにも及ぶ場合。",[80,571,572],{},"シェルスクリプトが実行エラーを示している場合。",[80,574,575],{},"Perlスクリプトが1行（スクリプト内の唯一の行）で失敗した場合。",[80,577,578],{},"CI/CDジョブがタイムアウトし、どの部分が原因なのか不明な場合。",[80,580,581],{},"ネットワーク接続のタイムアウトが発生し、DNSが原因でないと思われる場合。",[50,583,585],{"id":584},"gitlab-duoの根本原因分析の次のステップ","GitLab Duoの根本原因分析の次のステップ",[13,587,588],{},"GitLabは、最小限のイテレーションでパイプラインの問題を修正できるようユーザーを支援したいと考えています。根本原因分析が目指す次のステップでは、根本原因分析はGitLab Duoチャット（AIアシスタント）で結果を表示します。ユーザーは、提案された内容を基に、さらに具体的な質問（例：プログラミング言語に特化した修正方法を尋ねる）をしたり、根本原因に基づいた代替の修正方法を尋ねたりすることで、より正確な修正方法を確立できます。",[13,590,591],{},"たとえば、失敗したジョブの根本原因分析は次のとおりです。",[13,593,594],{},[69,595],{"alt":596,"src":597},"根本原因分析の回答","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097332603.png",[13,599,600],{},"ユーザーは、AIが生成した回答に対し、掘り下げた質問ができます。",[77,602,603,606],{},[80,604,605],{},"独自のDockerイメージを作成したくありません。問題を解決するための別の方法を説明してください。",[80,607,608],{},"Dockerイメージの作成にアクセスできません。Goバイナリが見つからないようです。代替のイメージを提案できますか？",[13,610,611],{},"GitLabでは、生成された回答の品質ベンチマークを実行し、使いやすさの改善も行います。",[13,613,614,615,620,621,626],{},"詳しくは、",[25,616,619],{"href":617,"rel":618},"https://gitlab.com/groups/gitlab-org/-/epics/13080",[],"根本原因分析の一般提供（GA）エピック","をご参照ください。機能に関するフィードバックをお寄せいただける方は、",[25,622,625],{"href":623,"rel":624},"https://gitlab.com/groups/gitlab-org/-/epics/13872",[],"根本原因分析のフィードバック用イシュー","にコメントを投稿してください。",[550,628,629],{"id":629},"根本原因分析を開始する",[13,631,632],{},"GitLab Ultimateプランで利用可能な機能を有効化する方法を説明するGitLabドキュメントをご参照ください。また、GitLab Duoの根本原因分析は、GitLab Self-ManagedとGitLab Dedicatedでまもなく利用可能になります。",[13,634,635,636,641],{},"GitLab Ultimateをご利用でない場合は、",[25,637,640],{"href":638,"rel":639},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/blog&glm_content=default-saas-trial",[],"無料トライアル","を今すぐ開始していただけます。",[13,643,644],{},[16,645,646,647,652],{},"監修：佐々木 直晴 ",[25,648,651],{"href":649,"rel":650},"https://gitlab.com/naosasaki",[],"@naosasaki"," （GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）",[550,654,656],{"id":655},"gitlab-duo開発の現場からシリーズをもっと読む","「GitLab Duo開発の現場から」シリーズをもっと読む",[77,658,659,666,673,680],{},[80,660,661],{},[25,662,665],{"href":663,"rel":664},"https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/",[],"GitLab Duo開発の現場から：AIモデルの大規模な検証とテストの方法",[80,667,668],{},[25,669,672],{"href":670,"rel":671},"https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/",[],"GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定",[80,674,675],{},[25,676,679],{"href":677,"rel":678},"https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/",[],"GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み",[80,681,682],{},[25,683,686],{"href":684,"rel":685},"https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/",[],"GitLab Duo開発の現場から： AI生成コードに対するセキュリティ確保と徹底的なテスト",[688,689,690],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":182,"searchDepth":200,"depth":200,"links":692},[693,694,695,698,699],{"id":52,"depth":216,"text":53},{"id":110,"depth":216,"text":110},{"id":552,"depth":200,"text":552,"children":696},[697],{"id":584,"depth":216,"text":585},{"id":629,"depth":200,"text":629},{"id":655,"depth":200,"text":656},"ai","2024-06-06","AIを活用したGitLabの根本原因分析が、破損したCI/CDパイプラインの修復にどのように役立つかについて、具体的なシナリオと実習問題を交えながら解説します。","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097321/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097321081.png",{},"/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"title":5,"description":702,"ogTitle":5,"ogDescription":702,"noIndex":709,"ogImage":705,"ogUrl":710,"ogSiteName":711,"ogType":712,"canonicalUrls":710},false,"https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","https://about.gitlab.com","article","developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",[716,717,718,719,720],"AI","tutorial","DevSecOps","DevSecOps platform","features","BlogPost","2024-11-15","P4WvXqP20oCUt9PD425Qr9SjLhDI3OqqVRnCtVGHPgo",{"logo":725,"freeTrial":730,"sales":735,"login":740,"items":745,"search":1072,"minimal":1105,"duo":1122,"switchNav":1131,"pricingDeployment":1142},{"config":726},{"href":727,"dataGaName":728,"dataGaLocation":729},"/ja-jp/","gitlab logo","header",{"text":731,"config":732},"無料トライアルを開始",{"href":733,"dataGaName":734,"dataGaLocation":729},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":736,"config":737},"デモをリクエスト",{"href":738,"dataGaName":739,"dataGaLocation":729},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":741,"config":742},"サインイン",{"href":743,"dataGaName":744,"dataGaLocation":729},"https://gitlab.com/users/sign_in/","sign in",[746,775,876,881,994,1050],{"text":747,"config":748,"menu":750},"プラットフォーム",{"dataNavLevelOne":749},"platform",{"type":751,"columns":752},"cards",[753,759,767],{"title":747,"description":754,"link":755},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":756,"config":757},"プラットフォームの詳細はこちら",{"href":758,"dataGaName":749,"dataGaLocation":729},"/ja-jp/platform/",{"title":760,"description":761,"link":762},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":763,"config":764},"GitLab Duoのご紹介",{"href":765,"dataGaName":766,"dataGaLocation":729},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":768,"description":769,"link":770},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":771,"config":772},"詳細はこちら",{"href":773,"dataGaName":774,"dataGaLocation":729},"/ja-jp/why-gitlab/","why gitlab",{"text":776,"left":383,"config":777,"menu":779},"製品",{"dataNavLevelOne":778},"solutions",{"type":780,"link":781,"columns":785,"feature":855},"lists",{"text":782,"config":783},"すべてのソリューションを表示",{"href":784,"dataGaName":778,"dataGaLocation":729},"/ja-jp/solutions/",[786,810,833],{"title":787,"description":788,"link":789,"items":794},"自動化","CI/CDと自動化でデプロイを加速",{"config":790},{"icon":791,"href":792,"dataGaName":793,"dataGaLocation":729},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[795,798,801,806],{"text":29,"config":796},{"href":797,"dataGaLocation":729,"dataGaName":29},"/ja-jp/solutions/continuous-integration/",{"text":760,"config":799},{"href":765,"dataGaLocation":729,"dataGaName":800},"gitlab duo agent platform - product menu",{"text":802,"config":803},"ソースコード管理",{"href":804,"dataGaLocation":729,"dataGaName":805},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":807,"config":808},"自動化されたソフトウェアデリバリー",{"href":792,"dataGaLocation":729,"dataGaName":809},"Automated software delivery",{"title":811,"description":812,"link":813,"items":818},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":814},{"href":815,"dataGaName":816,"dataGaLocation":729,"icon":817},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[819,823,828],{"text":820,"config":821},"アプリケーションセキュリティテスト",{"href":815,"dataGaName":822,"dataGaLocation":729},"Application security testing",{"text":824,"config":825},"ソフトウェアサプライチェーンセキュリティ",{"href":826,"dataGaLocation":729,"dataGaName":827},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":829,"config":830},"ソフトウェアコンプライアンス",{"href":831,"dataGaName":832,"dataGaLocation":729},"/ja-jp/solutions/software-compliance/","software compliance",{"title":834,"link":835,"items":840},"測定",{"config":836},{"icon":837,"href":838,"dataGaName":839,"dataGaLocation":729},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[841,845,850],{"text":842,"config":843},"可視性と測定",{"href":838,"dataGaLocation":729,"dataGaName":844},"Visibility and Measurement",{"text":846,"config":847},"バリューストリーム管理",{"href":848,"dataGaLocation":729,"dataGaName":849},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":851,"config":852},"分析とインサイト",{"href":853,"dataGaLocation":729,"dataGaName":854},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":856,"type":780,"items":857},"GitLabが活躍する場所",[858,864,870],{"text":859,"config":860},"大企業",{"icon":861,"href":862,"dataGaLocation":729,"dataGaName":863},"Building","/ja-jp/enterprise/","enterprise",{"text":865,"config":866},"スモールビジネス",{"icon":867,"href":868,"dataGaLocation":729,"dataGaName":869},"Work","/ja-jp/small-business/","small business",{"text":871,"config":872},"公共部門",{"icon":873,"href":874,"dataGaLocation":729,"dataGaName":875},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":877,"config":878},"価格",{"href":879,"dataGaName":880,"dataGaLocation":729,"dataNavLevelOne":880},"/ja-jp/pricing/","pricing",{"text":882,"config":883,"menu":885},"関連リソース",{"dataNavLevelOne":884},"resources",{"type":780,"link":886,"columns":890,"feature":983},{"text":887,"config":888},"すべてのリソースを表示",{"href":889,"dataGaName":884,"dataGaLocation":729},"/ja-jp/resources/",[891,924,951],{"title":892,"items":893},"はじめに",[894,899,904,909,914,919],{"text":895,"config":896},"インストール",{"href":897,"dataGaName":898,"dataGaLocation":729},"/ja-jp/install/","install",{"text":900,"config":901},"クイックスタートガイド",{"href":902,"dataGaName":903,"dataGaLocation":729},"/ja-jp/get-started/","quick setup checklists",{"text":905,"config":906},"学ぶ",{"href":907,"dataGaLocation":729,"dataGaName":908},"https://university.gitlab.com/","learn",{"text":910,"config":911},"製品ドキュメント",{"href":912,"dataGaName":913,"dataGaLocation":729},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":915,"config":916},"ベストプラクティスビデオ",{"href":917,"dataGaName":918,"dataGaLocation":729},"/ja-jp/getting-started-videos/","best practice videos",{"text":920,"config":921},"インテグレーション",{"href":922,"dataGaName":923,"dataGaLocation":729},"/ja-jp/integrations/","integrations",{"title":925,"items":926},"検索する",[927,932,937,942,946],{"text":928,"config":929},"お客様成功事例",{"href":930,"dataGaName":931,"dataGaLocation":729},"/ja-jp/customers/","customer success stories",{"text":933,"config":934},"ブログ",{"href":935,"dataGaName":936,"dataGaLocation":729},"/ja-jp/blog/","blog",{"text":938,"config":939},"Demo Hub",{"href":940,"dataGaName":941,"dataGaLocation":729},"/ja-jp/demo-hub/","demo hub",{"text":943,"config":944},"The Source",{"href":945,"dataGaName":936,"dataGaLocation":729},"/ja-jp/the-source/",{"text":947,"config":948},"リモート",{"href":949,"dataGaName":950,"dataGaLocation":729},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":952,"items":953},"つなげる",[954,958,963,968,973,978],{"text":955,"config":956},"GitLabサービス",{"href":957,"dataGaName":289,"dataGaLocation":729},"/ja-jp/services/",{"text":959,"config":960},"コントリビュート",{"href":961,"dataGaName":962,"dataGaLocation":729},"https://contributors.gitlab.com","contribute",{"text":964,"config":965},"コミュニティ",{"href":966,"dataGaName":967,"dataGaLocation":729},"/community/","community",{"text":969,"config":970},"フォーラム",{"href":971,"dataGaName":972,"dataGaLocation":729},"https://forum.gitlab.com/","forum",{"text":974,"config":975},"イベント",{"href":976,"dataGaName":977,"dataGaLocation":729},"/events/","events",{"text":979,"config":980},"パートナー",{"href":981,"dataGaName":982,"dataGaLocation":729},"/ja-jp/partners/","partners",{"config":984,"title":987,"text":988,"link":989},{"background":985,"textColor":986},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":990,"config":991},"最新情報を読む",{"href":992,"dataGaName":993,"dataGaLocation":729},"/ja-jp/whats-new/","whats new",{"text":995,"config":996,"menu":998},"企業情報",{"dataNavLevelOne":997},"company",{"type":780,"columns":999},[1000],{"items":1001},[1002,1007,1013,1015,1020,1025,1030,1035,1040,1045],{"text":1003,"config":1004},"GitLabについて",{"href":1005,"dataGaName":1006,"dataGaLocation":729},"/ja-jp/company/","about",{"text":1008,"config":1009,"footerGa":1012},"採用情報",{"href":1010,"dataGaName":1011,"dataGaLocation":729},"/jobs/","jobs",{"dataGaName":1011},{"text":974,"config":1014},{"href":976,"dataGaName":977,"dataGaLocation":729},{"text":1016,"config":1017},"経営陣",{"href":1018,"dataGaName":1019,"dataGaLocation":729},"/company/team/e-group/","leadership",{"text":1021,"config":1022},"ハンドブック",{"href":1023,"dataGaName":1024,"dataGaLocation":729},"https://handbook.gitlab.com/","handbook",{"text":1026,"config":1027},"投資家向け情報",{"href":1028,"dataGaName":1029,"dataGaLocation":729},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1031,"config":1032},"トラストセンター",{"href":1033,"dataGaName":1034,"dataGaLocation":729},"/ja-jp/security/","trust center",{"text":1036,"config":1037},"AI Transparency Center",{"href":1038,"dataGaName":1039,"dataGaLocation":729},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":1041,"config":1042},"ニュースレター",{"href":1043,"dataGaName":1044,"dataGaLocation":729},"/company/contact/#contact-forms","newsletter",{"text":1046,"config":1047},"プレス",{"href":1048,"dataGaName":1049,"dataGaLocation":729},"/press/","press",{"text":1051,"config":1052,"menu":1053},"お問い合わせ",{"dataNavLevelOne":997},{"type":780,"columns":1054},[1055],{"items":1056},[1057,1062,1067],{"text":1058,"config":1059},"お問い合わせはこちら",{"href":1060,"dataGaName":1061,"dataGaLocation":729},"/ja-jp/sales/","talk to sales",{"text":1063,"config":1064},"サポートを受ける",{"href":1065,"dataGaName":1066,"dataGaLocation":729},"https://support.gitlab.com/hc/en-us","support portal",{"text":1068,"config":1069},"カスタマーポータル",{"href":1070,"dataGaName":1071,"dataGaLocation":729},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1073,"login":1074,"suggestions":1081},"閉じる",{"text":1075,"link":1076},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":1077,"config":1078},"GitLab.com",{"href":743,"dataGaName":1079,"dataGaLocation":1080},"search login","search",{"text":1082,"default":1083},"提案",[1084,1086,1091,1093,1097,1101],{"text":760,"config":1085},{"href":765,"dataGaName":760,"dataGaLocation":1080},{"text":1087,"config":1088},"コード提案（AI）",{"href":1089,"dataGaName":1090,"dataGaLocation":1080},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":29,"config":1092},{"href":797,"dataGaName":29,"dataGaLocation":1080},{"text":1094,"config":1095},"GitLab on AWS",{"href":1096,"dataGaName":1094,"dataGaLocation":1080},"/ja-jp/partners/technology-partners/aws/",{"text":1098,"config":1099},"GitLab on Google Cloud",{"href":1100,"dataGaName":1098,"dataGaLocation":1080},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":1102,"config":1103},"GitLabを選ぶ理由",{"href":773,"dataGaName":1104,"dataGaLocation":1080},"Why GitLab?",{"freeTrial":1106,"mobileIcon":1110,"desktopIcon":1115,"secondaryButton":1118},{"text":731,"config":1107},{"href":1108,"dataGaName":734,"dataGaLocation":1109},"https://gitlab.com/-/trials/new/","nav",{"altText":1111,"config":1112},"GitLabアイコン",{"src":1113,"dataGaName":1114,"dataGaLocation":1109},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1111,"config":1116},{"src":1117,"dataGaName":1114,"dataGaLocation":1109},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":892,"config":1119},{"href":1120,"dataGaName":1121,"dataGaLocation":1109},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":1123,"mobileIcon":1127,"desktopIcon":1129},{"text":1124,"config":1125},"GitLab Duoの詳細について",{"href":765,"dataGaName":1126,"dataGaLocation":1109},"gitlab duo",{"altText":1111,"config":1128},{"src":1113,"dataGaName":1114,"dataGaLocation":1109},{"altText":1111,"config":1130},{"src":1117,"dataGaName":1114,"dataGaLocation":1109},{"button":1132,"mobileIcon":1137,"desktopIcon":1139},{"text":1133,"config":1134},"/switch",{"href":1135,"dataGaName":1136,"dataGaLocation":1109},"#contact","switch",{"altText":1111,"config":1138},{"src":1113,"dataGaName":1114,"dataGaLocation":1109},{"altText":1111,"config":1140},{"src":1141,"dataGaName":1114,"dataGaLocation":1109},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1143,"mobileIcon":1148,"desktopIcon":1150},{"text":1144,"config":1145},"料金ページに戻る",{"href":879,"dataGaName":1146,"dataGaLocation":1109,"icon":1147},"back to pricing","GoBack",{"altText":1111,"config":1149},{"src":1113,"dataGaName":1114,"dataGaLocation":1109},{"altText":1111,"config":1151},{"src":1117,"dataGaName":1114,"dataGaLocation":1109},{"title":1153,"button":1154,"config":1158},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":771,"config":1155},{"href":1156,"dataGaName":1157,"dataGaLocation":729},"/ja-jp/gitlab-orbit/","orbit",{"layout":1159,"disabled":709},"release",{"data":1161},{"text":1162,"source":1163,"edit":1169,"contribute":1174,"config":1179,"items":1184,"minimal":1392},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":1164,"config":1165},"ページのソースを表示",{"href":1166,"dataGaName":1167,"dataGaLocation":1168},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1170,"config":1171},"このページを編集",{"href":1172,"dataGaName":1173,"dataGaLocation":1168},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1175,"config":1176},"ご協力をお願いします",{"href":1177,"dataGaName":1178,"dataGaLocation":1168},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1180,"facebook":1181,"youtube":1182,"linkedin":1183},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1185,1230,1282,1325,1359],{"title":877,"links":1186,"subMenu":1201},[1187,1191,1196],{"text":1188,"config":1189},"プランの表示",{"href":879,"dataGaName":1190,"dataGaLocation":1168},"view plans",{"text":1192,"config":1193},"Premiumを選ぶ理由",{"href":1194,"dataGaName":1195,"dataGaLocation":1168},"/ja-jp/pricing/premium/","why premium",{"text":1197,"config":1198},"Ultimateを選ぶ理由",{"href":1199,"dataGaName":1200,"dataGaLocation":1168},"/ja-jp/pricing/ultimate/","why ultimate",[1202],{"title":1051,"links":1203},[1204,1206,1208,1210,1215,1220,1225],{"text":1051,"config":1205},{"href":1060,"dataGaName":739,"dataGaLocation":1168},{"text":1063,"config":1207},{"href":1065,"dataGaName":1066,"dataGaLocation":1168},{"text":1068,"config":1209},{"href":1070,"dataGaName":1071,"dataGaLocation":1168},{"text":1211,"config":1212},"ステータス",{"href":1213,"dataGaName":1214,"dataGaLocation":1168},"https://status.gitlab.com/","status",{"text":1216,"config":1217},"利用規約",{"href":1218,"dataGaName":1219,"dataGaLocation":1168},"/terms/","terms of use",{"text":1221,"config":1222},"プライバシーに関する声明",{"href":1223,"dataGaName":1224,"dataGaLocation":1168},"/ja-jp/privacy/","privacy statement",{"text":1226,"config":1227},"Cookie 優先設定",{"dataGaName":1228,"dataGaLocation":1168,"id":1229,"isOneTrustButton":383},"cookie preferences","ot-sdk-btn",{"title":776,"links":1231,"subMenu":1240},[1232,1236],{"text":1233,"config":1234},"DevSecOpsプラットフォーム",{"href":758,"dataGaName":1235,"dataGaLocation":1168},"devsecops platform",{"text":1237,"config":1238},"AI支援開発",{"href":765,"dataGaName":1239,"dataGaLocation":1168},"ai-assisted development",[1241],{"title":1242,"links":1243},"トピック",[1244,1248,1253,1258,1263,1267,1272,1277],{"text":29,"config":1245},{"href":1246,"dataGaName":1247,"dataGaLocation":1168},"/ja-jp/topics/ci-cd/","cicd",{"text":1249,"config":1250},"GitOps",{"href":1251,"dataGaName":1252,"dataGaLocation":1168},"/ja-jp/topics/gitops/","gitops",{"text":1254,"config":1255},"DevOps",{"href":1256,"dataGaName":1257,"dataGaLocation":1168},"/ja-jp/topics/devops/","devops",{"text":1259,"config":1260},"バージョン管理",{"href":1261,"dataGaName":1262,"dataGaLocation":1168},"/ja-jp/topics/version-control/","version control",{"text":718,"config":1264},{"href":1265,"dataGaName":1266,"dataGaLocation":1168},"/ja-jp/topics/devsecops/","devsecops",{"text":1268,"config":1269},"クラウドネイティブ",{"href":1270,"dataGaName":1271,"dataGaLocation":1168},"/ja-jp/topics/cloud-native/","cloud native",{"text":1273,"config":1274},"コーディングのためのAI",{"href":1275,"dataGaName":1276,"dataGaLocation":1168},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":1278,"config":1279},"エージェント型AI",{"href":1280,"dataGaName":1281,"dataGaLocation":1168},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":1283,"links":1284},"ソリューション",[1285,1288,1290,1295,1299,1302,1305,1308,1310,1312,1315,1320],{"text":820,"config":1286},{"href":815,"dataGaName":1287,"dataGaLocation":1168},"Application Security Testing",{"text":807,"config":1289},{"href":792,"dataGaName":793,"dataGaLocation":1168},{"text":1291,"config":1292},"アジャイル開発",{"href":1293,"dataGaName":1294,"dataGaLocation":1168},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":1296,"config":1297},"SCM",{"href":804,"dataGaName":1298,"dataGaLocation":1168},"source code management",{"text":29,"config":1300},{"href":797,"dataGaName":1301,"dataGaLocation":1168},"continuous integration & delivery",{"text":846,"config":1303},{"href":848,"dataGaName":1304,"dataGaLocation":1168},"value stream management",{"text":1249,"config":1306},{"href":1307,"dataGaName":1252,"dataGaLocation":1168},"/ja-jp/solutions/gitops/",{"text":859,"config":1309},{"href":862,"dataGaName":863,"dataGaLocation":1168},{"text":865,"config":1311},{"href":868,"dataGaName":869,"dataGaLocation":1168},{"text":1313,"config":1314},"公共機関",{"href":874,"dataGaName":875,"dataGaLocation":1168},{"text":1316,"config":1317},"教育",{"href":1318,"dataGaName":1319,"dataGaLocation":1168},"/ja-jp/solutions/education/","education",{"text":1321,"config":1322},"金融サービス",{"href":1323,"dataGaName":1324,"dataGaLocation":1168},"/ja-jp/solutions/finance/","financial services",{"title":1326,"links":1327},"リソース",[1328,1330,1332,1334,1338,1340,1343,1345,1347,1349,1351,1353,1355,1357],{"text":895,"config":1329},{"href":897,"dataGaName":898,"dataGaLocation":1168},{"text":900,"config":1331},{"href":902,"dataGaName":903,"dataGaLocation":1168},{"text":905,"config":1333},{"href":907,"dataGaName":908,"dataGaLocation":1168},{"text":910,"config":1335},{"href":1336,"dataGaName":1337,"dataGaLocation":1168},"https://docs.gitlab.com/ja-jp","docs",{"text":933,"config":1339},{"href":935,"dataGaName":936,"dataGaLocation":1168},{"text":1341,"config":1342},"最新リリース",{"href":992,"dataGaName":993,"dataGaLocation":1168},{"text":928,"config":1344},{"href":930,"dataGaName":931,"dataGaLocation":1168},{"text":947,"config":1346},{"href":949,"dataGaName":950,"dataGaLocation":1168},{"text":955,"config":1348},{"href":957,"dataGaName":289,"dataGaLocation":1168},{"text":959,"config":1350},{"href":961,"dataGaName":962,"dataGaLocation":1168},{"text":964,"config":1352},{"href":966,"dataGaName":967,"dataGaLocation":1168},{"text":969,"config":1354},{"href":971,"dataGaName":972,"dataGaLocation":1168},{"text":974,"config":1356},{"href":976,"dataGaName":977,"dataGaLocation":1168},{"text":979,"config":1358},{"href":981,"dataGaName":982,"dataGaLocation":1168},{"title":1360,"links":1361},"会社情報",[1362,1364,1366,1368,1370,1372,1376,1381,1383,1385,1387],{"text":1003,"config":1363},{"href":1005,"dataGaName":997,"dataGaLocation":1168},{"text":1008,"config":1365},{"href":1010,"dataGaName":1011,"dataGaLocation":1168},{"text":1016,"config":1367},{"href":1018,"dataGaName":1019,"dataGaLocation":1168},{"text":1021,"config":1369},{"href":1023,"dataGaName":1024,"dataGaLocation":1168},{"text":1026,"config":1371},{"href":1028,"dataGaName":1029,"dataGaLocation":1168},{"text":1373,"config":1374},"Sustainability",{"href":1375,"dataGaName":1373,"dataGaLocation":1168},"/sustainability/",{"text":1377,"config":1378},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":1379,"dataGaName":1380,"dataGaLocation":1168},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1031,"config":1382},{"href":1033,"dataGaName":1034,"dataGaLocation":1168},{"text":1041,"config":1384},{"href":1043,"dataGaName":1044,"dataGaLocation":1168},{"text":1046,"config":1386},{"href":1048,"dataGaName":1049,"dataGaLocation":1168},{"text":1388,"config":1389},"現代奴隷制の透明性に関する声明",{"href":1390,"dataGaName":1391,"dataGaLocation":1168},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1393},[1394,1396,1399],{"text":1216,"config":1395},{"href":1218,"dataGaName":1219,"dataGaLocation":1168},{"text":1397,"config":1398},"Cookieの設定",{"dataGaName":1228,"dataGaLocation":1168,"id":1229,"isOneTrustButton":383},{"text":1221,"config":1400},{"href":1223,"dataGaName":1224,"dataGaLocation":1168},[1402,1416],{"id":1403,"title":7,"body":704,"config":1404,"content":1406,"description":704,"extension":1410,"meta":1411,"navigation":383,"path":1412,"seo":1413,"stem":1414,"__hash__":1415},"blogAuthors/en-us/blog/authors/rutvik-shah.yml",{"template":1405},"BlogAuthor",{"name":7,"config":1407},{"headshot":1408,"ctfId":1409},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661843/Blog/Author%20Headshots/rutvik_shah_headshot.png","6co92rUBTbWcyV3EW23iEx","yml",{},"/en-us/blog/authors/rutvik-shah",{},"en-us/blog/authors/rutvik-shah","JRArwqK-9V0Orki_E-QqmcQG2AsaZP6XGqa-9ZB6GR8",{"id":1417,"title":8,"body":704,"config":1418,"content":1419,"description":704,"extension":1410,"meta":1423,"navigation":383,"path":1424,"seo":1425,"stem":1426,"__hash__":1427},"blogAuthors/en-us/blog/authors/michael-friedrich.yml",{"template":1405},{"name":8,"config":1420},{"headshot":1421,"ctfId":1422},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659879/Blog/Author%20Headshots/dnsmichi-headshot.jpg","dnsmichi",{},"/en-us/blog/authors/michael-friedrich",{},"en-us/blog/authors/michael-friedrich","lJ-nfRIhdG49Arfrxdn1Vv4UppwD51BB13S3HwIswt4",[1429,1437,1444],{"title":1430,"description":1431,"heroImage":1432,"category":700,"date":1433,"authors":1434,"slug":1436,"externalUrl":704},"Loop Engineeringの実践方法：GitLab × Claude Codeでの実装例","GitLabとClaude Codeで実践するLoop Engineeringの実装例をご紹介。AIエージェントを自律稼働させるcron起動・Skills活用・ラベルベースのフローと、必須のガードレール設計を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785215335/oevhcbrbev1zyfubdfxz.jpg","2026-07-31",[1435],"Issei Hamada, Sony Biz Networks Corporation","loop-engineering-gitlab-claude-code",{"title":1438,"description":1439,"heroImage":1440,"category":700,"date":1433,"authors":1441,"slug":1443,"externalUrl":704},"エージェント型AI、MCP、AIコードアシスタントを統制する方法","AIエージェントは、各ステップで人によるレビューを介さずに、コードの記述、プッシュ、デプロイを行うことができます。アクセス、権限、監査証跡を統制する実践的なフレームワークを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png",[1442],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":1445,"description":1446,"heroImage":1447,"category":700,"date":1448,"authors":1449,"slug":1451,"externalUrl":704},"Claude Opus 5、GitLabで最難関タスクに挑む","AnthropicのClaude Opus 5がGitLab Duo Agent Platformで利用可能になりました。速度を犠牲にすることなく、より深い推論力を提供します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[1450],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":1453},[1454,1467,1479,1491],{"id":1455,"categories":1456,"header":1457,"text":1458,"button":1459,"image":1464},"ai-modernization",[700],"AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":1460,"config":1461},"AI成熟度スコアを確認する",{"href":1462,"dataGaName":1463,"dataGaLocation":936},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":1465},{"src":1466},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1468,"categories":1469,"header":1471,"text":1458,"button":1472,"image":1476},"devops-modernization",[1470,1266],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":1473,"config":1474},"DevOps成熟度スコアを確認しましょう",{"href":1475,"dataGaName":1463,"dataGaLocation":936},"/ja-jp/assessments/devops-modernization-assessment/",{"config":1477},{"src":1478},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1480,"categories":1481,"header":1483,"text":1458,"button":1484,"image":1488},"security-modernization",[1482],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":1485,"config":1486},"セキュリティ成熟度スコアを確認しましょう",{"href":1487,"dataGaName":1463,"dataGaLocation":936},"/ja-jp/assessments/security-modernization-assessment/",{"config":1489},{"src":1490},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1492,"paths":1493,"header":1496,"text":1497,"button":1498,"image":1503},"github-azure-migration",[1494,1495],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":1499,"config":1500},"GitLabとGitHubの比較を見る",{"href":1501,"dataGaName":1502,"dataGaLocation":936},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1504},{"src":1478},{"header":1506,"blurb":1507,"button":1508,"secondaryButton":1512},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":731,"config":1509},{"href":1510,"dataGaName":734,"dataGaLocation":1511},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":1051,"config":1513},{"href":1060,"dataGaName":739,"dataGaLocation":1511},1786803770146]