[{"data":1,"prerenderedAt":775},["ShallowReactive",2],{"/ja-jp/blog/gitlab-flow-duo":3,"navigation-ja-jp":41,"banner-ja-jp":439,"footer-ja-jp":449,"blog-post-authors-ja-jp-Cesar Saavedra":655,"blog-related-posts-ja-jp-gitlab-flow-duo":669,"blog-promotions-ja-jp":714,"next-steps-ja-jp":766},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":27,"isFeatured":12,"meta":28,"navigation":29,"path":30,"publishedDate":20,"seo":31,"stem":35,"tagSlugs":36,"__hash__":40},"blogPosts/ja-jp/blog/gitlab-flow-duo.yml","Gitlab Flow Duo",[7],"cesar-saavedra",null,"ai-ml",{"slug":11,"featured":12,"template":13},"gitlab-flow-duo",false,"BlogPost",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"body":21,"category":9,"tags":22,"updatedDate":26},"GitLab Flow (フロー) と GitLab Duo  (デュオ) を併用してワークフローを強化する","GitLab Flow に AI 搭載の GitLab Duo の能力を合わせ、DevSecOps ワークフローの効率をアップする方法をご紹介します。",[18],"Cesar Saavedra","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662840/Blog/Hero%20Images/ai-experiment-stars.png","2023-07-27","DevSecOps を始めるには、綿密に検討されたワークフローが必要ですが、時としてそれは厳しい挑戦のように感じられます。しかし、過度に心配する必要はありません。GitLab Flow と GitLab Duo の 2 つがワークフロー設計をサポートしてくれるからです。GitLab Flow は、DevSecOps プロセスを支障なく適用するのを支援するもので、手順がすでに規定されたアプローチです。GitLab Duo は、GitLab DevSecOps プラットフォーム内で提供される[パワフルな一連のAI 機能](https://about.gitlab.com/blog/supercharge-productivity-with-gitlab-duo/)で、 組織におけるコード開発、運用の改善、ソフトウェアのセキュリティ強化をより効率的に行う手助けとなります。GitLab Flow と GitLab Duo を併用すると、組織ではエンドツーエンドのワークフロー効率を顕著に改善できます。それにより、生産性、デプロイの頻度、コード品質、総合的なセキュリティ、本番環境の耐久性と可用性に、さらなる向上が期待されます。この記事では、企業でうまくDevSecOps を運用するため、GitLab Flow と GitLab Duo の組み合わせがどのように役立つか、深く掘り下げていきます。\n\n> GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見しましょう！ [【今すぐ視聴する】](https://about.gitlab.com/ja-jp/eighteen/)\n\n## GitLab Flow とは\nGitLab Flow は、手順が規定されている、アプリケーションの開発ライフサイクルのためのエンドツーエンドのワークフローです。GitLab Flow はユーザーインタフェースとデータモデルをそれぞれ 1 つずつ備えている、AI 搭載の DevSecOps プラットフォーム、GitLab を使用します。GitLab Flow には、顧客からのフィードバックや、自社使用から得られた教訓など、ベストプラクティスや経験から学んだことが組み込まれています。さらに、GitLab Flow は[DevSecOps ライフサイクルの全段階](https://about.gitlab.com/stages-devops-lifecycle/)にまたがるもので、ある特定のアップデートのための内側のフィードバックループと、開発ライフサイクルのみならずアプリケーション全体を改善させていく外側のフィードバックループで構成される、効率的なワークフローです。\n\n![The GitLab Flow inner and outer loops](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-feedback-loops.png)\n\u003Ccenter>GitLab Flowの内側と外側のフィードバックループ\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow には多くの段階がありますが、ご存知のようにソフトウェア開発にはコードを書くだけでは終わらないたくさんの作業があります。以下で、GitLab Flow の各ステップと、GitLab Duo の役割について詳しく説明します。\n\n### GitLab Flowでのプランニング\n\nGitLab Flow の第一段階はプランニングです。プランニングは、GitLab Flow の外側のフィードバックループに配置されています。プランニング段階には、イシュー、マージリクエスト (MR)、エピック、マイルストーン、イテレーション、リリース、リリースエビデンスなど、さまざまなものが含まれます。これから、GitLab Flow でのこれらの各種要素の役割と、GitLab Duo がどのように役立つかについて説明します。\n\n![Planning - first portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-planning-portion.png)\n\u003Ccenter>プランニング – GitLab Flow の第 1 部\u003C/center>\u003Cp>\u003C/p>\n\n#### イシュー\nイシューは、コードの問題や新機能を定義するもので、かつチームメンバーが協力し合える場です。イシューが作成されたら、タイトルを追加し、GitLab Duoの「**イシュー説明文の生成**」機能を用いると、説明欄へ自動で記入してくれるので、時間と労力が節約できます。1つのイシューについてのコメントスレッドには数多くの関係者が参加できます。「**イシューコメントのサマリー**」は GitLab Duoの AI機能のひとつで、あるイシューに関する何百ものコメントを簡潔なひとつのパラグラフに要約できるので、関係者は迅速に会話の内容を把握でき、議論に参加し、生産的な活動にすぐに貢献できます。\n\nイシューは、イシューボードで整理・視覚化できます。イシューボードはソフトウェアのプロジェクト管理ツールで、カンバンボードやスクラムボードとして利用できます。こういったボード類は、チームが機能や製品リリースのワークフローを計画、整理、視覚化するのに便利です。ボードのカテゴリは異なるものとして作成でき、イシューは簡単にドラッグアンドドロップで 1 つのリストから別のリストに移動させることができます。\n\n#### マージリクエスト\nマージリクエスト (MR) とは、解決策が開発される場を意味します。リリースを構成する要素として、イシューやマージリクエストは、DevOps やプラットフォームエンジニア、システム管理者やデータベース管理者、セキュリティエンジニア、そして開発者など、関係者により行われるアプリケーションの変更を、監査可能で追跡できる仕組みとして提供します。また、イシューやマージリクエストはリリースプランニングのプロセスに対する重要なインプットでもあります。\n\nマージリクエストは個別に作成することも、イシュー上で作成することも可能です。イシュー上でマージリクエストを作成した場合には、作成したマージリクエストが自動的にそのイシューに関連付けられるため、マージリクエストがマージされると、関連付けられているイシューも自動的にクローズされます。マージリクエストは手動でイシューに関連付けることもできます。\n\n![Merged merge request will close issue](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/mr-with-its-issue.png)\n\u003Ccenter>マージされたマージリクエストによりイシューがクローズされる\u003C/center>\u003Cp>\u003C/p>\n\nイシューと同様、マージリクエストには多くの関係者がアップデートを行なうフィーチャーのロングリストを含められます。GitLab Duo の「**マージリクエスト変更の要約**」機能を使うと、マージリクエストに含まれている更新内容のすべてを認識・理解する必要がある共同作業者は、変更点を素早く把握できます。\n\n同じテーマを持つイシューはエピック内でグループ化でき、取り組むべき作業を整理できます。エピックには子イシューやサブエピックが設定でき、組織全体のエピックにリンクすることも可能です。イテレーションを使用すると作業のスプリントの追跡ができ、手動でスケジュール設定したり、イテレーションの反復を使って自動でスケジュール設定し、プランニングのワークフローを効率化したりできます。さらに、イテレーションにはバーンダウンチャートとバーンアップチャートがあります。バーンダウンチャートを使用するとプロジェクトの全スコープに対する進捗状況の全体を追跡できます。バーンアップチャートはイテレーションの期間内に追加した、または完了したイシューの日次合計数と重み付けを追跡します。\n\n#### マイルストーン\nチームでマイルストーンを使えば、イシューやマージリクエストに任意の開始日や完了期限を設定し、関連のある 1 つのグループとして整理できます。マイルストーンは通常リリースの追跡に使用しますが、プロジェクト単位またはグループ単位で、イシューやマージリクエストを追跡することもできます。イテレーションと同様、マイルストーンでもバーンダウンチャートとバーンアップチャートが利用でき、進捗状況が可視化されます。\n\nマイルストーンはリリースに関連付けられます。リリースの自動作成からはリリースエビデンスを含む、多くのアーティファクトが生成されます。リリースエビデンスとはリリースに関連付けられている、自動収集されたデータのスナップショットです。テストアーティファクトやリンクされたマイルストーンに加えて、ジョブのアーティファクトもオプションとしてリリースエビデンスに含められるので、外部監査などの内部プロセスが容易になります。\n\nエピック、マイルストーン、そしてイテレーションは、「ロードマップ」ページで可視化できます。このページを使うと、リリースの進捗状況が追跡でき、リリースプロセスが効率化できます。\n\nプランニングに進むと、問題の解決や新機能に向けた作業が開始できます。これはマージリクエストで作業していきます。では、GitLab Flow でそのプロセスがどのように行われるのか、もう少し詳しく見てみましょう。\n\n> [GitLab FlowとGitLab Duoを試してみる](https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2Fblog%2F)\n\n### マージリクエストとコードのプッシュ\n\n![Merge requests and pushing code - second portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-mr-pushing-code-portion.png)\n\u003Ccenter>マージリクエストとコードのプッシュ – GitLab Flow の第 2 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 2 部は、マージリクエスト (MR) とコードのプッシュに関連したものです。前述のように、マージリクエストとは組織全体から参加する関係者の共同作業で、解決策が生み出される場です。この共同作業は分散された場所から、非同期で行うことも可能です。参加者は、タグ付け、インラインでの提案、インラインコメント、マージリクエストのコメント、レビュースレッド、レビューリクエストなど、コラボレーション機能を活用でき、コード品質、可用性、信頼性とパフォーマンスの改善につながります。マージリクエストを作成するとすぐ、GitLab Flow の内側フィードバックループがスタートします。ここでは、コードと修正点のプッシュ、テストとスキャンの実行が行われ、アップデートのレビューなど共同作業が発生します。\n\n#### パイプライン\nアップデートは、マージリクエストを通してフィーチャーブランチに適用されます。パイプラインが定義されていれば、自動的に実行されます。パイプラインには複数のステージやジョブが設定でき、ビルドやテストを行った後、アプリケーションやマイクロサービスをレビュー環境にデプロイします。そのレビュー環境では、アップデートはメインブランチにマージする前に動的に検証できます。この自動化は、アプリケーションのアップデートとレビュープロセスを効率良く行う手助けになります。\n\nさらに、DevSecOps チームがマージリクエストを通じてアプリケーションのアップデートをする際は、さまざまなAI 搭載機能が活用できます。チームメンバーがコードを書いて更新するとき、GitLab Duo の「**コードの提案**」が次に書くべきコードを推奨してくれます。開発者はその提案を受け入れるか、無視するか選択できます。「コード提案」は、エラーを減らして開発者がより速くコードを書けるようにすることでプログラミング体験を向上させ、コード品質が改善します。「コード提案」はまた、開発者の生産性を高めるので、イテレーションやロールアウトの高速化にもつながります。\n\n組織内で異なる関係者がアプリケーションの開発やレビューに参加する場合、ドキュメントが不十分だったり、複雑で難解なコード、あまり馴染みのないプログラミング言語で書かれたコードなどに出くわすことがあります。GitLab Duo の「**コードの解説**」機能は、コードを自然言語で説明してくれるので、誰もが理解でき、そのスピードを高められます。\n\nさらに、フィーチャーブランチにアップデートがコミットされると、GitLab Duo の「**推奨レビュアー**」機能がマージリクエスト内の変更点とコントリビューションカレンダーグラフを使い、マージリクエストのサイドバー内のドロップダウンにプロジェクトに最適なレビュアーを提案してくれます。このリストにはアプリケーションのある特定の部分に詳しいユーザーが数人含まれ、そのアップデートのレビューの適任者が示されます。レビュー適任者をさがして特定する必要がありませんので、開発者の時間が節約でき、レビュープロセスを効率化し、遅延やレビューの品質低下を防ぎます。\n\n開発者がコードに変更を加える場合、その具体的な変更点についてマージリクエストにコメントを書くことはあまりありません。GitLab Duo の「**マージリクエスト変更の要約**」機能を使うと、マージリクエストで変更を行ったコード作成者は、AI を使用して自然言語のコメントを生成することができます。このコメントは、コードへの更新内容を要約するものです。これによりレビュアーは変更内容をよりよく理解でき、レビュープロセス全体の効率化につながります。\n\nレビュアーがマージリクエストでコード更新をレビューすると、レビューブロックが作成されます。このブロックには数多くのソースファイルにまたがる多数のコメントが含まれ、非常に長いので目を通すのが大変です。ここで、コード作成者がレビュー内容をしっかり理解できるように、GitLab Duo の「**マージリクエストレビューの要約**」機能を使うと、レビュアーのフィードバックが自然言語で生成されます。これによりコード作成者とレビュアーの間の引き継ぎがよりスムーズになり、レビュープロセスが効率化されます。\n\nさらに、マージリクエストに開発者が新しいコードを追加する際は、GitLab Duo の「**マージリクエストのテスト生成**」機能を活用すれば、AI を使って新しいコード用のユニットテストを生成できます。そのため開発者の生産性は高まり、テストカバレッジが向上し、開発ライフサイクル内でのバグ検出が前倒しできます。\n\nパイプラインはブランチの更新に対して実行されます。さらに、自動テストやスキャンをそこに組み込むことができます。それはセキュリティをシフトレフトすることにつながっていきます。\n\n### セキュリティのシフトレフト\n\n![Shifting security left - third portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-shift-sec-left-portion.png)\n\u003Ccenter>セキュリティをシフトレフトする –  GitLab Flow の第 3 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 3 部は、セキュリティのシフトレフトです。これは GitLab Flow の内側フィードバックループの一部です。\n\nDevOps やプラットフォームエンジニア、システム管理者やデータベース管理者、開発者、マージリクエストで共同作業している関係者の中には、セキュリティやコンプライアンスを危惧している人もいるかもしれません。そういった場合に、自動化テストやセキュリティスキャンが役立ちます。スキャンはすぐ利用可能なテンプレートを使って簡単にパイプラインに埋め込むことができ、マージリクエストのパイプラインから自動的に実行できます。GitLab では、幅広い組み込みのセキュリティスキャナとアナライザが利用できます。これらはGitLab Flow から利用できます。さらに、DevSecOps プラットフォームにはサードパーティのスキャナやカスタムスキャナも取り込めます。\n\nソフトウェア開発プロセスで不具合検出をできる限り早い段階で行ない、早期解決する目的で、GitLab Flow はパイプライン内でセキュリティをシフトレフトしました。開発サイクルの早い段階で脆弱性を修正する方が、アプリケーションが本番環境に入ってからの修正より、はるかに簡単でコストもあまりかかりません。本番環境での修正では、予定外の停止によりユーザーや収益に影響が及ぶ恐れもあります。\n\nGitLab の組み込みのセキュリティスキャナおよびアナライザには、ユニットテスト、[Infrastructure-as-Code (IaC)](https://about.gitlab.com/ja-jp/blog/using-ansible-and-gitlab-as-infrastructure-for-code/) スキャン、静的アプリケーションセキュリティテスト (SAST) スキャナ、依存関係スキャナ、シークレット検出、コンテナスキャン、API セキュリティ、Web API ファズテスト、カバレッジガイド式ファズテストが含まれています。これに加えて、GitLab ではさまざまなセキュリティダッシュボードやレポートが利用できますので、脆弱性を管理・可視化できます。これには、依存関係リスト、セキュリティダッシュボード、脆弱性レポート、脆弱性ページなどが含まれます。\n\n開発者およびセキュリティエンジニアの脆弱性への理解を深め、脆弱性への対処をより効率的に行うため、GitLab Duo の「**脆弱性の説明**」機能からは、ある特定の脆弱性についての説明が得られます。脆弱性がどのように悪用されうるのかが説明されるだけでなく、それをどう修正したらよいのか提案もしてくれます。この AI 搭載機能は、本番環境でのサイバー攻撃で悪用される可能性のある脆弱性を防ぐため、アプリケーションのセキュリティを強化するプロセスの最適化を助長します。\n\nSAST スキャナのほかに、GitLab では動的アプリケーションセキュリティテスト (DAST) スキャナも提供しています。これには実行中のアプリケーションが必要です。このスキャナを活用すると、GitLab では DAST スキャン用に自動的に DAST 環境をプロビジョニングし、DASTテスト後はすべてのリソースを完全にクリーンアップしてくれます。これに加え、実行中のコンテナについては、GitLab では操作用のコンテナスキャンも使えます。このスキャンは、セキュリティの脆弱性をチェックするため、クラスタ内のコンテナイメージをスキャンします。\n\n上記のスキャンは、マージリクエストのパイプライン内で自動実行できますが、場合によっては、スキャン実行ポリシーやスキャン結果ポリシーを使い、実行をスケジュール化することも可能です。こういったポリシーは、GitLab UI または YAML ファイルで定義可能で、別個のプロジェクト内で構成します。これにより再利用性、メンテナンスと管理の責任が分離できます。スキャン実行ポリシーでは、指定されたスケジュールまたはプロジェクトパイプラインと一緒にセキュリティスキャンを実行する必要があり、スキャン結果ポリシーはスキャン結果に基づいて対処します。セキュリティエンジニアや各種チームはこれらのポリシーを定義して、組織全体のセキュリティプロセスを強化できます。GitLab Flow はこういったステップもカバーしていますので、これらのポリシーを活用することができます。\n\n組織内でセキュリティおよびコンプライアンスを強化する際は、コンプライアンスラベルやパイプラインを使用します。コンプライアンスラベルおよびパイプラインは、プロジェクト自体のパイプラインを実行する前に必須にすることも可能です。このアプローチでは、組織内のすべてのチームが確実に組織内のセキュリティとコンプライアンス基準に準拠していることが確認できます。さらに、開発中のアプリケーションをサイバー攻撃から守り、政府のコンプライアンス標準に準拠し、常に監査に備えられます。GitLab Flow で可能になる、これらすべてのセキュリティ指針の主な目標は、アプリケーションが本番環境に出ていった後ではなく、開発サイクルの早い段階で脆弱性を修正することにあります。本番環境で脆弱性の修復を行うことは、評判や収益面から非常に高価になるためです。\n\n脆弱性はGitLab Flow の内側フィードバックループでそのリスクが軽減できます。フィーチャーブランチでアプリケーションにさらなるアップデートを適用したら、関係者はアップデートを再度レビューして、アップデートの適用を確認し、誤って逆戻りするようなアップデートが導入されないようにする必要があります。\n\n### 継続的なレビュー\n\n![Reviews - fourth portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-reviewing-features-portion.png)\n\u003Ccenter>レビュー –  GitLab Flow の第 4 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 4 部はレビュー機能で、ここでアプリケーションの継続的なレビューを規定します。フィーチャーのレビューには、レビュー環境を立ち上げる機能が含まれます。ここでは、開発途中のアプリケーション (フィーチャーブランチ) がデプロイされるため、関係者はリアルタイムでレビューし、フィードバックを提供できます。開発途中のアプリケーションは、メインブランチにマージできるようになるまで継続的に調整を入れます。GitLab Flow では、マージリクエストがメインブランチにマージされる時点で、すべてのプロビジョニングされたレビュー環境リソースをクリーンアップすることも規定しています。\n\nこの反復的な自動化されたレビュープロセスは、GitLab Flow の内側フィードバックループの一部とされています。上述したとおり、内側フィードバックループ内では、「ソースコードの説明」、「推奨レビュアー」、「マージリクエスト変更の要約」、および「マージリクエストレビューの要約」などのGitLab Duo 機能はGitLab Flow によって規定されており、コード作成者とレビュアーの間の引き継ぎをよりスムーズに行ない、レビュープロセス全体を効率化することができます。\n\nGitLab Flow の内側フィードバックループは、すべてのレビュー項目が解決され、マージリクエストが承認されてメインブランチにマージされると終了します。これがトリガーとなって、アプリケーションが本番環境にデプロイされます。\n\n### アプリケーションとインフラストラクチャのデプロイ\n\n![Deploying - fifth portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-deploy-apps-portion.png)\n\u003Ccenter>デプロイ – GitLab Flow の第 5 部\u003C/center>\u003Cp>\u003C/p>\n\n組織のニーズに応じて、継続的デリバリーまたは継続的デプロイをGitLab Flow で規定します。継続的デリバリーはコードの頻繁なリリースで、その都度 (本番環境への) デプロイを手動でトリガーします。継続的デプロイは人間が関わることなく行われる、コードの (本番環境への) 自動リリースを意味します。では、継続的デリバリーを最初に見てみましょう。\n\n継続的デリバリーでソフトウェアをリリースする際は、いくつかのデプロイオプションがあります。フリーズウィンドウ（作業を一時停止する期間）を設定し、カナリアロールアウト、ブルー・グリーンロールアウト、タイムドロールアウト、インクリメンタルロールアウトなどの、高度なデプロイ技術が利用できます。インクリメンタルロールアウトは本番環境でのシステムダウンのリスクが低減できるため、よりよいユーザーエクスペリエンスと顧客満足度が得られます。各種の高度なデプロイ技術を用いると、開発とデリバリーの効率が改善できるため、リリースプロセスが効率化されます。\n\n継続的なデプロイでソフトウェアをリリースする際は、変更点やアップデートはすべて直接、本番環境に反映されます。フィーチャーフラグのような段階的なデリバリーアプローチを採用すると、特定のフィーチャーの提供をローンチから分離できるため、リスクを低減し、本番ユーザーに利用してもらえる機能性を管理できます。フィーチャーフラグは多くのプログラミング言語をサポートしているため、開発者は実験をしたり、管理環境下でのテストを可能にします。また、フィーチャーフラグを使うと、ある特定のユーザーだけにフィーチャーをロールアウトすることも可能になります。\n\nGitLab はこうしたデプロイアプローチのすべてをサポートしていますが、GitLab Flow では、組織や特定のプロジェクトのニーズに特化したアプローチの採用が可能です。\n\n### アプリケーションの監視と DevSecOps のプロセス\n\nアプリケーションを本番環境にデプロイしたら、安定性、パフォーマンス、可用性を保証するために継続的に監視する必要があります。また、DevSecOps プロセスが実行されると、それらが測定され、パフォーマンスと効率性を改善する機会が得られます。GitLab には監視機能があり、GitLab Flow でそれを活用できます。\n\n実行中のコンテナに対しては、GitLab はオペレーショナルコンテナスキャン (OCS) を行ないます。OCS は、クラスタ内のコンテナイメージをスキャンすることにより、セキュリティ脆弱性をチェックします。こういったスキャンは、実行するタイミングをスケジューリングすることで自動化でき、また、検出された脆弱性をセキュリティダッシュボードに自動的に表示します。OCS はクラスタアプリケーションをセキュアに保ち、個人データの流出や予期せぬシステム停止につながるサイバー攻撃を未然に防ぎます。\n\nエラーの追跡を行なえば、開発者は、開発しているアプリケーションで発生したエラーを検知したり、表示ができます。アプリケーション内で生成されたエラーはすべて、GitLab の「エラートラッキングリスト」に表示されます。エラートラッキングは、予期せぬアプリケーションの状態を迅速に見つけ出し、解決するので、アプリケーションの可用性とパフォーマンスをよりよいものにします。\n\nGitLab は、Webhookレシーバー経由でPrometheus を含むあらゆる監視ソースからのアラートを受け取れます。アラートが受信されると「GitLab アラート」リストに表示され、ここから手動で管理できます。アラートは自動的にインシデントや ChatOps を生成するようにしたり、適切な個人やグループにメッセージを送るよう、トリガー設定できます。こういった機能はすべて、アラートの解決策および管理プロセスを効率化します。\n\n本番環境で発生した問題のためにインシデントが作成されると、インシデント管理用に GitLab の「インシデントリスト」に表示されます。インシデントは 1 つまたは複数を一度に管理でき、ソートや、検索、割り当てを行なったり、ステータスを設定し、SLA プリセットカウントダウンタイマーを見ることもできます。さらに、インシデントを処理するために、オンコールのスケジュールやローテーション、エスカレーションポリシーを作成し、ページングや通知を設定することもできます。さらに、インシデントはアラートにリンクすることで、インシデントがクローズされるとそれに関連付けられていたアラートも自動的に解決されるよう設定可能です。インシデントのタイムラインは、役員や外部からの閲覧者がインシデント中に何が起きたのか、それを解決するためにどんな手順を踏んだのかを確認する機能です。こういった各種機能はすべて、インシデント管理プロセスを効率化し、インシデントを可能な限り迅速に解決するためのものです。\n\n監査イベントは、GitLab で誰がいつ関連する対応を行なったのか、など重要なイベントを追跡します。監査イベントは GitLab の「監査イベント」リストに表示され、オブジェクトに対して実行したアクション、実行者、実行日時などが表示されます。\n\nこれまで説明した、すべてのリストとダッシュボードは、コンプライアンス違反の事前対策を手助けし、ペナルティを回避するだけでなく、監査プロセスを効率化するのにも役立ちます。実行中のアプリケーションから生成されたデータやメトリクスは、GitLab Flow の外側のフィードバックループで使用できます。このため、アプリケーションの改善と最適化が促され、予定外の本番環境でのシステム停止のリスクが低減されます。\n\n### 継続的な改善\nGitLab Flow を適用すると、GitLabが提供するエンドツーエンドのプロセスメトリクスのダッシュボードから知見が得られます。そのため、アプリケーションだけでなくソフトウェアのデリバリーパフォーマンスも継続的に改善できます。これらのダッシュボードとそのメトリクスは GitLab によって自動生成され、常時利用可能です。\n\nアプリケーション開発のライフサイクルは「バリューストリーム分析ダッシュボード」を使い、追跡、監視できます。ここでは時間の経過によるプロジェクトやグループの統計が確認できます。このダッシュボードはカスタマイズできますが、GitLab が提供しているデフォルトのテンプレートを使って、バリューストリームを作成すれば、迅速に開始できます。デフォルトのダッシュボードには、事前定義されたバリューストリーム分析の各ステージのメトリクスが表示されます。メトリクスとは、イシュー、プラン、コード、テスト、レビュー、ステージングなどで、それぞれの完了までにかかる平均時間がグラフで表示されます。ここには、リードタイム、サイクルタイム、新規イシュー、コミット、デプロイなどバリューストリーム分析のキーメトリクスも表示されます。これらのメトリクスを利用すれば、バリューストリームの各ステージについて、改善可能な領域が見つかります。\n\nパフォーマンスメトリクスでは、組織の開発およびデリバリーの有効性や効果を測定しますが、こういったメトリクス用に、GitLab は DORA (DevOps Research and Assessment) メトリクスダッシュボードを提供しています。ここには「デプロイ頻度」、「変更のリードタイム」、「サービス復旧時間」、「変更失敗率」の、4 つの主なメトリクス（Four Keys）が表示されます。「デプロイ頻度」は組織がどのくらいの頻度で本番環境にコードをデプロイするのか、またはそれをエンドユーザーにリリースするのかを測定します。「変更のリードタイム」は、コードをコミットした時点から、本番環境で実行されるまで、どれくらいの時間がかかるのかを測定します。「サービス復旧時間」は、インシデントが発生した場合に、どれくらいの時間でサービスをインシデント以前の状態に復旧できるのかを測定します。「変更失敗率」は、本番環境への変更またはユーザーにリリースされた変更のうち、サービス改悪につながったもの (たとえばサービス障害や停止につながった変更) で、その後、復旧が必要になった (ホットフィックス、ロールバック、パッチが必要になったなど) 変更の割合を示します。これらの 4 つの主要メトリクスは現在のプロセスを表すものであり、これを分析すれば、いろいろな要因や能力を改善できるでしょう。\n\nもうひとつのダッシュボードは、カスタム化可能な「バリューストリームダッシュボード」で、意思決定者が、傾向、パターンやソフトウェア開発改善の機会を特定できるようにするものです。表示されるメトリクスは DORA メトリクスに続いて、バリューストリーム分析のフローメトリクスと直近 1 か月間、2 か月間、6 か月間の重大な脆弱性の件数です。\n\nGitLab Duo は、継続的な改善への取り組みにも役立ちます。たとえば、「**バリューストリーム予測**」機能は、過去のデータを取り込んで、開発ライフサイクル全体のデータ傾向を使い、組織のバリューストリームメトリクスの今後の動向を予測します。こういった予測解析は、最適化の取り組みに活用できます。\n\nこれまで説明してきたすべてのダッシュボードや、そこで報告されるメトリクスは、GitLab Flow の外側フィードバックループを構成しており、予定外の本番環境でのシステム停止のリスクを低減し、アプリケーションと DevSecOps ワークフローを改善し、かつ最適化するのに役に立ちます。\n\n## GitLab Flow を使う理由\nGitLab Flow は、手順が規定されたアプローチで、世界中のユーザーが実践しているもので、次のような利点があります。\n\n* GitLab Flow を活用することで、GitLab が提供する自動化機能や、単一ユーザーインターフェース、データモデルによって生産性が向上\n\n* 継続的な改善をサポートする、エンドツーエンドの DevSecOps ライフサイクルへの正確な洞察\n\n* アプリケーションと DevSecOps プロセスの最適化に役立つ組み込み型ダッシュボードとメトリクス\n\n* コード品質の向上、ならびにアプリケーションの信頼性・可用性の向上\n\n* 組み込みのセキュリティスキャナと各種機能によるアプリケーションセキュリティの向上\n\n* 組み込みのコンプライアンス機能によるコンプライアンスおよび監査への対応デプロイ頻度を高めるサイクル時間の短縮\n\n* GitLab Flow の内側フィードバックループによる継続的なレビュー\n\n* GitLab Flow の内側フィードバックループによる、アプリケーションのアップデートの最適化、コード品質向上、アプリケーションの信頼性と可用性の改善\n\n* GitLab Flow の外側フィードバックループによる、開発ライフサイクルそのものだけでなく、アプリケーションも改善\n\n* 組織内の関係者間での強力な共同体制の確立\n\n* セキュリティをシフトレフトすることにより、コードを本番環境に出す前に、アプリケーション内の脆弱性を見つけ、費用のかかる、予定外のシステム停止を回避\n\n* GitLab によりサポートされている高度なデプロイ技術やプログレッシブデリバリーアプローチにより、本番環境へのデプロイ時のリスクを低減\n\n* 開発ライフサイクル全体にわたり、生産性、コード品質、継続的改善、セキュリティやコンプライアンスなどを強化させるAI 搭載機能\n\n* クラウドネイティブと非クラウドネイティブのアプリケーションをサポート\n\n* ハイブリッド / マルチクラウドアプリケーション向けのマルチクラウドサポート\n\nGitLab Flow はどう始めたらよいのでしょう。GitLab Flow の原則をお使いのアプリケーション開発ライフサイクルに適用してみたい場合、GitLab Auto DevOpsやその一部を活用することから始めるのが良いかもしれません。\n\n## GitLab Flow と Auto DevOps\n\n![Auto DevOps - an instantiation of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/ado-pipeline.png)\n\u003Ccenter>Auto DevOps – GitLab Flow のインスタンス化\u003C/center>\u003Cp>\u003C/p>\n\n[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/) は、GitLab Flow の全ステージやジョブに適用されます。つまり、Auto DevOps は GitLab Flow のインスタンス化の好例と考えるとよいでしょう。\n\nAuto DevOps は事前定義済みの、すぐに使用可能な CI/CD テンプレートで、ソースコードを自動検出できます。ベストプラクティスに基づき、CI/CD テンプレートは自動的にアプリケーションを検出、ビルド、テスト、デプロイ、監視します。\n\nAuto DevOpsパイプラインは、ソフトウェアデリバリープロセスで、早期段階で欠陥を発見し、予防する作業をシフトレフトします。次にAuto DevOps パイプラインはアプリケーションを検証するためステージング環境にデプロイし、その後、本番環境に段階的に、または、タイミングを合わせてデプロイします。\n\nAuto DevOps は迅速に利用開始でき、開発者の生産性を向上できます。また、最も一般的なプログラミングフレームワークとプログラミング言語をサポートするので、ニーズに合わせて簡単にカスタマイズできます。Auto DevOps はモジュラーであり、カスタマイズができ、拡張可能です。そのため、パイプラインに Auto DevOps の一部を活用したり、アプリケーションにすべてを適用することもできます。\n\n## 今すぐ始めてみましょう\n[GitLab Flow と GitLab Duo を組み合わせる](https://gitlab.com/-/trials/new?glm\\_content=default-saas-trial\\&glm\\_source=about.gitlab.com%2Fblog%2F) と、エンドツーエンドのワークフロー効率が顕著に改善できます。それにより、生産性、デプロイ頻度、コード品質、セキュリティ全般、プロダクションの耐久性と可用性について、さらなる改善が実現できます。\n\nGitLab Flow と GitLab Duo を併用するアプリケーションでのワークフローの確認や、メリットの確認には、次のビデオをご覧ください。\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/0JQUf9UOAdo?si=ZxgI3_nIODV6Gijw\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n*\\*監修：伊藤 俊廷 [@toshitakaito](https://gitlab.com/toshitakaito) （GitLab合同会社 ソリューションアーキテクト本部 スタッフソリューションアーキテクト）*",[23,24,25],"CI/CD","AI/ML","DevSecOps","2024-08-28","yml",{},true,"/ja-jp/blog/gitlab-flow-duo",{"title":15,"description":16,"ogTitle":15,"ogDescription":16,"noIndex":12,"ogImage":19,"ogUrl":32,"ogSiteName":33,"ogType":34,"canonicalUrls":32},"https://about.gitlab.com/blog/gitlab-flow-duo","https://about.gitlab.com","article","ja-jp/blog/gitlab-flow-duo",[37,38,39],"cicd","aiml","devsecops","AdhpoEHR8y4iIENXlhIUmHhdN5VjPgBB4Pk93Z7aqPE",{"data":42},{"logo":43,"freeTrial":48,"sales":53,"login":58,"items":63,"search":370,"minimal":403,"duo":420,"pricingDeployment":429},{"config":44},{"href":45,"dataGaName":46,"dataGaLocation":47},"/ja-jp/","gitlab logo","header",{"text":49,"config":50},"無料トライアルを開始",{"href":51,"dataGaName":52,"dataGaLocation":47},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":54,"config":55},"お問い合わせ",{"href":56,"dataGaName":57,"dataGaLocation":47},"/ja-jp/sales/","sales",{"text":59,"config":60},"サインイン",{"href":61,"dataGaName":62,"dataGaLocation":47},"https://gitlab.com/users/sign_in/","sign in",[64,91,186,191,292,352],{"text":65,"config":66,"cards":68},"プラットフォーム",{"dataNavLevelOne":67},"platform",[69,75,83],{"title":65,"description":70,"link":71},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":72,"config":73},"プラットフォームを詳しく見る",{"href":74,"dataGaName":67,"dataGaLocation":47},"/ja-jp/platform/",{"title":76,"description":77,"link":78},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":79,"config":80},"GitLab Duoのご紹介",{"href":81,"dataGaName":82,"dataGaLocation":47},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":84,"description":85,"link":86},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":87,"config":88},"詳細はこちら",{"href":89,"dataGaName":90,"dataGaLocation":47},"/ja-jp/why-gitlab/","why gitlab",{"text":92,"left":29,"config":93,"link":95,"lists":99,"footer":168},"製品",{"dataNavLevelOne":94},"solutions",{"text":96,"config":97},"すべてのソリューションを表示",{"href":98,"dataGaName":94,"dataGaLocation":47},"/ja-jp/solutions/",[100,124,146],{"title":101,"description":102,"link":103,"items":108},"自動化","CI/CDと自動化でデプロイを加速",{"config":104},{"icon":105,"href":106,"dataGaName":107,"dataGaLocation":47},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[109,112,115,120],{"text":23,"config":110},{"href":111,"dataGaLocation":47,"dataGaName":23},"/ja-jp/solutions/continuous-integration/",{"text":76,"config":113},{"href":81,"dataGaLocation":47,"dataGaName":114},"gitlab duo agent platform - product menu",{"text":116,"config":117},"ソースコード管理",{"href":118,"dataGaLocation":47,"dataGaName":119},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":121,"config":122},"自動化されたソフトウェアデリバリー",{"href":106,"dataGaLocation":47,"dataGaName":123},"Automated software delivery",{"title":125,"description":126,"link":127,"items":132},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":128},{"href":129,"dataGaName":130,"dataGaLocation":47,"icon":131},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[133,137,142],{"text":134,"config":135},"Application Security Testing",{"href":129,"dataGaName":136,"dataGaLocation":47},"Application security testing",{"text":138,"config":139},"ソフトウェアサプライチェーンの安全性",{"href":140,"dataGaLocation":47,"dataGaName":141},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":143,"config":144},"Software Compliance",{"href":145,"dataGaName":143,"dataGaLocation":47},"/ja-jp/solutions/software-compliance/",{"title":147,"link":148,"items":153},"測定",{"config":149},{"icon":150,"href":151,"dataGaName":152,"dataGaLocation":47},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[154,158,163],{"text":155,"config":156},"可視性と測定",{"href":151,"dataGaLocation":47,"dataGaName":157},"Visibility and Measurement",{"text":159,"config":160},"バリューストリーム管理",{"href":161,"dataGaLocation":47,"dataGaName":162},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":164,"config":165},"分析とインサイト",{"href":166,"dataGaLocation":47,"dataGaName":167},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":169,"items":170},"GitLabが活躍する場所",[171,176,181],{"text":172,"config":173},"Enterprise",{"href":174,"dataGaLocation":47,"dataGaName":175},"/ja-jp/enterprise/","enterprise",{"text":177,"config":178},"スモールビジネス",{"href":179,"dataGaLocation":47,"dataGaName":180},"/ja-jp/small-business/","small business",{"text":182,"config":183},"公共機関",{"href":184,"dataGaLocation":47,"dataGaName":185},"/ja-jp/solutions/public-sector/","public sector",{"text":187,"config":188},"価格",{"href":189,"dataGaName":190,"dataGaLocation":47,"dataNavLevelOne":190},"/ja-jp/pricing/","pricing",{"text":192,"config":193,"link":195,"lists":199,"feature":279},"関連リソース",{"dataNavLevelOne":194},"resources",{"text":196,"config":197},"すべてのリソースを表示",{"href":198,"dataGaName":194,"dataGaLocation":47},"/ja-jp/resources/",[200,233,251],{"title":201,"items":202},"はじめに",[203,208,213,218,223,228],{"text":204,"config":205},"インストール",{"href":206,"dataGaName":207,"dataGaLocation":47},"/ja-jp/install/","install",{"text":209,"config":210},"クイックスタートガイド",{"href":211,"dataGaName":212,"dataGaLocation":47},"/ja-jp/get-started/","quick setup checklists",{"text":214,"config":215},"学ぶ",{"href":216,"dataGaLocation":47,"dataGaName":217},"https://university.gitlab.com/","learn",{"text":219,"config":220},"製品ドキュメント",{"href":221,"dataGaName":222,"dataGaLocation":47},"https://docs.gitlab.com/","product documentation",{"text":224,"config":225},"ベストプラクティスビデオ",{"href":226,"dataGaName":227,"dataGaLocation":47},"/ja-jp/getting-started-videos/","best practice videos",{"text":229,"config":230},"インテグレーション",{"href":231,"dataGaName":232,"dataGaLocation":47},"/ja-jp/integrations/","integrations",{"title":234,"items":235},"検索する",[236,241,246],{"text":237,"config":238},"お客様成功事例",{"href":239,"dataGaName":240,"dataGaLocation":47},"/ja-jp/customers/","customer success stories",{"text":242,"config":243},"ブログ",{"href":244,"dataGaName":245,"dataGaLocation":47},"/ja-jp/blog/","blog",{"text":247,"config":248},"リモート",{"href":249,"dataGaName":250,"dataGaLocation":47},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":252,"items":253},"つなげる",[254,259,264,269,274],{"text":255,"config":256},"GitLabサービス",{"href":257,"dataGaName":258,"dataGaLocation":47},"/ja-jp/services/","services",{"text":260,"config":261},"コミュニティ",{"href":262,"dataGaName":263,"dataGaLocation":47},"/community/","community",{"text":265,"config":266},"フォーラム",{"href":267,"dataGaName":268,"dataGaLocation":47},"https://forum.gitlab.com/","forum",{"text":270,"config":271},"イベント",{"href":272,"dataGaName":273,"dataGaLocation":47},"/events/","events",{"text":275,"config":276},"パートナー",{"href":277,"dataGaName":278,"dataGaLocation":47},"/ja-jp/partners/","partners",{"backgroundColor":280,"textColor":281,"text":282,"image":283,"link":287},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":284,"config":285},"ソースプロモカード",{"src":286},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":288,"config":289},"最新情報を読む",{"href":290,"dataGaName":291,"dataGaLocation":47},"/ja-jp/the-source/","the source",{"text":293,"config":294,"lists":296},"会社情報",{"dataNavLevelOne":295},"company",[297],{"items":298},[299,304,310,312,317,322,327,332,337,342,347],{"text":300,"config":301},"GitLabについて",{"href":302,"dataGaName":303,"dataGaLocation":47},"/ja-jp/company/","about",{"text":305,"config":306,"footerGa":309},"採用情報",{"href":307,"dataGaName":308,"dataGaLocation":47},"/jobs/","jobs",{"dataGaName":308},{"text":270,"config":311},{"href":272,"dataGaName":273,"dataGaLocation":47},{"text":313,"config":314},"経営陣",{"href":315,"dataGaName":316,"dataGaLocation":47},"/company/team/e-group/","leadership",{"text":318,"config":319},"チーム",{"href":320,"dataGaName":321,"dataGaLocation":47},"/company/team/","team",{"text":323,"config":324},"ハンドブック",{"href":325,"dataGaName":326,"dataGaLocation":47},"https://handbook.gitlab.com/","handbook",{"text":328,"config":329},"投資家向け情報",{"href":330,"dataGaName":331,"dataGaLocation":47},"https://ir.gitlab.com/","investor relations",{"text":333,"config":334},"トラストセンター",{"href":335,"dataGaName":336,"dataGaLocation":47},"/ja-jp/security/","trust center",{"text":338,"config":339},"AI Transparency Center",{"href":340,"dataGaName":341,"dataGaLocation":47},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":343,"config":344},"ニュースレター",{"href":345,"dataGaName":346,"dataGaLocation":47},"/company/contact/#contact-forms","newsletter",{"text":348,"config":349},"プレス",{"href":350,"dataGaName":351,"dataGaLocation":47},"/press/","press",{"text":54,"config":353,"lists":354},{"dataNavLevelOne":295},[355],{"items":356},[357,360,365],{"text":54,"config":358},{"href":56,"dataGaName":359,"dataGaLocation":47},"talk to sales",{"text":361,"config":362},"サポートポータル",{"href":363,"dataGaName":364,"dataGaLocation":47},"https://support.gitlab.com","support portal",{"text":366,"config":367},"カスタマーポータル",{"href":368,"dataGaName":369,"dataGaLocation":47},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":371,"login":372,"suggestions":379},"閉じる",{"text":373,"link":374},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":375,"config":376},"GitLab.com",{"href":61,"dataGaName":377,"dataGaLocation":378},"search login","search",{"text":380,"default":381},"提案",[382,384,389,391,395,399],{"text":76,"config":383},{"href":81,"dataGaName":76,"dataGaLocation":378},{"text":385,"config":386},"コード提案（AI）",{"href":387,"dataGaName":388,"dataGaLocation":378},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":23,"config":390},{"href":111,"dataGaName":23,"dataGaLocation":378},{"text":392,"config":393},"GitLab on AWS",{"href":394,"dataGaName":392,"dataGaLocation":378},"/ja-jp/partners/technology-partners/aws/",{"text":396,"config":397},"GitLab on Google Cloud",{"href":398,"dataGaName":396,"dataGaLocation":378},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":400,"config":401},"GitLabを選ぶ理由",{"href":89,"dataGaName":402,"dataGaLocation":378},"Why GitLab?",{"freeTrial":404,"mobileIcon":408,"desktopIcon":413,"secondaryButton":416},{"text":49,"config":405},{"href":406,"dataGaName":52,"dataGaLocation":407},"https://gitlab.com/-/trials/new/","nav",{"altText":409,"config":410},"GitLabアイコン",{"src":411,"dataGaName":412,"dataGaLocation":407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":409,"config":414},{"src":415,"dataGaName":412,"dataGaLocation":407},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":201,"config":417},{"href":418,"dataGaName":419,"dataGaLocation":407},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":421,"mobileIcon":425,"desktopIcon":427},{"text":422,"config":423},"GitLab Duoの詳細について",{"href":81,"dataGaName":424,"dataGaLocation":407},"gitlab duo",{"altText":409,"config":426},{"src":411,"dataGaName":412,"dataGaLocation":407},{"altText":409,"config":428},{"src":415,"dataGaName":412,"dataGaLocation":407},{"freeTrial":430,"mobileIcon":435,"desktopIcon":437},{"text":431,"config":432},"料金ページに戻る",{"href":189,"dataGaName":433,"dataGaLocation":407,"icon":434},"back to pricing","GoBack",{"altText":409,"config":436},{"src":411,"dataGaName":412,"dataGaLocation":407},{"altText":409,"config":438},{"src":415,"dataGaName":412,"dataGaLocation":407},{"title":440,"button":441,"config":446},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":442,"config":443},"GitLab Transcendを今すぐ視聴",{"href":444,"dataGaName":445,"dataGaLocation":47},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":447,"icon":448,"disabled":29},"release","AiStar",{"data":450},{"text":451,"source":452,"edit":458,"contribute":463,"config":468,"items":473,"minimal":647},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":453,"config":454},"ページのソースを表示",{"href":455,"dataGaName":456,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":459,"config":460},"このページを編集",{"href":461,"dataGaName":462,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":464,"config":465},"ご協力をお願いします",{"href":466,"dataGaName":467,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":469,"facebook":470,"youtube":471,"linkedin":472},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[474,497,551,581,616],{"title":65,"links":475,"subMenu":480},[476],{"text":477,"config":478},"DevSecOpsプラットフォーム",{"href":74,"dataGaName":479,"dataGaLocation":457},"devsecops platform",[481],{"title":187,"links":482},[483,487,492],{"text":484,"config":485},"プランの表示",{"href":189,"dataGaName":486,"dataGaLocation":457},"view plans",{"text":488,"config":489},"Premiumを選ぶ理由",{"href":490,"dataGaName":491,"dataGaLocation":457},"/ja-jp/pricing/premium/","why premium",{"text":493,"config":494},"Ultimateを選ぶ理由",{"href":495,"dataGaName":496,"dataGaLocation":457},"/ja-jp/pricing/ultimate/","why ultimate",{"title":498,"links":499},"ソリューション",[500,505,508,510,515,520,524,527,530,535,537,539,541,546],{"text":501,"config":502},"デジタルトランスフォーメーション",{"href":503,"dataGaName":504,"dataGaLocation":457},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":506,"config":507},"セキュリティとコンプライアンス",{"href":129,"dataGaName":136,"dataGaLocation":457},{"text":121,"config":509},{"href":106,"dataGaName":107,"dataGaLocation":457},{"text":511,"config":512},"アジャイル開発",{"href":513,"dataGaName":514,"dataGaLocation":457},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":516,"config":517},"クラウドトランスフォーメーション",{"href":518,"dataGaName":519,"dataGaLocation":457},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":521,"config":522},"SCM",{"href":118,"dataGaName":523,"dataGaLocation":457},"source code management",{"text":23,"config":525},{"href":111,"dataGaName":526,"dataGaLocation":457},"continuous integration & delivery",{"text":159,"config":528},{"href":161,"dataGaName":529,"dataGaLocation":457},"value stream management",{"text":531,"config":532},"GitOps",{"href":533,"dataGaName":534,"dataGaLocation":457},"/ja-jp/solutions/gitops/","gitops",{"text":172,"config":536},{"href":174,"dataGaName":175,"dataGaLocation":457},{"text":177,"config":538},{"href":179,"dataGaName":180,"dataGaLocation":457},{"text":182,"config":540},{"href":184,"dataGaName":185,"dataGaLocation":457},{"text":542,"config":543},"教育",{"href":544,"dataGaName":545,"dataGaLocation":457},"/ja-jp/solutions/education/","education",{"text":547,"config":548},"金融サービス",{"href":549,"dataGaName":550,"dataGaLocation":457},"/ja-jp/solutions/finance/","financial services",{"title":192,"links":552},[553,555,557,559,562,564,567,569,571,573,575,577,579],{"text":204,"config":554},{"href":206,"dataGaName":207,"dataGaLocation":457},{"text":209,"config":556},{"href":211,"dataGaName":212,"dataGaLocation":457},{"text":214,"config":558},{"href":216,"dataGaName":217,"dataGaLocation":457},{"text":219,"config":560},{"href":221,"dataGaName":561,"dataGaLocation":457},"docs",{"text":242,"config":563},{"href":244,"dataGaName":245},{"text":565,"config":566},"お客様の成功事例",{"href":239,"dataGaLocation":457},{"text":237,"config":568},{"href":239,"dataGaName":240,"dataGaLocation":457},{"text":247,"config":570},{"href":249,"dataGaName":250,"dataGaLocation":457},{"text":255,"config":572},{"href":257,"dataGaName":258,"dataGaLocation":457},{"text":260,"config":574},{"href":262,"dataGaName":263,"dataGaLocation":457},{"text":265,"config":576},{"href":267,"dataGaName":268,"dataGaLocation":457},{"text":270,"config":578},{"href":272,"dataGaName":273,"dataGaLocation":457},{"text":275,"config":580},{"href":277,"dataGaName":278,"dataGaLocation":457},{"title":582,"links":583},"Company",[584,586,588,590,592,594,596,600,605,607,609,611],{"text":300,"config":585},{"href":302,"dataGaName":295,"dataGaLocation":457},{"text":305,"config":587},{"href":307,"dataGaName":308,"dataGaLocation":457},{"text":313,"config":589},{"href":315,"dataGaName":316,"dataGaLocation":457},{"text":318,"config":591},{"href":320,"dataGaName":321,"dataGaLocation":457},{"text":323,"config":593},{"href":325,"dataGaName":326,"dataGaLocation":457},{"text":328,"config":595},{"href":330,"dataGaName":331,"dataGaLocation":457},{"text":597,"config":598},"Sustainability",{"href":599,"dataGaName":597,"dataGaLocation":457},"/sustainability/",{"text":601,"config":602},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":603,"dataGaName":604,"dataGaLocation":457},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":333,"config":606},{"href":335,"dataGaName":336,"dataGaLocation":457},{"text":343,"config":608},{"href":345,"dataGaName":346,"dataGaLocation":457},{"text":348,"config":610},{"href":350,"dataGaName":351,"dataGaLocation":457},{"text":612,"config":613},"現代奴隷制の透明性に関する声明",{"href":614,"dataGaName":615,"dataGaLocation":457},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":54,"links":617},[618,620,625,627,632,637,642],{"text":54,"config":619},{"href":56,"dataGaName":57,"dataGaLocation":457},{"text":621,"config":622},"サポートを受ける",{"href":623,"dataGaName":624,"dataGaLocation":457},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":366,"config":626},{"href":368,"dataGaName":369,"dataGaLocation":457},{"text":628,"config":629},"ステータス",{"href":630,"dataGaName":631,"dataGaLocation":457},"https://status.gitlab.com/","status",{"text":633,"config":634},"利用規約",{"href":635,"dataGaName":636,"dataGaLocation":457},"/terms/","terms of use",{"text":638,"config":639},"プライバシーに関する声明",{"href":640,"dataGaName":641,"dataGaLocation":457},"/ja-jp/privacy/","privacy statement",{"text":643,"config":644},"Cookieの設定",{"dataGaName":645,"dataGaLocation":457,"id":646,"isOneTrustButton":29},"cookie preferences","ot-sdk-btn",{"items":648},[649,651,653],{"text":633,"config":650},{"href":635,"dataGaName":636,"dataGaLocation":457},{"text":638,"config":652},{"href":640,"dataGaName":641,"dataGaLocation":457},{"text":643,"config":654},{"dataGaName":645,"dataGaLocation":457,"id":646,"isOneTrustButton":29},[656],{"id":657,"title":18,"body":8,"config":658,"content":660,"description":8,"extension":27,"meta":664,"navigation":29,"path":665,"seo":666,"stem":667,"__hash__":668},"blogAuthors/en-us/blog/authors/cesar-saavedra.yml",{"template":659},"BlogAuthor",{"name":18,"config":661},{"headshot":662,"ctfId":663},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659600/Blog/Author%20Headshots/csaavedra1-headshot.jpg","csaavedra1",{},"/en-us/blog/authors/cesar-saavedra",{},"en-us/blog/authors/cesar-saavedra","SMqRf-z0W5m5GROz_dXGjmuIb3YaOwm_n_RfeK16GcA",[670,686,700],{"content":671,"config":684},{"title":672,"description":673,"authors":674,"body":677,"heroImage":678,"date":679,"category":9,"tags":680},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[675,676],"Regnard Raquedan","Rajesh Agadi","GitLab Duo Agent Platformは、組織がソフトウェアをビルド、セキュア化、そして提供する方法を再定義しつつあります。2026年1月の一般提供開始以来、このプラットフォームはソフトウェア開発ライフサイクルのあらゆる段階にエージェント型AIをもたらしています。Duo Agent Platformは、ソフトウェアチームと専門エージェントが連携して計画、コーディング、レビュー、セキュリティ脆弱性の修正を行う、インテリジェントなオーケストレーションレイヤーです。\n\nこのパートナーシップを通じて、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo-agent-platform/)はVertex AI on Google Cloudとの統合によりソフトウェア開発のオーケストレーションとライフサイクルコンテキストを自動化します。Vertex AIはエージェント呼び出しのモデル層を担い、ソフトウェアチームはすでに定義済みのGoogle Cloudポリシーに従って推論を実行しながら、イシュー、マージリクエスト、パイプライン、セキュリティワークフローの作業を継続できます。\n\nGoogle CloudのVertex AIモデルの進化により、Google CloudユーザーはGitLab Duo Agent Platformをさらに活用できるようになっています。GitLabではAIを活用したDevSecOpsコントロールプレーンを、Vertex AIの急速に進化するAIインフラ基盤と、Duo Agent Platformの柔軟なデプロイ・統合オプションが支えています。この組み合わせにより、エンタープライズスケールで動作する、より高度でガバナンスの効いたエージェント型ワークフローが実現します。\n\n![Google CloudのVertex AIと連携してエージェント型ソフトウェア開発とガバナンスを備えたAIワークフローを実現するGitLab Duo Agent Platformの概念図](https://res.cloudinary.com/about-gitlab-com/image/upload/v1776165990/b7jlux9kydafncwy8spc.png)\n\n## 開発ライフサイクル全体にわたるエージェント\n\n多くのAIツールは、コードをより速く生成するという単一のタスクに集中しています。GitLab Duo Agent Platformはそれをさらに超え、計画からセキュリティレビュー、リリースまで、ソフトウェア開発ライフサイクル（SDLC）全体にわたってAIエージェントをオーケストレーションします。これは、多数のプロジェクトとリリースを抱える多くのチームを対象としています。このスケールにおいて、AIコーディングアシスタントは継続的なイノベーションに必要ではありますが、それだけでは十分ではありません。\n\n単一目的のコーディングアシスタントがプロジェクトの全体像を把握することはほとんどありません。バックログの状況、オープン中のマージリクエスト、失敗したジョブ、セキュリティの検出結果はGitLabに蓄積されていますが、コーディングアシスタント内の別のチャットウィンドウはSDLCのその全体像を引き継ぐことができません。このギャップは、手動によるハンドオフ、コンテキストを持たないAIへの重複した説明、そして一つのシステムとして設計されたわけではないツール間のデータフローをマッピングしようとするガバナンスチームという形で表れます。\n\nGitLab Duo Agent Platformは、エンジニアが日々使用するオブジェクト上でエージェントとフローを動作させることで、このギャップを埋めます。Google Cloudを推論の基盤として選択している場合、Vertex AIはエージェントが呼び出すモデルとサービスを提供し、GitLabのAI Gatewayがアクセスを仲介することで管理者はどこに何が接続されているかを明確に把握できます。例えば、GitLab Duo Planner Agentはバックログを分析し、エピックを構造化タスクに分解し、優先順位付けフレームワークを適用することで、次に何を構築するかをチームが判断するのを支援します。Security Analyst Agentは脆弱性をトリアージし、平易な言葉でリスクを説明し、優先順位に従って修正を推奨します。ビルトインのフローはこれらのエージェントをエンドツーエンドのプロセスへと連結し、開発者がすべてのハンドオフを手動で管理する必要をなくします。\n\nGitLab Duo Agent PlatformのAgentic Chatは、開発者にとって統合された体験を提供します。自然言語でクエリを投げかけることで、プロジェクトのイシュー、マージリクエスト、パイプライン、セキュリティの検出結果、コードベースといった全体像を踏まえた多段階の推論に基づくコンテキスト対応の回答が得られます。GitLabがSDLCの統一データモデルを持つ記録システムとして機能しているため、GitLab Duoエージェントは、スタンドアロンのツール固有AIアシスタントでは到達できないライフサイクルコンテキストをもとに動作します。\n\n### Vertex AIによる能力の拡張\n\nGitLab Duo Agent Platformはモデルフレキシブルな設計となっており、タスクごとに最適なパフォーマンスを発揮するモデルへと異なる機能をルーティングします。このアーキテクチャの選択はGoogle Cloud上で効果を発揮します。Vertex AIはファウンデーションモデルと関連サービスのマネージド環境として機能し、幅広いモデルエコシステムとマネージドインフラを提供することでプラットフォームの能力をさらに引き出します。\n\nVertex AIを通じて利用できる最新世代のAIモデルは、以前のバージョンと比較して推論、ツール使用、長文コンテキスト理解において大幅な改善をもたらします。これらはまさに、GitLabのエージェントが大規模で複雑なコードベースを持つ多くのプロジェクトとチームにわたって依拠するプロパティです。基盤モデルにおけるより長いコンテキストウィンドウと豊富なツール連携により、エージェントが一度のパスで達成できることが広がり、深いバックログ分析やモノレポのセキュリティレビューといったワークロードに特に重要な意味を持ちます。\n\n幅広いファウンデーションモデルへのアクセスを提供する[Vertex AI Model Garden](https://cloud.google.com/model-garden)により、ベンダーロックインではなく、パフォーマンス、コスト、規制要件に基づいてこれらの選択を行う自由がお客様に与えられます。\n\nさらに、GitLabのお客様はDuo Agent PlatformにBYOM（Bring Your Own Model）を利用することで、承認済みのプロバイダーとゲートウェイをセキュリティモデルが期待する場所に配置できます。[18.9リリースにおけるセルフホスト型Duo Agent PlatformとBYOMの解説](https://about.gitlab.com/blog/agentic-ai-enterprise-control-self-hosted-duo-agent-platform-and-byom/)では、その仕組みが詳しく説明されています。このデプロイオプションにより、お客様はソフトウェア開発プロセスに合わせてカスタマイズできるより広いモデルの選択肢へのアクセスを得られます。適切なワークフローに、適切なモデルを、適切なガードレールとともに。\n\nGitLabがVertex AIを基盤として選択したのは、エンタープライズグレードの信頼性と比類ないモデルの幅広さへのニーズによるものです。Vertex AIとModel Gardenは、LLMホスティングの重労働を完全に抽象化し、迅速なバージョン提供、堅牢なセキュリティ、厳格なガバナンスをシームレスに統合に組み込んでいます。Geminiモデルの提供にとどまらず、Vertex AIはサードパーティおよびオープンソースモデルの豊富なカタログへのグローバルかつ低レイテンシのアクセスを提供します。\n\nGoogleCloudの業界をリードするデータプライバシーとモデル保護へのアプローチと組み合わせることで、Vertex AIはGitLabの次世代デベロッパーエクスペリエンスを支える明確な選択肢として浮上しました。\n\nVertex AI Model GardenをバックエンドへIntegrateすることで、GitLabはDevSecOpsプラットフォームを強化しながら、その複雑さをユーザーに負わせることがありません。開発チームは基盤となるLLMの評価や管理に煩わされることなく、アプリケーション構築のための効率的なAI支援ワークフローを体験できます。\n\nGitLabはクラウドオーケストレーションを完全に抽象化し、開発者が優れたコードの記述に集中できる環境を提供する一方、Vertex AIはその支援となる機能を動かしています。\n\n## Google Cloudをご利用のお客様への意義\n\nGitLab Duo Agent Platformはすでに、一つのガバナンスの効いた記録システムの中でソフトウェアライフサイクル全体にわたって動作するAIエージェントを提供しています。Google Cloud上では、Vertex AIがモデルとインフラ層を継続的に進化させながら、迅速なイノベーションを可能にします。\n\nGoogle Cloudをご利用のお客様にとって、この統合は厳格なエンタープライズガバナンスを維持しながらソフトウェア提供を効率化することを意味します。プラットフォームエンジニアリンググループにとっては、クライアントサイドのツールを数十種類カタログ化するのではなく、GitLab内の提案、分析、修正を担うVertex AI連携モデルを標準化することを意味します。セキュリティプログラムは、エージェントが開発者がすでに検出結果をトリアージしている場所と同じ場所で修正を提案・検証することで、頭の切り替えを減らし、管理されていないチャネルへ流出していた作業を削減できます。\n\nクラウドの費用対効果とポリシーの観点から、GitLab内からVertexへのエージェント推論をまとめることで、Google Cloud上ですでに運用している契約や統制に近い形で使用量を管理でき、調達プロセスを迂回する重複支出やシャドーパスを回避するのに役立ちます。\n\nVertex AIはGitLab Duo Agent Platformの基盤インフラプロバイダーであるため、組織はAIツールチェーンの断片化を管理するオーバーヘッドとリスクなしに、デベロッパーの生産性を大幅に向上させることができます。チームは単一のセキュアな記録システムの中で足並みを揃え、アプリケーションをより速くビルドし、確信を持ってリリースできるようになります。\n\nGitLabとGoogle Cloudのコラボレーションは2018年から続いています。今日、これはAIの実験から、Google Cloud上での完全にガバナンスが効いたエージェント型ソフトウェア開発へと移行する組織にとって、最も包括的なパスの一つとなっています。GitLabがエージェントオーケストレーションとデベロッパーコンテキストを拡充し、Vertex AIがモデル能力とエージェントインフラの限界を押し広げていく中で、共同顧客にとっての価値は今後も成長し続けるでしょう。\n\n> [GitLab Duo Agent Platformの無料トライアルを開始](https://about.gitlab.com/free-trial/)して、Google Cloud上でのGitLabとVertex AIのパワーをぜひご体験ください。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663121/Blog/Hero%20Images/LogoLockupPlusLight.png","2026-04-14",[24,278,681,682,683],"google","news","product",{"featured":29,"template":13,"slug":685},"gitlab-and-vertex-ai-on-google-cloud",{"content":687,"config":698},{"heroImage":688,"body":689,"authors":690,"updatedDate":692,"date":693,"title":694,"tags":695,"description":697,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643639/sapu29gmlgtwvhggmj6k.png","ソフトウェア開発の管理では、複数のツールを同時に扱うことが求められます。Jiraで課題を追跡し、IDEでコードを記述し、GitLabでコラボレーションするといった具合です。こうしたプラットフォーム間のコンテキストの切り替えは集中力を妨げ、デリバリーを遅らせます。\n\nGitLab Duo Agent Platformの[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)サポートにより、Jiraをはじめ、MCPに対応するあらゆるツールを、AIを活用した開発環境に直接接続できるようになりました。課題の照会、チケットの更新、ワークフローの同期など、すべてを自然言語で、IDEを離れることなく実行できます。\n\n## この記事で学べること\n\nこのチュートリアルでは、以下の内容を解説します。\n\n* **Jira/Atlassian OAuthアプリケーションのセットアップ** — セキュアな認証を設定します\n* **GitLab Duo Agent Platformの設定** — GitLab Duo Agent PlatformをMCPクライアントとして設定します\n* **3つの実践的なユースケース** — 実際のワークフローのデモをご覧ください\n\n## 前提条件\n\n開始する前に、以下の要件を満たしていることをご確認ください。\n\n| 要件 | 詳細 |\n| ---- | ----- |\n| **GitLabインスタンス** | Duo Agent Platformが有効なGitLab 18.8以降 |\n| **Jiraアカウント** | OAuthアプリケーションを作成できる管理者権限を持つJira Cloudインスタンス |\n| **IDE** | GitLab Workflow拡張機能がインストールされたVisual Studio Code |\n| **MCPサポート** | GitLabでMCPサポートが有効化済み |\n\n\n## アーキテクチャの概要\n\nGitLab Duo Agent Platformは**MCPクライアント**として機能し、Atlassian MCPサーバーに接続してJiraのプロジェクト管理データにアクセスします。Atlassian MCPサーバーは認証を処理し、自然言語のリクエストをAPI呼び出しに変換して、構造化されたデータをGitLab Duo Agent Platformに返します。このプロセス全体を通じて、セキュリティと監査管理が維持されます。\n\n## パート1：Jira OAuthアプリケーションの設定\n\nGitLab Duo Agent PlatformをJiraインスタンスに安全に接続するには、Atlassian Developer ConsoleでOAuth 2.0アプリケーションを作成する必要があります。これにより、GitLabのMCPサーバーにJiraデータへの認可されたアクセス権が付与されます。\n\n### セットアップ手順\n\n手動で設定する場合は、以下の手順に従ってください。\n\n1. **Atlassian Developer Consoleへのアクセス**\n\n   * [developer.atlassian.com/console/myapps](https://developer.atlassian.com/console/myapps)にアクセスします。\n\n   * Atlassianアカウントでサインインします。\n\n2. **新しいOAuth 2.0アプリの作成**\n\n   * 「**Create**」→「**OAuth 2.0 integration**」をクリックします。\n\n   * アプリ名を入力します（例：「gitlab-dap-mcp」）。\n\n   * 利用規約に同意し、「**Create**」をクリックします。\n\n3. **権限の設定**\n\n   * 左サイドバーの「**Permissions**」に移動します。\n\n   * 「**Jira API**」を追加し、以下のスコープを設定します。\n\n     * `read:jira-work` — 課題、プロジェクト、ボードの読み取り\n\n     * `write:jira-work` — 課題の作成と更新\n\n     * `read:jira-user` — ユーザー情報の読み取り\n\n4. **認可の設定**\n\n   * 左サイドバーの「**Authorization**」に移動します。\n\n   * お使いの環境のコールバックURLを追加します（`https://gitlab.com/oauth/callback`）。\n\n   * 変更を保存します。\n\n5. **認証情報の取得**\n\n   * 「**Settings**」に移動します。\n\n   * 「**Client ID**」と「**Client Secret**」をコピーします。\n\n   * これらの認証情報はMCP設定に必要なため、安全な場所に保管してください。\n\n\n### インタラクティブウォークスルー：Jira OAuthのセットアップ\n\n以下の画像をクリックして開始してください。\n\n\n[![Jira OAuthセットアップツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772644850/wnzfoq43nkkfmgdqldmr.png)](https://gitlab.navattic.com/jira-oauth-setup)\n\n\n## パート2：GitLab Duo Agent PlatformのMCPクライアントの設定\n\nOAuth認証情報の準備ができたら、GitLab Duo Agent PlatformをAtlassian MCPサーバーに接続するための設定を行います。\n\n### MCP設定ファイルの作成\n\nGitLabプロジェクトの `.gitlab/duo/mcp.json` にMCP設定ファイルを作成します。\n\n\n```json\n{\n  \"mcpServers\": {\n    \"atlassian\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.atlassian.com/v1/mcp\",\n      \"auth\": {\n        \"type\": \"oauth2\",\n        \"clientId\": \"YOUR_CLIENT_ID\",\n        \"clientSecret\": \"YOUR_CLIENT_SECRET\",\n        \"authorizationUrl\": \"https://auth.atlassian.com/oauth/authorize\",\n        \"tokenUrl\": \"https://auth.atlassian.com/oauth/token\"\n      },\n      \"approvedTools\": true\n    }\n  }\n}\n```\n\n`YOUR_CLIENT_ID` と `YOUR_CLIENT_SECRET` は、パート1で生成した認証情報に置き換えてください。\n\n### GitLabでMCPを有効化\n\n1. 「**グループ設定**」→「**GitLab Duo**」→「**Configuration**」に移動します。\n2. 「Allow external MCP tools」にチェックが入っていることを確認します。\n\n### 接続の確認\n\nVS Codeでプロジェクトを開いてGitLab Duo Agent Platformのチャットで次のように入力してください。\n\n```text\nWhat MCP tools do you have access to?\n```\n\n次に、以下のように入力します。\n\n```text\nTest the MCP JIRA configuration in this project\n```\n\nこの時点で、IDEからAtlassian MCPウェブサイトにリダイレクトされ、アクセスの承認を求められます。\n\n![Atlassian MCPウェブサイトへのリダイレクト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/z5acqjgguh0damnnde9g.png \"MCPのAtlassianウェブサイトへのリダイレクト\")\n\n\u003Cbr>\u003C/br>\n\n![アクセスの承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/rwowamm8nsubhpixtn3i.png \"アクセスの承認\")\n\n\u003Cbr>\u003C/br>\n\n![JIRAインスタンスを選択して承認](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643461/chuzqd0jeptfwvoj7wjr.png \"JIRAインスタンスを選択して承認\")\n\n\u003Cbr>\u003C/br>\n\n![成功！](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/bsgti5iste2bzck19o5y.png \"成功！\")\n\n\u003Cbr>\u003C/br>\n\n### MCPダッシュボードでの確認\n\nGitLabには、IDEに組み込みの**MCPダッシュボード**も用意されています。\n\nVS CodeまたはVSCodiumで、コマンドパレット（macOSでは `Cmd+Shift+P`、Windows/Linuxでは `Ctrl+Shift+P`）を開いて「**GitLab: Show MCP Dashboard**」を検索してください。ダッシュボードは新しいエディタータブで表示され、以下の情報を確認できます。\n\n* 設定済みの各MCPサーバーの**接続ステータス**\n* サーバーが公開している**利用可能なツール**（例：`jira_get_issue`、`jira_create_issue`）\n* **サーバーログ** — リアルタイムで呼び出されているツールを確認可能\n\n![MCPサーバーのダッシュボードとステータス](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/mmvdfchucacsydivowvn.png \"MCPサーバーのダッシュボードとステータス\")\n\n\u003Cbr>\u003C/br>\n\n![サーバーの詳細と権限](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643462/tcocgdvovp2dl42pvfn8.png \"サーバーの詳細と権限\")\n\n\u003Cbr>\u003C/br>\n\n\n![MCPサーバーログ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1772643466/mougvqqk1bozchaufsci.png \"MCPサーバーログ\")\n\n\u003Cbr>\u003C/br>\n\n### インタラクティブウォークスルー：MCPのテスト\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005495?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Testing MCP\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パート3：実践的なユースケース\n\n統合の設定が完了したら、JiraをGitLab Duo Agent Platformへの接続を実現できる3つの実践的なワークフローを見ていきましょう。\n\n### プランニングアシスタント\n\n**シナリオ：** スプリントプランニングの準備として、バックログをすばやく評価し、優先事項を把握し、ブロッカーを特定する必要があります。\n\nこのデモでは以下の操作を紹介します。\n\n* バックログの照会\n* 未割り当ての高優先度課題の特定\n* AIによるスプリント推奨の取得\n\n#### プロンプト例\n\nGitLab Duo Agent Platformのチャットで以下のプロンプトをお試しください。\n\n```text\nList all the unassigned issues in JIRA for project GITLAB\n```\n\n```text\nSuggest the two top issues to prioritize and summarize them. Assign them to me.\n```\n\n### インタラクティブウォークスルー：プロジェクトプランニング\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005462?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Project Planning\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player. js\">\u003C/script>\n\n### コードからの課題トリアージと作成\n\n**シナリオ：** コードレビュー中にバグを発見し、IDEを離れることなく、関連するコンテキストに沿ってJiraの課題を作成したい場合です。\n\nこのデモでは以下の手順を紹介します。\n\n* コーディング中のバグの特定\n* 自然言語を使ったJira課題の詳細な作成\n* コードのコンテキストに沿った課題フィールドの自動入力\n* 現在のブランチへの課題のリンク\n\n#### プロンプト例\n\n```text\nSearch in JIRA for a bug related to: Null pointer exception in PaymentService.processRefund().\nIf it does not exist create it with all the context needed from the code. Find possible blockers that this bug may cause.\n```\n\n```text\nCreate a new branch called issue-gitlab-18, checkout, and link it to the issue we just created. Assign the JIRA issue to me and mark it as in-progress.\n```\n\n### インタラクティブウォークスルー：バグレビューとタスク自動化\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005368?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Bug Review\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### クロスシステムのインシデント調査\n\n**シナリオ：** 本番環境でインシデントが発生し、Jira（インシデントチケット）、GitLabプロジェクト管理、コードベース、マージリクエストからの情報を照合して根本原因を特定する必要があります。\n\nこのデモでは以下を実演します。\n\n* Jiraからのインシデント詳細の取得\n* GitLabの最近のマージリクエストとの照合\n* 関連する可能性のあるコード変更の特定\n* インシデントタイムラインの生成\n* 修正計画の設計とGitLabのワークアイテムとしての作成\n\n#### プロンプト例\n\n```text\n\"We have a production incident INC-1 about checkout failures. Can you help me investigate with all available context?\"\n```\n\n```text\nCreate a timeline of events for incident INC-1 including related Jira issues and recent deployments\n```\n\n```text\nPropose a remediation plan\n```\n\n### インタラクティブウォークスルー：クロスシステムのトラブルシューティングと修正\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1170005413?badge=0&amp;autopause=0&amp; player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Cross System Investigation\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## トラブルシューティング\n\nよくあるセットアップの問題と解決策を以下にまとめます。\n\n| 問題 | 解決策 |\n| ----- | ----- |\n| 「MCP server not found」 | `mcp.json` ファイルが正しい場所にあり、適切にフォーマットされていることを確認してください。 |\n| 「Authentication failed」 | OAuth認証情報を再確認し、Atlassianでスコープが正しく設定されていることを確認してください。 |\n| 「No Jira tools available」 | `mcp.json` を更新後にVS Codeを再起動し、GitLabでMCPが有効になっていることを確認してください。 |\n| 「Connection timeout」 | `mcp.atlassian.com` へのネットワーク接続を確認してください。 |\n\n\u003Cbr/> 詳細なトラブルシューティングについては、[GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)をご参照ください。\n\n\n## セキュリティに関する考慮事項\n\nJiraをGitLab Duo Agent Platformと統合する際は、以下の点にご注意ください。\n\n* **OAuthトークン** — 認証情報を安全に管理してください。\n* **最小権限の原則** — Jiraスコープは必要最小限のみ付与してください。\n* **トークンのローテーション** — セキュリティ管理の一環として、OAuth認証情報を定期的にローテーションしてください。\n\n\n## まとめ\n\nMCPを通じてGitLab Duo Agent Platformをさまざまなツールに接続することで、開発ライフサイクルとのインタラクションが大きく変わります。この記事では、以下の方法を学びました。\n\n* **自然言語による課題の照会** — バックログ、スプリント、インシデントについて自然言語で質問できます。\n* **DevSecOps環境全体での課題の作成と更新** — IDEを離れることなくバグを報告し、チケットを更新できます。\n* **システム間の情報照合** — JiraのデータをGitLabのプロジェクト管理、マージリクエスト、パイプラインと組み合わせることで、全体的な可視性が得られます。\n* **コンテキスト切り替えの削減** — プロジェクト管理とのつながりを維持しながら、コードに集中できます。\n\nこの統合は、MCPの可能性を体現するものです。AIを通じてツールへの標準化されたセキュアなアクセスを提供し、ガバナンスやセキュリティを損なうことなく、デベロッパーがより効率的に作業できる環境を実現します。\n\n\n## 関連リソース\n\n* [Model Context Protocol統合](https://about.gitlab.com/ja-jp/blog/duo-agent-platform-with-mcp/)\n\n* [Model Context Protocolとは](https://about.gitlab.com/topics/ai/model-context-protocol/)\n\n* [エージェント型AIに関するガイドとリソース](https://about.gitlab.com/ja-jp/blog/agentic-ai-guides-and-resources/)\n\n* [GitLab MCPクライアントのドキュメント](https://docs.gitlab.com/ja-jp/user/gitlab_duo/model_context_protocol/mcp_clients/)\n\n* [GitLab Duo Agent Platformを始める：完全ガイド](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-complete-getting-started-guide/)",[691],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[683,696],"tutorial","MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":12,"template":13,"slug":699},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"content":701,"config":712},{"heroImage":702,"body":703,"authors":704,"updatedDate":706,"date":707,"title":708,"tags":709,"description":711,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772632341/duj8vaznbhtyxxhodb17.png","AIを活用したコーディングツールにより、開発者はこれまで以上に速くコードを生成できるようになりました。では、なぜチーム全体の *リリース速度* は上がらないのでしょうか？\n\nそれは、コーディングがソフトウェア提供ライフサイクルの20%に過ぎず、残りの80%がボトルネックになっているからです。コードレビューの滞留、セキュリティスキャンの遅れ、ドキュメントの陳腐化、手動の調整作業の増加が、チームの速度を妨げています。\n\n嬉しいことに、個人のコーディングを加速する同じAI機能を使って、チームレベルの遅延も解消できます。コーディングフェーズだけでなく、ソフトウェアライフサイクル全体にAIを適用することが重要です。\n\n以下は、[GitLab Duo Agent Platformプロンプトライブラリ](https://about.gitlab.com/gitlab-duo/prompt-library/)から厳選した、すぐに使える10のプロンプトです。個人の生産性が向上する一方でチームプロセスの改善が追いついていないときに生じる、よくある障害を乗り越えるために役立ちます。\n\n## コードレビューをボトルネックから加速装置へ\n\nAIの支援により開発者はマージリクエストをより速く作成できるようになりましたが、コードレビューのサイクルが数時間から数日に伸びるにつれ、人間のレビュアーはすぐに手に負えなくなります。AIは定型的なレビュー作業を担うことで、レビュアーが基本的な論理エラーやAPI契約違反の発見に時間を取られることなく、アーキテクチャやビジネスロジックに集中できるようにします。\n\n### マージリクエストの論理エラーをレビューする\n\n**複雑さ**: 初級\n\n**カテゴリ**: コードレビュー\n\n**ライブラリのプロンプト**:\n\n```text\nこのMRの論理エラー、エッジケース、潜在的なバグをレビューしてください: [MRのURLまたはコードを貼り付け]\n```\n\n**効果**: 自動リンターは構文エラーを検出しますが、論理エラーの発見にはコードの意図を理解する必要があります。このプロンプトは、人間のレビュアーがコードを確認する前にバグを検出し、複数回のレビューサイクルを多くの場合1回の承認で完結させます。\n\n### マージリクエストの破壊的変更を特定する\n\n**複雑さ**: 初級\n\n**カテゴリ**: コードレビュー\n\n**ライブラリのプロンプト**:\n\n```text\nこのMRに破壊的変更はありますか？\n\nChanges:\n[code diffを貼り付け]\n\n以下を確認してください：\n1. APIシグネチャの変更\n2. publicメソッドの削除またはリネーム\n3. 戻り値の型の変更\n4. データベーススキーマの変更\n5. 設定の破壊的変更\n```\n\n**効果**: デプロイ中に破壊的変更が発見されると、ロールバックやインシデントにつながります。このプロンプトにより、その発見をマージリクエストの段階に前倒しできるため、修正がより迅速かつ低コストになります。\n\n## セキュリティをシフトレフトしながら速度を落とさないには？\n\nセキュリティスキャンは数百件もの検出結果を生成します。開発者がデプロイの承認を待つ間、セキュリティチームはそれぞれを手動でトリアージしています。検出結果の多くはフォルスポジティブや低リスクの問題ですが、実際の脅威を特定するには専門知識と時間が必要です。AIは実際の悪用可能性に基づいて検出結果を優先順位付けし、一般的な脆弱性を自動修復することで、セキュリティチームが本当に重要な脅威に集中できるようにします。\n\n### セキュリティスキャン結果を分析する\n\n**複雑さ**: 中級\n\n**カテゴリ**: セキュリティ\n\n**エージェント**: Duo Security Analyst\n\n**ライブラリのプロンプト**:\n\n```text\n@security_analyst このセキュリティスキャン結果を分析してください:\n\n[スキャン結果を貼り付け]\n\n各検出結果について:\n1. 実際のリスクかフォルスポジティブかを評価する\n2. 脆弱性を説明する\n3. 修復方法を提案する\n4. 深刻度で優先順位をつける\n```\n\n**効果**: セキュリティスキャンの検出結果の多くはフォルスポジティブや低リスクの問題です。このプロンプトはセキュリティチームが本当に重要な検出結果に集中できるようにし、修復にかかる時間を数週間から数日に短縮します。\n\n### コードのセキュリティ問題をレビューする\n\n**複雑さ**: 中級\n\n**カテゴリ**: セキュリティ\n\n**エージェント**: Duo Security Analyst\n\n**ライブラリのプロンプト**:\n\n```text\n@security_analyst このコードのセキュリティ問題をレビューしてください:\n\n[コードを貼り付け]\n\n以下を確認してください：\n1. インジェクション脆弱性\n2. 認証・認可の欠陥\n3. データ漏洩リスク\n4. 安全でない依存関係\n5. 暗号化の問題\n```\n\n**効果**: 従来のセキュリティレビューはコードが書かれた後に行われます。このプロンプトにより、開発者はマージリクエストを作成する前にセキュリティ問題を発見・修正でき、デプロイを遅らせる往復のやり取りを解消します。\n\n## コードの変更に合わせてドキュメントを最新に保つには？\n\nコードはドキュメントよりも速く変化します。ドキュメントが古かったり不足していたりするため、新しい開発者のオンボーディングには数週間かかります。ドキュメントの重要性はチーム全員が理解していますが、締め切りが近づくと常に後回しになります。標準ワークフローの一部としてドキュメントの生成と更新を自動化することで、手動作業を増やすことなくドキュメントを最新の状態に保てます。\n\n### マージリクエストからリリースノートを生成する\n\n**複雑さ**: 初級\n\n**カテゴリ**: ドキュメント\n\n**ライブラリのプロンプト**:\n\n```text\nマージ済みのこれらのMRのリリースノートを生成してください:\n[MRのURL一覧またはタイトルを貼り付け]\n\n以下のカテゴリでグループ化してください:\n1. 新機能\n2. バグ修正\n3. パフォーマンス改善\n4. 破壊的変更\n5. 非推奨事項\n```\n\n**効果**: リリースノートを手動でまとめるには数時間かかり、誤りや漏れが生じることもあります。自動生成により、リリースプロセスに負担をかけることなく、すべてのリリースに包括的なノートが揃います。\n\n### コード変更後にドキュメントを更新する\n\n**複雑さ**: 初級\n\n**カテゴリ**: ドキュメント\n\n**ライブラリのプロンプト**:\n\n```text\nこのコードを変更しました:\n\n[コード変更内容を貼り付け]\n\nどのドキュメントを更新する必要がありますか？以下を確認してください:\n1. READMEファイル\n2. APIドキュメント\n3. アーキテクチャ図\n4. オンボーディングガイド\n```\n\n**効果**: ドキュメントの乖離は、コード変更後にどのドキュメントを更新すべきかをチームが忘れることで起きます。このプロンプトにより、ドキュメントのメンテナンスが後回しにされる別タスクではなく、開発ワークフローの一部になります。\n\n## 計画の複雑さを分解するには？\n\n大規模な機能は計画段階で行き詰まりがちです。チームは作業範囲の定義と依存関係の特定のために何週間も会議を重ねます。複雑さに圧倒され、どこから始めればよいかわからなくなります。AIは複雑な作業を具体的で実装可能なタスクに体系的に分解し、明確な依存関係と受け入れ基準を設定することで、何週間もの計画を集中した実装へと変えます。\n\n### エピックをイシューに分解する\n\n**複雑さ**: 中級\n\n**カテゴリ**: ドキュメント\n\n**エージェント**: Duo Planner\n\n**ライブラリのプロンプト**:\n\n```text\nこのエピックを実装可能なイシューに分解してください：\n\n[エピックの説明]\n\n以下を考慮してください：\n1. 技術的な依存関係\n2. 適切なイシューのサイズ\n3. 明確な受け入れ基準\n4. 論理的な実装順序\n```\n\n**効果**: このプロンプトにより、1週間分の計画会議が30分のAI支援による分解とチームレビューに変わります。チームはより明確な方向性を持って、より早く実装を開始できます。\n\n## 工数を増やさずにテストカバレッジを拡大するには？\n\n開発者はコードをより速く書けるようになりましたが、テストが追いつかないとカバレッジが低下してバグが見逃されます。包括的なテストを手動で書くには時間がかかり、締め切りのプレッシャーの下でエッジケースを見落とすことも多くあります。テストを自動生成することで、開発者はゼロから書く代わりにレビューと改善に集中でき、速度を犠牲にすることなく品質を維持できます。\n\n### ユニットテストを生成する\n\n**複雑さ**: 初級\n\n**カテゴリ**: テスト\n\n**ライブラリのプロンプト**:\n\n```text\nこの関数のユニットテストを生成してください：\n\n[関数を貼り付け]\n\n以下のテストを含めてください：\n1. 正常系\n2. エッジケース\n3. エラー条件\n4. 境界値\n5. 不正な入力\n```\n\n**効果**: テストを手動で書くには時間がかかり、エッジケースが見落とされることもあります。このプロンプトは数秒で網羅的なテストスイートを生成し、開発者はゼロから書く代わりにレビューと調整に集中できます。\n\n### テストカバレッジのギャップをレビューする\n\n**複雑さ**: 初級\n\n**カテゴリ**: テスト\n\n**ライブラリのプロンプト**:\n\n```text\n[モジュール/コンポーネント]のテストカバレッジを分析してください：\n\n現在のカバレッジ：[パーセンテージ]\n\n以下を特定してください：\n1. テストされていない関数・メソッド\n2. カバーされていないエッジケース\n3. 不足しているエラーシナリオのテスト\n4. テストのない統合ポイント\n5. 次にテストすべき優先領域\n```\n\n**効果**: このプロンプトは、本番インシデントを引き起こす前にテストスイートのブラインドスポットを明らかにします。チームはより重要な箇所から体系的にカバレッジを改善できます。\n\n## デバッグ時の平均解決時間を短縮するには？\n\n本番インシデントの診断には数時間かかります。顧客がダウンタイムを経験する中、開発者はログやスタックトレースを調べ続けます。デバッグの1分1分が、生産性と潜在的な収益の損失につながります。AIは複雑なエラーメッセージを解析して具体的な修正案を提示することで根本原因分析を加速し、診断時間を数時間から数分に短縮します。\n\n### 失敗したパイプラインをデバッグする\n\n**複雑さ**: 初級\n\n**カテゴリ**: デバッグ\n\n**ライブラリのプロンプト**:\n\n```text\nこのパイプラインが失敗しています：\n\nジョブ：[ジョブ名]\nステージ：[ステージ]\nエラー：[エラーメッセージ/ログを貼り付け]\n\n\n以下を助けてください:\n1. 根本原因を特定する\n2. 修正方法を提案する\n3. なぜ失敗し始めたかを説明する\n4. 同様の問題を防ぐ\n```\n\n**効果**: CI/CDの失敗はチーム全体をブロックします。このプロンプトは、開発者が通常15〜30分かけて調査する問題を数秒で診断し、デプロイの速度を維持します。\n\n## 個人の成果からチームの加速へ\n\nこれらのプロンプトは、チームがソフトウェア提供にAIを活用する方法の転換を示しています。個人の開発者生産性だけに注目するのではなく、チームの速度を実際に制約している調整・品質・ナレッジ共有の課題に対処します。\n\n[プロンプトライブラリ](https://about.gitlab.com/gitlab-duo/prompt-library/)には、計画、開発、セキュリティ、テスト、デプロイ、運用といったソフトウェアライフサイクルの全ステージにわたる100以上のプロンプトが収録されています。各プロンプトは複雑さのレベル（初級・中級・上級）でタグ付けされ、ユースケース別に分類されているため、チームに合ったスタート地点を簡単に見つけられます。\n\nまずはチームの最も緊急な課題に対応する「初級」タグのプロンプトから始めましょう。チームが自信をつけるにつれ、より高度なワークフローを実現する中級・上級のプロンプトへと探求の幅を広げてください。目標は単に速いコーディングではなく、計画から本番まで、より速く、より安全で、より高品質なソフトウェア提供の実現です。",[705],"Chandler Gibbons","2026-03-13","2026-03-04","チームのソフトウェア提供を加速する10のAIプロンプト",[24,710],"DevOps platform","ソフトウェアライフサイクル全体をカバーするすぐに使えるAIプロンプトで、レビューの滞留、セキュリティの遅延、調整の手間を解消します。",{"featured":12,"template":13,"slug":713},"10-ai-prompts-to-speed-your-teams-software-delivery",{"promotions":715},[716,729,740,752],{"id":717,"categories":718,"header":719,"text":720,"button":721,"image":726},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":722,"config":723},"Get your AI maturity score",{"href":724,"dataGaName":725,"dataGaLocation":245},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":727},{"src":728},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":730,"categories":731,"header":732,"text":720,"button":733,"image":737},"devops-modernization",[683,39],"Are you just managing tools or shipping innovation?",{"text":734,"config":735},"Get your DevOps maturity score",{"href":736,"dataGaName":725,"dataGaLocation":245},"/assessments/devops-modernization-assessment/",{"config":738},{"src":739},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":741,"categories":742,"header":744,"text":720,"button":745,"image":749},"security-modernization",[743],"security","Are you trading speed for security?",{"text":746,"config":747},"Get your security maturity score",{"href":748,"dataGaName":725,"dataGaLocation":245},"/assessments/security-modernization-assessment/",{"config":750},{"src":751},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":753,"paths":754,"header":757,"text":758,"button":759,"image":764},"github-azure-migration",[755,756],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":760,"config":761},"See how GitLab compares to GitHub",{"href":762,"dataGaName":763,"dataGaLocation":245},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":765},{"src":739},{"header":767,"blurb":768,"button":769,"secondaryButton":773},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":49,"config":770},{"href":771,"dataGaName":52,"dataGaLocation":772},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":54,"config":774},{"href":56,"dataGaName":57,"dataGaLocation":772},1776449994076]