[{"data":1,"prerenderedAt":770},["ShallowReactive",2],{"/ja-jp/blog/3-best-practices-for-building-software-in-the-era-of-llms":3,"navigation-ja-jp":35,"banner-ja-jp":434,"footer-ja-jp":444,"blog-post-authors-ja-jp-Salman Ladha":650,"blog-related-posts-ja-jp-3-best-practices-for-building-software-in-the-era-of-llms":664,"next-steps-ja-jp":709,"blog-promotions-ja-jp":718},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":26,"isFeatured":11,"meta":27,"navigation":11,"path":28,"publishedDate":20,"seo":29,"stem":31,"tagSlugs":32,"__hash__":34},"blogPosts/ja-jp/blog/3-best-practices-for-building-software-in-the-era-of-llms.yml","3 Best Practices For Building Software In The Era Of Llms",[7],"salman-ladha",null,"ai-ml",{"featured":11,"template":12,"slug":13},true,"BlogPost","3-best-practices-for-building-software-in-the-era-of-llms",{"heroImage":15,"body":16,"authors":17,"updatedDate":19,"date":20,"title":21,"tags":22,"description":25,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662523/Blog/Hero%20Images/Gartner_DevOps_Blog_Post_Cover_Image_1800x945__2_.png","AIは、現代のソフトウェア開発の中核を担う存在として急速に浸透しています。デベロッパーがこれまで以上に速くコーディングできるようになっただけでなく、テストケースの作成やドキュメントの要約といった低レベルのタスクも自動化されています。当社の[2024年グローバルDevSecOps調査](https://about.gitlab.com/developer-survey/)によると、デベロッパーの81%がすでにワークフローでAIを使用しているか、今後2年以内に使用する予定であると回答しています。\n\n手作業によるコーディングが減るにつれ、微妙ながら重要な行動の変化が見られます。デベロッパーは、AIが生成したコードを十分に精査せずに信頼し始めているのです。理解できなくはないものの、この信頼感は、特にコード全体の量が増加する中で、静かにセキュリティリスクをもたらす可能性があります。デベロッパーがすべての脆弱性や攻撃手法を把握し続けることは期待できません。だからこそ、彼らとともにスケールするシステムと安全策が必要です。AIツールは確実に今後も使われ続けます。そのため、セキュリティ専門家として、デベロッパーがスピードとセキュリティの両方を向上させる方法でAIツールを採用できるようにすることが重要です。\n\nその実現に向けた、3つの実践的な方法をご紹介します。\n\n## 決して信頼せず、常に検証する\n\n前述のとおり、デベロッパーはAIが生成したコードを、特にそれがクリーンに見え、エラーなくコンパイルされる場合、より容易に信頼し始めています。これに対処するため、ゼロトラストの考え方を採用しましょう。[ゼロトラスト](https://about.gitlab.com/blog/why-devops-and-zero-trust-go-together/)は通常、IDやアクセス管理の文脈でよく語られますが、同じ原則を少し異なる枠組みでここにも適用できます。AI生成コードを、経験の浅いデベロッパーからの入力と同じように扱うべきです。有用ではありますが、適切なレビューなしには本番環境に実行すべきではありません。\n\nデベロッパーは、コードがマージされる前に、そのコードが何を実行するのか、なぜ安全なのかを説明できる必要があります。AI生成コードのレビューは、ソフトウェア開発の世界で求められる新たなスキルセットになるかもしれません。これを得意とするデベロッパーは不可欠な存在になるでしょう。なぜなら、LLMのスピードとリスク軽減の考え方を組み合わせて、より安全なコードをより速く生み出せるからです。\n\nここで、[GitLab Duoコードレビュー](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/)のようなツールが役立ちます。ソフトウェア開発ライフサイクル全体にわたるAIコンパニオン機能として、コードレビュープロセスにAIを導入します。これは人間の判断を置き換えるのではなく、強化するためです。マージリクエストにおける質問、矛盾、見落とされた問題を可視化することで、AIは開発サイクルを加速させているAIそのものに、デベロッパーが遅れを取らないよう支援します。\n\n## セキュアなパターンをプロンプトする\n\n大規模言語モデル（[LLM](https://about.gitlab.com/blog/what-is-a-large-language-model-llm/)）は強力ですが、与えられたプロンプトと同じくらい正確です。そのため、プロンプトエンジニアリングはAIツール活用における中核となりつつあります。LLMの世界では、入力*そのものが*インターフェースです。明確でセキュリティを意識したプロンプトの書き方を学ぶデベロッパーは、最初から安全なソフトウェアを構築する上で重要な役割を果たします。\n\nたとえば、「ログインフォームを作成して」といった曖昧なリクエストは、しばしば安全でないか過度に単純な結果を生み出します。しかし、「入力検証、レート制限、ハッシング処理を**備えた**ログインフォームを作成し、**かつ**パスキーなどのフィッシング耐性のある認証方法をサポートしてください」といった、より多くのコンテキストを含めることで、組織のセキュリティ基準を満たす出力を得られる可能性が高まります。\n\nBacklash Security社による最近の[研究](https://www.backslash.security/press-releases/backslash-security-reveals-in-new-research-that-gpt-4-1-other-popular-llms-generate-insecure-code-unless-explicitly-prompted)がこれを裏付けています。この研究では、安全なプロンプトが主要なLLM全体で成果を改善することが判明されました。デベロッパーが単にモデルに「安全なコードを書いて」と要求した場合、成功率は低いままでした。しかし、プロンプトに[OWASPベストプラクティス](https://cheatsheetseries.owasp.org/cheatsheets/LLM_Prompt_Injection_Prevention_Cheat_Sheet.html)を参照させた場合、安全なコード生成の割合が増加したのです。\n\nプロンプトエンジニアリングは、開発チーム内のセキュリティ推進者を育成・支援する手法の一部であるべきです。安全なコーディングパターンや脅威モデリングを教えるのと同じように、同じセキュリティマインドセットでAIツールを導く方法もデベロッパーに教える必要があります。\n\n> 有益な[プロンプトエンジニアリングのヒント](https://docs.gitlab.com/development/ai_features/prompt_engineering/)でさらに詳しく学びましょう。\n\n## すべてをスキャンし、例外を認めない\n\nAIの台頭により、同じ人数の人間で、より多くのコードをより速く書く時代が到来しました。この変化は、セキュリティを単なる最終チェックではなく、開発プロセスのあらゆる側面に組み込まれた常時稼働の防護策として捉え直す必要性を示しています。\n\nコードが増えれば、攻撃対象領域も拡大します。そして、そのコードが部分的または完全に生成されたものである場合、リスク発見を安全なコーディング手法や個人の直感だけに依存することはできません。そこで自動スキャンの出番です。[静的アプリケーションセキュリティテスト（SAST）](https://docs.gitlab.com/user/application_security/sast/)、[ソフトウェアコンポジション解析（SCA）](https://docs.gitlab.com/user/application_security/dependency_scanning/)、[シークレット検出](https://docs.gitlab.com/user/application_security/secret_detection/)は、シークレット漏洩、サプライチェーン攻撃、SQLインジェクションなどの脆弱性リスクを軽減するための重要な制御となります。GitLabのようなプラットフォームでは、[アプリケーションセキュリティ](https://about.gitlab.com/ja-jp/solutions/application-security-testing/)がデベロッパーのワークフローにネイティブに組み込まれているため、開発ライフサイクルの自然な一部となっています。スキャナーはプログラム全体を追跡して、AIが生成した新しいコードが*他のすべてのコードとのコンテキストにおいて*安全であることを確認できます。これは、IDEやAI生成パッチで新規コードを見ているだけでは発見が難しい場合があります。\n\nしかし重要なのは、スキャンするだけでなく、その速度です。開発チームがAI支援開発のスピードに追いつくには、高速で正確、かつスケーラブルなスキャンが必要です。特に正確性が重要で、スキャナーによる誤検知でデベロッパーを圧迫させてしまうと、システムへの信頼を完全に失うリスクがあります。\n\n速く動き、*かつ*安全を保つ唯一の方法は、スキャンを絶対条件とすることです。\n\nすべてのコミット、すべてのブランチに対して、例外は認めません。\n\n## GitLabでAI生成コードを保護する\n\nAIはソフトウェアの構築方法を変えていますが、安全なソフトウェア開発の基本原則は依然として適用されます。コードは引き続きレビューが必要です。脅威は依然としてテストが必要です。そして、セキュリティは依然として私たちの働き方に組み込まれる必要があります。GitLabでは、まさにそれを実現しています。\n\nデベロッパープラットフォームとして、ワークフローにセキュリティを後付けするのではなく、デベロッパーがすでに作業している場所、つまりIDE、マージリクエスト、パイプラインに直接組み込んでいます。スキャンは自動的に実行され、関連するセキュリティ情報が可視化されて、より速い修復サイクルを促進します。そして、デベロッパーがソフトウェアを構築、テスト、デプロイする同一のプラットフォーム上で動作するため、ツールや頭の切り替えが不要になり、安全なコードへの道筋がはるかにスムーズになります。\n\n[GitLab Duo脆弱性の説明および脆弱性の修正](https://about.gitlab.com/the-source/ai/understand-and-resolve-vulnerabilities-with-ai-powered-gitlab-duo/)といったAI機能は、さらなるスピードと洞察をもたらし、デベロッパーがワークフローを中断することなく、より速くリスクを理解して修正することを支援します。\n\nAIはセキュリティへの近道ではありません。しかし、適切なプラクティスと、デベロッパーの作業環境に即したプラットフォームがあれば、高速で安全、かつスケーラブルなソフトウェア構築に確実に貢献します。\n\n> [GitLab UltimateとDuo Enterpriseの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)を開始し、より速く安全なソフトウェア構築を体験してください。ネイティブなセキュリティスキャン、AIを活用したインサイト、シームレスなデベロッパーエクスペリエンスにより、GitLabは開発スピードを落とすことなくセキュリティをシフトレフトする支援をします。",[18],"Salman Ladha","2025-11-20","2025-07-10","LLM時代におけるソフトウェア開発の3つのベストプラクティス",[23,24],"AI/ML","security","AIによってコーディングスピードが変革される中、デベロッパーは新たなセキュリティ習慣を必要としています。DevSecOpsワークフロー全体でそれらを展開する方法をご紹介します。","yml",{},"/ja-jp/blog/3-best-practices-for-building-software-in-the-era-of-llms",{"noIndex":30,"title":21,"description":25},false,"ja-jp/blog/3-best-practices-for-building-software-in-the-era-of-llms",[33,24],"aiml","AoxWOiOh-HRes3wwVBDSSug9Uu6USV-Dxqmk7d4Ssog",{"data":36},{"logo":37,"freeTrial":42,"sales":47,"login":52,"items":57,"search":365,"minimal":398,"duo":415,"pricingDeployment":424},{"config":38},{"href":39,"dataGaName":40,"dataGaLocation":41},"/ja-jp/","gitlab logo","header",{"text":43,"config":44},"無料トライアルを開始",{"href":45,"dataGaName":46,"dataGaLocation":41},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":48,"config":49},"お問い合わせ",{"href":50,"dataGaName":51,"dataGaLocation":41},"/ja-jp/sales/","sales",{"text":53,"config":54},"サインイン",{"href":55,"dataGaName":56,"dataGaLocation":41},"https://gitlab.com/users/sign_in/","sign in",[58,85,181,186,287,347],{"text":59,"config":60,"cards":62},"プラットフォーム",{"dataNavLevelOne":61},"platform",[63,69,77],{"title":59,"description":64,"link":65},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":66,"config":67},"プラットフォームを詳しく見る",{"href":68,"dataGaName":61,"dataGaLocation":41},"/ja-jp/platform/",{"title":70,"description":71,"link":72},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":73,"config":74},"GitLab Duoのご紹介",{"href":75,"dataGaName":76,"dataGaLocation":41},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":78,"description":79,"link":80},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":81,"config":82},"詳細はこちら",{"href":83,"dataGaName":84,"dataGaLocation":41},"/ja-jp/why-gitlab/","why gitlab",{"text":86,"left":11,"config":87,"link":89,"lists":93,"footer":163},"製品",{"dataNavLevelOne":88},"solutions",{"text":90,"config":91},"すべてのソリューションを表示",{"href":92,"dataGaName":88,"dataGaLocation":41},"/ja-jp/solutions/",[94,119,141],{"title":95,"description":96,"link":97,"items":102},"自動化","CI/CDと自動化でデプロイを加速",{"config":98},{"icon":99,"href":100,"dataGaName":101,"dataGaLocation":41},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[103,107,110,115],{"text":104,"config":105},"CI/CD",{"href":106,"dataGaLocation":41,"dataGaName":104},"/ja-jp/solutions/continuous-integration/",{"text":70,"config":108},{"href":75,"dataGaLocation":41,"dataGaName":109},"gitlab duo agent platform - product menu",{"text":111,"config":112},"ソースコード管理",{"href":113,"dataGaLocation":41,"dataGaName":114},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":116,"config":117},"自動化されたソフトウェアデリバリー",{"href":100,"dataGaLocation":41,"dataGaName":118},"Automated software delivery",{"title":120,"description":121,"link":122,"items":127},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":123},{"href":124,"dataGaName":125,"dataGaLocation":41,"icon":126},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[128,132,137],{"text":129,"config":130},"Application Security Testing",{"href":124,"dataGaName":131,"dataGaLocation":41},"Application security testing",{"text":133,"config":134},"ソフトウェアサプライチェーンの安全性",{"href":135,"dataGaLocation":41,"dataGaName":136},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":138,"config":139},"Software Compliance",{"href":140,"dataGaName":138,"dataGaLocation":41},"/ja-jp/solutions/software-compliance/",{"title":142,"link":143,"items":148},"測定",{"config":144},{"icon":145,"href":146,"dataGaName":147,"dataGaLocation":41},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[149,153,158],{"text":150,"config":151},"可視性と測定",{"href":146,"dataGaLocation":41,"dataGaName":152},"Visibility and Measurement",{"text":154,"config":155},"バリューストリーム管理",{"href":156,"dataGaLocation":41,"dataGaName":157},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":159,"config":160},"分析とインサイト",{"href":161,"dataGaLocation":41,"dataGaName":162},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":164,"items":165},"GitLabが活躍する場所",[166,171,176],{"text":167,"config":168},"Enterprise",{"href":169,"dataGaLocation":41,"dataGaName":170},"/ja-jp/enterprise/","enterprise",{"text":172,"config":173},"スモールビジネス",{"href":174,"dataGaLocation":41,"dataGaName":175},"/ja-jp/small-business/","small business",{"text":177,"config":178},"公共機関",{"href":179,"dataGaLocation":41,"dataGaName":180},"/ja-jp/solutions/public-sector/","public sector",{"text":182,"config":183},"価格",{"href":184,"dataGaName":185,"dataGaLocation":41,"dataNavLevelOne":185},"/ja-jp/pricing/","pricing",{"text":187,"config":188,"link":190,"lists":194,"feature":274},"関連リソース",{"dataNavLevelOne":189},"resources",{"text":191,"config":192},"すべてのリソースを表示",{"href":193,"dataGaName":189,"dataGaLocation":41},"/ja-jp/resources/",[195,228,246],{"title":196,"items":197},"はじめに",[198,203,208,213,218,223],{"text":199,"config":200},"インストール",{"href":201,"dataGaName":202,"dataGaLocation":41},"/ja-jp/install/","install",{"text":204,"config":205},"クイックスタートガイド",{"href":206,"dataGaName":207,"dataGaLocation":41},"/ja-jp/get-started/","quick setup checklists",{"text":209,"config":210},"学ぶ",{"href":211,"dataGaLocation":41,"dataGaName":212},"https://university.gitlab.com/","learn",{"text":214,"config":215},"製品ドキュメント",{"href":216,"dataGaName":217,"dataGaLocation":41},"https://docs.gitlab.com/","product documentation",{"text":219,"config":220},"ベストプラクティスビデオ",{"href":221,"dataGaName":222,"dataGaLocation":41},"/ja-jp/getting-started-videos/","best practice videos",{"text":224,"config":225},"インテグレーション",{"href":226,"dataGaName":227,"dataGaLocation":41},"/ja-jp/integrations/","integrations",{"title":229,"items":230},"検索する",[231,236,241],{"text":232,"config":233},"お客様成功事例",{"href":234,"dataGaName":235,"dataGaLocation":41},"/ja-jp/customers/","customer success stories",{"text":237,"config":238},"ブログ",{"href":239,"dataGaName":240,"dataGaLocation":41},"/ja-jp/blog/","blog",{"text":242,"config":243},"リモート",{"href":244,"dataGaName":245,"dataGaLocation":41},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":247,"items":248},"つなげる",[249,254,259,264,269],{"text":250,"config":251},"GitLabサービス",{"href":252,"dataGaName":253,"dataGaLocation":41},"/ja-jp/services/","services",{"text":255,"config":256},"コミュニティ",{"href":257,"dataGaName":258,"dataGaLocation":41},"/community/","community",{"text":260,"config":261},"フォーラム",{"href":262,"dataGaName":263,"dataGaLocation":41},"https://forum.gitlab.com/","forum",{"text":265,"config":266},"イベント",{"href":267,"dataGaName":268,"dataGaLocation":41},"/events/","events",{"text":270,"config":271},"パートナー",{"href":272,"dataGaName":273,"dataGaLocation":41},"/ja-jp/partners/","partners",{"backgroundColor":275,"textColor":276,"text":277,"image":278,"link":282},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":279,"config":280},"ソースプロモカード",{"src":281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":283,"config":284},"最新情報を読む",{"href":285,"dataGaName":286,"dataGaLocation":41},"/ja-jp/the-source/","the source",{"text":288,"config":289,"lists":291},"会社情報",{"dataNavLevelOne":290},"company",[292],{"items":293},[294,299,305,307,312,317,322,327,332,337,342],{"text":295,"config":296},"GitLabについて",{"href":297,"dataGaName":298,"dataGaLocation":41},"/ja-jp/company/","about",{"text":300,"config":301,"footerGa":304},"採用情報",{"href":302,"dataGaName":303,"dataGaLocation":41},"/jobs/","jobs",{"dataGaName":303},{"text":265,"config":306},{"href":267,"dataGaName":268,"dataGaLocation":41},{"text":308,"config":309},"経営陣",{"href":310,"dataGaName":311,"dataGaLocation":41},"/company/team/e-group/","leadership",{"text":313,"config":314},"チーム",{"href":315,"dataGaName":316,"dataGaLocation":41},"/company/team/","team",{"text":318,"config":319},"ハンドブック",{"href":320,"dataGaName":321,"dataGaLocation":41},"https://handbook.gitlab.com/","handbook",{"text":323,"config":324},"投資家向け情報",{"href":325,"dataGaName":326,"dataGaLocation":41},"https://ir.gitlab.com/","investor relations",{"text":328,"config":329},"トラストセンター",{"href":330,"dataGaName":331,"dataGaLocation":41},"/ja-jp/security/","trust center",{"text":333,"config":334},"AI Transparency Center",{"href":335,"dataGaName":336,"dataGaLocation":41},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":338,"config":339},"ニュースレター",{"href":340,"dataGaName":341,"dataGaLocation":41},"/company/contact/#contact-forms","newsletter",{"text":343,"config":344},"プレス",{"href":345,"dataGaName":346,"dataGaLocation":41},"/press/","press",{"text":48,"config":348,"lists":349},{"dataNavLevelOne":290},[350],{"items":351},[352,355,360],{"text":48,"config":353},{"href":50,"dataGaName":354,"dataGaLocation":41},"talk to sales",{"text":356,"config":357},"サポートポータル",{"href":358,"dataGaName":359,"dataGaLocation":41},"https://support.gitlab.com","support portal",{"text":361,"config":362},"カスタマーポータル",{"href":363,"dataGaName":364,"dataGaLocation":41},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":366,"login":367,"suggestions":374},"閉じる",{"text":368,"link":369},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":370,"config":371},"GitLab.com",{"href":55,"dataGaName":372,"dataGaLocation":373},"search login","search",{"text":375,"default":376},"提案",[377,379,384,386,390,394],{"text":70,"config":378},{"href":75,"dataGaName":70,"dataGaLocation":373},{"text":380,"config":381},"コード提案（AI）",{"href":382,"dataGaName":383,"dataGaLocation":373},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":104,"config":385},{"href":106,"dataGaName":104,"dataGaLocation":373},{"text":387,"config":388},"GitLab on AWS",{"href":389,"dataGaName":387,"dataGaLocation":373},"/ja-jp/partners/technology-partners/aws/",{"text":391,"config":392},"GitLab on Google Cloud",{"href":393,"dataGaName":391,"dataGaLocation":373},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":395,"config":396},"GitLabを選ぶ理由",{"href":83,"dataGaName":397,"dataGaLocation":373},"Why GitLab?",{"freeTrial":399,"mobileIcon":403,"desktopIcon":408,"secondaryButton":411},{"text":43,"config":400},{"href":401,"dataGaName":46,"dataGaLocation":402},"https://gitlab.com/-/trials/new/","nav",{"altText":404,"config":405},"GitLabアイコン",{"src":406,"dataGaName":407,"dataGaLocation":402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":404,"config":409},{"src":410,"dataGaName":407,"dataGaLocation":402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":196,"config":412},{"href":413,"dataGaName":414,"dataGaLocation":402},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":416,"mobileIcon":420,"desktopIcon":422},{"text":417,"config":418},"GitLab Duoの詳細について",{"href":75,"dataGaName":419,"dataGaLocation":402},"gitlab duo",{"altText":404,"config":421},{"src":406,"dataGaName":407,"dataGaLocation":402},{"altText":404,"config":423},{"src":410,"dataGaName":407,"dataGaLocation":402},{"freeTrial":425,"mobileIcon":430,"desktopIcon":432},{"text":426,"config":427},"料金ページに戻る",{"href":184,"dataGaName":428,"dataGaLocation":402,"icon":429},"back to pricing","GoBack",{"altText":404,"config":431},{"src":406,"dataGaName":407,"dataGaLocation":402},{"altText":404,"config":433},{"src":410,"dataGaName":407,"dataGaLocation":402},{"title":435,"button":436,"config":441},"エージェント型AIがソフトウェア配信をどのように変革するかをご覧ください",{"text":437,"config":438},"GitLab Transcendを今すぐ視聴",{"href":439,"dataGaName":440,"dataGaLocation":41},"/ja-jp/events/transcend/virtual/","transcend event",{"layout":442,"icon":443,"disabled":11},"release","AiStar",{"data":445},{"text":446,"source":447,"edit":453,"contribute":458,"config":463,"items":468,"minimal":642},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":448,"config":449},"ページのソースを表示",{"href":450,"dataGaName":451,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":454,"config":455},"このページを編集",{"href":456,"dataGaName":457,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":459,"config":460},"ご協力をお願いします",{"href":461,"dataGaName":462,"dataGaLocation":452},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":464,"facebook":465,"youtube":466,"linkedin":467},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[469,492,546,576,611],{"title":59,"links":470,"subMenu":475},[471],{"text":472,"config":473},"DevSecOpsプラットフォーム",{"href":68,"dataGaName":474,"dataGaLocation":452},"devsecops platform",[476],{"title":182,"links":477},[478,482,487],{"text":479,"config":480},"プランの表示",{"href":184,"dataGaName":481,"dataGaLocation":452},"view plans",{"text":483,"config":484},"Premiumを選ぶ理由",{"href":485,"dataGaName":486,"dataGaLocation":452},"/ja-jp/pricing/premium/","why premium",{"text":488,"config":489},"Ultimateを選ぶ理由",{"href":490,"dataGaName":491,"dataGaLocation":452},"/ja-jp/pricing/ultimate/","why ultimate",{"title":493,"links":494},"ソリューション",[495,500,503,505,510,515,519,522,525,530,532,534,536,541],{"text":496,"config":497},"デジタルトランスフォーメーション",{"href":498,"dataGaName":499,"dataGaLocation":452},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":501,"config":502},"セキュリティとコンプライアンス",{"href":124,"dataGaName":131,"dataGaLocation":452},{"text":116,"config":504},{"href":100,"dataGaName":101,"dataGaLocation":452},{"text":506,"config":507},"アジャイル開発",{"href":508,"dataGaName":509,"dataGaLocation":452},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":511,"config":512},"クラウドトランスフォーメーション",{"href":513,"dataGaName":514,"dataGaLocation":452},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":516,"config":517},"SCM",{"href":113,"dataGaName":518,"dataGaLocation":452},"source code management",{"text":104,"config":520},{"href":106,"dataGaName":521,"dataGaLocation":452},"continuous integration & delivery",{"text":154,"config":523},{"href":156,"dataGaName":524,"dataGaLocation":452},"value stream management",{"text":526,"config":527},"GitOps",{"href":528,"dataGaName":529,"dataGaLocation":452},"/ja-jp/solutions/gitops/","gitops",{"text":167,"config":531},{"href":169,"dataGaName":170,"dataGaLocation":452},{"text":172,"config":533},{"href":174,"dataGaName":175,"dataGaLocation":452},{"text":177,"config":535},{"href":179,"dataGaName":180,"dataGaLocation":452},{"text":537,"config":538},"教育",{"href":539,"dataGaName":540,"dataGaLocation":452},"/ja-jp/solutions/education/","education",{"text":542,"config":543},"金融サービス",{"href":544,"dataGaName":545,"dataGaLocation":452},"/ja-jp/solutions/finance/","financial services",{"title":187,"links":547},[548,550,552,554,557,559,562,564,566,568,570,572,574],{"text":199,"config":549},{"href":201,"dataGaName":202,"dataGaLocation":452},{"text":204,"config":551},{"href":206,"dataGaName":207,"dataGaLocation":452},{"text":209,"config":553},{"href":211,"dataGaName":212,"dataGaLocation":452},{"text":214,"config":555},{"href":216,"dataGaName":556,"dataGaLocation":452},"docs",{"text":237,"config":558},{"href":239,"dataGaName":240},{"text":560,"config":561},"お客様の成功事例",{"href":234,"dataGaLocation":452},{"text":232,"config":563},{"href":234,"dataGaName":235,"dataGaLocation":452},{"text":242,"config":565},{"href":244,"dataGaName":245,"dataGaLocation":452},{"text":250,"config":567},{"href":252,"dataGaName":253,"dataGaLocation":452},{"text":255,"config":569},{"href":257,"dataGaName":258,"dataGaLocation":452},{"text":260,"config":571},{"href":262,"dataGaName":263,"dataGaLocation":452},{"text":265,"config":573},{"href":267,"dataGaName":268,"dataGaLocation":452},{"text":270,"config":575},{"href":272,"dataGaName":273,"dataGaLocation":452},{"title":577,"links":578},"Company",[579,581,583,585,587,589,591,595,600,602,604,606],{"text":295,"config":580},{"href":297,"dataGaName":290,"dataGaLocation":452},{"text":300,"config":582},{"href":302,"dataGaName":303,"dataGaLocation":452},{"text":308,"config":584},{"href":310,"dataGaName":311,"dataGaLocation":452},{"text":313,"config":586},{"href":315,"dataGaName":316,"dataGaLocation":452},{"text":318,"config":588},{"href":320,"dataGaName":321,"dataGaLocation":452},{"text":323,"config":590},{"href":325,"dataGaName":326,"dataGaLocation":452},{"text":592,"config":593},"Sustainability",{"href":594,"dataGaName":592,"dataGaLocation":452},"/sustainability/",{"text":596,"config":597},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":598,"dataGaName":599,"dataGaLocation":452},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":328,"config":601},{"href":330,"dataGaName":331,"dataGaLocation":452},{"text":338,"config":603},{"href":340,"dataGaName":341,"dataGaLocation":452},{"text":343,"config":605},{"href":345,"dataGaName":346,"dataGaLocation":452},{"text":607,"config":608},"現代奴隷制の透明性に関する声明",{"href":609,"dataGaName":610,"dataGaLocation":452},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":48,"links":612},[613,615,620,622,627,632,637],{"text":48,"config":614},{"href":50,"dataGaName":51,"dataGaLocation":452},{"text":616,"config":617},"サポートを受ける",{"href":618,"dataGaName":619,"dataGaLocation":452},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":361,"config":621},{"href":363,"dataGaName":364,"dataGaLocation":452},{"text":623,"config":624},"ステータス",{"href":625,"dataGaName":626,"dataGaLocation":452},"https://status.gitlab.com/","status",{"text":628,"config":629},"利用規約",{"href":630,"dataGaName":631,"dataGaLocation":452},"/terms/","terms of use",{"text":633,"config":634},"プライバシーに関する声明",{"href":635,"dataGaName":636,"dataGaLocation":452},"/ja-jp/privacy/","privacy statement",{"text":638,"config":639},"Cookieの設定",{"dataGaName":640,"dataGaLocation":452,"id":641,"isOneTrustButton":11},"cookie preferences","ot-sdk-btn",{"items":643},[644,646,648],{"text":628,"config":645},{"href":630,"dataGaName":631,"dataGaLocation":452},{"text":633,"config":647},{"href":635,"dataGaName":636,"dataGaLocation":452},{"text":638,"config":649},{"dataGaName":640,"dataGaLocation":452,"id":641,"isOneTrustButton":11},[651],{"id":652,"title":18,"body":8,"config":653,"content":655,"description":8,"extension":26,"meta":659,"navigation":11,"path":660,"seo":661,"stem":662,"__hash__":663},"blogAuthors/en-us/blog/authors/salman-ladha.yml",{"template":654},"BlogAuthor",{"name":18,"config":656},{"headshot":657,"ctfId":658},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662937/Blog/Author%20Headshots/salman_ladha_headshot.png","2AYyG99S9PBB8PQIJ6aKuq",{},"/en-us/blog/authors/salman-ladha",{},"en-us/blog/authors/salman-ladha","AIlZoao6Z2q7mIH5Jkh_ZIB8304XE4IuHFiznllUnT0",[665,681,695],{"content":666,"config":679},{"title":667,"description":668,"authors":669,"body":672,"heroImage":673,"date":674,"category":9,"tags":675},"GitLabとVertex AI on Google Cloud：エージェント型ソフトウェア開発の加速","Google CloudのVertex AIとGitLab Duo Agent Platformを組み合わせることで、ファウンデーションモデル、エンタープライズ制御、Model Gardenの豊富なモデルを活用したエージェント型開発が実現します。\n",[670,671],"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",[23,273,676,677,678],"google","news","product",{"featured":11,"template":12,"slug":680},"gitlab-and-vertex-ai-on-google-cloud",{"content":682,"config":693},{"heroImage":683,"body":684,"authors":685,"updatedDate":687,"date":688,"title":689,"tags":690,"description":692,"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/)",[686],"Albert Rabassa","2026-03-30","2026-03-05","MCPであらゆるツールを接続してGitLab Duo Agent Platformを拡張",[678,691],"tutorial","MCPを使用して外部ツールをGitLab Duo Agent Platformに接続する方法を解説します。3つの実践的なワークフローデモを含むステップバイステップのセットアップガイドです。",{"featured":30,"template":12,"slug":694},"extend-gitlab-duo-agent-platform-connect-any-tool-with-mcp",{"content":696,"config":707},{"heroImage":697,"body":698,"authors":699,"updatedDate":701,"date":702,"title":703,"tags":704,"description":706,"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まずはチームの最も緊急な課題に対応する「初級」タグのプロンプトから始めましょう。チームが自信をつけるにつれ、より高度なワークフローを実現する中級・上級のプロンプトへと探求の幅を広げてください。目標は単に速いコーディングではなく、計画から本番まで、より速く、より安全で、より高品質なソフトウェア提供の実現です。",[700],"Chandler Gibbons","2026-03-13","2026-03-04","チームのソフトウェア提供を加速する10のAIプロンプト",[23,705],"DevOps platform","ソフトウェアライフサイクル全体をカバーするすぐに使えるAIプロンプトで、レビューの滞留、セキュリティの遅延、調整の手間を解消します。",{"featured":30,"template":12,"slug":708},"10-ai-prompts-to-speed-your-teams-software-delivery",{"header":710,"blurb":711,"button":712,"secondaryButton":716},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":43,"config":713},{"href":714,"dataGaName":46,"dataGaLocation":715},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":48,"config":717},{"href":50,"dataGaName":51,"dataGaLocation":715},{"promotions":719},[720,733,745,756],{"id":721,"categories":722,"header":723,"text":724,"button":725,"image":730},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":726,"config":727},"Get your AI maturity score",{"href":728,"dataGaName":729,"dataGaLocation":240},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":731},{"src":732},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":734,"categories":735,"header":737,"text":724,"button":738,"image":742},"devops-modernization",[678,736],"devsecops","Are you just managing tools or shipping innovation?",{"text":739,"config":740},"Get your DevOps maturity score",{"href":741,"dataGaName":729,"dataGaLocation":240},"/assessments/devops-modernization-assessment/",{"config":743},{"src":744},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":746,"categories":747,"header":748,"text":724,"button":749,"image":753},"security-modernization",[24],"Are you trading speed for security?",{"text":750,"config":751},"Get your security maturity score",{"href":752,"dataGaName":729,"dataGaLocation":240},"/assessments/security-modernization-assessment/",{"config":754},{"src":755},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":757,"paths":758,"header":761,"text":762,"button":763,"image":768},"github-azure-migration",[759,760],"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":764,"config":765},"See how GitLab compares to GitHub",{"href":766,"dataGaName":767,"dataGaLocation":240},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":769},{"src":744},1776449987847]