[{"data":1,"prerenderedAt":1670},["ShallowReactive",2],{"/en-us/blog/tags/features/":3,"navigation-ja-jp":19,"banner-ja-jp":436,"footer-ja-jp":449,"features-tag-page-ja-jp":658},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"content":8,"config":10,"_id":12,"_type":13,"title":14,"_source":15,"_file":16,"_stem":17,"_extension":18},"/en-us/blog/tags/features","tags",false,"",{"tag":9,"tagSlug":9},"features",{"template":11},"BlogTag","content:en-us:blog:tags:features.yml","yaml","Features","content","en-us/blog/tags/features.yml","en-us/blog/tags/features","yml",{"_path":20,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"data":22,"_id":432,"_type":13,"title":433,"_source":15,"_file":434,"_stem":435,"_extension":18},"/shared/ja-jp/main-navigation","ja-jp",{"logo":23,"freeTrial":28,"sales":33,"login":38,"items":43,"search":376,"minimal":410,"duo":423},{"config":24},{"href":25,"dataGaName":26,"dataGaLocation":27},"/ja-jp/","gitlab logo","header",{"text":29,"config":30},"無料トライアルを開始",{"href":31,"dataGaName":32,"dataGaLocation":27},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":34,"config":35},"お問い合わせ",{"href":36,"dataGaName":37,"dataGaLocation":27},"/ja-jp/sales/","sales",{"text":39,"config":40},"サインイン",{"href":41,"dataGaName":42,"dataGaLocation":27},"https://gitlab.com/users/sign_in/","sign in",[44,88,187,192,298,358],{"text":45,"config":46,"cards":48,"footer":71},"プラットフォーム",{"dataNavLevelOne":47},"platform",[49,55,63],{"title":45,"description":50,"link":51},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":52,"config":53},"プラットフォームを詳しく見る",{"href":54,"dataGaName":47,"dataGaLocation":27},"/ja-jp/platform/",{"title":56,"description":57,"link":58},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":59,"config":60},"GitLab Duoのご紹介",{"href":61,"dataGaName":62,"dataGaLocation":27},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":64,"description":65,"link":66},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":67,"config":68},"詳細はこちら",{"href":69,"dataGaName":70,"dataGaLocation":27},"/ja-jp/why-gitlab/","why gitlab",{"title":72,"items":73},"利用を開始：",[74,79,84],{"text":75,"config":76},"プラットフォームエンジニアリング",{"href":77,"dataGaName":78,"dataGaLocation":27},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":80,"config":81},"開発者の経験",{"href":82,"dataGaName":83,"dataGaLocation":27},"/ja-jp/developer-experience/","Developer experience",{"text":85,"config":86},"MLOps",{"href":87,"dataGaName":85,"dataGaLocation":27},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":89,"left":90,"config":91,"link":93,"lists":97,"footer":169},"製品",true,{"dataNavLevelOne":92},"solutions",{"text":94,"config":95},"すべてのソリューションを表示",{"href":96,"dataGaName":92,"dataGaLocation":27},"/ja-jp/solutions/",[98,124,147],{"title":99,"description":100,"link":101,"items":106},"自動化","CI/CDと自動化でデプロイを加速",{"config":102},{"icon":103,"href":104,"dataGaName":105,"dataGaLocation":27},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[107,111,115,120],{"text":108,"config":109},"CI/CD",{"href":110,"dataGaLocation":27,"dataGaName":108},"/ja-jp/solutions/continuous-integration/",{"text":112,"config":113},"AIアシストによる開発",{"href":61,"dataGaLocation":27,"dataGaName":114},"AI assisted development",{"text":116,"config":117},"ソースコード管理",{"href":118,"dataGaLocation":27,"dataGaName":119},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":121,"config":122},"自動化されたソフトウェアデリバリー",{"href":104,"dataGaLocation":27,"dataGaName":123},"Automated software delivery",{"title":125,"description":126,"link":127,"items":132},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":128},{"href":129,"dataGaName":130,"dataGaLocation":27,"icon":131},"/ja-jp/solutions/security-compliance/","security and compliance","ShieldCheckLight",[133,138,143],{"text":134,"config":135},"Application Security Testing",{"href":136,"dataGaName":137,"dataGaLocation":27},"/solutions/application-security-testing/","Application security testing",{"text":139,"config":140},"ソフトウェアサプライチェーンの安全性",{"href":141,"dataGaLocation":27,"dataGaName":142},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":144,"config":145},"Software Compliance",{"href":146,"dataGaName":144,"dataGaLocation":27},"/solutions/software-compliance/",{"title":148,"link":149,"items":154},"測定",{"config":150},{"icon":151,"href":152,"dataGaName":153,"dataGaLocation":27},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[155,159,164],{"text":156,"config":157},"可視性と測定",{"href":152,"dataGaLocation":27,"dataGaName":158},"Visibility and Measurement",{"text":160,"config":161},"バリューストリーム管理",{"href":162,"dataGaLocation":27,"dataGaName":163},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":165,"config":166},"分析とインサイト",{"href":167,"dataGaLocation":27,"dataGaName":168},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":170,"items":171},"GitLabが活躍する場所",[172,177,182],{"text":173,"config":174},"Enterprise",{"href":175,"dataGaLocation":27,"dataGaName":176},"/ja-jp/enterprise/","enterprise",{"text":178,"config":179},"スモールビジネス",{"href":180,"dataGaLocation":27,"dataGaName":181},"/ja-jp/small-business/","small business",{"text":183,"config":184},"公共機関",{"href":185,"dataGaLocation":27,"dataGaName":186},"/ja-jp/solutions/public-sector/","public sector",{"text":188,"config":189},"価格",{"href":190,"dataGaName":191,"dataGaLocation":27,"dataNavLevelOne":191},"/ja-jp/pricing/","pricing",{"text":193,"config":194,"link":196,"lists":200,"feature":285},"関連リソース",{"dataNavLevelOne":195},"resources",{"text":197,"config":198},"すべてのリソースを表示",{"href":199,"dataGaName":195,"dataGaLocation":27},"/ja-jp/resources/",[201,234,257],{"title":202,"items":203},"はじめに",[204,209,214,219,224,229],{"text":205,"config":206},"インストール",{"href":207,"dataGaName":208,"dataGaLocation":27},"/ja-jp/install/","install",{"text":210,"config":211},"クイックスタートガイド",{"href":212,"dataGaName":213,"dataGaLocation":27},"/ja-jp/get-started/","quick setup checklists",{"text":215,"config":216},"学ぶ",{"href":217,"dataGaLocation":27,"dataGaName":218},"https://university.gitlab.com/","learn",{"text":220,"config":221},"製品ドキュメント",{"href":222,"dataGaName":223,"dataGaLocation":27},"https://docs.gitlab.com/","product documentation",{"text":225,"config":226},"ベストプラクティスビデオ",{"href":227,"dataGaName":228,"dataGaLocation":27},"/ja-jp/getting-started-videos/","best practice videos",{"text":230,"config":231},"インテグレーション",{"href":232,"dataGaName":233,"dataGaLocation":27},"/ja-jp/integrations/","integrations",{"title":235,"items":236},"検索する",[237,242,247,252],{"text":238,"config":239},"お客様成功事例",{"href":240,"dataGaName":241,"dataGaLocation":27},"/ja-jp/customers/","customer success stories",{"text":243,"config":244},"ブログ",{"href":245,"dataGaName":246,"dataGaLocation":27},"/ja-jp/blog/","blog",{"text":248,"config":249},"リモート",{"href":250,"dataGaName":251,"dataGaLocation":27},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":253,"config":254},"TeamOps",{"href":255,"dataGaName":256,"dataGaLocation":27},"/ja-jp/teamops/","teamops",{"title":258,"items":259},"つなげる",[260,265,270,275,280],{"text":261,"config":262},"GitLabサービス",{"href":263,"dataGaName":264,"dataGaLocation":27},"/ja-jp/services/","services",{"text":266,"config":267},"コミュニティ",{"href":268,"dataGaName":269,"dataGaLocation":27},"/community/","community",{"text":271,"config":272},"フォーラム",{"href":273,"dataGaName":274,"dataGaLocation":27},"https://forum.gitlab.com/","forum",{"text":276,"config":277},"イベント",{"href":278,"dataGaName":279,"dataGaLocation":27},"/events/","events",{"text":281,"config":282},"パートナー",{"href":283,"dataGaName":284,"dataGaLocation":27},"/partners/","partners",{"backgroundColor":286,"textColor":287,"text":288,"image":289,"link":293},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":290,"config":291},"ソースプロモカード",{"src":292},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":294,"config":295},"最新情報を読む",{"href":296,"dataGaName":297,"dataGaLocation":27},"/ja-jp/the-source/","the source",{"text":299,"config":300,"lists":302},"Company",{"dataNavLevelOne":301},"company",[303],{"items":304},[305,310,316,318,323,328,333,338,343,348,353],{"text":306,"config":307},"GitLabについて",{"href":308,"dataGaName":309,"dataGaLocation":27},"/ja-jp/company/","about",{"text":311,"config":312,"footerGa":315},"採用情報",{"href":313,"dataGaName":314,"dataGaLocation":27},"/jobs/","jobs",{"dataGaName":314},{"text":276,"config":317},{"href":278,"dataGaName":279,"dataGaLocation":27},{"text":319,"config":320},"経営陣",{"href":321,"dataGaName":322,"dataGaLocation":27},"/company/team/e-group/","leadership",{"text":324,"config":325},"チーム",{"href":326,"dataGaName":327,"dataGaLocation":27},"/company/team/","team",{"text":329,"config":330},"ハンドブック",{"href":331,"dataGaName":332,"dataGaLocation":27},"https://handbook.gitlab.com/","handbook",{"text":334,"config":335},"投資家向け情報",{"href":336,"dataGaName":337,"dataGaLocation":27},"https://ir.gitlab.com/","investor relations",{"text":339,"config":340},"トラストセンター",{"href":341,"dataGaName":342,"dataGaLocation":27},"/ja-jp/security/","trust center",{"text":344,"config":345},"AI Transparency Center",{"href":346,"dataGaName":347,"dataGaLocation":27},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":349,"config":350},"ニュースレター",{"href":351,"dataGaName":352,"dataGaLocation":27},"/company/contact/","newsletter",{"text":354,"config":355},"プレス",{"href":356,"dataGaName":357,"dataGaLocation":27},"/press/","press",{"text":34,"config":359,"lists":360},{"dataNavLevelOne":301},[361],{"items":362},[363,366,371],{"text":34,"config":364},{"href":36,"dataGaName":365,"dataGaLocation":27},"talk to sales",{"text":367,"config":368},"サポートを受ける",{"href":369,"dataGaName":370,"dataGaLocation":27},"/support/","get help",{"text":372,"config":373},"カスタマーポータル",{"href":374,"dataGaName":375,"dataGaLocation":27},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":377,"login":378,"suggestions":385},"閉じる",{"text":379,"link":380},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":381,"config":382},"GitLab.com",{"href":41,"dataGaName":383,"dataGaLocation":384},"search login","search",{"text":386,"default":387},"提案",[388,391,396,398,402,406],{"text":56,"config":389},{"href":61,"dataGaName":390,"dataGaLocation":384},"GitLab Duo (AI)",{"text":392,"config":393},"コード提案（AI）",{"href":394,"dataGaName":395,"dataGaLocation":384},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":108,"config":397},{"href":110,"dataGaName":108,"dataGaLocation":384},{"text":399,"config":400},"GitLab on AWS",{"href":401,"dataGaName":399,"dataGaLocation":384},"/ja-jp/partners/technology-partners/aws/",{"text":403,"config":404},"GitLab on Google Cloud",{"href":405,"dataGaName":403,"dataGaLocation":384},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":407,"config":408},"GitLabを選ぶ理由",{"href":69,"dataGaName":409,"dataGaLocation":384},"Why GitLab?",{"freeTrial":411,"mobileIcon":415,"desktopIcon":420},{"text":29,"config":412},{"href":413,"dataGaName":32,"dataGaLocation":414},"https://gitlab.com/-/trials/new/","nav",{"altText":416,"config":417},"GitLabアイコン",{"src":418,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":416,"config":421},{"src":422,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":424,"mobileIcon":428,"desktopIcon":430},{"text":425,"config":426},"GitLab Duoの詳細について",{"href":61,"dataGaName":427,"dataGaLocation":414},"gitlab duo",{"altText":416,"config":429},{"src":418,"dataGaName":419,"dataGaLocation":414},{"altText":416,"config":431},{"src":422,"dataGaName":419,"dataGaLocation":414},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":437,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"title":438,"button":439,"config":444,"_id":446,"_type":13,"_source":15,"_file":447,"_stem":448,"_extension":18},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":440,"config":441},"ベータ版を試す",{"href":442,"dataGaName":443,"dataGaLocation":27},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":445},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":450,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"data":451,"_id":654,"_type":13,"title":655,"_source":15,"_file":656,"_stem":657,"_extension":18},"/shared/ja-jp/main-footer",{"text":452,"source":453,"edit":459,"contribute":464,"config":469,"items":474,"minimal":646},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":454,"config":455},"ページのソースを表示",{"href":456,"dataGaName":457,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":460,"config":461},"このページを編集",{"href":462,"dataGaName":463,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":465,"config":466},"ご協力をお願いします",{"href":467,"dataGaName":468,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":470,"facebook":471,"youtube":472,"linkedin":473},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[475,498,552,584,618],{"title":45,"links":476,"subMenu":481},[477],{"text":478,"config":479},"DevSecOpsプラットフォーム",{"href":54,"dataGaName":480,"dataGaLocation":458},"devsecops platform",[482],{"title":188,"links":483},[484,488,493],{"text":485,"config":486},"プランの表示",{"href":190,"dataGaName":487,"dataGaLocation":458},"view plans",{"text":489,"config":490},"Premiumを選ぶ理由",{"href":491,"dataGaName":492,"dataGaLocation":458},"/ja-jp/pricing/premium/","why premium",{"text":494,"config":495},"Ultimateを選ぶ理由",{"href":496,"dataGaName":497,"dataGaLocation":458},"/ja-jp/pricing/ultimate/","why ultimate",{"title":499,"links":500},"ソリューション",[501,506,509,511,516,521,525,528,531,536,538,540,542,547],{"text":502,"config":503},"デジタルトランスフォーメーション",{"href":504,"dataGaName":505,"dataGaLocation":458},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":507,"config":508},"セキュリティとコンプライアンス",{"href":136,"dataGaName":137,"dataGaLocation":458},{"text":121,"config":510},{"href":104,"dataGaName":105,"dataGaLocation":458},{"text":512,"config":513},"アジャイル開発",{"href":514,"dataGaName":515,"dataGaLocation":458},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":517,"config":518},"クラウドトランスフォーメーション",{"href":519,"dataGaName":520,"dataGaLocation":458},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":522,"config":523},"SCM",{"href":118,"dataGaName":524,"dataGaLocation":458},"source code management",{"text":108,"config":526},{"href":110,"dataGaName":527,"dataGaLocation":458},"continuous integration & delivery",{"text":160,"config":529},{"href":162,"dataGaName":530,"dataGaLocation":458},"value stream management",{"text":532,"config":533},"GitOps",{"href":534,"dataGaName":535,"dataGaLocation":458},"/ja-jp/solutions/gitops/","gitops",{"text":173,"config":537},{"href":175,"dataGaName":176,"dataGaLocation":458},{"text":178,"config":539},{"href":180,"dataGaName":181,"dataGaLocation":458},{"text":183,"config":541},{"href":185,"dataGaName":186,"dataGaLocation":458},{"text":543,"config":544},"教育",{"href":545,"dataGaName":546,"dataGaLocation":458},"/ja-jp/solutions/education/","education",{"text":548,"config":549},"金融サービス",{"href":550,"dataGaName":551,"dataGaLocation":458},"/ja-jp/solutions/finance/","financial services",{"title":193,"links":553},[554,556,558,560,563,565,568,570,572,574,576,578,580,582],{"text":205,"config":555},{"href":207,"dataGaName":208,"dataGaLocation":458},{"text":210,"config":557},{"href":212,"dataGaName":213,"dataGaLocation":458},{"text":215,"config":559},{"href":217,"dataGaName":218,"dataGaLocation":458},{"text":220,"config":561},{"href":222,"dataGaName":562,"dataGaLocation":458},"docs",{"text":243,"config":564},{"href":245,"dataGaName":246},{"text":566,"config":567},"お客様の成功事例",{"href":240,"dataGaLocation":458},{"text":238,"config":569},{"href":240,"dataGaName":241,"dataGaLocation":458},{"text":248,"config":571},{"href":250,"dataGaName":251,"dataGaLocation":458},{"text":261,"config":573},{"href":263,"dataGaName":264,"dataGaLocation":458},{"text":253,"config":575},{"href":255,"dataGaName":256,"dataGaLocation":458},{"text":266,"config":577},{"href":268,"dataGaName":269,"dataGaLocation":458},{"text":271,"config":579},{"href":273,"dataGaName":274,"dataGaLocation":458},{"text":276,"config":581},{"href":278,"dataGaName":279,"dataGaLocation":458},{"text":281,"config":583},{"href":283,"dataGaName":284,"dataGaLocation":458},{"title":299,"links":585},[586,588,590,592,594,596,598,602,607,609,611,613],{"text":306,"config":587},{"href":308,"dataGaName":301,"dataGaLocation":458},{"text":311,"config":589},{"href":313,"dataGaName":314,"dataGaLocation":458},{"text":319,"config":591},{"href":321,"dataGaName":322,"dataGaLocation":458},{"text":324,"config":593},{"href":326,"dataGaName":327,"dataGaLocation":458},{"text":329,"config":595},{"href":331,"dataGaName":332,"dataGaLocation":458},{"text":334,"config":597},{"href":336,"dataGaName":337,"dataGaLocation":458},{"text":599,"config":600},"Sustainability",{"href":601,"dataGaName":599,"dataGaLocation":458},"/sustainability/",{"text":603,"config":604},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":605,"dataGaName":606,"dataGaLocation":458},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":339,"config":608},{"href":341,"dataGaName":342,"dataGaLocation":458},{"text":349,"config":610},{"href":351,"dataGaName":352,"dataGaLocation":458},{"text":354,"config":612},{"href":356,"dataGaName":357,"dataGaLocation":458},{"text":614,"config":615},"現代奴隷制の透明性に関する声明",{"href":616,"dataGaName":617,"dataGaLocation":458},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":34,"links":619},[620,622,624,626,631,636,641],{"text":34,"config":621},{"href":36,"dataGaName":37,"dataGaLocation":458},{"text":367,"config":623},{"href":369,"dataGaName":370,"dataGaLocation":458},{"text":372,"config":625},{"href":374,"dataGaName":375,"dataGaLocation":458},{"text":627,"config":628},"ステータス",{"href":629,"dataGaName":630,"dataGaLocation":458},"https://status.gitlab.com/","status",{"text":632,"config":633},"利用規約",{"href":634,"dataGaName":635,"dataGaLocation":458},"/terms/","terms of use",{"text":637,"config":638},"プライバシーに関する声明",{"href":639,"dataGaName":640,"dataGaLocation":458},"/ja-jp/privacy/","privacy statement",{"text":642,"config":643},"Cookieの設定",{"dataGaName":644,"dataGaLocation":458,"id":645,"isOneTrustButton":90},"cookie preferences","ot-sdk-btn",{"items":647},[648,650,652],{"text":632,"config":649},{"href":634,"dataGaName":635,"dataGaLocation":458},{"text":637,"config":651},{"href":639,"dataGaName":640,"dataGaLocation":458},{"text":642,"config":653},{"dataGaName":644,"dataGaLocation":458,"id":645,"isOneTrustButton":90},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",{"allPosts":659,"featuredPost":1648,"totalPagesCount":1668,"initialPosts":1669},[660,687,711,731,754,778,799,824,846,868,890,909,929,949,969,991,1012,1031,1051,1072,1091,1112,1133,1154,1175,1195,1216,1236,1254,1274,1294,1317,1333,1353,1374,1393,1413,1433,1454,1474,1493,1515,1535,1553,1572,1590,1609,1628],{"_path":661,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":662,"content":665,"config":680,"_id":683,"_type":13,"title":684,"_source":15,"_file":685,"_stem":686,"_extension":18},"/ja-jp/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q",{"noIndex":6,"title":663,"description":664},"GitLab DuoとAmazon Qでコードレビューを加速","AI搭載エージェントを使用して、コードレビューを最適化しましょう。自動的にマージリクエストを分析し、バグや可読性、コーディング標準に関する包括的なフィードバックを得られます。",{"heroImage":666,"body":667,"authors":668,"updatedDate":670,"date":671,"title":663,"tags":672,"description":664,"category":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1750096976/Blog/Hero%20Images/Blog/Hero%20Images/Screenshot%202024-11-27%20at%204.55.28%E2%80%AFPM_4VVz6DgGBOvbGY8BUmd068_1750096975734.png","コードレビューは、バグの検出、コードの可読性の向上、コーディング標準の順守の徹底に不可欠ですが、その一方でワークフローにおける大きなボトルネックになることもあります。迅速に機能をリリースしようとする際に、複数のチームメンバーによるコードレビューの完了を待つのは歯がゆいものです。多くのやり取りが発生するディスカッション、スケジュールの衝突、チーム全体の合意形成にかかる時間などによって、本来は簡単なレビューが数日から数週間に及ぶことがあります。\n\nそこでおすすめなのが、[GitLab Duo with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)です。AWSユーザー向けにソフトウェア開発ライフサイクル全体にわたって自律型AIを提供するGitLab Duo with Amazon Qを使用すれば、レビュープロセスを変革できます。このAI搭載ソリューションは、チームメンバーがこれまで費やしていたほんの一部の時間で、包括的なコードレビューを実行できます。GitLab Duo with Amazon Qは高度な自律型AI機能を活用することで、必要な品質や徹底性を犠牲にすることなく、レビューワークフロー全体を効率化します。たとえるなら、瞬時にコードを分析して実用的なフィードバックを提供できる非常に熟練したレビュアーがいて、いつでも対応可能な状態のようなものです。\n\n## 仕組み：コードレビューの開始\n\nでは、GitLab Duo with Amazon Qが実際にどのように機能するかをご説明します。ある機能に関する作業が終わり、ちょうど複数のコード更新を含むマージリクエストを作成したところだとします。コードレビューの開始方法は非常に簡単です。チームメンバーに連絡して対応可能かどうかの返答を待つ代わりに、コメントセクションに「/q review」というシンプルなコマンドを入力するだけです。これだけでAIによるコードレビューがトリガーされます。\n\n\n![GitLab Duo with Amazon Qを使用したコードレビューがトリガーされている様子](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097002/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097002096.png)\n\n\nコマンドが入力されると、Amazon Q Servicesはすぐにコード変更の分析を開始します。レビューを実行中である旨の確認メッセージが表示され、数秒のうちにAIが更新内容のすべての行を調査し、さまざまな側面から潜在的な問題がないかをチェックします。\nレビューが完了すると、バグの検出、可読性の改善、構文エラー、チームのコーディング標準への準拠など、すべての基準を網羅した包括的なフィードバックが表示されます。AIによって問題が特定されるだけでなく、修正のためのコンテキストと修正案も提供されるため、対応が必要な箇所とその理由を簡単に把握できます。\n\nこの自律型AIアプローチの優れた点は、コードレビューの面倒な作業をAIにまかせられるため、デベロッパーが最も重要な作業である「優れたソフトウェアの開発」に集中できることです。時間を無駄に費やすことなく、バグ検出精度の向上、コーディング標準の順守、コード品質の向上など、徹底したコードレビューのメリットを享受できます。さらに、レビューの待ち時間がなくなるため、デプロイまでの時間が大幅に短縮され、チーム全体の生産性が向上します。\n\n## GitLab Duo with Amazon Qの導入メリット\n\nGitLab Duo with Amazon Qを使用することで、以下のように開発プロセスを変革できます。\n- 品質を妥協しない、迅速なコードレビュー\n- コードベース全体にわたってコーディング標準を一貫して適用\n- 本番環境に到達する前に問題を修正できるよう、即座にフィードバックを提供\n- デプロイまでの時間が短縮されるため、より迅速に機能をリリース可能\n- レビューを何度も行わずに済むため、本質的な問題解決に集中できる時間が増加\n\n以下の動画では、GitLab Duo with Amazon Qを使用してコードレビュープロセスに変革をもたらす方法についてご紹介しています。ぜひこの革新的な機能に関する動画をご覧ください。\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/4gFIgyFc02Q?si=GXVz--AIrWiwzf-I\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n> GitLab Duo with Amazon Qの詳細については、 [お近くで開催されるAWS Summit](https://about.gitlab.com/events/aws-summits/) にご参加いただくか [GitLab担当者にお問い合わせ](https://about.gitlab.com/ja-jp/partners/technology-partners/aws/)ください.\n>\n> また、自律型AIの今後の計画などについてご紹介するGitLab 18オンラインリリースイベントにもぜひご参加ください。[ご登録はこちら](https://about.gitlab.com/ja-jp/eighteen/)",[669],"Cesar Saavedra","2025-06-24","2025-06-02",[673,674,675,676,9,284,677,678],"AI/ML","DevSecOps platform","code review","product","AWS","tutorial","ai-ml",{"featured":90,"template":681,"slug":682},"BlogPost","accelerate-code-reviews-with-gitlab-duo-and-amazon-q","content:ja-jp:blog:accelerate-code-reviews-with-gitlab-duo-and-amazon-q.yml","Accelerate Code Reviews With Gitlab Duo And Amazon Q","ja-jp/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q.yml","ja-jp/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q",{"_path":688,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":689,"content":697,"config":705,"_id":707,"_type":13,"title":708,"_source":15,"_file":709,"_stem":710,"_extension":18},"/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests",{"title":690,"description":691,"ogTitle":690,"ogDescription":691,"noIndex":6,"ogImage":692,"ogUrl":693,"ogSiteName":694,"ogType":695,"canonicalUrls":693,"schema":696},"GitLab Duoを使用した自動化シリーズパート1：テストの生成","AI主導のDevSecOpsプラットフォーム（GitLab Duo）を使用して自動テストを生成し、開発速度と品質を向上させた方法をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097480/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097480784.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-1-generating-tests","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duoを使用した自動化シリーズパート1：テストの生成\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-02\",\n      }",{"title":690,"description":691,"authors":698,"heroImage":692,"date":700,"body":701,"category":679,"tags":702,"updatedDate":704},[699],"Byron Boots","2024-12-02","テストの自動化には時間がかかり、プロジェクトが前進していないように感じることもあります。しかし、多くのデベロッパーが経験しているように、自動テストを導入することで全体的に投資収益率がプラスになります。カスタムモジュールを構築（この記事ではgitlab-helperと呼びます）した場合、これが特に当てはまりました。\n\n当初の開発においては、既存のスクリプトから、将来の機能のベースラインとしてのみ使用される新たなモジュールに、実績のある機能を移行することにフォーカスしました。既存のスクリプトには自動テストが含まれていませんでしたが、一貫して使用することで、機能の期待どおりの動作を示す強力な裏付けとなりました。\n\n私たちの目標は、この問題に対するより成熟した解決策を用意することでした。そのため、自動テストが必要になったのです。これにより、テストにかける時間と堅牢な製品を開発する時間のバランスを取りつつ、効率的に構築するという課題が生じました。合計3人しかいないチームメンバーにとって、これは大きな障壁でした。そこでチームは、当社の一連のAI機能である[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を活用してテスト生成を行い、製品のデリバリー速度と品質を向上させることにしました。\n\nGitLab Duoを使用した自動化に関するこの3部構成のシリーズでは、以下の内容を説明します。\n\n1. GitLab Duoを使用してコードテストをどのように生成したか\n2. より複雑な状況でのGitLab Duoのインタラクティブな活用方法\n3. 達成できた結果（ネタバレ：デベロッパー1名と GitLab Duoの活用だけで、 2日間で84%のカバレッジを実現）\n\n## GitLab Duoを使用してコードテストを生成する\n\n機能自体はどのツールでも利用できますが、この記事では、VS CodeでGitLab Duoを使用し、[VS Code用GitLabワークフロー拡張機能](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow)を用いて、テストを生成する方法について説明します。その他のGitLab Duoオプションへのリンクは、下部の参照に記載されています。\n\n### GitLab Duoをインストールして有効にする\n\nまずは、GitLab Duoを使用するための前提要件として、GitLab Duo対応のアカウントを持っていることを確認しました。GitLab Duoをお持ちでない場合は、[無料トライアルにお申し込み](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/?type=free-trial)いただけます。\n\nVS CodeでGitLab Duo Chatを使用する方法は、[こちらのインストール手順](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#use-gitlab-duo-chat-in-vs-code)に従いました。そうすると、サイドバーにGitLab Duo Chat拡張機能が表示され、次のChatウィンドウが開きました。\n\n![質問ウィンドウ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097489/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097488918.png)\n\n### Chatでテストを生成する\n\ngitlab-helperは、チームの作業全体でGitLab APIとのインタラクションを標準化するために構築されたカスタムモジュールです。他のライブラリ機能を拡張して開発およびスクリプト作成作業を簡素化します。メソッドや機能がgitlab-helperに移行され、適切に実装されていることが確認できたら、そのテストを生成するプロセスは簡単でした。\n\n- IDEでメソッド、クラス、またはファイル全体を選択します。\n- 選択したコードを右クリックします。\n- **GitLab Duo Chat**で、**Generate tests**を選択します。\n\n![ドロップダウンを含む、テストを生成するための順列](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097489/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097488919.png)\n\n数秒以内にテストが生成され、GitLab Duo Chatウィンドウに表示されました。これらのテストはレビューしたり、コピー＆ペーストでコードベースに付け加えたり、既存や新規のテストファイルへ追加したりすることができます。今日のほとんどの世代の自然言語処理の場合と同様に、特にコンテキスト周りでは、GitLab Duoによって作成された初期テストの一部は失敗し、微調整（ネストされた依存関係の処理など）が必要になりました。\n\n> **上級者向けのコツ**：GitLab Duoは、生成されたテストの追加先のファイルを自動作成しません。新規のテストファイルを作成し、ファイル内の上部に`# Tests Generated by Duo`とコメントを追加し、さらにそれらのテストの作成方法がわかるように`_duo.py`と末尾につけておくと便利でした。\n\nGitLab Duoは、gitlab-helperの自動テストを構築するための優れた出発点となり、テスト作成の効率とコードカバレッジが大きく向上し、開発プロセスが大幅に高速化されました。GitLab Duoを使用しつつ、人間が監督することで、有用なテストのイテレーションを多数、gitlab-helperモジュールに導入することができました。\n\nこのシリーズの次回の記事では、[GitLab Duoを使用して自動テストを生成する際に学んだこと](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing/)と、より複雑な状況でのAIとのインタラクティブな作業について説明します。\n\n## 参照\n\nGitLab Duoを使用してテストを生成する方法は複数あります。他のオプションを以下にご紹介します。\n\n* GitLab UI  \n* [GitLab Web IDE（クラウド内のVS Code）](https://docs.gitlab.com/ee/user/project/web_ide/index.html)  \n* VS Codeと[VS Code用GitLabワークフロー拡張機能](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow)の使用  \n* JetBrains IDEと[JetBrains用GitLab Duoプラグイン](https://plugins.jetbrains.com/plugin/22325-gitlab-duo)の使用 \n* Visual Studio for Windowsと[Visual Studio用GitLab拡張機能](https://marketplace.visualstudio.com/items?itemName=GitLab.GitLabExtensionForVisualStudio)の使用\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[673,678,703,674,9],"testing","2025-04-02",{"slug":706,"featured":6,"template":681},"automating-with-gitlab-duo-part-1-generating-tests","content:ja-jp:blog:automating-with-gitlab-duo-part-1-generating-tests.yml","Automating With Gitlab Duo Part 1 Generating Tests","ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests.yml","ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests",{"_path":712,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":713,"content":719,"config":725,"_id":727,"_type":13,"title":728,"_source":15,"_file":729,"_stem":730,"_extension":18},"/ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing",{"title":714,"description":715,"ogTitle":714,"ogDescription":715,"noIndex":6,"ogImage":716,"ogUrl":717,"ogSiteName":694,"ogType":695,"canonicalUrls":717,"schema":718},"GitLab Duoを使用した自動化シリーズパート3：テストの検証","当社チームが自動テストプロセスにおけるGitLab Duoの影響を検証するために実行したテストや、達成した素晴らしい結果をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097447/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097447404.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-3-validating-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duoを使用した自動化シリーズパート3：テストの検証\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-17\",\n      }",{"title":714,"description":715,"authors":720,"heroImage":716,"date":721,"body":722,"category":679,"tags":723,"updatedDate":724},[699],"2024-12-17","このシリーズの前回の記事では、[GitLab Duoを使用してコードテストを生成する方法](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests/)と[GitLab Duoを使用して自動テストを生成する際に学んだこと](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing/)について説明しました。また、GitLab Duoによって生成されたテストに変更を加える方法もいくつかご紹介しました。このシリーズの最後の記事では、チームの自動テストプロセスにおけるGitLab Duoの影響を検証するために実行したテストと、これまでに達成した素晴らしい結果についてご紹介します。\n\n### 検証テストの結果\n\nテスト生成時のGitLab Duoの使い方が期待どおりの付加価値をもたらしているかを検証するために、自分たちとGitLab Duoへの挑戦として、テストカバレッジを置き換えて拡大させてみることにしました。チームは、以前に書いたテストをすべて削除してテストカバレッジを0%にしてから、リポジトリ内のコードを順番に確認していき、GitLab Duoが生成したテストを格納する新しいテストファイルを作成しました。\n\nこの出発点から、[最初のブログ記事](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests/)で概説した手順に従ってテストを生成しました。GitLab Duoの純粋な性能を正確に評価するために、テストとテストファイルは人間が一切修正しませんでした。`Tests Generated by Duo`というコメントをファイルの先頭に手動で追加し、テストの作成方法がわかるように末尾に`duo.py`と付けました。\n\nテストのすべてのイテレーションは、[シリーズの2番目のブログ記事](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing/)で概説したように、`Generate Tests`およびGitLab Duo Chatウィンドウを介したGitLab Duoとのインタラクションを通じてのみ行われました。先に述べたように、発生したエラーや失敗したテストに加え、GitLab Duoが追加のコンテキストとして使用できるようサンプルのコードスニペットに基づいて更新を行うよう、GitLab Duoにリクエストしました。\n\nGitLab Duoでテストする際には、常にテストとカバレッジレポートを実行していたため、GitLab Duoにより生成されたテストによってテストカバレッジが拡大され、期待どおりに付加価値を得られているかを確認できました。[GitLabのテストカバレッジの可視化](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/)機能を活用することで、作業の結果を継続的にモニタリングできました。\n\n最終的に、以前はほとんど手動のテストでカバーされていたコードのテストについて、GitLab Duoを使用して再生成した結果、84%のテストカバレッジを達成することができ、これは当社チームにとって大きな成果でした。理由は次のとおりです。\n\n1. 74%であった以前のカバレッジから大幅に改善できた。 \n2. 複数のエンジニアが約4週間かかって74%を達成していたのに対し、1人のエンジニアが約2日で84%を達成できた。\n\nこの実験以来、当社チームはGitLab Duoの助けを借りてカバレッジをさらに89%まで向上し、新機能も積極的に導入しています。\n\n![成果のイメージ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097456/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097456771.png)\n\nGitLab Duoを使用することで、テストの効率とカバレッジが向上し、既存のコードに関する情報をあまり把握していないデベロッパーでも、重要なテストをすばやく書けるようになりました。これにより、エラーの心配をすることなく新機能を開発できるというチームの自信が高まりました。\n\n> [GitLab Duoを試してみたい](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/)方は、今すぐ無料トライアルにお申し込みください！\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[673,703,674,9],"2025-05-13",{"slug":726,"featured":6,"template":681},"automating-with-gitlab-duo-part-3-validating-testing","content:ja-jp:blog:automating-with-gitlab-duo-part-3-validating-testing.yml","Automating With Gitlab Duo Part 3 Validating Testing","ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing.yml","ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing",{"_path":732,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":733,"content":739,"config":748,"_id":750,"_type":13,"title":751,"_source":15,"_file":752,"_stem":753,"_extension":18},"/ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale",{"title":734,"description":735,"ogTitle":734,"ogDescription":735,"noIndex":6,"ogImage":736,"ogUrl":737,"ogSiteName":694,"ogType":695,"canonicalUrls":737,"schema":738},"柔軟な組織階層を構築するためのベストプラクティス","このページでは、GitLabで組織階層をモデル化する方法をご紹介します。アジャイルの原則を守りながら、明確なコミュニケーションライン、戦略的な連携などを持つ組織を構築する方法を学びましょう。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098165/Blog/Hero%20Images/Blog/Hero%20Images/agile_agile.png_1750098164666.png","https://about.gitlab.com/blog/best-practices-to-set-up-organizational-hierarchies-that-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"柔軟な組織階層を構築するためのベストプラクティス\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-07-22\",\n      }",{"title":734,"description":735,"authors":740,"heroImage":736,"date":742,"body":743,"category":744,"tags":745,"updatedDate":747},[741],"Amanda Rueda","2024-07-22","GitLabサブスクリプションのメリットをフル活用するには、効果的な組織設定が欠かせません。このガイドでは、グループ、サブグループ、プロジェクト構造を設定することで、GitLabの使いやすさを向上させる方法をわかりやすく説明します。\n\n## グループ、サブグループ、プロジェクトの構造を理解する\n\nグループとプロジェクトは、組織階層をモデル化し、高度な権限管理と「チームの集合体」を活用した計画を可能にします。グループとサブグループは、戦略的な計画立案に利用され、その設定が下位階層のサブグループやプロジェクトに引き継がれるよう構成管理を行えます。\n\nこの他にも、バリューストリームをモデル化して、組織全体のプロジェクト管理やコラボレーションを強化することも可能です。\n\n- **プロジェクトレベル（チームレベル）**\n    - プロジェクトは、グループやサブグループに属しており、実際の作業はここで行われます。ここにはリポジトリがあり、プロジェクト固有の設定が管理できます。このレベルでは、日々の作業や詳しいプロジェクトの進捗を確認できます。\n    - 効果的にプロジェクトを設定することで、データを明確に整理し、報告や分析を正確に行うことができます。\n\n- **サブグループレベル（チームの集合体）**\n    - サブグループでは、より細かい権限管理が可能です。特定のチームやプロジェクトのニーズに合わせてカスタマイズできるため、組織全体で一貫したワークフローを実現できます。\n    - サブグループは、アジャイルにおける「チームの集合体」と同じように、関連するプロジェクトの集合体として機能します。\n    - このレベルは、共通の製品やサービスに取り組む複数のチームを管理する際に効果的です。これにより、複数のプロジェクト間で可視化と連携が容易になり、チーム間の同期が取れるようになるため、相互依存関係や目標の共有が可能になります。\n\n- **グループレベル（「チームの集合体」の集合体）**\n    - グループはGitLab内の組織の柱のようなもので、そこでは幅広い権限とアクセスを管理することができます。\n    - 最上位のレベルであるグループは、複数のサブグループが含まれます。アジャイルにおける『「チームの集合体」の集合体』のような、プロジェクト管理の戦略的な階層を表します。\n    - このレベルでは、包括的な目標と戦略を設定し、プロジェクトやサブグループにリソースを割り当てることで、組織の全体的なビジネス目標との整合性を確保します。\n\nGitLabを使って組織を構造化することで、選択したアジャイル手法を並行して実行でき、プロジェクト全体に自然にアジャイルの原則を適用できます。この構造により、明確なコミュニケーションライン、効率的なリソース管理、戦略的な連携が促進され、アジャイル手法特有の柔軟性や対応力が維持されます。\n\n> [GitLabアジャイルプランニング](https://about.gitlab.com/blog/categories/agile-planning/)に関するニュースやインサイトはこちらから。\n\n## GitLabの継承モデルを活用する\n\nGitLabの強力な機能のひとつに[継承モデル](https://docs.gitlab.com/ee/tutorials/scrum_events/index.html#understanding-the-inheritance-model-in-gitlab)があります。これは、上位階層で設定した権限、構成が自動的に下位階層にも適用されるようにするものです。また逆に、下位階層のデータを直感的に上位階層で利用することも可能です。継承モデルを使用すると、ポートフォリオ全体を上位のグループから可視化できます。さらに、個々のチームが作業を管理できるように、階層構造の下位に専用のスペースを確保します。\n\n例：\n- **上位グループでマイルストーンやラベルを作成**し、下位のすべてのサブグループやプロジェクトに自動的に適用することで、一貫性と組織の標準への準拠を促進します。\n- 下位レベルのプロジェクトやサブグループの**イシューやエピック**は、バリューストリーム階層の構造に沿って集約されるため、プログラム管理者やエグゼクティブ層が参照しやすくなります。\n- **グループレベルまたはトップレベルのサブグループ**でユーザー権限を管理することで、権限やアクセス制限を効率化できます。これにより、アクセス制御の管理が簡素化され、設定を繰り返すことなく、複数のプロジェクトにわたって適切な人が適切なアクセス権を持てるようになります。\n\nこうしたヒントを活用することで、管理上のオーバーヘッドを減らすことができるだけでなく、上位レベルでの変更が一貫して下位レベルに反映されるようになり、その結果、セキュリティとコンプライアンスの強化が実現できます。\n\n![組織階層図](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098179/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098179305.png)\n\n## GitLabセットアップのベストプラクティス\n\nGitLabの組織階層を設定する際には、組織のニーズに応じて以下のオプションをおすすめします。Self-managedユーザーの場合、「会社名」などのルートグループ階層を省略できます。Self-Managedはシングルテナントデプロイメントのためこのような追加の組織階層は必要ないからです。こういった柔軟性により、特定の組織構造や導入形態に合わせたGitLabのセットアップが実現できます。\n\n### オプション1：組織のサブグループレベルで権限とアクセスを付与する\n\nこのオプションは、複雑な権限構造や、多数のユーザー間で効率的にプロジェクトを共有する必要がある大規模な組織に最適です。\n\n#### 構造の例\n\n- 組織グループ\n    - 主に企業の提供システムとの統合を通じて、広範なアクセス権限を管理します。\n    - ユーザーはサブグループに追加され、これらのグループは、グループ全体を別の[グループ](https://docs.gitlab.com/ee/user/group/manage.html#share-a-group-with-another-group) や [プロジェクト](https://docs.gitlab.com/ee/user/project/members/share_project_with_groups.html)と共有する基盤として機能します。これにより、直接ユーザーを管理する手間を最小限に抑えます。\n    - ユーザーグループを作成すると、GitLab内で[グループメンション](https://docs.gitlab.com/ee/user/discussions/index.html#mentions)が利用できるので、一度に多くのユーザーグループをメンションできます。\n\n- 開発グループ\n    - 最上位の開発グループレベルにおいて、エグゼクティブレベルとプログラムマネジメントレベルに対して、すべての開発プロジェクトにまたがる可視性を提供します。\n    - 製品機能レベルの開発は、複数のリポジトリにアクセスが必要なため、サブグループレベルで作成されます。\n    - プロジェクトは開発用のリポジトリを管理するために作成されます。これは各開発チームのアクセスに利用します。\n\n![サブグループレベルの組織図](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098179/Blog/Content%20Images/Blog/Content%20Images/Image_1_aHR0cHM6_1750098179306.png)\n\n### オプション2：任意のレベルで権限とアクセスを付与する。\nこのオプションは、アクセス要件がそれほど複雑でない小規模な組織に最適です。ユーザーは、アクセスが必要な際に、部門グループ、サブグループ、またはプロジェクトに個別に追加されます。これにより、プロジェクト管理と運用の可視性を直接管理できます。\n\n#### 概要\n- 必要なアクセス権限に応じて、ユーザーを階層の最上位にあるグループまたは下位のサブグループやプロジェクトに追加できます。同じグループに属するメンバーを一度に追加するのではなく、各メンバーを個別に追加する必要があります。\n- 最上位の開発グループレベルにおいて、エグゼクティブレベルとプログラムマネジメントレベルに対して、すべての開発プロジェクトにまたがる可視性を提供します。\n- 製品機能レベルの開発は、複数のリポジトリにアクセスが必要なため、サブグループレベルで作成します。\n- プロジェクトは開発用のリポジトリを管理するために作成します。これは各開発チームのアクセスに利用します。\n\n![任意のレベルで付与される権限](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098179/Blog/Content%20Images/Blog/Content%20Images/Image_2_aHR0cHM6_1750098179307.png)\n\n### その他の構成に関する考慮事項\n\n- マイルストーンとイテレーション\n    - 幅広い可視性を確保するため、またはグループ間でマイルストーンを共有する必要がある場合は、グループレベルのマイルストーンを作成します。  \n    - マイルストーンが1つのプロジェクトに固有の場合は、プロジェクトレベルでマイルストーンを作成します。 \n    - 複数のグループにまたがって作業しているチームの場合、親グループレベルでイテレーションを設定すると、追跡が統一され、効率よく作業を進めることができます。\n\n- データ管理\n    - GitLabのロードマップ、ボード、リストページを活用して、組織の設定を反映したデータを取り込みましょう。これにより、進捗状況を可視化し、組織のさまざまなレベルにわたって効果的に計画を立てることができます。\n    - GitLabでは、下位レベルで作成されたデータであっても、上位レベルのグループで利用できます。\n    - 複数のグループやプロジェクトにまたがるデータを確認する場合には上位レベルのビューを作成し、特定のグループやプロジェクトのデータに集中する場合には下位レベルのビューを作成します。\n\n- テンプレートの作成\n    - 上位レベルのテンプレートを作成して、後続のすべてのサブグループやプロジェクトに確実に適用できるようにします。これには、一般的なガイドラインやプロジェクト固有の要件を盛り込みます。\n    - テンプレートは、該当するグループ（[関連するドキュメント](https://docs.gitlab.com/ee/user/project/description_templates.html)）内の独自のリポジトリ内に作成します。\n\n- ラベル\n    - 上位レベルのラベルを作成し、後続のすべてのサブグループやプロジェクトに確実に適用できるようにします。これには、組織ラベルとプロジェクト固有のラベルが含まれます。\n    - スコープ付きラベルを使用して、チームやワークフローのステータスなどの組織構造を定義します。\n\n![ラベル付きイシューボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098179/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098179310.png)\n\n## GitLabの機能を活用して成果を上げる\n\nGitLabで適切な構造を実装することは、ソフトウェアプロジェクトの管理を合理化するだけでなく、組織のさまざまなレベルでの可視性を高め、トップマネジメントから一般社員まで、情報に基づいた意思決定を行うために必要な情報を確実に得ることができます。 \n\n> [GitLab Ultimateの無料トライアル](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial)で、組織の階層構造のモデリングを始めませんか？\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n","agile-planning",[746,9,674],"agile","2024-12-27",{"slug":749,"featured":6,"template":681},"best-practices-to-set-up-organizational-hierarchies-that-scale","content:ja-jp:blog:best-practices-to-set-up-organizational-hierarchies-that-scale.yml","Best Practices To Set Up Organizational Hierarchies That Scale","ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale.yml","ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale",{"_path":755,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":756,"content":760,"config":772,"_id":774,"_type":13,"title":775,"_source":15,"_file":776,"_stem":777,"_extension":18},"/ja-jp/blog/claude-code-gitlab-ai-development-workflow",{"noIndex":6,"title":757,"description":758,"ogImage":759},"エージェンティックAI Claude CodeとGitLab CLIの開発フロー","Claude CodeとGLabを組み合わせてローカル環境から効率的にIssue作成・MR操作・レビュー依頼などを自動化し、生成AIのコード補助を活かした開発フローを構築する方法を紹介","https://res.cloudinary.com/about-gitlab-com/image/upload/v1751953181/rtejicnkhd9oslaxsoo5.jpg",{"heroImage":759,"category":679,"body":761,"date":762,"authors":763,"description":765,"title":766,"tags":767},"## 目次\n\n1. はじめに: AI活用の新時代を切り拓く効率的なソフトウェア開発\n2. Claude Codeとは何か？\n3. GitLabのCLIであるGLabの紹介\n4. Claude CodeとGLabを組み合わせた開発の流れ\n5. AIを使った開発の今後の広がりについて\n6. まとめ\n7. よくある質問\n\n\n\n## はじめに: AI活用の新時代を切り拓く効率的なソフトウェア開発\n\nこの記事を読むと、エージェント型AIであるClaude CodeとGitLab CLIツール「GLab」を組み合わせて、ローカル環境から効率的にIssue作成・MR操作・レビュー依頼などを自動化し、生成AIによるコード補助を活かした実践的な開発フローを構築する方法がわかるようになります。\n\n## Claude Codeとは何か？\n\nClaude Codeとはエージェント型AIで、ターミナル上でAIにコマンドを実行させることで既存ツールを使いながら効率的に開発できます。\n\n## GitLabのCLIであるGLabの紹介\n\nGLabはオープンソースのGitLab CLIツールです。GLabをターミナルに統合し、作業中のコマンドラインツールや、IDEの中に表示できます。GitLabのWebUIにアクセスするためにブラウザのウィンドウやタブに切り替える必要がなくなり、マージリクエストの作成やパイプラインの状況の確認など、様々なことを直感的にコマンドラインで実行可能になります。\n\n## Claude CodeとGLabを組み合わせた開発の流れ\n\n### **Claude Codeとglabのインストール**\n\nここでは個別のインストール方法や導入の仕方については割愛しますが、下記の公式サイトが参考になると思いますのでご確認ください。\n\nClaude Code: \u003Chttps://docs.anthropic.com/ja/docs/claude-code/overview>\n\nGLab: \u003Chttps://gitlab.com/gitlab-org/cli/-/blob/main/README.md>\n\n### [](https://gitlab.com/gitlab-org/cli/-/blob/main/README.md)**GitLabの認証情報を設定**\n\nまずはGLabのセットアップをしていきましょう。GLabでGitLabサーバーにログインします。\n\n`$ glab auth login`\n\n上記を実行すると、ログインするサーバーの先を問われるので、選びます。続いて、Tokenによるログインか、Webブラウザを使って認証するか聞かれるため、これも好きな方を選んでください。下記は、Webを選んだ場合の画面です。\n\n![Webログイン](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/tl81t9qzwhqjnrro3lrb.png)\n\n次に、Gitクライアントが通信するデフォルトのプロトコルを聞かれるので、これも好きなものを選んでください。環境によってはSSHプロトコルの通信が制限されている場合もあるかと思うので、そのような場合はHTTPSを選ぶことをおすすめします。\n\n最後に、Gitの認証にもCredentialsの認証情報使うかを問われるため、これも選んでいただければと思います。\nYesの場合は、GitのHTTPS認証にもglabのPersonal Access Token（PAT）を使うよう.gitconfigに設定され、Noを選んだ場合は、glabでIssueやMRの操作をする一方で、Gitのpush/pullは従来通りのSSHや別途設定した認証方式で行う必要があります。\n\n初期の設定が終わった画面を下記に示します。\n\n![初期設定完了画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198582/xtpheeez1gcwr8sfjmdv.png)\n\n### **開発対象プロジェクトのclone**\n\n次に、Claude Codeに指示を与えて、glabコマンドを使って、リモートリポジトリからcloneします。下記のコマンドでClaude Codeを起動します。\n\n`$ claude`\n\n既にGLabで認証は終わっているため、作業するプロジェクトのリポジトリをcloneするように指示を与えます。\n\n`> GitLab上で自分が参加しているプロジェクトを表示してください`\n\n上記のようにプロンプトするとClaude Codeが\n\n`$ glab repo list`\n\nなどを実行してくれると思います。次に、作業したいリポジトリを上記から選び、Cloneします。プロジェクト名は各自の環境に合わせて指定してください。\n\n`> プロジェクト naosasaki-demo/study/spring-demo をcloneしてください`\n\nClaude Codeの処理が終わると、一度Claude Codeを終了し、ターミナルでディレクトリを確認すると、cloneされたディレクトリが作られていることがわかると思います。\n\n**新しいIssueの作成**\n\n次に、このプロジェクトに新しくイシューを作りたいと思います。通常であればWebブラウザでGitLabにアクセスしイシューを登録しますが、GLabとClaude Codeを使って、IDEやターミナル画面から作ってみたいと思います。\n\n`> このプロジェクトに新しいイシューを作ってください。内容は、今の東京の温度と天気を返すWebAPIのエンドポイントを作成します。`\n\n![イシュー作成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/iizlucpfxgsa0nrdsvqn.png)\n\n\n上記のようにglabを使ってイシューを作成するコマンドが提案されます。またイシューのなかの記載もある程度書いてくれていることがわかります。\n\n![イシュー作成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198579/ye2wtupp6nf8ljzja2yh.png)\n\nブラウザでアクセスしても、正しく作られていることがわかります。\n\n![イシュー作成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198582/vbo22zzdzzanvnrbsszq.png)\n\n### **マージリクエストとブランチの作成と作業開始**\n\n次に、実際のこのIssueの内容を実装していきたいと思います。ここからはIDEのVisual Studio Codeも利用していきたいと思います。Visual Studio Codeを起動し、内蔵されたターミナルを開き、そこでClaude Codeを起動します。\n\n早速、先ほど作ったイシューからマージリクエストを作って、その中で作業をしていきたいと思います。\n\n`> このリポジトリのプロジェクトのissue 53を実装したいので、glabでMRを作って、そのブランチをチェックアウトして`\n\n![マージリクエストとブランチの作成と作業開始](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/or6l5si3k4dbprcnnfgq.png)\n\n**コードの編集と検証**\n\n`> イシューの記載に基づいて実装してください。また、リポジトリ内部のドキュメントも追加に伴って更新してください。`\n\n![コードの編集と検証](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/dlgq0j60n2jfk24vxaj3.png)\n\nOpenWeatherMap APIを使うことを提案してくれています。そのほかにも、いくつかのクラスを作成することを提案されるので、中身を確認しつつ、それを受け入れ、git pushなども依頼します。\n\n![CC_8_git push](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198584/esdeisz4mzyyjlerlahl.png)\n\n### **レビューとCI/CDの確認**\n\n実際にマージリクエストを確認すると、ローカルで作成した変更がプッシュされ、GitLab側のCI/CDでの単体テストや、セキュリティスキャンなども正常に実行され、問題なく終了していることがわかりました。\n\n![レビュー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/e7hyheb5gkpvb7iixrro.png)\n\nしかし、テストが通っていても、それが適切な方法で実装されているか、非機能的な観点で問題がないかは別途確認する必要があります。ここで[GitLab Duo in merge requests](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/)という機能を利用して、GitLabのAI機能であるGitLab Duoにレビューを依頼してみたいと思います。\n\nマージリクエストのコメントでレビューをリクエストし、レビュアーとしてDuoを指定します。この時、レビューの観点なども同時に与えることができます。下記のようにコメントでレビューをDuoに依頼します。\n\n`/request_review @GitLabDuo`\n\n`マージリクエストのコードを下記の観点でレビューしてください：`\n\n`拡張性：将来的な機能追加や変更に対応しやすい設計・実装になっているか  \n可読性：他の開発者が理解しやすいコードになっているか  \n安全性：バグやセキュリティリスクを引き起こす可能性がないか  \nパフォーマンス：必要以上にリソースを消費していないか`\n\n![Duoレビュー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198581/tnkt52hpapm8cyi4qplw.png)\n\n上記をコメントすることで、Duoにレビューを依頼できます。\n\n実際にレビュー指摘がありました。\n\n![Duoレビュー指摘](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752198573/vehscyu2beo4pz9ns3y2.png)\n\nDuoの指摘のとおり、Claude Codeが生成した元のコードでは、translateWeatherToJapanese メソッドが呼ばれるたびに HashMap が新しく作成されています。これはパフォーマンスの低下や不要なオブジェクト生成につながります。Duoは「このマップは不変であり、再利用可能なので static final にすべき」と提案しています。これの指摘は確かにその通りなので、マージリクエスト上でこの指摘と、変更の提案を受け入れます。\n\nこの変更の受け入れ自体も、ソースコードの変更なので、受け入れたらCI/CDパイプラインが動き出して、再度自動的にセキュリティスキャンや単体テスト実施されます。再度CI/CDパイプラインが動き、問題がなかったためmainブランチにマージしました。これでこの機能の開発は完了です。\n\n## AIを使った開発の今後の広がりについて\n\n### **AIは「補助ツール」から「実行の主体」へ**\n\n従来のチャットベースのインタラクティブな開発支援、すなわち一問一答のやり取りを繰り返しながら人間が主導で手を動かしていた開発スタイルから、いま大きな転換が始まっています。\n\nGLabのようなCLIツールやWebAPIと、エージェンティックAIを組み合わせることで、「命令→実行→ステータス確認→再試行」といった一連の開発オペレーションを、AIが自律的かつ反復的に担う、まさに実行主体としてのAIへの進化が進んでいます。\n\nこれは単なる補助からの脱却であり、ソフトウェア開発における人と機械の役割分担そのものを再定義しつつあります。人間は「何を実現したいか」を定義し、AIは「どう実現するか」を粘り強く試行錯誤していく、そんな協働の形が、現実の開発現場に静かに浸透し始めています。\n\n**レビューとガバナンスの重要性**\n\nAIによってコードが自動生成されるようになった今、開発効率が飛躍的に向上する一方で、「そのコードは本当に安全か？」「人間はAIの出力を正しくレビューできるのか？」といった新たな課題が生まれています。\n\n人間の作業と同様に、AIによって生成されたコードは、動作するからといって、品質が担保されているとは限りません。\n\nこうした背景から、組織的にAIを活用していくには、**コードの品質・セキュリティ・コンプライアンスを保証する仕組みを開発プロセスに組み込む**ことが不可欠です。\n\n今回は、コードの生成にClaude Codeを利用しましたが、そのコードに含まれる性能的な懸念をGitLab Duoによるレビューで摘出することができました。\n\nその他にも、GitLabでは「パイプライン実行ポリシー」を用いることで、プロジェクト単位ではなくグループやサブグループに対して、**SASTや依存関係スキャン、シークレット検出などのセキュリティジョブを強制適用**することが可能です。\n\nこのように、**AIによる開発支援とセキュリティ・品質管理の自動化を同時に実現できる**のは、DevSecOpsを包括的に支援するプラットフォームであるGitLabの強みといえます。\n\n## まとめ\n\nこの記事では、Claude CodeのようなAIエージェントと、GitLab公式CLIツールGLabを組み合わせることで、自然言語によるコード生成からGitLab上でのイシュー管理やマージリクエスト作成までをAIエージェントにやってもらうことで、開発効率を向上させる例を紹介しました。一方で、AIエージェントが生成するコードの品質を担保するには、GitLabのセキュリティスキャンやパイプライン実行ポリシーを活用した自動検証の仕組みが欠かせません。AIと人間、それぞれの強みを活かした開発フローが、今後ますます重要になっていくでしょう。\n\n> 今すぐ始められる：GitLabでAIを使ったソフトウェア開発を体験しよう\n>\n> [GitLab Duoの無料トライアルに申し込む](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/)\n\n## よくある質問\n\n### Q1: GitLabのAI機能にはどのようなものがありますか？\n\nA1: GitLabのAI機能「GitLab Duo」には、ソースコードの提案、テストケース/コードの生成はもちろん、脆弱性の自動修復や、CI/CD失敗時の根本原因分析など、ソフトウェア開発全体に対するAIによる支援機能群が含まれています。\n\n\n### Q2: GitLab Duoはユーザーのソースコードを学習に使いますか？\n\nA2: いいえ。GitLab Duoは利用者のコードやデータをモデルの再学習には使用しません。GitLabはユーザーデータのプライバシーとセキュリティを重視しており、企業向けにも安心して利用できる設計となっています。詳細については、[GitLab AI Transparency Center](https://about.gitlab.com/ai-transparency-center/)をご確認ください。\n\n### Q3: Claude Codeとは何ですか？\n\nA3: Claude Codeとはエージェント型AIで、ターミナル上でAIにコマンドを実行させることで既存ツールを使いながら効率的に開発できます。\n\n### Q4: GitLab CLIのGLabとは何ですか？\n\nA4: GLabは、GitLab公式が提供するオープンソースのCLIツールです。GLabをターミナルに統合し、作業中のコマンドラインツールや、IDEの中に表示できます。","2025-07-14",[764],"Naoharu Sasaki","エージェント型AIであるClaude CodeとGitLab CLIツール「GLab」を組み合わせて、ローカル環境から効率的にIssue作成・MR操作・レビュー依頼などを自動化し、生成AIによるコード補助を活かした実践的な開発フローを構築する方法をご紹介します。","Claude Code × GitLab：AI活用を加速する、エージェンティックAIとGitLab CLIによる効率的なソフトウェア開発フロー",[673,108,675,768,769,9,532,233,770,678,771],"collaboration","DevSecOps","security","workflow",{"featured":90,"template":681,"slug":773},"claude-code-gitlab-ai-development-workflow","content:ja-jp:blog:claude-code-gitlab-ai-development-workflow.yml","Claude Code Gitlab Ai Development Workflow","ja-jp/blog/claude-code-gitlab-ai-development-workflow.yml","ja-jp/blog/claude-code-gitlab-ai-development-workflow",{"_path":779,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":780,"content":786,"config":793,"_id":795,"_type":13,"title":796,"_source":15,"_file":797,"_stem":798,"_extension":18},"/ja-jp/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards",{"title":781,"description":782,"ogTitle":781,"ogDescription":782,"noIndex":6,"ogImage":783,"ogUrl":784,"ogSiteName":694,"ogType":695,"canonicalUrls":784,"schema":785},"データドリブンのDevSecOps：GitLabインサイトダッシュボードのご紹介","主要なメトリクスの可視化、プロジェクトの進捗状況の追跡、カスタマイズ可能なデータドリブンビューを使ったチームの生産性の改善など、GitLabインサイトダッシュボードの活用方法について説明します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097210/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750097210214.png","https://about.gitlab.com/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"データドリブンのDevSecOps：GitLabインサイトダッシュボードのご紹介\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Ricardo Amarilla Villalba\"}],\n        \"datePublished\": \"2024-11-20\",\n      }",{"title":781,"description":782,"authors":787,"heroImage":783,"date":789,"body":790,"category":676,"tags":791},[788],"Ricardo Amarilla Villalba","2024-11-20","メトリクスおよび分析は、生産性や品質を高め、成功を収める上で極めて重要な要素です。包括的なDevSecOpsプラットフォームであるGitLabでは、こういった重要なメトリクスを追跡・可視化するための強力なツールをインサイトダッシュボード上で提供しています。この記事では、ご利用の環境でのインサイトダッシュボードの使用方法についてご紹介します。\n\n\n## GitLabのメトリクスと分析ツールのご紹介 \n\n\nGitLabでは、DevSecOpsライフサイクルのさまざまな側面に対応したメトリクスおよび分析ツール群をご用意しています。\n\n\n1.\n[生産性分析](https://docs.gitlab.com/ee/user/analytics/productivity_analytics.html)：チームの開発速度、サイクルタイム、リードタイムを追跡します。  \n\n2.\n[コードレビュー分析](https://docs.gitlab.com/ee/user/analytics/code_review_analytics.html)：コード品質、テストカバレッジ、レビュー効率を測定します。  \n\n3.\n[CI/CD分析](https://docs.gitlab.com/ee/user/analytics/ci_cd_analytics.html)：パイプラインのパフォーマンスとデプロイ頻度をモニタリングします。  \n\n4.\n[バリューストリーム分析](https://docs.gitlab.com/ee/user/group/value_stream_analytics/)：アイデア出しから本番稼働までの作業の流れを可視化します。  \n\n5.\n[インサイト](https://docs.gitlab.com/ee/user/project/insights/)：プロジェクトやグループに関するデータを調べて可視化します。\n\n\n開発プロセスに関する貴重なインサイトを得られるこれらのメトリクスを参考にして、ボトルネックの特定、ワークフローの最適化、データドリブンな意思決定を行えます。\n\n\n## 特定のメトリクスへのラベルの活用\n\n\nあまり目立たないものの、GitLabの特に強力な機能の1つがラベルです。ラベルを使うと、特定のメトリクスに絞り込んで、極めて正確に焦点を当てられます。イシューやマージリクエスト、エピックに戦略的にラベルを適用することで、プロジェクトのパフォーマンスや進捗について的確なインサイトを得られるカスタムビューを作成できます。\n\n\n用途の広い識別子として機能するGitLabのラベルを使用すれば、作業アイテムを柔軟に分類・整理できます。機能開発やバグ修正、チーム固有のタスクなど、追跡対象が何であれ、ラベルを使用すれば、プロジェクトデータをスライスして、別の視点から分析して意味のあるパターンや傾向を特定することが可能です。この概念は、クラウドのデプロイにおいて、管理やコスト配分、運用上のインサイト取得をスムーズに行うためにタグを使用するのと似ています。\n\n\nしっかりと考えながら作業アイテムにラベルを付けていくことで、カスタムダッシュボードやレポートの生成に活用できる高度なラベリングシステムが実質的に構築されます。このアプローチにより、チームや関係者にとって最も重要なメトリクスを重点的に取り上げられるとともに、プロジェクトの健全性と勢いに焦点を絞ってわかりやすく可視化できます。\n\n\n## GitLabインサイトの設定方法\n\n\nGitLabインサイトを使用すると、プロジェクトやグループに関するデータを調べて可視化できます。特定の期間内に作成された、または完了したイシュー、マージリクエストのマージが完了するまでの平均時間、トリアージの健全性など、さまざまな側面に関する有用な分析情報を得られます。インサイトは、プロジェクトとグループのどちらにも設定できます。\n\n\nインサイトの設定手順は次のとおりです。\n\n\n1. プロジェクトにインサイトを設定する場合：  \n   * プロジェクトのルートディレクトリ内に`.gitlab/insights.yml`という名前のファイルを作成します。  \n2. グループにインサイトを設定する場合：  \n   * グループに属するプロジェクト内に`.gitlab/insights.yml`ファイルを作成します。  \n   * グループの**設定 > 一般**の順に移動します。\n   * **分析セクション**を展開し、**インサイトセクション**を見つけます。  \n   * 設定ファイルが含まれるプロジェクトを選択し、変更を保存します。\n\n`.gitlab/insights.yml`は、レポート内のチャートの構造や順序に加え、表示されるチャートの形式を定義できるYAMLファイルです。各チャートの定義には、タイトル、説明、タイプ、データソースやフィルタリング条件を指定するクエリなどのパラメータを含められます。\n\n\nインサイトを表示するには、プロジェクトまたはグループで**分析 > インサイト**の順に移動します。\n\n\n![デフォルトのインサイトダッシュボードの表示](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097218/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097217972.png)\n\n\n## マージリクエストインサイトのカスタマイズ\n\n\nデフォルトビューでは有用な情報が未加工で表示されますが、インサイトダッシュボードをカスタマイズすれば、各マージリクエストの担当チームや、マージリクエストごとに解決された問題の種類など、より多くの情報が明らかになります。\n\n\n## スクワッドおよび要件タイプごとのマージリクエストインサイト\n\n\nGitLabでスクワッドの生産性を測定するのは、難しい場合があります。GitLabのグループとサブグループの構造が、実際のスクワッドの構成と完全に一致していない場合は特に困難です。こういった課題に対処し、効果的にスクワッドの生産性を追跡する方法をご紹介します。\n\n\n### **スクワッドベースのメトリクスの設定**\n\n\n1.\n**ラベルの作成**：スクワッドごと（例：`squad::alpha`、`squad::beta`）および要件タイプ（例：`type::bug`、`type::feature`、`type::maintenance`）ごとに範囲指定した一意のラベルを作成します。\n\n\n\u003C!-- 空白行 -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/ZUOzORIUJeU?si=T8eHeGizS3blYFHB\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- 空白行 -->\n\n\n2.\n**ラベルの適用**：所属するプロジェクトやグループに関係なく、各スクワッドが対応するすべてのイシューおよびマージリクエストにこれらのスクワッドラベルを一貫して適用します。  \n\n\n\u003C!-- 空白行 -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/fJ9entEBZG8?si=MlM6mKirEdkmwDDJ\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- 空白行 -->\n\n\n**ヒント**：  \n   * GitLab APIを使用すれば、既存のMR（未解決、マージ済み、完了したもの）に一括でラベルを適用できます。  \n   * GitLab CIパイプラインの一環としてラベルの追加や削除、更新を行えます。  \n   * GitLabトリアージボットを活用すれば、ラベルの適用プロセスを自動化できます。  \n\n3.\nダッシュボードの設定：プロジェクトのリポジトリに`.gitlab/insights.yml`ファイルを作成し、チームやタイプ固有のマージリクエストインサイト用のカスタムチャートを定義します。\n\n\n```\n\n\n## Default Merge Requests insights.yml \n\nmergeRequests:\n  title: Merge requests dashboard\n  charts:\n    - title: Merge requests merged per week \n      type: bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          group_by: week\n          period_limit: 12\n    - title: Merge requests merged per month\n      type: bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          group_by: month\n          period_limit: 3\n\n## Per-teams Merge Requests insights.yml\n\nmergeRequestsTeams:\n  title: Merge requests dashboard per teams\n  charts:\n    - title: Merge requests merged per week \n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          group_by: week\n          period_limit: 12\n          collection_labels:\n            - squad::alpha\n            - squad::beta\n    - title: Merge requests merged per month\n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          group_by: month\n          period_limit: 3\n          collection_labels:\n            - squad::alpha\n            - squad::beta\n\n## Per-teams and Type Merge Requests insights.yml\n\nmergeRequestsTeamsAndType:\n  title: Per Teams and Type - Merge requests dashboard\n  charts:\n    - title: Merge requests merged per week - Squad Alpha\n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          filter_labels: squad::alpha\n          collection_labels:\n            - type::feature\n            - type::bug\n            - type::maintenance\n          group_by: week\n          period_limit: 12\n    - title: Merge requests merged per month - Squad Alpha\n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          filter_labels: squad::alpha\n          collection_labels:\n            - type::feature\n            - type::bug\n            - type::maintenance\n          group_by: month\n          period_limit: 3\n    - title: Merge requests merged per week - Squad Beta\n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          filter_labels: squad::beta\n          collection_labels:\n            - type::feature\n            - type::bug\n            - type::maintenance\n          group_by: week\n          period_limit: 12\n    - title: Merge requests merged per month - Squad Beta\n      type: stacked-bar\n      query:\n        data_source: issuables\n        params:\n          issuable_type: merge_request\n          issuable_state: merged\n          filter_labels: squad::beta\n          collection_labels:\n            - type::feature\n            - type::bug\n            - type::maintenance\n          group_by: month\n          period_limit: 3\n\n```\n\n\nこのようにカスタマイズすることで、チームおよび要件タイプごとのマージリクエストアクティビティがわかりやく表示される、役に立つ情報満載のダッシュボードを作成できます。それをもとに、長期的なトレンドの可視化、各スクワッドのパフォーマンスの比較、スクワット単位での作業タイプの分布の分析を行えます。\n\n\n![チームおよび要件タイプごとにMRアクティビティが表示されているダッシュボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097218/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097217972.png)\n\n\n![各スクワッドのパフォーマンスが比較されているダッシュボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097218/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097217974.png)\n\n\n## 無料トライアルで今すぐスタート！\n\n\nGitLabには、GitLabインサイト以外にも、メトリクスおよび分析関連のツールや機能が多数あります。ぜひ以下のバリューストリーム管理製品ツアーで、バリューストリーム分析やCI/CD分析、コードレビューメトリクスなど、GitLabの強力な分析機能の全容をご確認ください。\n\n\n[![バリューストリーム管理製品ツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097218/Blog/Content%20Images/Blog/Content%20Images/Screenshot_2024-11-20_at_12.28.08_PM_aHR0cHM6_1750097217976.png)](https://gitlab.navattic.com/vsm)\n\n\n> カスタムメトリクスの作成を始める準備ができたら、[今すぐGitLab\nUltimateの無料トライアル](https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2F)にご登録ください。データドリブンのDevSecOpsを最大限に活用しましょう。\n\n\n## 関連リンク\n\n-\n[スケジュール設定できるレポート生成ツールでバリューストリーム管理を簡単に実施](https://about.gitlab.com/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management/)\n\n-\n[新たなGitLabバリューストリームダッシュボードを使い始める](https://about.gitlab.com/blog/getting-started-with-value-streams-dashboard/)\n\n-\n[AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n",[108,674,676,9,678,792],"solutions architecture",{"slug":794,"featured":90,"template":681},"data-driven-devsecops-exploring-gitlab-insights-dashboards","content:ja-jp:blog:data-driven-devsecops-exploring-gitlab-insights-dashboards.yml","Data Driven Devsecops Exploring Gitlab Insights Dashboards","ja-jp/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards.yml","ja-jp/blog/data-driven-devsecops-exploring-gitlab-insights-dashboards",{"_path":800,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":801,"content":807,"config":818,"_id":820,"_type":13,"title":821,"_source":15,"_file":822,"_stem":823,"_extension":18},"/ja-jp/blog/demystifying-ci-cd-variables",{"title":802,"description":803,"ogTitle":802,"ogDescription":803,"noIndex":6,"ogImage":804,"ogUrl":805,"ogSiteName":694,"ogType":695,"canonicalUrls":805,"schema":806},"GitLabの環境変数をわかりやすく解説","CI/CD変数はジョブやパイプラインを制御するのに便利（かつ柔軟に利用可能）なツールです。この記事では、GitLabの環境変数について知っておくべき情報をすべてご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664679/Blog/Hero%20Images/blog-image-template-1800x945__24_.png","https://about.gitlab.com/blog/demystifying-ci-cd-variables","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLabの環境変数をわかりやすく解説\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Veethika Mishra\"}],\n        \"datePublished\": \"2021-04-09\",\n      }",{"title":802,"description":803,"authors":808,"heroImage":804,"date":810,"body":811,"category":812,"tags":813,"updatedDate":817},[809],"Veethika Mishra","2021-04-09","[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)変数は、さまざまな方法で定義・使用でき、高い柔軟性を持っています。変数はジョブやパイプラインを制御する上で非常に便利で、`.gitlab-ci.yml`設定ファイルに値をハードコーディングせずに済みます。このブログ記事では、変数のスコープや機能を分かりやすくお伝えするため、変数の定義や使い方に関する情報を網羅的に整理し、全体像をご紹介します。記事全体をとおして、関連するドキュメントがリンクされています。\n\n\n[GitLab\nCI/CD](https://docs.gitlab.com/ee/ci/)では、値を定義して保存することで、変数を使用してジョブをカスタマイズできます。変数を使用すれば、値をハードコーディングする必要はありません。GitLabでCI/CD変数を定義するには、**「設定」>>「CI/CD」>>「変数」**の順に移動します。または`.gitlab-ci.yml`ファイルで定義することも可能です。\n\n\n変数は、異なるデプロイ環境（`testing`、`staging`、`production`など）におけるサードパーティサービスの設定に役立ちます。それらの環境に紐づけられたサービスは、必要なAPIエンドポイントを指す変数を変更するだけで、簡単に変更できます。また、変数を使用してジョブを設定し、ジョブ実行時にジョブ内で環境変数として利用できるようにすることも可能です。\n\n\n![GitLabは、.gitlab-ci.ymlファイルを読み込んで、参照される変数をスキャンし、GitLab\nRunnerにその情報を送信します。変数情報はRunnerに渡され、Runnerによって出力されます。](https://about.gitlab.com/images/blogimages/demystifying-ci-cd-variables/variables_processing.jpeg)\n\n\n## 変数と環境の関係\n\n\nソフトウェア開発プロセスには、製品をユーザー向けにリリースする前にテストするステージが含まれます。[環境](https://docs.gitlab.com/ee/ci/environments/)は、これらのステージの内容を定義するために使用されるもので、チームや組織によって異なる可能性があります。\n\n\n一方、変数とは、ユーザーによる製品の操作によって変化する可能性のあるデータ値を指します。これには、年齢や好み、またはタスクフローにおける次のステップを決定する要素となるあらゆる入力が該当します。\n\n\n[環境変数](https://docs.gitlab.com/ee/administration/environment_variables.html)という言葉は、皆さんもよく耳にされると思います。これは、ある環境で定義されているものの、アプリケーションの外部に存在する変数を指します。GitLab\nCI/CD変数を使用すると、デベロッパーはコード内で値を設定できます。変数の使用には、コードの柔軟性が保証されるという利点があります。GitLab\nCI/CD変数を使用すれば、コードに変更を加えることなく、特定の環境にデプロイされたアプリケーションを変更できます。これにより、アプリケーションの外部で設定の環境変数を変更するだけで、テストの実行やサードパーティサービスの統合を簡単に行えます。\n\n\n## CI/CD変数のスコープ\n\n\n![CI/CD変数の優先順位：1) 手動によって実行、トリガー、スケジュールされたパイプライン変数、2)\nプロジェクトレベル、グループレベル、インスタンスレベルの保護変数、3) 継承されたCI/CD変数、4)\nymlに定義された、ジョブレベルのグローバル変数、5) デプロイ変数、6)\n定義済みのCI/CD変数](https://about.gitlab.com/images/blogimages/demystifying-ci-cd-variables/variables_precedence.jpeg)\n\n\n### `.gitlab-ci.yml`に定義された変数\n\n\nGitLabには、ジョブ環境で利用する必要がある変数を追加できます。これらのCI/CD変数は、`.gitlab-ci.yml`ファイルのデータベースURLのような、機密性の低いプロジェクト設定を保存するために使用されます。この変数は、複数のジョブやスクリプトで再利用でき、必要な場所で値を参照できます。値を変更する場合は、変数を一度更新するだけで、変数が使用されているすべての箇所に変更が反映されます。\n\n\n### プロジェクトのCI/CD変数\n\n\nリポジトリ固有の要件に縛られることなく、[プロジェクト設定](https://docs.gitlab.com/ee/ci/variables/#for-a-project)でCI/CD変数を定義できます。これにより、CI/CDパイプラインで利用できるようになります。これらの変数は、リポジトリの外部（`.gitlab-ci.yml`ファイルには保存されません）に保存されますが、CI/CDの設定やスクリプトで引き続き利用可能です。変数を`.gitlab-ci.yml`ファイル外に保存することで、これらの値のスコープをプロジェクト内のみに限定し、プロジェクトにプレーンテキストとして保存されることを防ぎます。\n\n\n### グループおよびインスタンスのCI/CD変数\n\n\n一部の変数は、グループレベル、あるいはインスタンスレベルで適用でき、グループやインスタンス内のすべてのプロジェクトで有用となる可能性があります。[グループまたはインスタンス設定](https://docs.gitlab.com/ee/ci/variables/#for-a-group)で変数を定義することで、それらのスコープ内にあるすべてのプロジェクトにおいて、実際の値がわからなくても、変数を使用できるようになります。下位スコープの変数を作成する必要もありません。たとえば、複数のプロジェクトにおいて更新が必要な共通の値がある場合、1か所で最新の状態に保つことで管理しやすくなります。また、パスワードの値を実際に知らなくても、複数のプロジェクトで特定のパスワードを使用することも可能です。\n\n\n## 環境としてのジョブとパイプライン\n\n\nGitLab\nCI/CDの変数は、環境変数としてだけでなく、`.gitlab-ci.yml`設定ファイル内でパイプラインの動作を設定するためにも使用されます。この場合、特定の環境に依存しない状況でも利用できます。また、プロジェクト、グループ、インスタンスの設定に保存しておくことで、パイプライン内のジョブで利用可能になります。\n\n\n以下に例を示します。\n\n\n```  \n\njob:  \n  rules:  \n    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH  \n  script:  \n  - echo \"This job ran on the $CI_COMMIT_BRANCH branch.\"  \n```\n\n\nスクリプトセクション内で使用されている変数（例：`$CI_COMMIT_BRANCH`）は、定義されたジョブのスコープ内で実行されます。このスコープは「ジョブ環境」と呼ばれます。つまり、ジョブが開始されると、GitLab\nRunnerはDockerコンテナを起動し、その環境でジョブを実行します。Runnerはその変数（および他のすべての定義済み変数やカスタム変数）をジョブに提供します。さらに、その値をログ出力に表示することも可能です。\n\n\nただし、この変数は、ジョブの実行タイミングを決定するために、`if:`セクション**でも**使用されます。ただし、そのセクション自体は環境ではないため、これらの変数を「CI/CD変数」と呼びます。CI/CDジョブを動的に設定する際に使用できるのは**もちろん**、ジョブの実行時に環境変数としても利用できます。\n\n\n## 定義済み変数\n\n\nGitLab\nCI/CDパイプラインが開始されたタイミングで、[定義済み変数](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html)がすでに存在します。ユーザーは変数自体を定義せずに、コミットやプロジェクト、パイプラインの詳細などの値にすぐにアクセスできます。\n\n\n## カスタムCI/CD変数\n\n\n![Runnerは、2種類のカスタムCI/CD変数（タイプとファイル）を作成できます。](https://about.gitlab.com/images/blogimages/demystifying-ci-cd-variables/variable_types.jpeg)\n\n\nGitLabでは、設定でCI/CD変数を作成する際に、変数に対してより詳細な設定オプションを利用できます。次のような追加の設定オプションを使用して、機密性の高い変数をより厳密に管理することが可能です。\n\n\n**環境スコープ**：ある変数を特定の環境でのみ使用する必要がある場合に、その環境でのみ使用できるように設定します。たとえば、デプロイトークンを`production`環境でのみ使用できるように設定できます。\n\n\n**保護変数**：環境スコープと同様に、デフォルトブランチなどの保護ブランチでパイプラインが実行される場合にのみ、変数を使用できるように設定できます。\n\n\n**変数タイプ**：一部のアプリケーションでは、設定をファイル形式で渡す必要があります。そうした設定が必要なアプリケーションを利用する場合は、変数タイプを「File」に設定します。この方法でCI/CD変数を設定する場合、Runnerが環境内で変数を利用できるようにする際に、実際に一時ファイルに変数を書き出し、そのファイルパスを変数の値として保存します。その後、アプリケーションに必要なファイルパスを渡すことで設定が適用されます。\n\n\nご紹介した変数の定義方法や使用方法に加えて、GitLabでは、手動でパイプラインを実行する必要がある場合に、事前入力済みの変数を生成する機能が導入されました。事前入力済みの変数が生成されることで、エラーの発生リスクが軽減され、パイプラインを実行しやすくなります。\n\n\n**マスクされた変数**：[マスクされた変数](https://docs.gitlab.com/ee/ci/variables/#mask-a-cicd-variable)は、変数の値が表示されないように**ジョブログに隠された**CI変数です。\n\n\n**マスクおよび非表示化された変数**：[GitLab\n17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)で導入された[マスクおよび非表示化された](https://docs.gitlab.com/ee/ci/variables/#hide-a-cicd-variable)変数は、ジョブログと同じマスキング機能を利用し、**設定UI**でも**値を非表示**にします。これらの変数を機密データ（シークレットなど）に使用した場合、誤って公開されてしまう可能性があるため、推奨されません。\n\n\n## シークレット\n\n\nシークレットとは、機密性が高く、秘密に保つべき認証情報のことを指し、以下のようなものが該当します。\n\n\n* パスワード\n\n* SSH鍵\n\n* アクセストークン\n\n* その他、漏洩すると組織に害を及ぼす可能性のある認証情報\n\n\nGitLabでは現在、キーやトークン、その他のシークレットをプロジェクトレベルで安全に管理するために、HashiCorp Vault、Google\nCloud Secret Manager、Azure Key\nVaultを活用できます。これにより、[CIで外部シークレットを使用](https://docs.gitlab.com/ee/ci/secrets/)することが可能です。そのため、セキュリティ上の理由から、これらのシークレットを他のCI/CD変数から分離して管理できます。\n\n\n### GitLabシークレットマネージャー\n\n\nGitLabでは、CIにおける外部シークレットのサポートに加えて、GitLab内でシークレットを安全かつ便利に保存するための[ネイティブなシークレット管理ソリューション](https://gitlab.com/groups/gitlab-org/-/epics/10108)の導入にも取り組んでいます。このソリューションは、お客様がGitLab固有のコンポーネントや環境で保存されたシークレットを使用したり、ネームスペースグループやプロジェクトレベルでのアクセスを簡単に管理したりする上でも役立ちます。\n\n\n## 関連リンク\n\n*\n[GitLabネイティブシークレットマネージャーでソフトウェアサプライチェーンのセキュリティを強化](https://about.gitlab.com/blog/gitlab-native-secrets-manager-to-give-software-supply-chain-security-a-boost/)\n\n\n***免責事項**：このブログには、今後リリース予定の製品、機能、および機能性に関する情報が記載されています。ただし、それらの情報はあくまで参考のために提供されているため、購入や計画の判断材料として使用することはお控えください。すべてのプロジェクトと同様に、このブログおよびリンク先のページに記載されている項目は、変更または遅延される場合があります。製品、機能、機能性の開発、リリース、およびタイミングに関する決定権は、GitLabに帰属します。*\n","engineering",[814,9,815,816,108,678],"CD","inside GitLab","CI","2025-01-13",{"slug":819,"featured":6,"template":681},"demystifying-ci-cd-variables","content:ja-jp:blog:demystifying-ci-cd-variables.yml","Demystifying Ci Cd Variables","ja-jp/blog/demystifying-ci-cd-variables.yml","ja-jp/blog/demystifying-ci-cd-variables",{"_path":825,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":826,"content":832,"config":840,"_id":842,"_type":13,"title":843,"_source":15,"_file":844,"_stem":845,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements",{"title":827,"description":828,"ogTitle":827,"ogDescription":828,"noIndex":6,"ogImage":829,"ogUrl":830,"ogSiteName":694,"ogType":695,"canonicalUrls":830,"schema":831},"GitLab Duo開発の現場から：チャット機能強化について","新たなインテグレーション、迅速なキャンセル、アーキテクチャのアップグレードなど、GitLab Duo Chatの最新の改善点についてまとめました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098374/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098374059.png","https://about.gitlab.com/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から：チャット機能強化について\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Jannik Lehmann\"},{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-07-10\",\n      }",{"title":827,"description":828,"authors":833,"heroImage":829,"date":836,"body":837,"category":679,"tags":838,"updatedDate":839},[834,835],"Jannik Lehmann","David O'Regan","2024-07-10","ユーザーの皆さまの常に変化し続けるニーズを満たすため、GitLabはAIアシスタントである[GitLab Duo Chatの継続的な改善](https://gitlab.com/gitlab-org/gitlab/-/issues/430124)に取り組んでいます。ワークフローを効率化し、生産性を向上させる最近の機能強化をいくつかご紹介します。\n\n> GitLab 17バーチャルリリースイベントではAI主導のソフトウェア開発の未来を探りました。[今すぐこのイベントの動画をご視聴ください](https://about.gitlab.com/ja-jp/seventeen/)！\n\n## 脆弱性の説明：新たなインテグレーション\n\nチャット機能は常に進化し続けていますが、今回[GitLab Duoの脆弱性の説明](https://about.gitlab.com/the-source/ai/understand-and-resolve-vulnerabilities-with-ai-powered-gitlab-duo/)という重要な機能が追加されました。これは[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)プラットフォームでAIグループ外のチームによってチャットに統合された最初の機能であり、まさにGitLabのコラボレーション精神と部門間の協力関係を象徴する取り組みです。\n\n### 今回のインテグレーションの主な特長\n\n- **迅速な実行：** 新しい技術の検証から実装までをわずか3週間で進め、チームはその敏捷性と実行力を実証しました。\n- **チーム間のコラボレーション：** 今回のインテグレーションはAIグループ外のチームが主導しており、今後さらに多様な機能の追加が期待されています。\n- **セキュリティインサイトの強化：** まもなく、ユーザーはチャットを活用してプロジェクトで検出された脆弱性をより深く理解できるようになります。\n\n今回のインテグレーションは、特にセキュリティの分野において、チャットをデベロッパーにとってさらに強力で汎用性の高いツールにするための重要な一歩です。\n\n## コンテキスト認識の強化\n\nチャットのコンテキスト認識を改善し、さまざまなシナリオでより高度な対応ができるようになりました。\n\n### いつでも詳細な情報を提供\n\nGitLab Duo Chatでは常にアクセスできるのは次のとおりです：\n- GitLabドキュメント\n- 一般的なプログラミングとコーディングに関する知識\n\nチャットはGitLabインスタンスやコードベース全体に無制限にアクセスするものではないことをご了承ください。クエリで提供された特定の情報、GitLab UI、その他IDEの現在表示されている内容に直接関連する情報のみを処理します。\n\nGitLabは常にユーザーのプライバシーとデータセキュリティを第一に考えながら、チャットのコンテキスト認識を拡大してより多くの種類のコンテンツに対応できるよう継続的に取り組んでいます。今回の段階的な拡張は、適切なデータアクセスの境界線を維持しながら、チャットが開発ワークフローをサポートするさらに強力なアシスタントとして機能することを目的としたものです。\n\n### コンテキストに関する知識の拡大\n\nGitLab Duo Chatでは、GitLab UIとIDEの両方で[作業中のコンテキストをより深く理解](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#the-context-chat-is-aware-of)できるようになりました。チャットが認識する内容は次のとおりです。\n\nGitLab UI内\n- **エピック** - チャットは「this epic（このエピック）」という指示やエピックのURLの内容を理解できます。\n- **イシュー** - エピックと同様、チャットは「this issue（このイシュー）」という指示やイシューのURLの内容を理解できます。\n- **コードファイル** - 1つのファイルを表示すると、チャットは「このコード」または「このファイル」に関するリクエストを解釈できます。\n\nIDE内\n- **選択されたコード** - チャットは「this code （このコード）」または「this file （このファイル）」について尋ねられた場合に、選択されたコードを分析します。\n- **エピックとイシュー** - チャットはURLを入力するとコンテキストを理解できます。\n\nさらにIDEで`/explain`、`/refactor`、`/tests`などのスラッシュ（/）コマンドを使用すると、チャットは選択されたコードにアクセスできます。\n\n![GitLab Duo Chatウィンドウのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098382/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750098382107.png)\n\n### チャット履歴とキャッシュ\nGitLab Duo Chatでは、チャット履歴の最新50件のメッセージが保持されます。この履歴は最後の使用から3日後に失効します。ブラウザまたはIDEを閉じてもこの期間内のチャット履歴が完全に削除されるわけではありませんが、現時点でチャットデータの長期保存はサポートされていません。\n\n## 迅速なキャンセル：オンデマンドで回答を停止\n\n強く待ち望まれていた機能である[プロンプトキャンセル]( https://gitlab.com/groups/gitlab-org/-/epics/13662)が利用可能になりました。ユーザーはGitLab.comのチャットで進行中のプロンプトをキャンセルできるようになり、[やり取りをより詳細にコントロール](https://gitlab.com/gitlab-org/gitlab/-/issues/458397)できます。\n- 現在利用可能な利用方式：この機能はすでにGitLab.comで一般提供されています。\n- 近日リリースされる利用方式：この機能は次回のリリースでSelf-Managedインスタンスで利用できるようになります。GitLab Dedicatedユーザーは毎月のアップグレードで機能が追加されます。\n- 開発中の機能：[エディター拡張機能のインテグレーション]( https://docs.gitlab.com/ee/editor_extensions/) - [関連イシューはこちら](https://gitlab.com/gitlab-org/editor-extensions/gitlab-jetbrains-plugin/-/issues/335)。\n\n今回の機能強化により、プロンプトの送信が早すぎた場合や、待機中に考えが変わった場合などに応答を停止することができるようになりました。小さな変化のように思われるかもしれませんが、時間を節約し、イライラを軽減する優れた機能です。\n\nGitLab Duo Chatでプロンプトをキャンセルするには次の手順に従ってください。\n1. GitLab.comでGitLab Duo Chatを開きます。\n2. プロンプトや`What is this issue about?`などの質問を入力します。\n\n![GitLab Duo Chatでのプロンプトのキャンセル方法を示す画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098382/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750098382108.png)\n\n3. プロンプトを送信した後に応答をキャンセルしたい場合は、チャットが応答を生成している間に新しく表示されるようになった「キャンセル」ボタンを押してください。\n\n![キャンセルボタンが表示されているチャットのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098382/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098382110.png)\n\n4 .「キャンセル」ボタンをクリックすると応答の生成がすぐに停止されます。\n\n![応答停止を示すスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098382/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098382112.png)\n\n## アーキテクチャの改善\n\nチームはGitLab Duo Chatをより強化し、効率化するためのアーキテクチャの改善に取り組んできました。\n\n- 言語サーバープロトコルへの移行([LSP](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp))：この取り組みにより、さまざまな開発環境とのチャットのインテグレーションが改善されます。\n- GitLab Language Serverは、IDE拡張機能がGitLabの機能を構築するための共通インターフェイスを提供する実験的なTypeScriptプロジェクトです。現在はGitLab Duoコード提案をサポートしており、今後はGitLab Duo Chatのサポートを開始する予定です。\n\nこの変更は主に基礎となるアーキテクチャに影響を与えるものですが、次のような改善を体験できます。\n- さまざまなIDEやエディターでのチャット使用で応答性とパフォーマンスが向上。\n- さまざまな開発環境でのチャット機能の一貫性の高い動作。\n- 今後の新機能や改善点追加能力の強化。\n\n次の動画では、GitLab Language Serverのコード提案強化について詳しく紹介しています。\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/VQlWz6GZhrs?si=_G5mOyYqEGAmnRv4\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n## 今後の追加機能\n\nGitLab Duo Chatは継続的に改善されています。こちらにいくつかの注目ポイントをまとめました。\n\n- 現在AI機能を[Claude 3.5 Sonnet](https://gitlab.com/gitlab-org/gitlab/-/issues/468334)に移行中です。 このアップグレードにより、チャットやその他のAI搭載機能のパフォーマンスと性能が向上します。\n- 現在、[カスタムのセルフホスティングモデルでチャットを使用できるよう](https://gitlab.com/groups/gitlab-org/-/epics/13760)積極的に取り組んでいます。 これにより組織は独自のAIモデルをチャットで使用できるようになり、AIのナレッジベースをより詳細に制御できるほか、ドメイン固有のタスクのパフォーマンス向上が期待できます。\n- 現在、WebUIを含む[すべてのクライアント間のメッセージの同期](https://gitlab.com/gitlab-org/gitlab/-/issues/418760)を完了しています。これによりシームレスなコミュニケーションが実現されるほかすべてのクライアントが常に同期され、コラボレーションエクスペリエンスが向上します。\n- [「コメントの要約」機能がチャットに移行します](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156650)。 1つのイシュー上の複数のコメントをチャット内で直接まとめることで、ディスカッションの要点や重要事項をすばやく把握し、コラボレーションを向上させることができます。\n\nぜひ[機能強化に関するフィードバックをお寄せください]( https://gitlab.com/gitlab-org/gitlab/-/issues/430124)。 GitLab Duo Chatは今後も進化していきますので、最新情報をお見逃しなく。\n\n> [GitLab Duo開発の現場から]( https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-series/)シリーズではGitLab Duoの開発方法の詳細をご覧いただけます。\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n",[673,9,676],"2024-11-12",{"slug":841,"featured":90,"template":681},"developing-gitlab-duo-a-roundup-of-recent-chat-enhancements","content:ja-jp:blog:developing-gitlab-duo-a-roundup-of-recent-chat-enhancements.yml","Developing Gitlab Duo A Roundup Of Recent Chat Enhancements","ja-jp/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements.yml","ja-jp/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements",{"_path":847,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":848,"content":854,"config":862,"_id":864,"_type":13,"title":865,"_source":15,"_file":866,"_stem":867,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"title":849,"description":850,"ogTitle":849,"ogDescription":850,"noIndex":6,"ogImage":851,"ogUrl":852,"ogSiteName":694,"ogType":695,"canonicalUrls":852,"schema":853},"GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定","このブログシリーズでは、「コード提案利用率」のような、詳しいメトリクスを表示する新機能を継続的に取り上げ、AI投資の効果について理解を深めていただくことが狙いです。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098611/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098611370.png","https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Haim Snir\"}],\n        \"datePublished\": \"2024-05-15\",\n      }",{"title":849,"description":850,"authors":855,"heroImage":851,"date":857,"body":858,"category":679,"tags":859,"updatedDate":861},[856],"Haim Snir","2024-05-15","***生成系AIは、ソフトウェアの開発、セキュリティ保護、運用のプロセスを簡素化し、ソフトウェア開発業界に大きな変革をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能をどのように作成、テスト、そしてデプロイするか明らかにし、DevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能がどのように役立つのかご理解いただける内容になっています。***\n\n組織が[GitLab Duo](https://about.gitlab.com/gitlab-duo/)（DevSecOpsワークフローを最適化する各種AI機能）を導入するにあたり、ビジネスリーダーやエンジニアリングリーダーは、こうしたテクノロジーのROI（投資対効果）をリアルタイムで可視化する必要があります。ソフトウェア開発におけるAIの有効性を評価するには、詳細な使用データ、パフォーマンスの改善、その他の[生産性メトリクス](https://about.gitlab.com/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics/)に加え、スピード、セキュリティ、品質のバランスをとることが必要です。GitLabはこれに対処するために、AIのROIを測定する新たな手段としてGitLab DuoのAIインパクト分析ダッシュボードを導入しました。この機能はGitLab 17.0から利用可能です。\n\n> ライブデモイベント開催決定！GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見してみませんか（[今すぐ登録する](https://about.gitlab.com/seventeen/)）。\n\n## GitLab DuoのAI搭載機能のROI\n\nソフトウェア開発ライフサイクルにおけるAIの影響を正確に評価するため、企業は次のような機能をリクエストしています：\n- AIへの投資によって向上したメトリクスの可視化\n- AIを使用しているチームと使用していないチームのパフォーマンスの比較\n- AI導入の進捗の追跡\n- 大量のパフォーマンスデータからのインサイトの自動抽出\n\nGitLab DuoのAIインパクト分析ダッシュボードはこのようなさまざまな機能に加え、カスタマイズ可能な可視化機能も備えており、活用することで、以下が可能になります。\n\n- **AI導入率のモニタリング**：AIの導入率を観察することで、組織はテクノロジー投資のROIを最大化するための戦略を評価できます。\n- **パフォーマンス改善の追跡**：リーダーはパフォーマンスメトリクスを追跡し、AI導入後の変化を観察することで、AI機能がもらたすメリットとビジネス価値を迅速に評価できます。\n\n## AIインパクト分析ダッシュボードとは？\n\nAIインパクト分析ダッシュボードの初回リリースでは、GitLab Duoのコード提案の導入に関する、以下のインサイトとメトリクスの提供に焦点が当てられています。\n\n- **詳細な使用状況メトリクス**：コード提案の月間利用率とユニークコードコントリビューターの総数を比較します。これをもとに、チーム内でコード提案をどの程度活用できているかを把握できます。\n- **相関性のモニタリング**：プロジェクトやグループ内におけるAI使用率の動向が、主要な生産性メトリクスにどのような影響を与えるかを、当月と過去6か月間のデータに基づき表示します。\n  - この相関分析に関連し、独立変数（原因）として「コード提案利用率」という新しいメトリクスが導入されました。コード提案の月間利用率は、コード提案の月間ユニークユーザー数を月間ユニーク[コントリビューター](https://docs.gitlab.com/ee/user/profile/contributions_calendar.html#user-contribution-events)総数で割ることで算出されます。GitLabでは、月間コードコントリビューター総数を基準とし、プッシュ済みイベントの記録があるユーザーのみをこの計算に含めています。\n  - 依存変数（効果）として、「サイクルタイム」「リードタイム」「デプロイ頻度」という[パフォーマンスメトリクス](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dashboard-metrics-and-drill-down-reports)と、「変更失敗率」と「致命的な脆弱性」という[品質とセキュリティのメトリクス](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dashboard-metrics-and-drill-down-reports)が追加されました。\n- **比較ビュー**：AIを使用しているチームとそうでないチームのパフォーマンスを比較し、スピード、品質、セキュリティ脆弱性のバランスを管理します。\n\n![AI利用率とSDLCパフォーマンスの比較](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098621/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750098620998.png)\n\n## AIインパクト分析ダッシュボードに今後導入される機能は？\n\nGitLabでは、AIインパクト分析ダッシュボードの更なる機能強化に向けて計画を進めています。以下に、その一部をご紹介します。\n\n1.「GitLab Duoシート：アサイン済みと使用済み」「コード提案：採用率（%）」「GitLab Duoチャット：ユニークユーザー数」といった新しいタイルデータを導入することから得られる可視性により、GitLab Duoの使用パターンをより深く理解できるようになります。\n\n![AI Impactダッシュボード - image 2](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098621/Blog/Content%20Images/Blog/Content%20Images/Screenshot_2024-07-17_at_12.50.31_aHR0cHM6_1750098620999.png)\n\n2. 比較棒グラフを新たに導入し、あるメトリクスの変化が他のメトリクスの変化とどのように関連しているかを観察できるようになります。\n\n![AIインパクト比較棒グラフ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098621/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098621000.png)\n\n3. [コントリビュート分析レポート](https://docs.gitlab.com/ee/user/group/contribution_analytics/index.html)のAI統計の導入により、ユーザーがAI機能をどのように利用しているのかを把握できます。 以下のように、どのユーザーがAI機能を活用しているのか、またそのパフォーマンスの推移が表示されます。\n![コントリビュート分析レポート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098621/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098621001.png)\n\n## 始めてみましょう\n\nAIインパクト分析ダッシュボードは、AIによる実際のビジネス成果を実証するだけでなく、DevSecOpsライフサイクルにおける将来のAI最適化に関して、より多くの情報に基づいた意思決定を促進する可能性があります。今後の機能については、[AIインパクト分析ダッシュボードのエピックをご覧ください](https://gitlab.com/groups/gitlab-org/-/epics/12978)。また、こちらからフィードバックやご質問もぜひお寄せください。\n\n[今すぐ、GitLab Duoの無料トライアルとAIインパクト分析ダッシュボード](https://about.gitlab.com/gitlab-duo/#free-trial)をお試しください。\n\n## 「GitLab Duo開発の現場から」シリーズをもっと読む\n\n- [GitLab Duo開発の現場から：AIモデルの大規模な検証とテスト方法](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n- [GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n- [GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n- [GitLab Duo開発の現場から：AI生成コードの安全性確認と詳細なテスト](https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/)\n\n_免責事項：このブログには、今後の製品、機能、機能に関する情報が含まれています。このブログ投稿の情報は、情報提供のみを目的としている点にご留意ください。これらの情報は、購入や計画の際の判断材料として使用すべきものではありません。すべてのプロジェクトと同様に、このブログおよびリンク先のページに記載されている項目は、変更または遅延される場合があります。製品、機能、機能の開発、リリース、タイミングは、GitLab Inc.の独自の裁量に委ねられます。_\n\n*\u003Cbr>\n監修：\u003Cbr>\n*監修：大井 雄介 [@yoi_gl](https://gitlab.com/yoi_gl)\n（GitLab合同会社 ソリューションアーキテクト本部 本部長）*\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n",[673,860,9],"performance","2024-06-13",{"slug":863,"featured":90,"template":681},"developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai","content:ja-jp:blog:developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai.yml","Developing Gitlab Duo Ai Impact Analytics Dashboard Measures The Roi Of Ai","ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai.yml","ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"_path":869,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":870,"content":876,"config":884,"_id":886,"_type":13,"title":887,"_source":15,"_file":888,"_stem":889,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"title":871,"description":872,"ogTitle":871,"ogDescription":872,"noIndex":6,"ogImage":873,"ogUrl":874,"ogSiteName":694,"ogType":695,"canonicalUrls":874,"schema":875},"GitLab Duo開発の現場から：AIと根本原因分析を併用したCI/CDパイプラインの修正","AIを活用したGitLabの根本原因分析が、破損したCI/CDパイプラインの修復にどのように役立つかについて、具体的なシナリオと実習問題を交えながら解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097321/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097321081.png","https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から：AIと根本原因分析を併用したCI/CDパイプラインの修正\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Rutvik Shah\"},{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-06-06\",\n      }",{"title":871,"description":872,"authors":877,"heroImage":873,"date":880,"body":881,"category":679,"tags":882,"updatedDate":883},[878,879],"Rutvik Shah","Michael Friedrich","2024-06-06","___生成AIは、ソフトウェアの開発、保護、運用を容易にし、ソフトウェア開発業界に重要な変化をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能をどのように作成、テスト、そしてデプロイするか明らかにし、DevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能がどのように役立つのかご理解いただける内容になっています。___\n\n[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)パイプラインがエラーを起こして、その根本原因を突き止めるために、やむを得ずDevSecOpsワークフローを停止したり、ソフトウェアのデプロイを遅らせたりした経験はありませんか？従来のアプローチでは、ソフトウェア開発で問題が発生した場合、デベロッパーはトラブルシューティングやログファイルの分析を行い、多くの場合で、試行錯誤を繰り返しながら開発を進める必要があります。[GitLab Duo根本原因分析](https://about.gitlab.com/ja-jp/gitlab-duo/)はGitLabの一連のAI搭載機能に含まれるもので、類推に頼ることなくCI/CDパイプラインで発生した失敗の根本原因を特定します。この記事では、根本原因分析について、また、GitLab DuoのAI搭載機能をDevSecOpsワークフローに適用する方法についてご説明します。\n\n> デモ動画公開！GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を体験しませんか？（[今すぐ登録する](https://about.gitlab.com/ja-jp/seventeen/)）\n\n### 根本原因分析とは？\n\nGitLab Duoの根本原因分析は、ログを分析してCI/CDジョブログにおける失敗の根本原因を特定し、修正方法を提案してくれるAI搭載機能です。\n\n根本原因分析はソフトウェア開発のインシデント管理によく用いられますが、そのワークフローやデバッグの手法はあらゆるDevSecOpsワークフローにも活用されています。パイプラインの失敗を調査する際、運用チーム、管理者、そしてプラットフォームエンジニアは、Infrastructure as Code（IaC）のデプロイエラー、KubernetesやGitOpsの問題、そして長いスタックトレースなどに対処しなければなりません。\n\nGitLab Duoの根本原因分析は、全員を同じインターフェイスに集め、AIを活用して要約、分析、修正提案を行うことで、組織がより迅速に安全なソフトウェアをリリースできるように支援します。\n\nパイプラインの失敗の原因としては、コードの構文エラー、パイプラインに使用される依存関係の欠落、ビルドプロセスにおけるテストの失敗、KubernetesやIaCのデプロイタイムアウト、その他多くの問題が考えられます。そのような失敗が発生した場合、関係者全員が、パイプラインで生成されたログを慎重に確認する必要があります。こうしたログの確認には、詳細な出力情報を精査してエラーを特定し、パイプラインにおける失敗の根本原因を特定したりする作業が伴います。たとえば、次のパイプラインには、調査と修正が必要なジョブの失敗が複数あります。\n\n![複数のジョブの失敗を示す画像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097332601.png)\n\nこうした失敗の修正に要する時間は、次のような要因によって大きく異なります。\n- プロジェクトに関するデベロッパーの熟知度\n- 同様の問題の対処に関するデベロッパーの経験値\n- パイプラインにおけるトラブルシューティングと問題解決に関するデベロッパーの全体的なスキルレベル\n\n手動での分析は非常に困難で時間がかかることがあります。これは、ログデータを構成するアプリケーションログとシステムメッセージに、さまざまな失敗の原因が含まれている可能性があるためです。一般的なパイプライン修正のプロセスでは、複数回にわたるイテレーションや、（作業を行ったり来たりすることによる）頭の切り替えが必要になります。ログの複雑さや非構造的な性質に対しては、生成AIを使うことで作業を高速化できます。AIを活用することで、パイプラインのエラーを特定して修正する時間を大幅に短縮でき、上記のようなパイプラインを修正するために必要な専門知識のハードルも下げられます。\n\n以下の動画で、実際にGitLab Duoの根本原因分析を使用する流れをご覧ください。\n\n\u003C!-- 空白行 -->\n\n\u003Cfigure class=\"video_container\">\n\n \u003Ciframe src=\"https://www.youtube.com/embed/sTpSLwX5DIs?si=J6-0Bf6PtYjrHX1K\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\n\u003C/figure>\n\n\u003C!-- 空白行 -->\n\n### 根本原因分析の仕組み\n\n[根本原因分析](https://docs.gitlab.com/ee/user/ai_experiments.html#root-cause-analysis)は、CI/CDジョブログの一部を[GitLab AIゲートウェイ](https://docs.gitlab.com/ee/architecture/blueprints/ai_gateway/)に転送することで機能します。GitLabでは、転送される内容が大規模言語モデル（LLM）のトークン制限内に収まるように調整されます。また、ジョブの失敗原因に関する洞察を提供するよう指示する既定のプロンプトも併せて送信されます。また、このプロンプトは、破損したジョブの修正方法の例をユーザーに提示するよう、LLMに指示します。\n\nここでは、根本原因分析を活用できるシナリオの例を2つご紹介します。\n\n#### 1. Pythonの依存関係エラーを分析する\n\nPythonのアプリケーションでは、標準ライブラリには備わっていない機能を含むパッケージモジュールをインポートできます。プロジェクト「[Challenge - Root Cause Analysis - Python Config（演習 - 根本原因分析 - Pythonの構成）](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config)」では、構成の解析とSQLiteデータベースの初期化を実行するアプリケーションが実装されており、いずれも依存関係なしで正常に動作しています。また、このプロジェクトでは、Python環境とキャッシュを用いて、CI/CDのベストプラクティスを採用しています。最新の機能追加でRedisのキャッシュクライアントが導入されましたが、これを機にCI/CDビルドが何らかの理由で失敗するようになりました。\n\n根本原因分析を使用すれば、`ModuleNotFoundError`テキストの内容が、モジュールが実際にはPython環境にインストールされていないことを意味しているとすぐにわかります。また、GitLab Duoによって「PIPパッケージマネージャーを介してRedisモジュールをインストールする」ことが修正方法として提案されます。\n\n!['modulenotfounderror'とGitLab Duoによって提案された解決策を示す画像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097332602.png)\n\n失敗しているパイプラインは[こちら](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/jobs/6992716398)でご確認いただけます。\n\n根本原因分析のプロンプトに問題のサマリーが表示されており、`redis`モジュールが欠落していることが問題のようです。では、`redis`モジュールをインストールして問題を解決できるか試してみましょう。CI/CDジョブの`スクリプト`セクションで`pip install redis`を呼び出すか、`requirements.txt`ファイルを使用した、より高度なアプローチも選択できます。後者の方法は、開発環境とCI/CDパイプラインにインストールされている依存関係に関連した信頼できる唯一の情報源を確立するのに有効です。\n\n```yaml\ntest:\n  extends: [.python-req]\n  stage: test \n  before_script:\n     # [🦊] hint: Root cause analysis.\n    # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt \n\n  script:\n    - python src/main.py\n```\n\n欠落しているPythonの依存関係を修正した後、CI/CDジョブが再び失敗します。根本原因分析をもう一度使用すると、ジョブでRedisサービスが実行されていないことがわかります。GitLab Duoチャットに切り替え、`How to start a Redis service in CI/CD`（CI/CDでRedisサービスを開始する方法）というプロンプトを使用して、CI/CDジョブで`services`属性を構成する方法を確認します。\n\n![Redisサービスを開始する方法を尋ねるプロンプトを示す画像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097333/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097332602.png)\n\n`.gitlab-ci.yml`を`test`ジョブで修正し、`redis`サービスを指定します。\n\n```yaml\ntest:\n  extends: [.python-req]\n  stage: test \n  before_script:\n    # [🦊] hint: Root cause analysis.\n   # Solution 1: Install redis using pip\n    - pip install redis\n    # Solution 2: Add redis to requirements.txt, use pip\n    - pip install -r requirements.txt \n\n  script:\n    - python src/main.py\n\n  # Solution 3 - Running Redis\n  services:\n    - redis\n```\n\nRedisサーバーを実行すると、Pythonアプリケーションを正常に実行し、その出力をCI/CDジョブログに出力できます。\n\n![Pythonアプリケーションの出力](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097332603.png)\n\nこの解決策は、[solution/ ディレクトリ](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-python-config/-/tree/main/solution?ref_type=heads)で確認できます。\n\n**ヒント**：以下のようなプロンプトを使用して、[GitLab Duoチャット](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html)に発生リスクのある問題のフォローアップを依頼することもできます。\n\n```markdown\nHow to lint Python code? Which tools are recommended for CI/CD.\nHow to pin a package version in Python requirements file?\t\nWhat are possible ways that this exception stacktrace is triggered in the future?\nAre there ways to prevent the application from failing?\n``` \n\n次の例はより高度で、複数の失敗が含まれています。\n\n#### 2. 不足しているGoランタイムを分析する\n\nCI/CDジョブは、指定された`イメージ`から生成されたコンテナ内で実行できます。コンテナがプログラミング言語のランタイムを提供していない場合、`go`バイナリを参照する実行スクリプトセクションは失敗します。たとえば、`/ bin/sh: eval: line 149: go: not found`というエラーメッセージが表示されたら、これを理解して修正する必要があります。\n\nコンテナ内で`go`コマンドが見つからない場合、以下のような複数の理由が考えられます。\n\n1. ジョブが最小限のコンテナイメージ（`alpine`など）を使用しており、Go言語ランタイムがインストールされていない。\n1. ジョブが誤ったデフォルトのコンテナイメージを使用している。これには、CI/CD構成の先頭で指定されたイメージや`default`キーワードを使用して指定されたイメージなどが該当する。\n1. ジョブがコンテナイメージではなく、Shell executorで実行されている。ホストのオペレーティングシステムにGo言語ランタイムがインストールされていない、または設定が壊れているか正しく構成されていない。\n\nプロジェクト「[Challenge - Root Cause Analysis - Go GitLab Release Fetcher（演習 - 根本原因分析 - GoのGitLabリリースフェッチャー）](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-go-gitlab-release-fetcher)」は、Goで構築されたGitLabリリースフェッチャーアプリケーションのCI/CD問題を分析し、修正するための演習課題です。このプロジェクトでは、`build`と`docker-build`のCI/CDジョブが失敗しています。この問題を解決するには、2つのポイントを抑える必要があります。ひとつはGoランタイムがインストールされていない理由を理解すること、もうひとつは`Dockerfile`構文について学ぶことです。\n\n![変更Dockerラベルジョブの失敗を示すスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097332603.png)\n\n[`solution/` ディレクトリ](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/root-cause-analysis/challenge-root-cause-analysis-go-gitlab-release-fetcher)では、根本原因分析の次に試す2つの解決策が確認できます。\n\n## 根本原因分析の練習\n\n以下のシナリオを想定して、根本原因分析を練習してみましょう。\n\n- Kubernetesデプロイメントのエラーやタイムアウトが発生した場合。\n\n- OpenTofuやTerraformのIaCパイプラインがクラウドリソースのプロビジョニングに失敗した場合。\n\n- AnsibleプレイブックがCI/CDで不可解な権限エラーで失敗した場合。\n\n- Javaのスタックトレースが10ページにも及ぶ場合。\n\n- シェルスクリプトが実行エラーを示している場合。\n\n- Perlスクリプトが1行（スクリプト内の唯一の行）で失敗した場合。\n\n- CI/CDジョブがタイムアウトし、どの部分が原因なのか不明な場合。\n\n- ネットワーク接続のタイムアウトが発生し、DNSが原因でないと思われる場合。\n\n### GitLab Duoの根本原因分析の次のステップ\n\nGitLabは、最小限のイテレーションでパイプラインの問題を修正できるようユーザーを支援したいと考えています。根本原因分析が目指す次のステップでは、根本原因分析はGitLab Duoチャット（AIアシスタント）で結果を表示します。ユーザーは、提案された内容を基に、さらに具体的な質問（例：プログラミング言語に特化した修正方法を尋ねる）をしたり、根本原因に基づいた代替の修正方法を尋ねたりすることで、より正確な修正方法を確立できます。\n\nたとえば、失敗したジョブの根本原因分析は次のとおりです。\n\n![根本原因分析の回答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097332/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097332603.png)\n\nユーザーは、AIが生成した回答に対し、掘り下げた質問ができます。\n\n- 独自のDockerイメージを作成したくありません。問題を解決するための別の方法を説明してください。\n\n- Dockerイメージの作成にアクセスできません。Goバイナリが見つからないようです。代替のイメージを提案できますか？\n\nGitLabでは、生成された回答の品質ベンチマークを実行し、使いやすさの改善も行います。\n\n詳しくは、[根本原因分析の一般提供（GA）エピック](https://gitlab.com/groups/gitlab-org/-/epics/13080)をご参照ください。機能に関するフィードバックをお寄せいただける方は、[根本原因分析のフィードバック用イシュー](https://gitlab.com/groups/gitlab-org/-/epics/13872)にコメントを投稿してください。\n\n## 根本原因分析を開始する\n\nGitLab Ultimateプランで利用可能な機能を有効化する方法を説明するGitLab[ドキュメント](https://docs.gitlab.com/ee/user/ai_experiments.html#root-cause-analysis)をご参照ください。また、GitLab Duoの根本原因分析は、GitLab Self-ManagedとGitLab Dedicatedでまもなく利用可能になります。\n\nGitLab Ultimateをご利用でない場合は、[無料トライアル](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/blog&glm_content=default-saas-trial)を今すぐ開始していただけます。\n\n*監修：佐々木 直晴 [@naosasaki](https://gitlab.com/naosasaki) （GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*\n\n## 「GitLab Duo開発の現場から」シリーズをもっと読む\n\n- [GitLab Duo開発の現場から：AIモデルの大規模な検証とテストの方法](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n\n- [GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n\n- [GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n\n- [GitLab Duo開発の現場から： AI生成コードに対するセキュリティ確保と徹底的なテスト](https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/)",[673,678,769,674,9],"2024-11-15",{"slug":885,"featured":90,"template":681},"developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd","content:ja-jp:blog:developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.yml","Developing Gitlab Duo Blending Ai And Root Cause Analysis To Fix Ci Cd","ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd.yml","ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"_path":891,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":892,"content":898,"config":903,"_id":905,"_type":13,"title":906,"_source":15,"_file":907,"_stem":908,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"title":893,"description":894,"ogTitle":893,"ogDescription":894,"noIndex":6,"ogImage":895,"ogUrl":896,"ogSiteName":694,"ogType":695,"canonicalUrls":896,"schema":897},"GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み","このブログシリーズの記事では、GitLabがどのようにソフトウェア開発ライフサイクル全体にAIを統合しているのか、また、メトリクスを用いてパフォーマンスを測定しているのかを、実例を用いて解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098360/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098360821.png","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-05-20\",\n      }",{"title":893,"description":894,"authors":899,"heroImage":895,"date":900,"body":901,"category":679,"tags":902,"updatedDate":836},[835],"2024-05-20","***生成系AIは、ソフトウェアの開発、セキュリティ保護、運用のプロセスを簡素化し、ソフトウェア開発業界に大きな変革をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能を、我々はどのように作成、テスト、デプロイしているかを説明しています。をこれは皆様のDevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能をどう利用できるのかを知っていただける内容になっています。*** \n\nAI機能を集めた[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、当社の社内エンジニアリングワークフローを刷新し、開発プロセス全体の効率化を推進してきました。GitLabはドッグフーディングと透明性を重視しています。そのため、この記事では、当社のチームがコード提案やチャットなどの代表的なGitLab DuoのAI機能を日常的に活用し、開発プロセスの合理化や手作業の削減、生産性の向上を実現しているアプローチについて解説したいと思います。エンジニアリングのような高度な技術を用いるチームから、テクニカルライティングや製品管理など、あまり技術的でないチームまで、当社が得ているメリットについて解説します。\n\n> GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見しましょう！[【今すぐ視聴する】](https://about.gitlab.com/ja-jp/seventeen/)\n\n## 実際のユースケース\n\nGitLabのチームは、[GitLab Duoの各種機能](https://about.gitlab.com/gitlab-duo/#features)を日々のルーチンに組み込んでいます。日常的な仕事を実行する上でGitLab Duoをどのように役立てているのかについて、いくつか実例をご紹介します。\n\n### 要約とドキュメント\n- **コードレビュープロセスを効率化：** スタッフバックエンド開発者の[Gosia Ksionek]( https://about.gitlab.com/company/team/#mksionek)は、GitLab Duoを使ってAIをワークフローに用いる実践的なメリットとして、コードレビュープロセスの無駄を省くことができる点を挙げています。彼女はGitLab Duoを用いて効果的に[マージリクエストを](https://youtu.be/3SIhe8dgFEc)要約し、コード変更のレビューを簡素化し、作業をスピードアップさせています。また、マージリクエストの要約に加えて、GitLab Duoを使って[コーディングの質問への回答](https://www.youtube.com/watch?v=6n0I53XsjTc)と[複雑なコードスニペットの説明](https://www.youtube.com/watch?v=3m2YRxa1SCY)も実施しています。このように、生産性の向上のほか、複雑なコードベースの理解と管理にAIを活用しています。以下のデモで、GitLab Duoが大幅な効率向上と開発プロセスの見える化に貢献しており、開発者にとって欠かせないツールであることを強調しています。\n\n\u003Ccenter>\n\nGitLab Duoを使ってマージリクエスト要約する方法をご覧ください。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/3SIhe8dgFEc?si=Q8JG3Ix3K_THhbpv\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\nGitLab Duoを使ってコーディングに関する質問に回答する方法をご覧ください。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/6n0I53XsjTc?si=LA9VBHrgXpfJImSL\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!--空白行-->\n\nGitLab Duoを使って複雑なコードスニペットを説明する方法をご覧ください。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/3m2YRxa1SCY?si=oms3szKwZoz-4yeq\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n\u003C/center>\n\n- **コメントスレッドの要約：** エクスパンションソフトウェア開発を統括する[Bartek Marnane](https://about.gitlab.com/company/team/#bmarnane)は、GitLab Duoを使って長いコメントスレッドを要約し、イシューの説明を更新しても重要な情報が洩れることがないように工夫しています。\n\n- **ドキュメントの新規作成：** データサイエンスセクションの製品部門グループマネージャーを務める[Taylor McCaslin](https://about.gitlab.com/company/team/#tmccaslin)は、GitLab Duoを用いて[GitLab Duo用の新規ドキュメントを作成](https://docs.gitlab.com/ee/user/ai_features.html)し、情報の明確化と一貫性の確保、および新機能のドキュメンテーションに費やす時間の大幅な短縮を実現しています。\n\n- **リリースノートの作成：** 製品企画部門でシニア製品マネージャーを務める[Amanda Rueda](https://about.gitlab.com/company/team/#amandarueda)はGitLab Duoをとおして、[リリースノートに使用する簡潔で有益な要約を作成](https://gitlab.com/groups/gitlab-org/-/epics/10267)し、変更点やその価値をユーザーに説明しています。以下のような効果的なプロンプトを使うことで、ワークフローを大幅に改善し、各リリースノートがわかりやすく、簡潔で、ユーザー目線で書かれるようにしています。その結果、コミュニケーション全般とユーザー体験の向上につながっています。\u003Cbr>\u003Cbr>\n*「この変更を2つの文で要約してください。リリースノートに使用します。会話のようなトーンで、二人称を使います。要約には問題や変更の説明を盛り込み、当社が、あなた、つまりユーザーにもたらす価値と関連付けてください」*\n\u003Cbr>\u003Cbr>\n    - 以下に、GitLab Duoを使って作成したリリースノートの例を挙げます。\n      - [ロードマップをソートするためのオプションを拡大](https://gitlab.com/gitlab-org/gitlab/-/issues/460492)\n      - [マイルストーンとイテレーションを用いてイシューボードを明確化](https://gitlab.com/gitlab-org/gitlab/-/issues/25758)\n      - [デザイン管理機能を製品チームに拡張](https://gitlab.com/gitlab-org/gitlab/-/issues/438829)\n\n- **ドキュメントサイトのナビゲーションを最適化：** スタッフテクニカルライターの[Suzanne Selhorn](https://about.gitlab.com/company/team/#sselhorn)はGitLab Duoを使ってページをワークフローに基づいた順番に並び替え、[ドキュメントの左側のナビゲーションを最適化](https://docs.gitlab.com/ee/user/get_started/get_started_projects.html)しています。機能の一覧をGitLab Duoに伝えることで、適切な順番が生成され、その順番に合うように左側のナビゲーションを更新しました。また、GitLab Duoを使って、手作業よりも大幅に速く[スタートガイド](https://docs.gitlab.com/ee/user/get_started/get_started_planning_work.html)の下書きを作成できるようになりました。\n\n### 目標設定とチームの連携\n- **OKRの下書き作成と改善：** Create:Codeレビューバックエンドチームでエンジニアリングマネージャーを務める[François Rosé](https://about.gitlab.com/company/team/#francoisrose)は、OKR（目標と主な成果）の下書き作成と改善において[GitLab Duoチャット](https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available/)の利便性を実感しています。目標をより明確に、効果的に伝えることで、目標設定とチームでの認識の共有を強化しています。GitLab Duoチャットを使用すると、正確で、アクションに結びつきやすく、なおかつチームの目標と一致するOKRを策定できるため、チームの全体的なパフォーマンスの向上と団結を導けます。以下に、プロンプトの例を記載します。\u003Cbr>\u003Cbr>\n\n    *「次のようなOKRを作ろうと思っています。*\n\n    *目標：チームメンバー全員からレトロスペクティブを徹底してチームを活性化する*\n\n    *主な成果：チームメンバー全員からレトロスペクティブにの満足度を測定する*\n\n    *主な成果：非同期で行うレトロスペクティブの改善点を3つ特定する*\n\n    *主な成果：改善を1つ実行する*\n\n    *上記の目標と3つの主な成果の構成を改善する方法に関して率直なフィードバックをください」*\n\u003Cbr>\u003Cbr>\n\n- **採用と採用活動プロセスを合理化：** スタッフフロントエンドエンジニアの[Denys Mishunov](https://about.gitlab.com/company/team/#dmishunov)が、面接を受ける候補者に送るメールテンプレートを明確で簡潔な文章で修正する際に重宝した実際のチャットを[こちら](https://gitlab.com/gitlab-com/people-group/hiring-processes/-/merge_requests/2165#note_1904898688)からご覧ください。必要な情報を漏れなく候補者に伝えるため、チームが協力して、どのようにマージリクエストを通してコミュニケーションを改善しているのかに注目しましょう。この例は、採用ワークフローにおけるコミュニケーションプロセスの強化をもたらす、AIツールの実用的な活用方法を示すものです。\n\n### インシデントのレスポンスと設定\n- **本番環境のインシデントを要約：** \nスタッフサイトリライアビリティエンジニアの[Steve Xuereb](https://about.gitlab.com/company/team/#sxuereb)は、GitLab Duoを本番環境のインシデントの要約、および詳細なレビューの作成に利用し、ドキュメンテーションプロセスの合理化を促進しています。\n\n- **ボイラープレート`.gitlab-ci.yml`ファイルを作成：**  GitLab Duoチャットを介して、ボイラープレート`.gitlab-ci.yml`ファイルも作成し、ワークフローの大幅な改善を実践しています。[GitLab Duoチャット](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html)はアイデアを提案してくれる頼りになるパートナーです。さらに、[コードの説明]( https://docs.gitlab.com/ee/user/ai_features.html#code-explanation)機能のおかげで、インシデント発生時に詳細かつ有益な回答を得ることができ、生産性の向上とコードベースの正確な理解につながっています。\n\n### コードの生成とテスト\n- **フルスタック開発：** シニアフロントエンドエンジニアの[Peter Hegman](https://about.gitlab.com/company/team/#peterhegman)は[コードの提案機能をJavaScriptとRubyによる開発](https://gitlab.com/gitlab-org/gitlab/-/issues/435783#note_1731321963)に応用しており、フルテクニカルスタック全体において開発者にとって欠かせないツールとして、AIの存在価値を示しています。\n\n- **Pythonのスクリプトを生成** Denys Mishunovは[GitLab DuoをGitLab以外のタスクに使用する実験](https://gitlab.com/gitlab-org/ai-powered/ai-framework/ai-experimentation)を行いました。この実験は、一般的なソフトウェア開発のタスクに留まらないGitLabのAIツールならではの柔軟性と利便性を証明しています。\n\n\u003Ccenter>\n以下の動画で、GitLab Duoを使ってPythonのスクリプトを作成し、コンテンツのデータを取り込んだ後、ローカルに保存するMishunovのアプローチをご覧いただけます。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/30ZTtk4K5yU?si=p5ZcFLg6dTZL5gFE\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n\u003C/center>\n\n### 調査とサポート\n- **テスト用ソースコードの生成：**  シニア開発者アドボケートの[Michael Friedrich](https://about.gitlab.com/company/team/#dnsmichi)はGitLab Duoを用いて、CI/CDのコンポーネントに使用するテストソースコードを生成しています。このアプローチは、先日開催されたOpen Source @ Siemens([公開スライド](https://go.gitlab.com/duA2Fc))を含むさまざまなトークイベントやプレゼンで紹介されています。このようにGitLab Duoを活用することで、コードの一貫性の確保や正確なドキュメント作成を実施できるほか、GitLabのベストプラクティスに沿って作業を進められます。[Rustの例](https://gitlab.com/components/rust#contributing)をご覧ください。\n\n![Rustの例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098367/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098367547.png)\n\n- **調査タスクの合理化：** GitLabのチームメンバーはGitLabの機能に関する質問は必ずGitLab Duoチャットで尋ね、調査およびサポートタスクの負担を軽減しています。Friedrichは「GitLabの機能についてわからないことがあったら、ブラウザのタブを次々と開いて調べるする前に、まずはチャットに頼ります。このワークフローにより、コミュニティフォーラムでのユーザー支援をより効率よく実施できるようになりました。たとえば、先日、実際にこの方法を使って[SSHのデプロイに関するユーザーからの質問に回答](https://forum.gitlab.com/t/how-to-make-ssh-deployment-more-clear-in-gitlab/102051/4?u=dnsmichi)しました」と述べています。チャットの活用は、時短につながるだけではなく、正確な情報を速く伝えられるようになり、コミュニティサポートの取り組みを底上げできます。\n\n### 機能テスト\n- **新しい機能のテスト：** GitLabのエンジニアは[コード提案におけるMarkdownへのサポート](https://gitlab.com/gitlab-org/gitlab/-/issues/443365)などGitLab Duoを使って新機能のテストを実施しています。あるチームメンバーは「コード提案でのMarkdownのサポートをテストして、ブログの記事とVS CodeでGitLabのドキュメントを作成します。17.0に統合されていたことを知っていたからです」と述べています。GitLabでは、これらの機能をリリース前に社内でテストし、当社の品質基準を確実に満たす取り組みを行っています。\n\n### 外部のコードベースを理解\n- **外部のプロジェクトの説明：** GitLab Duoの`/explain`機能はGitLabにインポートされた外部のプロジェクトを理解する際にとりわけ有効です。この機能は、オープンソースエキスパートのEddie Jaoude氏を招いて先日行った配信イベントでも紹介しました。Michael Friedrichは「外部のプロジェクトでは`/explain`を使ってソースコードの理解を深めています。配信中に、オープンソースプロジェクトや依存などについて学ぶアイデアとしてこの方法を推奨しました」と指摘しています。 これは、不慣れなコードベースの機能や依存性を速やかに理解する必要がある開発者にとって欠かせない機能であり、効率の向上を導くだけでなく、正確にコードを理解できるようになる利点があります。\n\n\u003Ccenter>\nEddie Jaoude氏を招いた配信イベントでFriedrichが実施した`/explain`のデモをご覧ください。\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/L2Mx8hOhkEE?si=R7W3v4EDqeJCaPOw\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n\u003C/center>\n\n## GitLab Duoを使用するメリット\n\nGitLab Duoのインテグレーションは、多くのポジティブなインパクトをもたらしており、以下のようにGitLabのエンジニアリングと製品開発ワークフローを大きく改善しました。\n\n- 以前は手作業が必要だった多くのタスクを自動化できたため、エンジニアが貴重な時間を他のタスクに充てられるようになりました。たとえば、長いスレッドの要約やボイラープレートコードの作成の効率が高まり、チームはより複雑な課題に集中できるようになっています。\n- イシューのドキュメントや要約に費やす時間を短縮し、情報の伝達と意思決定をより速く行えるようになりました。\n- AIアシストのコードの提案と説明を活用することで、チームはより質の高いコードを作成し、さらにエラー数の削減とデバッグプロセスのスピードアップを達成しました。GitLab Duoをインシデントレビューとコーディング支援に導入した結果、コードレビューの取り組みをより効果的・効率的に進められるようなりました。\n- [OKR](https://about.gitlab.com/ja-jp/blog/what-is-an-okr/)の下書きやリリースノートの作成などの管理タスクを合理化できました。 \n\nご覧のようにGitLab Duoは、効率向上のほか、開発プロセスのスピードアップにも貢献しており、ソフトウェア開発にイノベーションをもたらすAIの能力を遺憾なく発揮しています。\n\n## 今後の取り組み\n\nGitLabはAIのワークフローへの導入を今後も積極的に行い、社内のフィードバックとニーズの変化に応じてGitLab Duoの機能を継続的に改善していきます。また、[AIインパクト分析ダッシュボード](https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)をとおしてユースケースとメトリクスの収集を進めており、GitLab Duoの強化に加えて、AIを活用した開発ツールをリードする取り組みに役立てています。\n\n![Duoへのドッグフーディング - AI分析ダッシュボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098367/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098367547.png)\n\n*監修：佐々木直晴 [@naosasaki](https://gitlab.com/naosasaki) （GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*\n\n> [GitLab Duoの無料トライアルをご利用ください](https://about.gitlab.com/gitlab-duo/#free-trial)\n\n## 「GitLab Duo開発の現場から」シリーズをもっと読む\n\n- [GitLab Duo開発の現場から：AIモデルの大規模な検証とテスト方法](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n- [GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n- [GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n- [GitLab Duo開発の現場から：AI生成コードの安全性確認と詳細なテスト](https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/)\n",[673,675,9,674,771],{"slug":904,"featured":90,"template":681},"developing-gitlab-duo-how-we-are-dogfooding-our-ai-features","content:ja-jp:blog:developing-gitlab-duo-how-we-are-dogfooding-our-ai-features.yml","Developing Gitlab Duo How We Are Dogfooding Our Ai Features","ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features.yml","ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"_path":910,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":911,"content":917,"config":923,"_id":925,"_type":13,"title":926,"_source":15,"_file":927,"_stem":928,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"title":912,"description":913,"ogTitle":912,"ogDescription":913,"noIndex":6,"ogImage":914,"ogUrl":915,"ogSiteName":694,"ogType":695,"canonicalUrls":915,"schema":916},"GitLab Duo開発の現場から： AIモデルの大規模な検証とテスト方法","LLMをどのように評価し、ユースケースに適合させ、ユーザーにとってより良い回答が得られるように微調整しているのか。その舞台裏をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から： AIモデルの大規模な検証とテスト方法\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susie Bitters\"}],\n        \"datePublished\": \"2024-05-09\",\n      }",{"title":912,"description":913,"authors":918,"heroImage":914,"date":920,"body":921,"category":679,"tags":922,"updatedDate":880},[919],"Susie Bitters","2024-05-09","**_生成系AIは、ソフトウェア開発業界における重要な変化であり、ソフトウェアの開発、保護、および運用を容易にします。この新しいブログシリーズでは、GitLabの製品チームとエンジニアリングチームが、必要なAI機能をエンタープライズ全体に統合し、どのように作成、テスト、デプロイするかをご紹介します。GitLab Duoの新機能によってDevSecOpsチームがお客様にどんな価値をもたらせるようになるか、見ていきましょう！_**\n\nGitLabは、お客様からの信頼を大切にしています。信頼を維持するためには、[GitLab Duo](https://about.gitlab.com/gitlab-duo/) AI機能をどのように構築し、評価し、高品質を確保しているかについて透明性を持つことが重要です。GitLab Duo機能は多様なモデルセットを備えており、それによって幅広いユースケースをサポートし、顧客に柔軟性を提供しています。GitLabはデフォルトで、単一のモデルプロバイダのみに依存していません。現在、[Google](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/vertex_text.py?ref_type=heads#L86)および[Anthropic](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/anthropic.py?ref_type=heads#L62)の基盤モデルを使用していますが、GitLab Duoのユースケースに適したモデルを継続的に評価しています。このブログでは、AIモデルの検証プロセスを詳しくご紹介します。\n\n>ライブデモ開催！ GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を体験しませんか。[【今すぐ登録する】](https://about.gitlab.com/seventeen/)\n\n## LLMを理解する\n\n大規模言語モデル（LLM）は、プラットフォーム全体の多くのAI機能を強化する生成系AIモデルです。膨大なデータセットで訓練されたLLMは、直前の文脈に基づいて一連の流れの中で次の単語を予測します。入力プロンプトが与えられると、プロンプトに条件付けられた単語の確率分布からサンプリングすることで、人間が書いたようなテキストを生成します。\n\nLLMは、インテリジェントなコード提案、会話型チャットボット、コード説明、脆弱性分析などを可能にします。特定のプロンプトに対して多様な出力を生成する能力があるため、標準化された品質評価が困難です。LLMはさまざまな特性に合わせて最適化できるので、多くのAIモデルが積極的に開発されています。\n\n## 大規模なテスト\n\nインプットとアウトプットがより簡単に定義され、テストできる従来のソフトウェアシステムとは異なり、LLMは、微妙で、また多様でもあり、文脈に依存するアウトプットをよく生成します。これらのモデルをテストするには、品質が主観的で変わりやすいことや、アウトプットがの確率的に変動することを考慮した包括的な戦略が必要です。したがって、LLMのアウトプットの質を個別にまたは経験に基づいて判断するのではなく、LLMの全体的な動作パターンを調べる必要があります。これらのパターンを理解するには、大規模なテストが必要です。大規模なテストとは、膨大で多様なデータセットやユースケースにわたるシステムやアプリケーションのパフォーマンス、信頼性、堅牢性を評価するプロセスを指します。当社の[集中評価フレームワーク（CEF）](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/)は、数十のユースケースに結びついた何千ものプロンプトを利用することで、重要なパターンを特定し、基礎となるLLMとそれらが統合されているGitLab Duo機能の全体的な動作を評価できます。\n\n大規模なテストによって、次のような効果があります。\n\n- __品質を確保する：__ 大規模なテストを行うことで、さまざまなシナリオやインプットでこれらのモデルの品質と信頼性を評価できます。大規模にモデルの出力を検証することにより、パターンを特定し、体系的なバイアス、異常、不正確さなどの潜在的な問題を軽減できます。\n- **パフォーマンスの最適化：** テストをスケールアップすることで、GitLabは実際の条件下でLLMのパフォーマンスと効率を評価できます。これは、アウトプット品質、レイテンシー、コストなどの要因を評価し、GitLab Duo機能に組み込まれたこれらのモデルを最良の状態に保つ作業を指します。\n- **リスクを軽減する：** LLMを大規模にテストすれば、重要なアプリケーションにLLMをデプロイする際のリスクを軽減できます。さまざまなデータセットやユースケースで徹底的なテストを実施することで、潜在的な故障モード、セキュリティの脆弱性、倫理的懸念を特定し、顧客に影響を与える前に対処できます。\n\nGitLabプラットフォーム内でのデプロイの信頼性と堅牢性を確保するには、LLMの大規模なテストが不可欠です。GitLabは、さまざまなデータセット、ユースケース、シナリオを含む包括的なテスト戦略に投資することにより、潜在的なリスクを軽減しながら、AIを活用したワークフローの可能性を最大限引き出すようにに取り組んでいます。\n\n### 大規模にテストする方法\n\nLLMを大規模にテストする手順は次のとおりです。\n\n#### ステップ1 ：本番環境用プロキシとしてプロンプトライブラリを作成する\n現在、他社はAIをトレーニングするために顧客データを表示して使用していますが、GitLabは使用していません。 その結果、本番環境での規模でさまざまな操作ーを模倣する包括的なプロンプトライブラリーを開発する必要がありました。\n\nこのプロンプトライブラリは質問と回答で構成されています。質問は本番環境で実際にあるようなクエリやインプットで、回答はグラウンドトゥルース（理想的な回答の基準）を表します。このグラウンドトゥルースは、目標とする回答として考えることができます。質問も回答も人間が生成した可能性がありますが、必ずしもそうではありません。このような質問と回答の組み合わせから、比較基準や参照フレームができあがり、モデルや機能間の違いを明らかにできます。複数のモデルが同じ質問を受け、異なる回答を生成する場合、グラウンドトゥルースを使用して、実際の回答に最も近いものを提供したモデルを決定し、それに応じてスコアを付けることができます。\n\nここでも、包括的なプロンプトライブラリーの重要な要素は、必ず本番環境で実際ありうるインプットに最も近いものとなるということです。私たちは、基盤となるモデルが特定のユースケースにどの程度適合していて、また自分たちの機能がどの程度うまく機能しているかを知りたいのです。多数のベンチマークプロンプトデータセットがありますが、これらのデータセットは、GitLabにある機能のユースケースを反映していない可能性があります。当社のプロンプトライブラリは、GitLabの機能やユースケースを対象に設計されています。\n\n#### ステップ2 ：ベースラインモデルのパフォーマンス\n\n本番環境のアクティビティーを正確に反映するプロンプトライブラリを作成したら、これらの質問を[さまざまなモデル](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/foundation_models/)に入力して、顧客のニーズをどの程度満たしているかをテストします。\n\n各回答をグラウンドトゥルースと比較し、以下のような一連のメトリクスに基づくランキングを提供します：[コサイン類似度スコア](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#similarity-scores)、[クロス類似度スコア](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#cross-similarity-score)、[LLMジャッジ](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#llm-judge)、[LLMジャッジによるコンセンサスフィルタリング](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/#consensus-filtering-with-llm-judge)。この最初のイテレーションは、各モデルがどの程度うまく機能しているかのベースラインを提供し、機能の基盤となるモデルの選択の指針となります。簡潔に説明するため、ここでは詳細に触れませんが、[メトリクスの詳細についてはこちら](https://about.gitlab.com/direction/ai-powered/ai_framework/ai_evaluation/metrics/)をご覧ください。これはまだ解決された問題ではないのでご注意ください。広範囲にわたるAI業界は、新しい技術の研究と開発を積極的に行っています。GitLabのモデル検証チームは、業界の動向を把握し、GitLab Duoが使用するLLM測定やススコアリング方法を継続的に改善しています。\n\n#### ステップ3 ：機能開発\n\n選択したモデルのパフォーマンスのベースラインができたので、自信を持って機能を開発できます。プロンプトエンジニアリングは多くの話題を呼びますが、検証を行わずにプロンプト（またはその他の手法）を介してモデルの動作を変更することだけに焦点を当てると、暗闇の中で作業しているようなものとなり、プロンプトを過剰適合させる可能性が非常に高くなります。1つの問題を解決することはできても、それ以上の問題を引き起こしてしまいます。何が起こるかは分かりません。モデルのパフォーマンスのベースラインを作成することで、必要なすべてのユースケースで時間の経過とともにどのように行動が変化しているかを追跡できます。GitLabでは、アクティブな開発中に機能のパフォーマンスを日々再検証し、すべての変更が全体的な機能性を確実に向上させるようにしています。\n\n#### ステップ4 ：何度も繰り返す\n\nここでは、実験的イテレーションの仕組みを説明します。各サイクルで、大規模なテストのスコアを調べてパターンを特定します。\n\n- 最も弱い分野の共通点は何ですか？\n- 特定のメトリクスや特定のユースケースに基づいた機能でパフォーマンスが低下していますか？\n- 特定の種類の質問に対して一貫したエラーが表示されていますか？\n\n大規模なテストを行ってこそ、このようなパターンが浮き彫りになり、実験に集中できるようになります。これらのパターンに基づいて、特定の分野や特定のメトリクスでパフォーマンスを向上させるさまざまな実験やアプローチを提案します。\n\nしかし、大規模なテストは高価で時間がかかります。より高速で低コストのイテレーションを可能にするために、ミニプロキシとして機能する小規模なデータセットを作成します。焦点を絞ったサブセットには、改善したいと考えている質問と回答の組み合わせが含まれるように重み付けをします。一方、より広範なサブセットには、変更が機能全般に悪影響を及ぼしていないかを確認するために、他のすべてのユースケースとスコアのサンプリングも含まれます。変更を加えて、焦点を絞ったデータのサブセットに対して実行します。新しい回答はベースラインと比較してどうでしょう？グラウンドトゥルースと比較するとどうでしょうか？\n\n焦点を絞ったサブセットで取り組んでいる特定のユースケースに対応するプロンプトが見つかったら、機能の他の分野に悪影響を与えないようにするために、より広範なデータのサブセットに対してそのプロンプトを検証します。新しいプロンプトが検証メトリクスによりターゲット領域でのパフォーマンスを向上させ、それ以外の領域でのパフォーマンスを低下させないと確信した場合にのみ、その変更を本番環境にプッシュします。\n\n集中評価フレームワーク（CEF）全体が新しいプロンプトに対して実行され、前日のベースラインと比べて機能全体のパフォーマンスが向上したかを検証します。このようにして、GitLabは常にイテレーションを行い、GitLabエコシステム全体でAIを使用した機能の最新かつ最高のパフォーマンスを確保しています。これにより、より迅速に、協力ながら作業を続けられます。\n\n### GitLab Duoをさらに優れたものにするために\n\nGitLab Duoの機能開発にどのくらい責任を持って取り組んでいるのかご理解いただいていると幸いです。このプロセスは、[GitLab Duoコード提案](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/)と[GitLab Duoチャット](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html)を一般提供したことにより開発されました。また、GitLab Duoの機能をイテレーションする際に、この検証プロセスを開発プロセスに統合しました。さまざまな試行錯誤があり、1つを修正したと思えば別の3つで問題が発生するというようなことがよくありました。しかし、そのような影響についてデータに基づいたインサイトがあり、GitLab Duoが常に改良されているという確信材料となっています。\n\n\u003Cbr>\n\n*監修：大井 雄介 [@yoi_gl](https://gitlab.com/yoi_gl)\n（GitLab合同会社 ソリューションアーキテクト本部 本部長）*\n\n>今すぐ[【GitLab Duoの無料トライアル】](https://about.gitlab.com/gitlab-duo/#free-trial)を始めましょう。\n\n## 「GitLab Duo開発の現場から」シリーズをもっと読む\n\n- [GitLab Duo開発の現場から：AIモデルの大規模な検証とテスト方法](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n- [GitLab Duo開発の現場から：AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n- [GitLab Duo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n- [GitLab Duo開発の現場から：AI生成コードの安全性確認と詳細なテスト](https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/)\n\n ## リソース\n- [GitLab AI Transparency Center](https://about.gitlab.com/ai-transparency-center/)\n- [GitLabの製品開発におけるAI倫理原則](https://handbook.gitlab.com/handbook/legal/ethics-compliance-program/ai-ethics-principles/)\n- [GitLab AIを活用したディレクションページ](https://about.gitlab.com/direction/ai-powered/)\n\n\u003Cfigure class=video_container>\n\u003Ciframe width=560 height=315 src=\"https://www.youtube-nocookie.com/embed/LifJdU3Qagw?si=A4kl6d32wPYC4168\" title=\"YouTube video player\" frameborder=0 allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\">\u003C/iframe>\n\u003C/figure>\n",[673,769,674,9,815],{"slug":924,"featured":90,"template":681},"developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","content:ja-jp:blog:developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","Developing Gitlab Duo How We Validate And Test Ai Models At Scale","ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"_path":930,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":931,"content":936,"config":943,"_id":945,"_type":13,"title":946,"_source":15,"_file":947,"_stem":948,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-series",{"title":932,"description":933,"ogTitle":932,"ogDescription":933,"noIndex":6,"ogImage":914,"ogUrl":934,"ogSiteName":694,"ogType":695,"canonicalUrls":934,"schema":935},"「GitLab Duo開発の現場から」シリーズ","プロダクトチームとエンジニアリングチームが執筆するこのブログシリーズでは、AIイノベーションの舞台裏をご紹介するとともに、DevSecOpsワークフローを支える最新のAI機能を詳しく解説します。","https://about.gitlab.com/blog/developing-gitlab-duo-series","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"「GitLab Duo開発の現場から」シリーズ\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2024-06-03\",\n      }",{"title":932,"description":933,"authors":937,"heroImage":914,"date":939,"body":940,"category":679,"tags":941,"updatedDate":942},[938],"GitLab Team","2024-06-03","生成AIは、ソフトウェアの開発、保護、運用を容易にし、ソフトウェア開発業界に重要な変化をもたらしています。GitLabの製品チームとエンジニアリングチームが手掛ける新しいブログシリーズでは、企業全体に統合すべきAI機能をどのように作成、テスト、そしてデプロイするか明らかにし、DevSecOpsチームがよりよいソフトウェアを顧客に届ける上で、GitLab Duoの新機能がどのように役立つのかご理解いただける内容になっています。\n\n> デモ動画公開！GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を体験しませんか？ [今すぐ登録する](https://about.gitlab.com/ja-jp/seventeen/)\n\n## 1. [AIモデルの大規模な検証とテスト方法](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale/)\n\n- 記念すべき1本目は、LLMをどのように評価し、ユースケースに適合させ、ユーザーにとってより良い回答が得られるように微調整しているのか。その舞台裏をご紹介します。\n\n## 2. [AIインパクト分析ダッシュボードによるAIのROI測定](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)\n\n- 「コード提案利用率」のような、詳しいメトリクスを表示する新機能を継続的に取り上げ、AI投資の効果について理解を深めていただきます。\n\n## 3. [GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n\n- GitLabがどのようにソフトウェア開発ライフサイクル全体にAIを統合しているのか、また、メトリクスを用いてパフォーマンスを測定しているのかを、実例を用いて解説します。\n\n## 4. [AI生成コードに対するセキュリティ確保と徹底的なテスト](https://about.gitlab.com/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code/)\n\n- GitLab DuoとGitLab Pages、コードサンプルとプロンプトを使用して、AI生成コードの信頼性とセキュリティを強化する方法をステップごとにご紹介します。\n\n## 5. [AIと根本原因分析を併用したCI/CDパイプラインの修正](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/)\n\n- AIを活用したGitLabの根本原因分析が、破損したCI/CDパイプラインの修復にどのように役立つかについて、具体的なシナリオと実習問題を交えながら解説します。\n\n## 6. [チャット機能強化について](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements)\n- 新たなインテグレーション、迅速なキャンセル、アーキテクチャのアップグレードなど、GitLab Duo Chatの最新の改善点についてまとめました。\n\n> DevSecOpsワークフロー向けのAI機能、 [GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)が新登場。[GitLab Duoの無料トライアル](https://about.gitlab.com/ja-jp/gitlab-duo/#free-trial) もお試しください。 \n\n##  7. [AIを活用したセキュリティ脆弱性の修正](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities)\nGitLab Duo脆弱性の説明とGitLab Duo脆弱性の修正に加え、他のAI機能が、いかに迅速に脆弱性に対応するかを解説します。",[673,9,769,674],"2025-01-21",{"slug":944,"featured":6,"template":681},"developing-gitlab-duo-series","content:ja-jp:blog:developing-gitlab-duo-series.yml","Developing Gitlab Duo Series","ja-jp/blog/developing-gitlab-duo-series.yml","ja-jp/blog/developing-gitlab-duo-series",{"_path":950,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":951,"content":957,"config":963,"_id":965,"_type":13,"title":966,"_source":15,"_file":967,"_stem":968,"_extension":18},"/ja-jp/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"title":952,"description":953,"ogTitle":952,"ogDescription":953,"noIndex":6,"ogImage":954,"ogUrl":955,"ogSiteName":694,"ogType":695,"canonicalUrls":955,"schema":956},"GitLab Duo開発の現場から：AIを活用したセキュリティ脆弱性の修正","このチュートリアルでは、GitLab Duoの脆弱性の説明と脆弱性の修正、その他のAI搭載機能が、脆弱性に迅速に対処するのにどのように役立つのかをご説明します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098106/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750098106040.png","https://about.gitlab.com/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から：AIを活用したセキュリティ脆弱性の修正\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"},{\"@type\":\"Person\",\"name\":\"Alana Bellucci\"}],\n        \"datePublished\": \"2024-07-15\",\n      }",{"title":952,"description":953,"authors":958,"heroImage":954,"date":960,"body":961,"category":679,"tags":962,"updatedDate":942},[879,959],"Alana Bellucci","2024-07-15","新しい仕事を始めたばかりの初日、大規模な本番環境でのインシデントが発生し、全員での対応が求められる状況に直面したとします。いくつもの重大な脆弱性が新たに発覚し、即時の対応、分析、軽減、そして修正が必要です。こうした場合、どこから調査を始めるべきでしょうか？\n\n\nこの記事では、GitLab\nDuoの脆弱性の説明や脆弱性の修正、その他のAI機能を活用し、たった数分以内に脆弱性への対応を開始する方法を解説していきます。実践的な例を通じて、AI搭載のアシスト機能を活用して効果的に脆弱性を分析し、説明するアプローチを習得しましょう。追加の修正として、AIが生成したコード修正がMR（マージリクエスト）に示され、脆弱性の修正を迅速化します。\n\n\n> [GitLab\nDuoの無料トライアル](https://about.gitlab.com/ja-jp/gitlab-duo/#free-trial)を始めて、脆弱性の修正機能を組織に取り入れてみませんか。\n\n\n## はじめ方：分析\n\n\n最初のステップは、脆弱性の影響と重大度を分析することです。GitLabのUIを開き、`セキュリティ > 脆弱性レポート`\nの順に進み、メニューから[Vulnerability\nReport（脆弱性レポート）](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/)にアクセスします。脆弱性リストを\n`SAST` でフィルタリングし、対応を必要とする最も致命的な脆弱性を特定します。\n\n\n![脆弱性レポートの概要](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/vulnerability_reports_overview_aHR0cHM6_1750098116056.png)\n\n\nSASTのスキャン結果は詳細ビューで要約され、ソースコードへのリンクが表示されます。また、公開されているセキュリティアドバイザリからの詳細情報も提示されます。攻撃の範囲や技術的な詳細、脆弱な環境を十分に把握していない限り、デベロッパーがセキュリティレポートから分析を始めるのは難しい場合が多いでしょう。\n\n\n## 脆弱性の説明に基づく理解と軽減策\n\n\n脆弱性を理解し、最良かつ最も効率的な修正方法を知ることは不可欠です。また、修正により既存の機能に影響を与えないようにする必要があります。もし影響する場合は、保守担当者（メンテナー）やプロダクトオーナーとの議論が必要となり、その際には全体像を要約し、代替の軽減策を用意しなければなりません。また、離職した社員が作成したコードやテストを実施していないコードの場合、修正計画を立てるのがさらに難しくなることもあります。\n\n\nAI搭載の脆弱性の説明機能は、攻撃者がどのように脆弱性を悪用（エクスプロイト）できるかについて要約し、その影響や修正方法についての詳細な説明も行います。\n\n\n以下の例は、OSコマンドインジェクションの脆弱性を示しており、次のコードスニペットを使用しています。\n\n\n```php\n\n\u003C?php \n\n\n// Read variable name from GET request\n\n$name = $_GET['name'];\n\n\n// Use the variable name to call eval and print its value \n\neval('echo $' . $name . ';');\n\n```\n\n\n脆弱性レポートには詳細な説明がないため、全体の内容や影響について理解する必要があります。画面右上の `Explain\nVulnerability`（脆弱性の説明）オプションを選択すると、事前に定義されたプロンプトアクションでGitLab Duo\nChatが開きます。Chat内に脆弱性の追加の概要が表示され、脆弱性がどのように悪用されるかの説明や、推奨される修正方法が提示されます。\n\n\n![OSコマンドで使用される特殊文字の適切な無害化が行われていない（'OSコマンドインジェクション'）](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image9_aHR0cHM6_1750098116057.png)\n\n\n### 脆弱性の説明を文脈に沿った会話にする\n\n\n脆弱性の説明に関するUXの改善もされています。以前は、脆弱性の説明がオーバーレイとして右側に表示されていましたが、説明内容をGitLab Duo\nChatのワークフローに統合しました。脆弱性が複雑である場合は、それに対して複数の軽減ステップに分かれたり、ソースコードの経路が不明瞭になることもあります。\n\n\nソースコードツリーを参照しながら、同じChatの文脈でコードの説明、修正、リファクタリング、そしてテストを続けられます。\n\n\nC言語の例で全体的なワークフローに取り組んでみましょう。この例では、セキュリティスキャンによってバッファオーバーフローが検出されています。\n\n\n1. セキュリティの脆弱性の詳細ビューを開き、右上にある「Explain\nVulnerability」（脆弱性の説明）ボタンを選択します。Chatプロンプトが開き、問題の概要、潜在的な攻撃ベクター、および提案された修正が表示されます。\n\n\n![脆弱性のためのAI -\n画像4](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image11_aHR0cHM6_1750098116059.png)\n\n\n2. 提案された修正を確認し、続けて `Can you show an alternative fix using a different\nfunction` （日本語：別の関数を使った代替修正方法を見せてくれますか？）というプロンプトで、Chatに尋ねます。この目的は、`strcpy()`\nに代わるより安全な関数がないか調べることです。\n\n\n![脆弱性のためのAI -\n画像3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750098116060.png)\n\n\n3. `strlcpy()`\nを使用した代替修正がChat内で提案されます（下図参照）。この関数は、ターゲット文字列に許容される文字数のみをコピーし、常に文字列をnullで終端します。また、ソース文字列の長さを返し、文字列が切り詰められたかどうかを判断します。\n\n\n![脆弱性のためのAI -\n画像5](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image10_aHR0cHM6_1750098116062.png)\n\n\n4. 次に、`Location file`\nURLをクリックし、ソースコードビューに移動します。再度Chatを開き、前の脆弱性の説明の文脈が保持されていることを確認します。次のステップでは、修正を続ける前にテストを追加していきます。これにより、機能の破損やリグレッションの発生を防ぐことができます。たとえば、`Based\non the vulnerability context and opened source code, how would you add tests\nfor it?` （日本語：脆弱性のコンテキストと表示されたソースコードに基づいて、テストを追加するにはどうしますか？）などのプロンプトを使用します。\n\n\n![脆弱性のためのAI -\n画像7](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750098116063.png)\n\n\n5. テストが生成され（仮に追加されたとして）、同じセッションで `Can you refactor the source code too?`\n（日本語：ソースコードもリファクタリングできますか？）というプロンプトを使用して、Chatにソースコードのリファクタリングも依頼できます。\n\n\n![脆弱性のためのAI -\n画像6](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098116063.png)\n\n\nこのワークフローでは、脆弱性の分析、理解、軽減、代替アプローチの発見、テストの追加、さらには脆弱性の修正に対するリファクタリングを行う手順が示されています。\n\n\nChatを使ってこのプロセスを続けた後、Web\nIDEに切り替えて、学んだことを基にソースコードを修正できます。さらに、変更をコミットし、CI/CDやセキュリティスキャンをトリガーして、DevSecOpsライフサイクル全体のループを完結させる継続的なワークフローも含まれています。\n\n\n## AIアシストによる脆弱性の修正\n\n\nセキュリティ脆弱性を理解し、軽減するには、問題の修正を作成し、新しいマージリクエストでパイプラインを実行し、再度セキュリティスキャンを実施するなどのエンジニアリング作業が必要になります。また、修正をステージング（staging）環境にデプロイし、一定期間テストすることも必要な場合があります。\n\n\nAIを活用し、脆弱性とソースコードに基づいた提案修正を生成することで、脆弱性修正プロセスを迅速化します。\n\n\nヒント：これまでの経験の中で最も厄介だった脆弱性を思い出し、そのユースケースを再現してGitLab\nDuoの導入に活用してみましょう。ちなみに、[MITREのCWE Top\n25（最も危険なソフトウェアの脆弱性）](https://cwe.mitre.org/top25/archive/2023/2023_top25_list.html)も、ユースケースとしてはよい例です。\n\n\n次の例は、[CWE-328：弱いハッシュ関数の使用](https://cwe.mitre.org/data/definitions/328.html)を実装したもので、`md5`\nを使用しています。これは[SASTスキャン](https://docs.gitlab.com/ee/user/application_security/sast/)によって正しく識別されます。\n\n\n```python\n\nimport hashlib\n\n\nclass User:\n    def __init__(self, username, password):\n        self.username = username\n        self.password = password\n\n    def set_password(self, password):\n        self.password = hashlib.md5(password.encode()).hexdigest()\n```\n\n\n![脆弱性のためのAI\n-画像8](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750098116064.png)\n\n\n右上の `Resolve with merge\nrequest`（マージリクエストで解決）ボタンをクリックすると、AIを活用して修正を提案するMRが開きます。この脆弱性に対する修正として、別のハッシュ関数を使用することが考えられます。\n\n\n![脆弱性のためのAI -\n画像9](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098116065.png)\n\n\nもうひとつの一般的な脆弱性の例として、関数のエラーコードや潜在的な例外をチェックしないケースがあります。以下のCコードスニペットは、`fopen()`\nや `chmod()`\nの呼び出しに対する[CWE-362](https://cwe.mitre.org/data/definitions/362.html)に関連するファイル操作におけるタイミング攻撃の例を実装しています。\n\n\n```c\n\n#include \u003Cstdio.h>\n\n#include \u003Cstring.h>\n\n#include \u003Csys/mman.h>\n\n#include \u003Csys/stat.h>\n\n#include \u003Cunistd.h>\n\n\nint main(int argc, char **argv) {##$_0A$####$_0A$##    // File\noperations##$_0A$##    char *fname = \"gitlab.keksi\";##$_0A$####$_0A$##   \nFILE *fp;##$_0A$##    fp = fopen(fname, \"r\");##$_0A$##    fprintf(fp, \"Hello\nfrom GitLab Duo Vulnerability Resolution Challenge\");##$_0A$##   \nfclose(fp);##$_0A$####$_0A$##    // Potential chmod() timing attacks   \n##$_0A$####$_0A$##    // Make the file world readable##$_0A$##   \nchmod(fname, S_IRWXU|S_IRWXG|S_IRWXO);##$_0A$####$_0A$##    return\n0;##$_0A$##}\n\n```\n\n\n`chmod()` に関するSASTレポートは、次のように表示される場合があります。\n\n\n![脆弱性のためのAI -\n画像10](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750098116065.png)\n\n\n提案された `chmod()`\nのマージリクエストにはエラーハンドリングが含まれており、ファイルが世界中で書き込み可能になる潜在的な問題も修正されて、権限が `777` から\n`600` に変更されています。\n\n\n![脆弱性のためのAI -\n画像11](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098116/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098116066.png)\n\n\n> 次に`fopen()` 関数の脆弱性も特定し、分析した上で修正してみてください。\n\n ## GitLab DuoによるさらなるAI支援\n\nセキュリティ問題は、簡単な修正や回避策で解決できることがよくあり、それによって開発チームが長期的な解決策を議論し、計画する時間を確保できます。他のケースでは、問題がより複雑になり、適切な修正が本番環境に反映されるまで、機能[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)を無効にしたり、ファイアウォールでの軽減策が必要になることもあります。\n\n\nGitLab Duoは、こうした問題の解決に役立つAIを活用した追加機能を提供しています。\n\n\n**コードの説明**：デベロッパーやセキュリティエンジニアとして、行った変更に自信を持つことが重要です。IDE内で[コードの説明機能](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#explain-code-in-the-ide)を使用することで、AIが提案した脆弱性修正をより深く理解できます。この機能により、どのような調整が行われたか、そしてその理由を正確に把握できます。\n\n\n**根本原因分析：**\n修正によりCI/CDパイプラインがエラーを起こしてしまった場合、[根本原因分析機能](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/)を利用できます。このツールは、根本的な問題を特定し、説明するのに役立ち、効果的に問題に対処できます。必要な修正を加えた後、テストを再実行して問題が解決したか確認できます。\n\n\n**リファクタリング**：脆弱性の修正が済んでも、より安全なコードにできないか検討する価値があります。IDE内でGitLab Duo\nChatを開き、[リファクタリング機能](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#refactor-code-in-the-ide)を使用して、コードをより安全に書くための代替方法を探ることができます。この事前対策的なアプローチにより、堅牢でセキュアなコードベースを維持できます。\n\n\nこれらのGitLab Duoの機能を活用することで、脆弱性に自信を持って対処し、コードのセキュリティと効率を確保できます。\n\n\n## 今後の取り組み\n\n\n脆弱性の説明と修正の機能をMRのプロセスに直接組み込むことで、シフトレフト（より早い段階に移行）させることを計画しています。この統合により、開発サイクルの初期段階で脆弱性に対処し、解決できるようになり、ワークフローが効率化され、シフトレフトによりコードのセキュリティが強化された状態になります。\n\n\n## GitLab Duoを始める\n\n\nGitLab\nUltimateで利用可能な機能を有効化する方法を説明する[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo/turn_on_off.html)をご参照ください。また、GitLab\nDuoの[脆弱性の説明](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#explaining-a-vulnerability)および[脆弱性の修正](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution)は、GitLabのSelf-Managed環境やGitLab\nDedicatedでも利用可能です。\n\n\n[「GitLab\nDuo開発の現場から」ブログシリーズ](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-series/)をチェックすることで、GitLab\nDuoの最新情報についてご確認いただけます。\n\n\n*監修：伊藤 俊廷 [@toshitakaito](https://gitlab.com/toshitakaito) \u003Cbr>\n\n（GitLab合同会社 ソリューションアーキテクト本部 スタッフソリューションアーキテクト）*\n\n\n> [GitLab\nDuoの無料トライアル](https://about.gitlab.com/ja-jp/gitlab-duo/#free-trial)を始めて、脆弱性の修正機能を組織に取り入れてみませんか。\n",[673,770,676,9,678],{"slug":964,"featured":90,"template":681},"developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities","content:ja-jp:blog:developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities.yml","Developing Gitlab Duo Use Ai To Remediate Security Vulnerabilities","ja-jp/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities.yml","ja-jp/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"_path":970,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":971,"content":977,"config":985,"_id":987,"_type":13,"title":988,"_source":15,"_file":989,"_stem":990,"_extension":18},"/ja-jp/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"ogTitle":972,"schema":973,"ogImage":974,"ogDescription":975,"ogSiteName":694,"noIndex":6,"ogType":695,"ogUrl":976,"title":972,"canonicalUrls":976,"description":975},"コードから本番環境へ：GitLabを活用した継続的デプロイのガイド","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"コードから本番環境へ：GitLabを活用した継続的デプロイのガイド\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Benjamin Skierlak\"},{\"@type\":\"Person\",\"name\":\"James Wormwell\"}],\n        \"datePublished\": \"2025-01-28\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659478/Blog/Hero%20Images/REFERENCE_-_Use_this_page_as_a_reference_for_thumbnail_sizes.png","GitLabを活用して堅牢な継続的デプロイパイプラインを構築する方法をご紹介します。具体的な手順や例、ベストプラクティスを通して段階的にプロセスを理解できます。","https://about.gitlab.com/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"heroImage":974,"body":978,"authors":979,"updatedDate":982,"date":983,"title":972,"tags":984,"description":975,"category":676},"継続的デプロイは、チームがより迅速かつ高い信頼性で価値を生み出せる画期的な手法です。しかし、GitOpsやKubernetesを用いたコンテナオーケストレーション、動的環境などの高度なデプロイワークフローに取り組むのは、継続的デプロイの導入を始めたばかりのチームにとってはハードルが高いと感じられるかもしれません。\n\n\nGitLabでは、シームレスかつスケーラブルなデリバリーを実現することに注力しています。チームが基本に集中できるようにすることで、時間をかけてより複雑な戦略へと発展できる、強固な基盤を構築できます。このガイドでは、GitLabを活用した継続的デプロイの導入に必要な基本的なステップを紹介し、長期的な成功のための土台作りをサポートします。\n\n\n## まずはワークフローの計画から\n\n\n技術的な実装に入る前に、デプロイワークフローをしっかりと設計する時間を取りましょう。成功の鍵は、慎重な計画と体系的なアプローチにあります。\n\n\n### アーティファクト管理戦略\n\n\n継続的デプロイにおいて、アーティファクトとは、ビルドプロセスによって生成されるパッケージ化された成果物を指し、保存、バージョン管理、デプロイが必要です。アーティファクトには、次のようなものが含まれます。\n\n\n* アプリケーション用のコンテナイメージ\n\n* パッケージ\n\n* コンパイル済みのバイナリや実行ファイル\n\n* ライブラリ\n\n* 設定ファイル\n\n* ドキュメントパッケージ\n\n* その他のアーティファクト\n\n\n各アーティファクトは、デプロイプロセスにおいて特定の役割を果たします。たとえば、一般的なWebアプリケーションでは、次のようなアーティファクトが生成されることがあります。\n\n\n* バックエンドサービス用のコンテナイメージ\n\n* コンパイル済みフロントエンドアセットのZIPアーカイブ\n\n* データベース変更用のSQLファイル\n\n* 環境ごとの設定ファイル\n\n\nアーティファクトの適切な管理はデプロイを成功させる鍵となります。ここからは、アーティファクト管理のアプローチについて詳しく見ていきましょう。\n\n\n#### アーティファクトとリリースのバージョニング戦略\n\n\nクリーンで整理された構造を保つためのベストプラクティスとして、アーティファクトの明確なバージョニング戦略を確立することが重要です。リリース作成時のポイントは以下のとおりです。\n\n\n* リリースタグにセマンティックバージョニング（major.minor.patch）を使用する\n\n  * 例：安定版リリースが`myapp:1.2.3`の場合\n  * 破壊的な変更がある場合は、メジャーバージョン変更（2.0.0）\n  * 新機能を追加する場合は、マイナーバージョン変更（1.3.0）\n  * バグ修正を行う場合は、パッチバージョン変更（1.2.4）\n* 最新の安定版を示す「latest」タグを維持する\n\n  * 例：`myapp:latest`（自動デプロイ用）\n* コミットSHAを含めることで、正確なバージョン追跡を行う\n\n  * 例：`myapp:1.2.3-abc123f`（デバッグ用）\n* 開発環境向けにブランチベースのタグを使用する\n\n  * 例：`myapp:feature-user-auth`（新機能テスト用）\n\n#### ビルドアーティファクトの保持\n\n\n明確な保持ルールを実装しましょう。\n\n\n* 一時的なアーティファクトの明確な有効期限を設定する\n\n* 永続的に保持する必要があるアーティファクトを定義する\n\n* ストレージ管理のためのクリーンアップポリシーを設定する\n\n\n#### レジストリアクセスと認証\n\n\n適切なアクセス制御でアーティファクトのセキュリティを確保しましょう。\n\n\n* デベロッパーのアクセス用にパーソナルアクセストークンを実装する\n\n* パイプラインの認証にCI/CD変数を設定する\n\n* 適切なアクセススコープを設定する\n\n\n### 環境戦略\n\n\n環境設計はデプロイパイプライン全体の構成に影響を与えるため、早い段階で検討しましょう。\n\n\n* 開発、ステージング環境、本番環境の設定\n\n* 環境ごとの変数とシークレットの管理\n\n* アクセス制御と保護ルールの設定\n\n* デプロイの追跡とモニタリングのアプローチ\n\n\n### デプロイターゲット\n\n\nどこに、どのようにデプロイするのかを慎重に検討しましょう。これらの決定は重要であり、それぞれのメリットとデメリットを考慮する必要があります。\n\n\n* インフラ要件（仮想マシン、コンテナ、クラウドサービス）\n\n* ネットワークアクセスとセキュリティ設定\n\n* 認証メカニズム（SSH鍵、アクセストークン）\n\n* リソースの割り当てとスケーリングの考慮\n\n\nこれで戦略が定まり、基盤となる決定が完了したので、これらの計画を実際に動作するパイプラインに落とし込んでいきます。それでは、実際に機能する例を作ることで概念を深掘りしていきましょう。まずはシンプルなアプリケーションから始め、徐々にデプロイの機能を追加していきます。\n\n\n## CDパイプラインの実装\n\n\n### 具体的な手順\n\n\nWebアプリケーション向けの基本的な継続的デプロイ（CD）パイプラインの実装手順を順を追って説明します。例としてシンプルなHTMLアプリケーションを使用しますが、ここで紹介する原則はどのタイプのアプリケーションにも応用できます。今回は、アプリケーションをDockerイメージとしてパッケージ化し、シンプルな仮想マシン上にデプロイします。これにより、最小限の依存関係を持つ厳選されたイメージを活用し、環境依存の要件が意図せず混入するのを防ぐことができます。また、仮想マシン上で動作させることで、GitLabのネイティブなインテグレーション機能を活用しない設定となります。複雑で本格的な環境ではなく、理解しやすい簡易的な環境から始めてみましょう。\n\n\n#### 前提条件\n\n\nこの例では、クラウドプロバイダーの仮想マシン上で実行するアプリケーションをコンテナ化することを目指します。また、ローカル環境でもこのアプリケーションをテストします。以下の前提条件は、このシナリオにおいてのみ必要なものです。\n\n\n##### [仮想マシン（VM）](https://about.gitlab.com/ja-jp/blog/what-is-vm/)のセットアップ\n\n\n* お好みのクラウドプロバイダーで[VM](https://about.gitlab.com/ja-jp/blog/what-is-vm/)をプロビジョニングします（例：GCP、AWS、Azure）\n\n* ネットワークルールを設定し、ポート22、80、443へのアクセスを許可します\n\n* デプロイ用にマシンのパブリックIPアドレスを記録します\n\n\n##### SSH認証のセットアップ：\n\n\n* マシン用の公開鍵と秘密鍵のペアを生成します\n\n* GitLabで**設定 > CI/CD > 変数**を開きます\n\n* `GITLAB_KEY`という変数を作成します\n\n* タイプを「ファイル」に設定します（SSH認証に必須）\n\n* 秘密鍵を「値」フィールドに貼り付けます\n\n* 「ユーザー」変数を定義します（VMにログインしてスクリプトを実行するユーザー）\n\n\n##### デプロイ変数の設定\n\n\n* デプロイターゲット用の変数を作成します\n\n  * `STAGING_TARGET`：ステージング環境のサーバーIPまたはドメイン\n  * `PRODUCTION_TARGET`：本番環境のサーバーIPまたはドメイン\n\n##### ローカル開発環境のセットアップ\n\n\n* デプロイのテスト用に、ローカルマシンにDockerをインストールします\n\n\n##### GitLabコンテナレジストリへのアクセス\n\n\n* レジストリパスを確認します：\n\n  * **デプロイ > コンテナレジストリ**を開きます\n  * レジストリパスをコピーします（例：registry.gitlab.com/group/project）\n* 認証の設定：\n\n  * **設定 > アクセストークン**を開きます\n  * レジストリアクセス権を持つ新しいトークンを作成します\n  * トークンの有効期限を最大1年に設定します\n  * トークンを安全に保存します\n* ローカルレジストリのアクセス設定：\n\n\n```\n\ndocker login registry.gitlab.com\n\n\n# パーソナルアクセストークンを使用する場合のユーザー名はgitlab-ci-tokenです\n\n\n# Password:（ここにアクセストークンを入力）\n\n```\n\n\n#### 1. アプリケーションを作成する\n\n\n基本的なWebアプリケーションから始めましょう。今回の例では、シンプルなHTMLページを使用します。\n\n\n```\n\n\u003C!|||UNTRANSLATED_CONTENT_START|||-- index.html -->\n\n\n\u003Chtml>\n  \u003Chead>\n    \u003Cstyle>\n      body {\n        background-color: #171321; /* GitLab dark */\n      }\n    \u003C/style>\n  \u003C/head>\n  \u003Cbody>\n    \u003C!|||UNTRANSLATED_CONTENT_END|||-- ここにコンテンツを追加 -->\n  \u003C/body>\n\u003C/html>\n\n```\n\n\n#### 2. アプリケーションをコンテナ化する\n\n\nアプリケーションをパッケージ化するために、Dockerfileを作成します：\n\n\n```\n\nFROM nginx:1.26.2\n\n\nCOPY index.html /usr/share/nginx/html/index.html\n\n```\n\n\nこのDockerfileは\n\n\n* nginxをベースイメージとして使用し、Webコンテンツを配信できるようにします\n\n* 作成したindex.htmlをnginxのディレクトリ構造内の適切な場所にコピーします\n\n\n#### 3. CI/CDパイプラインを設定する\n\n\nGitLabのパイプラインステージを定義するために、`.gitlab-ci.yml`ファイル を作成します：\n\n\n```\n\nvariables:\n  TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest\n  TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA\n\nstages:\n  - publish\n  - deploy\n```\n\n\n解説：\n\n\n`TAG_LATEST`は、次の3つの要素で構成されています：\n\n\n* `$CI_REGISTRY_IMAGE`：GitLabのプロジェクトのコンテナレジストリのパス\n\n\n例：`registry.gitlab.com/your-group/your-project`\n\n\n* `$CI_COMMIT_REF_NAME`：ブランチ名またはタグ名\n\n\n例：ブランチの場合は`/main`、フィーチャーブランチの場合は`/feature-login`\n\n\n* `:latest`：固定のサフィックス\n\n\nこれにより、mainブランチの`TAG_LATEST`は次のようになります：`registry.gitlab.com/your-group/your-project/main:latest`\n\n\n`TAG_COMMIT`は`TAG_LATEST`とほぼ同じですが、`:latest`の代わりにコミット識別子の`$CI_COMMIT_SHA`を使います。例：`:abc123def456`\n\n\nしたがって、同じmainブランチでの`TAG_COMMIT`は次のようになります：`registry.gitlab.com/your-group/your-project/main:abc123def456`\n\n\n両方のタグを使用する理由は、`TAG_LATEST`が常に最新バージョンを取得しやすくするのに対し、`TAG_COMMIT`は必要に応じて特定のバージョンに戻れるようにするためです。\n\n\n#### 4. コンテナレジストリに公開する\n\n\nパイプラインに公開ジョブを追加します：\n\n\n```\n\npublish:\n  stage: publish\n  image: docker:latest\n  services:\n    - docker:dind\n  script:\n    - docker build -t $TAG_LATEST -t $TAG_COMMIT .\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - docker push $TAG_LATEST\n    - docker push $TAG_COMMIT\n```\n\n\nこのジョブは\n\n\n* Docker-in-Dockerを使用してイメージをビルドします\n\n* 2つのタグを付けたイメージを作成します\n\n* GitLabレジストリへの認証を行います\n\n* 両方のイメージをレジストリにプッシュします \n\n\nこれで、コンテナイメージが安全にレジストリに保存されました。次は、ターゲット環境へのデプロイを進めていきます。本番環境へ移行する前に、まずローカル環境でテストを行い、設定が正しく機能していることを確認しましょう。 \n\n\n#### 5. 環境へデプロイする\n\n\n本番環境にデプロイする前に、ローカル環境でテストできます。先ほどGitLabレジストリにイメージを公開したので、それをローカル環境でプルしてテストします。コンテナイメージのパスが分からない場合は、GitLabの\\*\\*デプロイ\n\n\n> コンテナレジストリ\\*\\*に移動し、該当のコンテナイメージの行末にあるアイコンをクリックすると、パスをコピーできます。\n\n\n```\n\ndocker login registry.gitlab.com \n\n\ndocker run -p 80:80 registry.gitlab.com/your-project-path/main:latest\n\n```\n\n\nこれにより、Webブラウザからlocalhostにアクセスし、ローカル環境でアプリケーションを確認できるようになります。\n\n\nそれでは、パイプラインにデプロイジョブを追加しましょう：\n\n\n```\n\ndeploy:\n  stage: deploy\n  image: alpine:latest\n  script:\n    - chmod 400 $GITLAB_KEY\n    - apk add openssh-client\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - ssh -i $GITLAB_KEY -o StrictHostKeyChecking=no $USER@$TARGET_SERVER \n      docker pull $TAG_COMMIT &&\n      docker rm -f myapp || true &&\n      docker run -d -p 80:80 --name myapp $TAG_COMMIT\n```\n\n\nこのジョブは\n\n\n* デプロイ先のサーバーへのSSHアクセスを確立します\n\n* 最新のコンテナイメージをプルします\n\n* 既存のコンテナを削除します\n\n* 新しいバージョンのコンテナをデプロイします\n\n\n#### 6. デプロイを追跡する\n\n\n環境設定を追加してデプロイの追跡を有効にします：\n\n\n```\n\ndeploy:\n  environment:\n    name: production\n    url: https://your-application-url.com \n```\n\n\nこれにより、GitLabの**オペレーション > 環境**セクションに環境オブジェクトが作成され、以下の情報が提供されます：\n\n\n* デプロイ履歴\n\n* 現在のデプロイ状況\n\n* アプリケーションへのクイックアクセス\n\n\n単一の環境向けのパイプラインは、最初のステップとしては有効ですが、ほとんどのチームでは適切なテストやステージングを行うために複数の環境を管理する必要があります。このより実践的なシナリオに対応するために、パイプラインを拡張していきましょう。\n\n\n#### 7. 複数環境をセットアップする\n\n\nより堅牢なパイプラインを構築するために、ステージング環境と本番環境のデプロイを設定します：\n\n\n```\n\nstages:\n  - publish\n  - staging\n  - release\n  - version\n  - production\n\nstaging:\n  stage: staging\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"main\" && $CI_COMMIT_TAG == null\n  environment:\n    name: staging\n    url: https://staging.your-app.com\n  # デプロイスクリプトを記述\n\nproduction:\n  stage: production\n  rules:\n    - if: $CI_COMMIT_TAG\n  environment:\n    name: production\n    url: https://your-app.com\n  # デプロイスクリプトを記述\n```\n\n\nこの設定は\n\n\n* mainブランチからステージ環境へデプロイします\n\n* GitLabのタグを利用して本番環境へのデプロイをトリガーします\n\n* 環境ごとに分けてデプロイの状況を管理できるようにします\n\n\nこのステップと次のステップでは、GitLabの非常に便利な機能であるタグを活用しています。GitLabの**コード >\n\nタグ**セクションで手動でタグを作成すると、'$ CI_COMMMIT_TAG\n\n`変数が設定され、本番環境へのデプロイジョブが適切にトリガーされるようになります。\n\n\n#### 8. 自動リリースノートを作成する\n\n\nCI/CDパイプラインを通じてGitLabのリリース機能を使用します。まず、`.gitlab-ci.yml`のstagesを更新 します：\n\n\n```\n\nstages:\n\n\n\n- publish\n\n\n- staging\n\n\n- release # New stage for releases\n\n\n- version\n\n\n- production\n\n```\n\n\n次に、リリースジョブを追加します：\n\n\n```\n\nrelease_job:\n  stage: release\n  image: registry.gitlab.com/gitlab-org/release-cli:latest\n  rules:\n    - if: $CI_COMMIT_TAG                  # タグが作成された場合のみ実行する\n  script:\n    - echo \"Creating release for $CI_COMMIT_TAG\"\n  release:                                # リリース設定\n    name: 'Release $CI_COMMIT_TAG'\n    description: 'Release created from $CI_COMMIT_TAG'\n    tag_name: '$CI_COMMIT_TAG'           # タグを作成する\n    ref: '$CI_COMMIT_TAG'                # リリースのベースとなるタグ\n```\n\n\nコンテナイメージのリンクを追加することで、さらに内容を充実させることができます：\n\n\n```\n\nrelease:\n  name: 'Release $CI_COMMIT_TAG'\n  description: 'Release created from $CI_COMMIT_TAG'\n  tag_name: '$CI_COMMIT_TAG'\n  ref: '$CI_COMMIT_TAG'\n  assets:\n    links:\n      - name: 'Container Image'\n        url: '$CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG'\n        link_type: 'image'\n```\n\n\nコミットメッセージに基づいて自動リリースノートを生成する場合は次のようにします：\n\n\n```\n\nrelease:\n  name: 'Release $CI_COMMIT_TAG'\n  description: 'Release notes for version $CI_COMMIT_TAG'\n  tag_name: '$CI_COMMIT_TAG'\n  ref: '$CI_COMMIT_TAG'\n  auto_generate_release_notes: true    # Enables automatic notes\n```\n\n\n自動リリースノートを充実させるには\n\n\n* 規則的なコミットメッセージを使用する（例：feat:, fix:）\n\n* イシュー番号を含める（例：#123）\n\n* 件名と本文の間に空行を入れる\n\n\nデプロイ時の情報をリリースノートに記載したい場合は、以下のように設定できます：\n\n\n```\n\nrelease_job:\n  script:\n    - |\n      DEPLOY_TIME=$(date '+%Y-%m-%d %H:%M:%S')\n      CHANGES=$(git log $(git describe --tags --abbrev=0 @^)..@ --pretty=format:\"- %s\")\n      cat > release_notes.md \u003C\u003C EOF\n      ## デプロイ情報\n      - デプロイ日時: $DEPLOY_TIME\n      - 環境: 本番環境\n      - バージョン: $CI_COMMIT_TAG\n\n      ## 変更内容\n      $CHANGES\n\n      ## アーティファクト\n      - コンテナイメージ: \\`$CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG\\`\n      EOF\n  release:\n    description: './release_notes.md'\n```\n\n\nこの設定を行うと、Gitタグの作成時に自動でリリースが作成されるようになります。作成されたリリースは、GitLabの**デプロイ >\n\nリリース**で確認できます。\n\n\n#### 9. すべてをまとめる\n\n\n最終的なYAMLファイルは以下のようになります：\n\n\n```\n\nvariables:\n  TAG_LATEST: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:latest\n  TAG_COMMIT: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_NAME:$CI_COMMIT_SHA\n  STAGING_TARGET: $STAGING_TARGET    # CI/CD変数で設定\n  PRODUCTION_TARGET: $PRODUCTION_TARGET  # CI/CD変数で設定\n\nstages:\n  - publish\n  - staging\n  - release\n  - version\n  - production\n\n# ビルドとレジストリへの公開\n\n\npublish:\n  stage: publish\n  image: docker:latest\n  services:\n    - docker:dind\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"main\" && $CI_COMMIT_TAG == null\n  script:\n    - docker build -t $TAG_LATEST -t $TAG_COMMIT .\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - docker push $TAG_LATEST\n    - docker push $TAG_COMMIT\n\n# stagingへデプロイ\n\n\nstaging:\n  stage: staging\n  image: alpine:latest\n  rules:\n    - if: $CI_COMMIT_BRANCH == \"main\" && $CI_COMMIT_TAG == null\n  script:\n    - chmod 400 $GITLAB_KEY\n    - apk add openssh-client\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - ssh -i $GITLAB_KEY -o StrictHostKeyChecking=no $USER@$STAGING_TARGET \"\n        docker pull $TAG_COMMIT &&\n        docker rm -f myapp || true &&\n        docker run -d -p 80:80 --name myapp $TAG_COMMIT\"\n  environment:\n    name: staging\n    url: http://$STAGING_TARGET\n\n# リリースの作成\n\n\nrelease_job:\n  stage: release\n  image: registry.gitlab.com/gitlab-org/release-cli:latest\n  rules:\n    - if: $CI_COMMIT_TAG\n  script:\n    - |\n      DEPLOY_TIME=$(date '+%Y-%m-%d %H:%M:%S')\n      CHANGES=$(git log $(git describe --tags --abbrev=0 @^)..@ --pretty=format:\"- %s\")\n      cat > release_notes.md \u003C\u003C EOF\n      ## デプロイ情報\n      - デプロイ日時：$DEPLOY_TIME\n      - 環境：本番環境\n      - バージョン：$CI_COMMIT_TAG\n\n      ## 変更内容\n      $CHANGES\n\n      ## アーティファクト\n      - コンテナイメージ：\\`$CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG\\`\n      EOF\n  release:\n    name: 'Release $CI_COMMIT_TAG'\n    description: './release_notes.md'\n    tag_name: '$CI_COMMIT_TAG'\n    ref: '$CI_COMMIT_TAG'\n    assets:\n      links:\n        - name: 'コンテナイメージ'\n          url: '$CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG'\n          link_type: 'image'\n\n# リリースタグ付きのバージョンを作成\n\n\nversion_job:\n  stage: version\n  image: docker:latest\n  services:\n    - docker:dind\n  rules:\n    - if: $CI_COMMIT_TAG\n  script:\n    - docker pull $TAG_COMMIT\n    - docker tag $TAG_COMMIT $CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - docker push $CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG\n\n# 本番環境へデプロイ\n\n\nproduction:\n  stage: production\n  image: alpine:latest\n  rules:\n    - if: $CI_COMMIT_TAG\n  script:\n    - chmod 400 $GITLAB_KEY\n    - apk add openssh-client\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n    - ssh -i $GITLAB_KEY -o StrictHostKeyChecking=no $USER@$PRODUCTION_TARGET \"\n        docker pull $CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG &&\n        docker rm -f myapp || true &&\n        docker run -d -p 80:80 --name myapp $CI_REGISTRY_IMAGE/main:$CI_COMMIT_TAG\"\n  environment:\n    name: production\n    url: http://$PRODUCTION_TARGET\n```\n\n\n完成したパイプラインは\n\n\n* mainブランチでの変更をレジストリに公開します\n\n* mainブランチでの変更をstagingへデプロイします\n\n* タグが作成された際にリリースを作成します\n\n* リリースタグを付けたイメージを作成します\n\n* タグを基に本番環境へデプロイします\n\n\n主なメリット：\n\n\n* クリーンで再現性のあるローカル開発およびテスト環境が完成します\n\n* 構造化された本番環境へのデプロイフローにより、信頼性の高いデプロイを実現できます\n\n* 予期しない障害からの復旧パターンを確立します\n\n* より複雑なデプロイ戦略への拡張/導入に対応できます\n\n*\n\n\n### ベストプラクティス\n\n\n実装の際は、以下の原則を守りましょう：\n\n\n* 変数の使用方法からデプロイ手順まで、すべてを文書化する\n\n* GitLabのビルトイン機能（環境管理、リリース、レジストリ）を活用する\n\n* 適切なアクセス制御とセキュリティ対策を実施する\n\n* 強固なロールバック手順を計画し、障害に備える\n\n* パイプラインの設定はDRY（Don't Repeat Yourself：重複を避ける）を意識する\n\n\n## デプロイ戦略をスケールさせる\n\n\n次は何をすべきでしょうか？ここでは、継続的デプロイ戦略をさらに成熟させるために、検討すべきポイントを紹介します。\n\n\n### 高度なセキュリティ対策\n\n\n以下の方法でセキュリティを強化しましょう：\n\n\n* アクセスを制限した保護環境を設定する\n\n* 本番環境へのデプロイに承認を必須とする\n\n* セキュリティスキャンをパイプラインに統合する\n\n* 自動脆弱性評価を導入する\n\n* デプロイ関連の変更に対するブランチ保護ルールを適用する\n\n\n### 段階的なデリバリー戦略\n\n\n以下のような高度なデプロイ戦略を実装しましょう。\n\n\n* 機能フラグを活用して制御されたロールアウトを行う\n\n* リスクを軽減するためにカナリアデプロイを実施する\n\n* ブルーグリーンデプロイ戦略を導入する\n\n* A/Bテストを実施する\n\n* 動的環境管理を行う\n\n\n### モニタリングと最適化\n\n\n強固なモニタリング体制を確立しましょう：\n\n\n* デプロイ指標を追跡する\n\n* パフォーマンスモニタリングをセットアップする\n\n* デプロイアラートを設定する\n\n* デプロイのサービスレベル目標（SLO）を確立する\n\n* 定期的にパイプラインを最適化する\n\n\n## GitLabが選ばれる理由\n\n\nGitLabの継続的デプロイ機能は、現代のデプロイワークフローに最適です。GitLabは、コンテナレジストリ、環境管理、デプロイ追跡などの機能が1つのインターフェースに集約されており、コードから本番環境へのプロセスを効率化します。また、環境ごとの変数、デプロイ承認ゲート、ロールバック機能を備えており、本番環境へのデプロイ時に求められるセキュリティと管理を実現します。さらに、Review\n\nApps（レビューアプリ）や機能フラグを活用することで、段階的なデリバリー（プログレッシブデリバリー）戦略も可能です。GitLabのDevSecOpsプラットフォームの一部として、これらのCD機能はソフトウェアライフサイクル全体とシームレスに連携します。\n\n\n## 無料トライアルで今すぐスタート！\n\n\n継続的デプロイへの道のりは、革命ではなく進化のプロセスです。まずは基本を押さえ、しっかりとした基盤を築き、チームの成長に応じて徐々に高度な機能を取り入れていきましょう。GitLabは、最初の自動デプロイから、複数環境にまたがる複雑なデリバリーパイプラインまで、あらゆる段階でサポートするためのツールと柔軟性を提供します。 \n\n\n> [GitLab\n\n> Ultimateの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/devsecops/)で、今日から継続的デプロイメントを始めましょう。\n\n\n\u003Cbr>\u003Cbr>\n\n\n\\*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n\n\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[980,981],"Benjamin Skierlak","James Wormwell","2025-06-11","2025-01-28",[814,108,9,676,678],{"slug":986,"featured":6,"template":681},"from-code-to-production-a-guide-to-continuous-deployment-with-gitlab","content:ja-jp:blog:from-code-to-production-a-guide-to-continuous-deployment-with-gitlab.yml","From Code To Production A Guide To Continuous Deployment With Gitlab","ja-jp/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab.yml","ja-jp/blog/from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"_path":992,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":993,"content":999,"config":1006,"_id":1008,"_type":13,"title":1009,"_source":15,"_file":1010,"_stem":1011,"_extension":18},"/ja-jp/blog/getting-started-with-gitlab-how-to-manage-users",{"title":994,"description":995,"ogTitle":994,"ogDescription":995,"noIndex":6,"ogImage":996,"ogUrl":997,"ogSiteName":694,"ogType":695,"canonicalUrls":997,"schema":998},"GitLab入門：ユーザーの管理方法","グループ、ロール、権限を活用してユーザーを管理する方法と、プロジェクトへのアクセスを適切に設定して安全なコラボレーションを実現するための手順をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097273/Blog/Hero%20Images/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25_cFwd8DYFLekdnOLmbbChp_1750097273817.png","https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-manage-users","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab入門：ユーザーの管理方法\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Abubakar Siddiq Ango\"}],\n        \"datePublished\": \"2025-01-14\",\n      }",{"title":994,"description":995,"authors":1000,"heroImage":996,"date":1002,"body":1003,"category":676,"tags":1004,"updatedDate":1005},[1001],"Abubakar Siddiq Ango","2025-01-14","*「GitLab入門」シリーズへようこそ！このシリーズでは、GitLab DevSecOpsプラットフォームを初めて使う方に向けて、基本的な使い方を解説します。*\n\n安全でコンプライアンスに準拠したコラボレーション環境を作るための第一歩は、ユーザー管理です。このチュートリアルでは、プロジェクトメンバーの設定、ロールと権限の割り当て、グループとサブグループの作成方法についてご説明します。\n\n注：このチュートリアルに沿って進めるには、GitLab.comまたは組織のSelf-ManagedインスタンスでGitLabアカウントをお持ちである必要があります。サポートが必要な場合は、[GitLab University](https://university.gitlab.com/)の基礎コンテンツをご覧ください。\n\nそれでは、始めましょう。\n\nGitLabユーザーを作成すると、そのユーザーは[非公開プロジェクト、公開プロジェクト、および内部プロジェクト](https://docs.gitlab.com/user/public_access/)にのみアクセスできます。このチュートリアルでは、プロジェクトは機密扱いとし、招待されたメンバーだけが各権限設定に応じてアクセスできるようにします。そのためには、ユーザーを[プロジェクトのメンバー](https://docs.gitlab.com/ee/user/project/members/)として招待する必要があります。\n\n## プロジェクトメンバー\n\n![プロジェクトメンバーの画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097278/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097278487.png)\nGitLabユーザーをプロジェクトに招待し、[ロールを割り当てる](https://docs.gitlab.com/ee/user/permissions.html)ことで、そのユーザーがプロジェクト内で実行できる操作が決定します。プロジェクトのオーナーは、他のユーザーをメンテナーに任命して、管理タスクを委任できます。メンテナーは、プロジェクトの削除、アーカイブ、転送などの変更を除き、オーナーとほぼ同じ操作を行うことができます。\n\n![メンバー招待画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097278/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097278487.png)\n\nプロジェクトの[メンテナー](https://docs.gitlab.com/ee/user/permissions.html#roles)は、他のメンバーをデベロッパーとして招待できます。デベロッパーは、ソフトウェアの作成、ビルド、デプロイに必要なすべての機能にアクセスできます。デベロッパーではないものの、プロジェクト管理へのアクセスが必要なユーザーには、[プランナー](https://about.gitlab.com/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams/)、レポーター、ゲストなどのロールを割り当てて招待できます。これらのロールには、それぞれ異なる権限レベルが設定され、[保護ブランチ](https://docs.gitlab.com/ee/user/project/repository/branches/protected.html)に対する変更権限を誰が持つかを決定するためにも使用されます。\n\n請負業者と作業している場合や、ユーザー権限に有効期限を設定する必要がある場合は、期限日を設定することで、指定日以降にユーザーがプロジェクトへのアクセス権を失うようにできます。また、プロジェクトメンバーは、その[メンバーシップの種類](https://docs.gitlab.com/ee/user/project/members/#membership-types)に基づいて「直接メンバー」と「間接メンバー」に分類されます。直接メンバーはプロジェクトに直接招待されたユーザーであり、間接メンバーは通常、プロジェクトが属する[GitLabのグループ](https://docs.gitlab.com/ee/user/group/)から継承されたメンバーです。\n\n次に、グループメンバーシップについて見ていきましょう。\n\n## グループメンバーシップ\n\nGitLabのグループは、GitLabインスタンスのルートに作成されるトップレベルのコンポーネントとして使用できます。たとえば、[gitlab.com/gitlab-org](http://gitlab.com/gitlab-org)は親グループとして機能し、この親グループの下に[gitlab.com/gitlab-org/charts](http://gitlab.com/gitlab-org/charts)のようなサブグループを作成できます。グループは、プロジェクトが1つしかない場合でも便利です。\n\nグループは、以下の目的で使用できます。\n\n- 類似または関連するプロジェクトを整理する\n- ユーザーをグループ化し、チームの調整をしやすくする\n\n個々のユーザーではなくグループ単位で管理する手順を説明します。チームを各グループにまとめた上で、[グループをプロジェクトに招待](https://docs.gitlab.com/user/project/members/sharing_projects_groups/)します。チーム全体に特定のロールを割り当てます。たとえば、チームのデベロッパーたちには`dev`グループ、プロジェクトマネージャーには`pm`グループ、チームリードには`leads`グループを設定します。グループを招待する際に、`dev`にはデベロッパーロールを、`pm`にはプランナーロールを、`leads`にはメンテナーロールを割り当てます。\n\n![グループ招待画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097279/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097278488.png)\n\n各グループでは、プロジェクト権限を更新することなく、メンバーを追加または削除できます。これは、チームが複数のプロジェクトを管理するようになった場合に特に便利です。しかし、グループを使ったコラボレーションでは、[ベストプラクティスを守る](https://docs.gitlab.com/ee/user/project/members/sharing_projects_groups.html#setting-up-a-group-for-collaboration)ことが重要です。\n\n別の利点として、ユーザーをグループで整理しておくと、イシュー、マージリクエスト、コメント内でグループ全体を[メンション](https://docs.gitlab.com/ee/user/discussions/#mentions)できます。これにより、チーム全体の情報共有が簡単になります。\n\n### サブグループの作成\n\n[サブグループ](https://docs.gitlab.com/ee/user/group/subgroups/)は、グループ内のユーザーをより細かく整理するために使用でき、最大20階層まで追加できます。サブグループ内のユーザーは、親グループで与えられた権限を継承します。サブグループ内のユーザーに、そのユーザーが継承した権限よりも上位のロールを付与するには、新たなロールを指定して[サブグループに招待](https://docs.gitlab.com/ee/user/group/subgroups/#override-ancestor-group-membership)する必要があります。注：サブグループ内で権限を下げることはできません。\n\n### グループの管理\n\nグループのオーナーには、グループ内でユーザーが実行できる操作を設定するためのさまざまな管理オプションがあります。たとえば、ユーザーがグループへのアクセスをリクエストする方法の設定、[グループメンション](https://docs.gitlab.com/ee/user/group/manage.html#disable-group-mentions)の有効化／無効化、[アクセス制限](https://docs.gitlab.com/ee/user/group/manage.html#turn-on-restricted-access)、および[ユーザー管理](https://docs.gitlab.com/ee/user/group/moderate_users.html)などが含まれます。また、この記事の公開時点ではまだ開発中ですが、非アクティブなユーザーを最短90日、最長5年後に[自動的に削除](https://docs.gitlab.com/ee/user/group/moderate_users.html#automatically-remove-dormant-members)する機能が追加される予定です。これにより、グループが整理された状態を保ち、ライセンスシートをより効果的に管理できるようになります。\n\n## もっと詳しく\n\nGitLabでのユーザー管理の方法は、ユースケースによって異なります。GitLabでは、規模が大きく、高度なワークフローを必要とする組織向けに、[エンタープライズユーザーを管理](https://docs.gitlab.com/ee/user/enterprise_user/index.html)するための高度な機能を用意しています。他にも、[組織を管理](https://docs.gitlab.com/ee/topics/set_up_organization.html)するためのさまざまなオプションがあります。[GitLab Ultimate](https://about.gitlab.com/ja-jp/pricing/ultimate/)を利用すれば、より細かい管理機能やコンプライアンス機能を活用できます。\n\n*次回の「GitLab入門」シリーズは、[プロジェクトをGitLabにインポートする方法（英語。和訳準備中）](https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/)について解説します*\n\n> #### もっとGitLabについて知りたい場合は、[GitLabユニバーシティのコースに登録](https://university.gitlab.com/)するか、[GitLab Ultimateの無料トライアル](https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2F)を今すぐお試しください。\n\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n",[674,9,678,746,676],"2025-05-14",{"slug":1007,"featured":90,"template":681},"getting-started-with-gitlab-how-to-manage-users","content:ja-jp:blog:getting-started-with-gitlab-how-to-manage-users.yml","Getting Started With Gitlab How To Manage Users","ja-jp/blog/getting-started-with-gitlab-how-to-manage-users.yml","ja-jp/blog/getting-started-with-gitlab-how-to-manage-users",{"_path":1013,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1014,"content":1020,"config":1025,"_id":1027,"_type":13,"title":1028,"_source":15,"_file":1029,"_stem":1030,"_extension":18},"/ja-jp/blog/getting-started-with-gitlab-working-with-ci-cd-variables",{"title":1015,"description":1016,"ogTitle":1015,"ogDescription":1016,"noIndex":6,"ogImage":1017,"ogUrl":1018,"ogSiteName":694,"ogType":695,"canonicalUrls":1018,"schema":1019},"GitLab入門：CI/CD変数を使用する","CI/CD変数の概要、DevSecOpsにおいてCI/CD変数が重要な理由、活用するためのベストプラクティスについてご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png","https://about.gitlab.com/blog/getting-started-with-gitlab-working-with-ci-cd-variables","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab入門：CI/CD変数を使用する\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2025-05-27\",\n      }",{"title":1015,"description":1016,"authors":1021,"heroImage":1017,"date":1022,"body":1023,"category":676,"tags":1024},[938],"2025-05-27","*「GitLab入門」シリーズへようこそ。このシリーズでは新たにGitLabを使い始める方向けに、GitLab\nDevSecOpsプラットフォームに慣れ親しむために役立つ内容をお届けします。*\n\n\n以前の記事で、[GitLab\nCI/CD](https://about.gitlab.com/blog/getting-started-with-gitlab-understanding-ci-cd/)について取り上げました。今回は**CI/CD変数**の世界をさらに深く掘り下げ、その力を最大限に引き出す方法について説明します。\n\n\n### CI/CD変数とは\n\n\nCI/CD変数とは、GitLab環境内においてさまざまなレベル（プロジェクト、グループ、インスタンスなど）で定義できる動的なキーと値のペアのことです。`.gitlab-ci.yml`ファイルで使用できる値のプレースホルダーとして機能するため、パイプラインをカスタマイズしたり、機密情報を安全に保存したりできるほか、CI/CD設定を管理しやすくなります。\n\n\n### CI/CD変数が重要な理由\n\n\nCI/CD変数の使用には、以下のような多くのメリットがあります。\n\n\n* **柔軟性** -\n主要なCI/CDスクリプトに手を加えることなく、さまざまな環境、設定、またはデプロイ対象にパイプラインを簡単に適応させられます。  \n * **セキュリティ** - API キー、パスワード、トークンのような機密情報を安全に保存して、コード内で直接公開されることのないようにします。  \n* **保守性** - 変数の値を一元化することで、CI/CDの設定がきれいに整理された状態に保たれるため、更新や修正作業を簡単に行えます。  \n\n* **再利用性** - 一度定義した変数は複数のプロジェクトで再利用できるため、重複が減り、一貫性を保ちやすくなります。\n\n\n### CI/CD変数のスコープ：プロジェクト、グループ、インスタンス\n\n\nGitLabでは、次のようなさまざまなスコープでCI/CD変数を定義し、その可視性と有効範囲を制御できます。\n\n\n* **プロジェクトレベルの変数** - 単一のプロジェクト専用の変数で、次のようなプロジェクト固有の設定を保存するのに適しています。\n  * デプロイURL：ステージング環境や本番環境向けのURLをそれぞれ定義します。  \n  * データベース認証情報：テストやデプロイ用のデータベース接続情報を保存します。  \n  * 機能フラグ：パイプラインのさまざまな段階で機能を有効または無効にします。  \n  * 例：\"MyWebApp\"というプロジェクトがあり、本番環境へのデプロイURLを保存したいとします。その場合、プロジェクトレベルで`DPROD_DEPLOY_URL`という名前の変数を作成し、`https://mywebapp.com`という値を格納します。  \n* **グループレベルの変数** -\nグループレベルの変数を作成すると、GitLabグループ内の全プロジェクトで共有されます。次のような複数のプロジェクトに共通する設定がある場合に便利です。\n\n  * 共有サービスのAPIキー：グループ内の複数のプロジェクトで使用されるサービス（AWS、Google Cloud、Docker Hubなど）のAPIキーを保存します。  \n  * グローバル構成設定：グループ内の全プロジェクトに適用される共通の設定パラメータを定義します。  \n  * 例：「Web Apps」というグループがあり、Docker Hub用にAPIキーを保存したいとします。その場合は、グループレベルで`DOCKER_HUB_API_KEY`という名前の変数を作成し、対応するAPIキーの値を格納します。  \n* **インスタンスレベルの変数** -\nGitLabインスタンスの全プロジェクトで利用可能な変数です。通常は、次のような組織全体に適用するグローバル設定がある場合に使用します。\n\n  * デフォルトのRunner登録トークン：新規[Runner](https://docs.gitlab.com/runner/)の登録時にデフォルトのトークンを提供します。  \n  * ライセンス情報：GitLabの機能やサードパーティツールのライセンスキー情報を保存します。  \n  * グローバル環境設定：全プロジェクトで利用可能な環境変数を定義します。  \n  * 例：GitLabインスタンス上の全プロジェクトにおいて、デフォルトのDockerイメージを設定したいとします。その場合、インスタンスレベルで`DEFAULT_DOCKER_IMAGE`という名前の変数を作成し、`ubuntu:latest`という値を格納します。\n\n### CI/CD変数を定義する\n\n\nCI/CD変数は以下の手順で定義できます。\n\n\n1. プロジェクト、グループ、またはインスタンスで、**設定 > CI/CD**ボタンの順にクリックします。  \n\n2. **変数**セクションに移動します。  \n\n3. **変数を追加**をクリックします。  \n\n4. **キー**（例：`API_KEY`）と**値**を入力します。  \n\n5.\n機密情報を扱う場合は、必要に応じて**変数を保護**ボックスをオンにします。オンにすると、保護ブランチまたは保護タグで実行されているパイプラインでのみ、変数が利用可能になります。  \n\n6. 必要に応じて、**変数をマスク**ボタンをオンにすると、ジョブログで変数の値が非表示になります。これにより、誤って公開されるのを防げます。  \n\n7. **変数を保存**をクリックします。\n\n\n### CI/CD変数を使用する\n\n\n`.gitlab-ci.yml`ファイルでCI/CD変数を使用する方法は簡単です。変数名の前にプレフィックスとして`$`を付けるだけです。\n\n\n```yaml\n\ndeploy_job:\n  script:\n    - echo \"Deploying to production...\"\n    - curl -H \"Authorization: Bearer $API_KEY\" https://api.example.com/deploy\n```\n\n\n### 定義済みのCI/CD変数\n\n\nGitLabでは、パイプラインでご利用いただけるように、[定義済みのCI/CD変数](https://docs.gitlab.com/ci/variables/predefined_variables/)を一式ご用意しています。これらの変数は、現在のパイプラインやジョブ、プロジェクトなどに関する情報を提供します。\n\n\nその中でも、使用されることの多い定義済み変数をいくつかご紹介します。\n\n\n* `$CI_COMMIT_SHA`：現在のパイプラインのコミットSHA。  \n\n* `$CI_PROJECT_DIR`：プロジェクトの複製先のディレクトリ。  \n\n* `$CI_PIPELINE_ID`：現在のパイプラインのID。  \n\n* `$CI_ENVIRONMENT_NAME`：デプロイ先の環境名（該当する場合）。\n\n\n### ベストプラクティス\n\n\n* 機密性の高い変数は安全に管理する：APIキーやパスワード、その他の機密情報を扱う場合は、保護およびマスクされた変数を使用しましょう。  \n\n* 値のハードコーディングは行わない：設定値を保存する際は変数を使用しましょう。そうすることで、パイプラインの柔軟性と保守性が高まります。  \n\n* 変数を整理する：変数をわかりやすい名前を付けて、関連する変数をまとめると、うまく整理できます。  \n\n* 適切なスコープを選ぶ：希望する変数の用途と可視性に基づいて、適切なスコープ（プロジェクト、グループ、またはインスタンス）を選びましょう。\n\n\n### 変数の力を最大限に活用する\n\n\nCI/CD変数は、GitLabパイプラインをカスタマイズし、保護するための強力なツールです。変数を使いこなし、各スコープを理解することで、より柔軟で保守しやすく、効率的なワークフローを作成できます。\n\n\n開発プロジェクトにおいて、GitLabの機能を活用していただくために必要な情報をお届けしました。ご紹介した情報がお役に立てば幸いです。\n\n\n> [Duo Enterpriseが搭載されたGitLab\nUltimateの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)に今すぐ申し込んで、CI/CD変数を早速ご利用ください。\n\n\n## 「GitLab入門」シリーズ\n\n「GitLab入門」シリーズのその他の記事もぜひご覧ください。\n\n\n-\n[ユーザーの管理方法](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-how-to-manage-users/)\n\n- \n[GitLabへのプロジェクトのインポート方法](https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/)  \n\n-\n[プロジェクト管理を極める](https://about.gitlab.com/blog/getting-started-with-gitlab-mastering-project-management/)\n\n- [gitlab-triage\ngemを使ったアジャイルワークフローの自動化](https://about.gitlab.com/blog/automating-agile-workflows-with-the-gitlab-triage-gem/)\n\n-\n[CI/CDについて理解する](https://about.gitlab.com/blog/getting-started-with-gitlab-understanding-ci-cd/)\n",[676,678,816,814,108,9],{"slug":1026,"featured":90,"template":681},"getting-started-with-gitlab-working-with-ci-cd-variables","content:ja-jp:blog:getting-started-with-gitlab-working-with-ci-cd-variables.yml","Getting Started With Gitlab Working With Ci Cd Variables","ja-jp/blog/getting-started-with-gitlab-working-with-ci-cd-variables.yml","ja-jp/blog/getting-started-with-gitlab-working-with-ci-cd-variables",{"_path":1032,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1033,"content":1037,"config":1045,"_id":1047,"_type":13,"title":1048,"_source":15,"_file":1049,"_stem":1050,"_extension":18},"/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering",{"config":1034,"title":1035,"description":1036},{"noIndex":6},"GitLab 18.3: ソフトウェアエンジニアリングにおけるAIオーケストレーションの拡張","強化されたフロー、エンタープライズガバナンス、シームレスなツール統合により、人間とAIのコラボレーションを進化させる方法をご紹介します。",{"heroImage":1038,"body":1039,"authors":1040,"updatedDate":1042,"date":1043,"title":1035,"tags":1044,"description":1036,"category":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755711502/wuuadis1pza3zehqohcc.png","GitLabは現在、ソフトウェアライフサイクルのあらゆる段階を統合する包括的なDevSecOpsプラットフォームです。その基盤の上に、世界初のソフトウェアエンジニアリング向けAIネイティブプラットフォームへの進化を進めています。GitLabでは、ソフトウェアエンジニアリングの未来は本質的に人間とAIのコラボレーションにあると考えており、すべてのGitLabユーザーに最高のAI機能を提供したいと考えています。\n\nこの変革は、他のAI開発ツールが行っていることを超えた3つの異なるレイヤーで起こっています：\n\n![以下に示すAIネイティブ変革のスライド](https://res.cloudinary.com/about-gitlab-com/image/upload/v1755762266/iwuugge3cxweiyvi0yjk.png)\n\n**第一に、記録システムです。** 統合データプラットフォームは、最も価値のあるデジタル資産を保持しています。これには、ソースコードと知的財産だけでなく、プロジェクト計画、バグバックログ、CI/CD構成、デプロイメント履歴、セキュリティレポート、コンプライアンスデータにまたがる豊富な非構造化データが含まれます。これにより、GitLab環境内に安全に保持され、汎用エージェントや大規模言語モデルでは利用できない、文脈データの宝庫が作成されます。\n\n**第二に、ソフトウェアコントロールプレーンとして機能します。** Gitリポジトリ、REST API、およびエンドツーエンドのソフトウェアデリバリーを支えるWebhookベースのインターフェースを通じて、最も重要なビジネスプロセスをオーケストレーションします。多くの顧客は、これを重要なビジネスプロセスが日常的に依存するティア0の依存関係として考えています。\n\n**第三に、強力なユーザーエクスペリエンスを提供します。** ほとんどのエンジニアリングチームの速度を低下させる負荷の高い頭の切り替えを排除するのに役立つ統合インターフェースを提供します。1つのプラットフォームで完全なライフサイクルの可視性とコラボレーションツールを提供することで、5,000万人以上の登録ユーザーと広大なコミュニティが、仕事を成し遂げるためにGitLabを活用しています。この専門知識により、GitLabは、既存の信頼できるワークフローを維持しながら、チームの生産性を増幅する直感的な人間とAIのコラボレーションを先駆的に開拓する独自の立場にあります。\n\n**あらゆるレイヤーにAIをネイティブに統合してプラットフォームを拡張**\n\n[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)は、これら3つのレイヤーすべてを統合し、拡張します。拡張性と相互運用性のために設計されており、顧客やパートナーがさらに価値を創造するソリューションを構築できるようにします。オープンプラットフォームアプローチは、3つのレイヤーすべてで既存のスタックに深く統合されながら、外部AIツールやシステムとのシームレスな接続性を重視しています。\n\n* まず、**ナレッジグラフ**で統合データプラットフォームを拡張しています。これは、コードと他のすべての非構造化データをインデックス化して結び付け、エージェントアクセスに特化して最適化されたものです。AIはコンテキストで成長し、これによりエージェントによる推論と推論を加速するだけでなく、より低コストで高品質なエージェントの成果を提供できると考えています。\n* 第二に、既存のコントロールプレーンに重要な**オーケストレーションレイヤー**を3つの異なる部分で追加しています：エージェントとフローがGitLab SDLCイベントのサブスクライバーとして登録できるようにし、目的別のマルチエージェントフローを可能にする新しいオーケストレーションエンジンを構築し、比類のない相互運用性のためにMCPと標準プロトコルを介してGitLabツール、エージェント、フローを公開します。\n* 最後に、ソフトウェア開発ライフサイクル全体にわたってファーストクラスのエージェントとエージェントフローを提供するために**GitLabエクスペリエンス**を拡張しています。エージェントに非同期タスクを割り当て、コメントで@メンションし、ワークフローに固有のコンテキストでカスタムエージェントを作成できるようになります。さらに重要なことに、GitLabは、サードパーティエージェントの豊富なエコシステムのロックを解除しながら、開発のあらゆる段階でネイティブエージェントを出荷しています。これにより、エージェントが人間のチームメイトと同じように自然に作業できる真の人間とAIのコラボレーションが生まれます。\n\nこのビデオで18.3以降の新機能をご覧いただくか、以下をお読みください。\n\n\u003Cdiv style=\"padding:75% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111796316?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=\"GitLab_18.3 Release_081925_MP_v1\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## GitLab 18.3の新機能\n\n18.2では、ソフトウェア開発ライフサイクル全体でデベロッパーと協力する専門的な[AIエージェント](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/#%E3%81%99%E3%81%90%E3%81%AB%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88)と、ソフトウェア開発フローを導入しました。これは、複数のエージェントをオーケストレーションして、エンドツーエンドでコード変更を計画、実装、テストする強力な機能です。\n\nGitLab 18.3では、拡張された統合と相互運用性、より多くのフロー、そしてソフトウェア開発ライフサイクル全体でのコンテキスト認識の強化を導入しています。\n\n### 拡張された統合と相互運用性\n\nファーストパーティのGitLabエージェントとサードパーティエージェントの豊富なエコシステムの両方を通じて、包括的なAI拡張性を提供しており、すべてがプロジェクトコンテキストとデータへの完全なアクセスを持っています。このアプローチは、これらのエージェントとGitLabのコアプラットフォーム間の高度に統合されたオーケストレーションを通じて好みのツールを選択する柔軟性を提供しながら、ネイティブのGitLabワークフローとガバナンスを維持します。チームは、主要な統合、監視、ユーザーエクスペリエンスの利点を維持しながら、強化されたAI機能を獲得します。\n\n* **MCPサーバー - ユニバーサルAI統合：** GitLabのMCP（[モデルコンテキストプロトコル](https://about.gitlab.com/topics/ai/model-context-protocol/)）サーバーにより、AIシステムはGitLabプロジェクトと開発プロセスに直接安全に統合できます。この標準化されたインターフェースにより、カスタム統合のオーバーヘッドが排除され、[Cursor](https://docs.cursor.com/en/tools/mcp)を含むAIツールが既存のGitLab環境内でインテリジェントに動作できるようになります。18.3に含まれるツールの完全なリストについては、[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/)をご覧ください。**これは始まりに過ぎません。18.4では追加のツールが計画されています。**\n\n  **注：** サードパーティエージェントは、GitLab Premiumベータ機能であり、GitLab Duo Enterpriseの顧客が評価のためにのみ利用できます。\n\n> *「GitLabワークフローをCursorに直接持ち込むことは、デベロッパーの摩擦を減らすための重要なステップです。頭の切り替えの必要性を最小限に抑えることで、チームはコーディング環境を離れることなく、イシューのステータスをチェックし、マージリクエストをレビューし、パイプラインの結果を監視できます。この統合は共有顧客にとって自然な選択であり、デベロッパーの生産性を継続的に向上させるために、GitLabとの長期的なパートナーシップを楽しみにしています。」*\n>\n> \\- **Ricky Doar、Cursor フィールドエンジニアリング副社長**\n>\n> *「GitLabのMCPサーバーとCLIエージェントサポートは、Amazon Qが開発ワークフローと統合するための強力な新しい方法を作成します。Amazon Q DeveloperはGitLabのリモートMCPインターフェースを介して直接接続できるようになり、チームはイシューやマージリクエストでAmazon Q CLIを@メンションするだけで開発タスクを委任できます。これらの統合に組み込まれた堅牢なセキュリティとガバナンス機能により、企業は開発標準を維持しながら、AIコーディングツールを活用する自信を得ることができます。GitLabとのパートナーシップは、AIエコシステムを拡大し、デベロッパーが作業する場所でインテリジェントな開発ツールにアクセスできるようにするというAWSの継続的なコミットメントを示しています。」*\n>\n> \\- **Deepak Singh、AWS デベロッパーエージェントおよびエクスペリエンス担当副社長**\n\n* **Claude Code、Codex、Amazon Q、Google Gemini、opencode（独自のキーを持参）のCLIエージェントサポート：** 18.3では、イシューやマージリクエストでエージェントを直接@メンションすることで、チームが日常的な開発作業を委任できる統合を導入しています。デベロッパーがこれらのAIアシスタントにメンションすると、周囲のコンテキストとリポジトリコードを自動的に読み取り、レビュー可能なコード変更またはインラインコメントでユーザーのコメントに応答します。これらの統合では、それぞれのAIプロバイダー用に独自のAPIキーを持参する必要があり、適切な権限と監査証跡を維持しながら、すべてのやり取りをGitLabのインターフェース内でネイティブに保持します。\n\n  **注：** サードパーティエージェントは、GitLab Premiumベータ機能であり、GitLab Duo Enterpriseの顧客が評価のためにのみ利用できます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111784124?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=\"Third Party Agents Flows Claude Code\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> *「Claude CodeをGitLabに直接持ち込むことで、何百万人ものデベロッパーがすでに毎日コラボレーションしてコードを出荷している場所にAIアシスタンスを配置します。イシューやマージリクエストでClaudeを直接メンションする機能により、人間の監視とレビュープロセスで品質を維持しながら、摩擦が除去されます。このアップデートにより、Claude Codeの機能がチームが作業するより多くの場所に提供され、AIをデベロッパーワークフローの自然な一部にします。」*\n>\n> **\\- Cat Wu、Claude Code プロダクトリード、Anthropic**\n>\n> *「GitLab 18.3の新しいエージェント統合により、既存のワークフロー内でopencodeを使用できます。イシューやマージリクエストでopencodeを@メンションすると、CIパイプラインでエージェントが実行されます。この方法でopencodeを設定して実行する機能は、オープンソースコミュニティが本当に評価する統合のタイプです。」*\n>\n> **\\- Jay V.、CEO、opencode**\n\n* **すべてのPremiumおよびUltimate顧客が利用できるVisual Studio IDEおよびGitLab UIのエージェントチャットサポート：** 18.3では、GitLabの完全な開発ライフサイクルデータにアクセスするためにツール間で頭の切り替えをする必要がなくなりました。強化された統合により、GitLab DuoのフルパワーがGitLab UIとIDEにもたらされ、JetBrainsとVS Codeからのサポートが拡張され、現在はVisual Studioも含まれています。これにより、デベロッパーは好みの環境内で豊富なプロジェクトコンテキスト、デプロイメント履歴、チームコラボレーションデータに直接アクセスしながら、フローに留まることができます。\n* **拡張されたAIモデルサポート：** GitLab Duo Self-Hostedは追加のAIモデルをサポートするようになり、チームにAI支援開発ワークフローでより柔軟性を提供します。データセンターのハードウェア上でvLLMを介して、またはプライベートクラウドのAzure OpenAIやAWS Bedrockなどのクラウドサービスを介して、オープンソースのOpenAI GPTモデル（20Bおよび120Bパラメータ）をデプロイできるようになりました。さらに、AnthropicのClaude 4はAWS Bedrockで利用可能です。\n\n### 新しい自動開発フロー\n\nGitLabのフローは、複数のAIエージェントを事前構築された指示で調整し、時間のかかる日常的なタスクを自律的に処理するため、デベロッパーは最も重要な作業に集中できます。\n\nGitLab 18.3には2つの新しいフローが付属しています：\n\n* **概念から完成まで数分でコードを自動生成するイシューからMRへのフロー：** このFlowは、要件を分析し、包括的な実装計画を準備し、レビュー可能な本番グレードのコードを生成するためにエージェントを調整することにより、イシューを実行可能なマージリクエスト（MR）に自動的に変換します。アイデアを数時間ではなく数分でレビュー可能な実装に変えるのに役立ちます。\n\n\u003Cdiv style=\"padding:75% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111782058?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=\"Issue to MR\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **シームレスな移行インテリジェンスのために構築されたCI File変換フロー：** CI File変換フローは、エージェントが既存のCI/CD構成を分析し、完全なパイプライン互換性を持つGitLab CI形式にインテリジェントに変換することで、移行ワークフローを合理化します。これにより、CI構成をゼロから書き直す手動作業と潜在的なエラーが排除され、チームは自信を持ってデプロイメントパイプライン全体を移行できます。18.3にはJenkins移行のサポートが含まれています。将来のリリースでは追加サポートが計画されています。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111783724?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=\"Convert to CI Flow\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### インテリジェントなコードと検索\n\nAIポイントソリューションは通常、分離されたコードスニペットへの限定的な可視性で動作しますが、GitLabのナレッジグラフは、より迅速でインテリジェントな応答を通知するための環境コンテキストをエージェントに提供します。\n\n* **リアルタイムコードインテリジェンスのためのナレッジグラフ：** 18.3では、GitLabのナレッジグラフがリアルタイムコードインデックスを提供し、より高速なコード検索を可能にし、より正確で文脈に沿った結果を提供します。コードベース全体にわたるファイル、依存関係、開発パターン間の関係を理解することにより、エージェントは人間のデベロッパーが発見するのに何時間もかかる洞察を提供するように設計されています。**これは、ナレッジグラフに計画されている強力な機能のロックを解除する最初のステップにすぎません。**\n\n### エンタープライズガバナンス\n\nAIの透明性と組織のコントロールは、チームがAI搭載開発ツールを完全に採用することを妨げる可能性のある重要な課題であり、[85%の経営幹部が、エージェント型AIが前例のないセキュリティ課題を生み出すことに同意しています](https://about.gitlab.com/software-innovation-report/)。\n\n18.3のこれらの新機能は、データガバナンス、コンプライアンス要件、AI意思決定プロセスへの可視性の必要性に関する懸念に対処するのに役立つため、組織は既存のセキュリティとポリシーフレームワーク内でAIを統合できます。\n\n* **インテリジェンスを通じた透明性のためのエージェントインサイト：** 組み込みのエージェント追跡により、エージェントの意思決定プロセスへの可視性が提供されます。ユーザーは、透明なアクティビティ追跡を通じてワークフローを最適化し、ベストプラクティスに従うことができます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111783244?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=\"Agent Insights\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\n* **Self-Hosted向けGitLab Duoコードレビュー：** これにより、厳格なデータガバナンス要件を持つ組織にGitLab Duoのインテリジェンスがもたらされ、チームが機密性の高いコードを管理された環境に保持できるようになります。\n* **柔軟なAIデプロイメントのためのハイブリッドモデル構成：** GitLab Duo Self-Hostedをご利用のお客様は、ローカルAIゲートウェイを介したセルフホステッドAIモデルとGitLabのAIゲートウェイを介したGitLabのクラウドモデルを組み合わせたハイブリッドモデル構成を使用できるようになり、さまざまな機能へのアクセスが可能になりました。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1111783569?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=\"Self Hosted Models Code Review\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\n* **OAuthサポートによるセキュリティの強化：** MCPサーバーには、完全なOAuth 2.0認証サポートが含まれるようになり、保護されたリソースと機密性の高い開発環境への安全な接続が可能になりました。この実装は、MCPのドラフトOAuth仕様に従い、認証フロー、トークン管理、動的クライアント登録を処理します。\n\n### Secure by Designプラットフォーム：スケールするガバナンス\n\n真のプラットフォームセキュリティには、開発ライフサイクルのあらゆるレイヤーにわたるガバナンス原則の一貫した適用が必要です。AI採用を安全にするのと同じセキュリティの基本（最小権限アクセス、一元化されたポリシー管理、プロアクティブな監視、きめ細かい権限）は、凝集性のある多層防御アプローチを作成するために、SDLC全体に組み込まれる必要があります。\n\nGitLab 18.3は、これらの新しいアップデートでソフトウェアサプライチェーン全体を保護するのに役立つ基盤的なコントロールを強化します：\n\n* **カスタム管理者ロール：** ブランケット管理アクセスを正確な最小権限コントロールに置き換える、きめ細かく目的に合わせた管理権限を提供します。セキュリティリスクを生み出すブランケット管理権限を付与する代わりに、組織は特定の機能に合わせたカスタマイズされたロールを作成できるようになりました。ランナーと監視を管理するプラットフォームチーム、ユーザー管理を処理するサポートチーム、ダッシュボードと使用統計にアクセスするリーダーシップなど。UIとAPIを介した完全なロールライフサイクル管理、監査ログ、自動生成されたドキュメントにより、この機能は運用効率を維持し、全体的なインスタンスセキュリティを向上させながら、真の最小権限管理を可能にします。\n* **インスタンスレベルのコンプライアンスフレームワークとセキュリティポリシー管理：** 組織は、標準化されたフレームワークとセキュリティポリシーをトップレベルグループに直接適用する権限を持つ専用のコンプライアンスグループを指定でき、すべてのサブグループとプロジェクトに自動的にカスケード適用されます。この一元化されたアプローチは、追加のローカルポリシーに対するグループの自律性を維持しながら、断片化されたポリシー管理のコンプライアンス採用ブロッカーを排除します。\n* **強化された違反レポート：** チームは、MR承認ルールに対して不正な変更が行われたとき、フレームワークポリシーに適切な承認がないとき、または時間ベースのコンプライアンスコントロールが違反されたときに、即座に通知を受け取るようになりました。違反を特定のコンプライアンスフレームワークコントロールに直接リンクすることで、チームはどの要件が違反されたかを正確に伝える実用的な洞察を得て、コンプライアンスを反応的なチェックボックスの演習から、開発とセキュリティワークフローのプロアクティブで統合された部分に変えます。\n* **CI/CDジョブトークンのきめ細かい権限：** 広範なトークンアクセスを、CI/CDジョブが実際に必要とする特定のAPIエンドポイントへのアクセスのみを付与する、きめ細かく明示的な権限に置き換えます。ジョブにプロジェクトリソースへのブランケットアクセスを許可する代わりに、チームはデプロイメント、パッケージ、リリース、環境、その他の重要なリソースに対する正確な権限を定義でき、攻撃対象領域と権限昇格の可能性を減らすことができます。\n* **AWS Secrets Manager統合：** AWS Secrets Managerを使用しているチームは、GitLab CI/CDジョブでシークレットを直接取得できるようになり、ビルドとデプロイプロセスが簡素化されます。シークレットは、OpenID Connectプロトコルベースの認証を使用してGitLab Runnerによってアクセスされ、ジョブログでの露出を防ぐためにマスクされ、使用後に破棄されます。このアプローチにより、変数にシークレットを保存する必要がなくなり、既存のGitLabおよびAWSベースのワークフローにクリーンに統合されます。Deutsche BahnおよびAWS Secrets Managerチームとの緊密な協力により開発されたこの統合は、実世界の課題を解決するためにユーザーと一緒にソリューションを構築するという当社のコミットメントを反映しています。\n\n### アーティファクト管理：ソフトウェアサプライチェーンの保護\n\nアーティファクトが適切に管理されていない場合、小さな変更が大きな結果をもたらす可能性があります。可変パッケージ、上書きされたコンテナイメージ、ツール間で一貫性のないルールは、本番障害を引き起こし、脆弱性を招き、コンプライアンスギャップを作成する可能性があります。エンタープライズDevSecOpsにとって、安全で一元化されたアーティファクト管理は、ソフトウェアサプライチェーンを維持するために不可欠です。\n\n#### 18.3のエンタープライズグレードアーティファクト保護\n\n包括的なパッケージ保護機能を基盤として、GitLab 18.3は重要な新機能を追加します：\n\n* **Conanリビジョンサポート：** 18.3の新機能である[Conanリビジョン](https://docs.gitlab.com/user/packages/conan_2_repository/#conan-revisions)は、C++デベロッパーにパッケージの不変性を提供します。パッケージのバージョンを変更せずに変更を加えた場合、Conanはこれらの変更を追跡するための一意の識別子を計算し、チームがバージョンの明確性を維持しながら不変のパッケージを維持できるようにします。\n* **強化されたコンテナレジストリセキュリティ：** 18.2での[不変コンテナタグ](https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/)のローンチ成功に続き、エンタープライズでの採用が進んでいます。不変ルールに一致するタグが作成されると、権限レベルに関係なく、誰もそのコンテナイメージを変更できなくなり、本番依存関係への意図しない変更を防ぎます。\n\nこれらの機能強化は、npm、PyPI、Maven、NuGet、Helmチャート、および汎用パッケージに対する既存の保護機能を補完し、プラットフォームチームがソフトウェアサプライチェーン全体で一貫したガバナンスを実装できるようにします。これは、安全な内部デベロッパープラットフォームを構築する組織にとって不可欠です。\n\nスタンドアロンのアーティファクトソリューションとは異なり、GitLabの統合アプローチは、コードからデプロイメントまでのエンドツーエンドのトレーサビリティを提供しながら、複数のツールを使い分ける際の頭の切り替えを排除し、プラットフォームチームがソフトウェアデリバリーパイプライン全体で一貫したガバナンスを実装できるようにします。\n\n### 埋め込みビュー：リアルタイムの可視性とレポート\n\nGitLabプロジェクトの複雑さが増すにつれて、チームは作業ステータスへの可視性を維持するために、イシュー、マージリクエスト、エピック、マイルストーン間を移動することになります。課題は、頭の切り替えやフローを中断することなく、チームがプロジェクトの進行状況にリアルタイムでアクセスできるようにしながら、この情報を効率的に統合することにあります。\n**18.3でリアルタイム作業ステータスの可視性をローンチ**\n強力な[GitLabクエリ言語（GLQL）を搭載したGitLab 18.3の埋め込みビュー](https://docs.gitlab.com/user/glql/#embedded-views)は、ライブプロジェクトデータをワークフローに直接もたらすことで、頭の切り替えを排除します：\n\n* **動的ビュー：** ページを読み込むたびに現在のプロジェクト状態で自動的に更新される、Markdownコードブロックのwikiページ、エピック、イシュー、マージリクエスト全体にライブGLQLクエリを挿入します。\n* **文脈に応じたパーソナライゼーション：** ビューは、手動設定なしで、表示している人に関連する情報を表示するために、`currentUser()`や`today()`などの関数を使用して自動的に適応します。\n* **強力なフィルタリング：** 担当者、作成者、ラベル、マイルストーン、ヘルスステータス、作成日など、25以上のフィールドでフィルタリングします。\n* **表示の柔軟性：** カスタマイズ可能なフィールド選択、アイテム制限、並べ替え順序を使用して、データをテーブル、リスト、または番号付きリストとして表示し、ビューを集中的で実行可能に保ちます。\n\n断片化されたプロジェクト管理アプローチとは異なり、埋め込みビューは、リアルタイムの可視性を提供しながらワークフローの継続性を維持するように設計されており、チームが複数のツールやインターフェース間で焦点を失ったり切り替えたりすることなく、情報に基づいた意思決定を行えるようにします。\n\n> [GitLab 18.3の最新機能](https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/)について詳しく見る。\n\n## 今すぐ始める\n\nGitLab 18.3は、GitLab.comおよびセルフマネージド環境のGitLab PremiumおよびUltimateユーザーが今すぐ利用できます。\n\nGitLab Dedicatedのお客様は現在18.2にアップグレードされており、来月GitLab 18.3でリリースされた機能を使用できるようになります。\n\nソフトウェアエンジニアリングの未来を体験する準備はできましたか？[GitLab Duoのベータ版と実験的機能を有効](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/#turn-on-beta-and-experimental-features)にして、完全な開発コンテキストを理解するAIエージェントとのコラボレーションを開始してください。\n\nGitLabは初めてですか？[無料トライアルを今すぐ開始](https://gitlab.com/-/trials/new)して、世界で最も包括的なDevSecOpsプラットフォームを通じてオーケストレーションされた、人間とAIのコラボレーションがソフトウェアエンジニアリングの未来である理由を発見してください。\n\n\u003Cp>\u003Csmall>\u003Cem>このブログ投稿には、1933年証券法第27A条および1934年証券取引所法第21E条の意味における「将来を見据えた声明」が含まれています。このブログ投稿に含まれる将来を見据えた声明に反映された期待は合理的であると信じていますが、実際の結果または成果が将来を見据えた声明によって表現または暗示された将来の結果または成果と実質的に異なる原因となる可能性のある既知および未知のリスク、不確実性、仮定、およびその他の要因の対象となります。\u003C/em>\u003C/p>\n\u003Cp>\u003Cem>実際の成果と結果が、このブログ投稿に含まれる、または検討される将来を見据えた声明に含まれるものと実質的に異なる原因となる可能性のあるリスク、不確実性、およびその他の要因に関する詳細情報は、証券取引委員会に提出および報告する「リスク要因」というキャプションの下およびその他の場所に含まれています。このブログ投稿の日付以降に将来を見据えた声明の改訂を更新またはリリースする義務、またはイベントや状況を報告する義務、または予期しないイベントの発生を反映する義務を負いません（法律で要求される場合を除く）。\u003C/em>\u003C/small>\u003C/p>",[1041],"Bill Staples","2025-08-27","2025-08-21",[676,673,674,9,770],{"featured":90,"template":681,"slug":1046},"gitlab-18-3-expanding-ai-orchestration-in-software-engineering","content:ja-jp:blog:gitlab-18-3-expanding-ai-orchestration-in-software-engineering.yml","Gitlab 18 3 Expanding Ai Orchestration In Software Engineering","ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering.yml","ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering",{"_path":1052,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1053,"content":1058,"config":1066,"_id":1068,"_type":13,"title":1069,"_source":15,"_file":1070,"_stem":1071,"_extension":18},"/ja-jp/blog/gitlab-18-4-ai-native-development-with-automation-and-insight",{"config":1054,"title":1055,"ogTitle":1055,"description":1056,"ogDescription":1056,"ogImage":1057},{"noIndex":6},"GitLab 18.4: 自動化とインサイトによるAIネイティブ開発","カスタムエージェントの作成、Knowledge Graph（ナレッジグラフ）のコンテキスト活用、パイプラインの自動修復機能などが導入されました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758541195/kig7sww6jyvxzmkmimbv.png",{"heroImage":1057,"body":1059,"authors":1060,"updatedDate":1061,"date":1062,"title":1063,"tags":1064,"description":1065,"category":679},"デベロッパーならご存知のとおり、現代の開発はコードを書くだけではありません。ソフトウェア開発ライフサイクル全体にわたって変更を管理することが求められます。\n\n[GitLab 18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)では、真の人間とAIのコラボレーションの基盤を築きました。Claude Code、Codex CLI、Amazon Q CLI、Gemini CLIなどの主要なAIツールをGitLabにネイティブ統合として導入し、Cursorとの提携によるGitLab Model Context Protocol（[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)）サーバーの初回プレビューを提供しました。また、「イシューからMRフロー」と「Jenkinsフロー向けのConvert CIファイル」という2つの新しいフローを提供し、チームが日常的な問題に取り組めるようにしました。\n\n[GitLab 18.4](https://about.gitlab.com/ja-jp/blog/gitlab-18-04-release/)では、カスタムエージェントの構築と共有機能の拡張、Agentic Chatによる効果的なコラボレーション、Knowledge Graphを使用したコードベースのナビゲーション、パイプライン修正フローによるパイプラインの継続的な正常稼働をサポートしつつ、AI使用に対するセキュリティとガバナンスも強化しています。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1120293274?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=\"18.4 Release video placeholder\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> GitLab 18.4リリースの最新機能についてのご質問がある方は、[Developer Showにご参加ください](https://www.linkedin.com/events/q-a-code-exploringgitlab18-4and7373772262312906753/theater/)。LinkedInでライブ配信を9月23日午前10時（太平洋時間）に行います。見逃した方は、その後すぐにオンデマンドでご覧いただけます！\n\n## エクスペリエンスを構築する\n\n*まずはAI Catalogから始めましょう。優先順位を明確にし、ルーティン作業を自動化し、構築に集中できるようにする専門エージェントのライブラリです。*\n\n### 専門エージェントライブラリとしてのAI Catalog（試験版）\n\nGitLab 18.4では、GitLab Duo AI Catalogを導入します。これは、組織全体でカスタム構築されたエージェントを作成、共有、コラボレーションできる中央ライブラリです。すべてのチームには「独自のやり方」があります。カスタムエージェントの作成は、組織における「正しいやり方」を他のエンジニアに教えるようなものです。\n\n例えば、カスタム製品計画エージェントは、ラベリング標準に従って特定の形式でバグを報告できます。テクニカルライターエージェントは、規約に従って簡潔なドキュメントを作成できます。セキュリティエージェントは、すべてのMRでセキュリティとコンプライアンスの基準が満たされていることを確認できます。これらのエージェントは、切り離されたツールとして機能するのではなく、GitLab内の自然な作業の流れの一部となり、確立されたプロセスを妨げることなくタスクの加速をサポートします。\n\n**注意：** この機能は現在GitLab.comでのみ試験版として利用可能です。Self-Managedのお客様への提供は、来月の18.5リリースで予定しています。\n\n## フローに集中する\n\n*GitLab Duo Agentic Chatにより、エージェントとのシームレスなコラボレーションが可能になります。*\n\n### エージェントとのコラボレーションを効率化するよりスマートなAgentic Chat（ベータ版）\n\nGitLab Duo Agent Platformの中心となる[Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/)は、AIエージェントとのシームレスなコラボレーションを実現します。GitLab 18.4でのAgentic Chatの最新アップデートは、チャット体験を向上させ、セッションの管理方法と表示方法を拡張しました。\n\n* **カスタムエージェントとのチャット**\n\n  まずは新しく作成したカスタムエージェントから始めましょう。設計が完了したら、Agentic Chatを通じてすぐにそのエージェントを活用できます。例えば、新しいエージェントに「タスクのリストを教えて」と尋ねれば、その日の優先事項から取り掛かることができます。さらに、新しいエージェントとの新しい会話を開始したり、コンテキストを失うことなく以前のエージェントとの会話を再開できる機能の追加されました。\n\n* [**ユーザーモデル選択**](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-a-model-to-use-in-gitlab-duo-agentic-chat)\n\n  以前のリリースでは、ネームスペースレベルでモデルを選択できましたが、18.4では特定のチャットセッションに対してユーザーレベルでモデルを選択できるようになりました。これにより、どのLLMがそのタスクに適しているかを決定したり、異なるLLMを試して、タスクに最適な回答を提供するものを確認したりできます。\n\n* **フォーマットとビジュアルデザインの改善**\n\n  GitLab Duo Agentic Chatの新しいビジュアルデザインを気に入っていただけることを願っています。ツール呼び出しの承認処理も改善され、より快適なエクスペリエンスを提供します。\n\n* **Agentic Chatを通じて利用可能なエージェントセッション**\n\n  セッション機能が、Agentic Chatの中心的な機能として強化されました。エージェントが実行する処理やワークフローは、すべてAgentic Chatのセッション概要画面で確認できます。各セッション内では、ジョブログ、ユーザー情報、ツールのメタデータなどの詳細情報が表示され、エージェントが人間の代わりにどのような作業をどのように進めているのかを明確に把握できます。\n  \n  **注意：** Agentic Chatのセッション機能は、現在GitLab.comでのみ利用可能です。Self-Managedのお客様への提供は、来月の18.5アップデートで予定しています。\n\n## コードベースの力を解き放つ\n\n*エージェントにとって、コンテキストこそが鍵です。Knowledge Graphを使用すると、エージェントにより多くのコンテキストを提供できるため、より速く推論し、より良い結果が得られます。*\n\n### GitLab Knowledge Graphのご紹介（ベータ版）\n\n18.4の[GitLab Knowledge Graph](https://gitlab-org.gitlab.io/rust/knowledge-graph/)は、デベロッパーとエージェントが複雑なコードベースを理解し、ナビゲートする方法を変革します。Knowledge Graphは、プロジェクト全体の接続されたマップを提供し、ソフトウェア開発ライフサイクル全体でファイル、ルート、参照をリンクします。定義へ移動、コードベース検索、チャット内クエリによる参照追跡などのツールを活用することで、デベロッパーは「すべてのルートファイルを表示」や「この変更が他に与える影響は？」といった的確な質問をできるようになります。\n\nこのより深いコンテキストにより、チームはより速く、より自信を持って作業を進められます。新しいコントリビューターのオンボーディング、プロジェクト全体での詳細な調査の実施、変更が依存コードに与える影響の調査など、すべてが効率化されます。GitLabのエコシステムが多いほど、Knowledge Graphはより強力になり、人間とAIエージェントの両方に、正確性、スピード、プロジェクト全体の認識を持って構築するための基盤を提供します。今後のリリースでは、プラン、MR、セキュリティ脆弱性など、すべてのGitLabデータをKnowledge Graphに統合していく予定です。今回のKnowledge Graphリリースはローカルコードのインデックス作成に焦点を当てており、gkg CLIがコードベースをRAG用のライブで埋め込み可能なグラフデータベースに変換します。シンプルなワンラインスクリプトでインストールし、ローカルリポジトリを解析し、MCPを介して接続してワークスペースにクエリを実行できます。Knowledge Graphプロジェクの展望は2つあります：デベロッパーが今すぐローカルで実行できる活気あるコミュニティエディションの構築と、それがGitLab.comおよびSelf-Managedインスタンスに完全統合されるKnowledge Graphサービスの基盤となることです。\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1121017374?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=\"18.4 Knowledge Graph Demo\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パイプラインメンテナンスを自動化する\n\n*パイプライン修正フローでパイプラインの失敗をより速く修正し、作業に集中できます。*\n\n### ビジネスを考慮したパイプライン修正フロー\n\nパイプラインを正常に保つことはベロシティの維持にとって重要ですが、従来のアプローチはビジネスへの影響を考慮せずに技術的なトラブルシューティングのみに焦点を当てています。**パイプライン修正フロー**は、技術的分析と戦略的コンテキストを組み合わせることで、この課題に対処します。例えば、顧客向けサービスのデプロイパイプラインの失敗の修正を、夜間のテストジョブよりも自動的に優先したり、実験的な機能ブランチとは異なる方法で優先度の高いリリースブランチのビルド問題にフラグを立てたりできます。\n\n* **ビジネス認識型の障害検出**は、さまざまなワークフローやデプロイターゲットの重要性を理解しながら、パイプラインの実行を監視します。\n\n* **コンテキストに基づく根本原因分析**は、ビジネス要件、最近の変更、プロジェクト間の依存関係と共に障害ログを分析し、根本的な原因を特定します。\n\n* **戦略的な修正の優先順位付け**は、ビジネスへの影響、期限、リソース割り当ての優先順位を考慮しながら適切な修正を生成します。\n\n* **ワークフロー統合型の解決**は、適切なレビュープロセスを維持しながら修正を含むマージリクエストを自動的に作成し、優先順位決定のためのビジネスコンテキストを提供します。\n\nこのフローは、戦略的な整合性を保ちながらパイプラインを正常に保ち、自動修正が単に技術的な問題を解決するだけでなく、ビジネス目標をサポートできるようにします。\n\n## AI環境をカスタマイズする\n\n*自動化は、背後にあるモデルを信頼できる場合にのみ機能します。そのため、18.4では、モデル選択やGitLab管理キーなどのガバナンス機能を提供しています。*\n\n### 機能パフォーマンスを最適化するGitLab Duo Model Selection (モデル選択）\n\n[Model Selection](https://docs.gitlab.com/user/gitlab_duo/model_selection/)が一般提供開始となり、GitLab Duoを支える大規模言語モデル（[LLM](https://about.gitlab.com/blog/what-is-a-large-language-model-llm/)）を直接制御できるようになりました。選択したモデルを、組織全体に適用したり、機能ごとにカスタマイズすることもできます。ガバナンス、コンプライアンス、セキュリティ要件を考慮しながら、ネームスペースやツール全体で一貫性を確保できるようにするデフォルト設定が可能です。\n\nGitLab Duo Self-Hostedを使用しているお客様には、新たに追加されたGPT OSSとGPT-5のサポートにより、AIを活用した開発ワークフローに柔軟性がさらに加わります。\n\n**注意：** GitLab Duo Self-HostedはGitLab.comのお客様はご利用できません。また、GPTモデルはGitLab.comではサポートされていません。\n\n## 機密コンテキストを保護する\n\n*ガバナンスとともに、データ保護も提供され、AIがアクセスできる情報・できない情報を細かく制御できます。*\n\n### 詳細なデータ保護のためのGitLab Duo Context Exclusion（コンテキスト除外機能）\n\nAIエージェントがアクセスできる情報を細かく制御する必要があることは言うまでもありません。18.4の**GitLab Duo Context Exclusion**は、特定のファイルまたはファイルパスをAIアクセスから除外できるプロジェクトレベルの設定を提供します。機能には以下が含まれます：\n\n* **ファイル固有の除外**により、パスワード設定、シークレット、独自のアルゴリズムなどの機密ファイルを保護できます。\n\n* **パスベースのルール**により、ディレクトリ構造やファイル命名規則に基づいて除外パターンを作成できます。\n\n* **柔軟な設定**により、開発ワークフローの効率を維持しながら、プロジェクトレベルで除外を適用できます。\n\n* **監査の可視性**により、除外されたコンテンツを追跡し、データガバナンスポリシーへの準拠をサポートします。\n\nGitLab Duo Context Exclusionは、エージェント型AIで開発を加速しながら、機密データを保護します。\n\n## 新しいMCPツールでAI機能を拡張する\n\n*拡張されたMCPツールにより、GitLab環境をより広範なインテリジェントエージェントのエコシステムと接続し、その機能をさらに拡張します。*\n\n### GitLab MCPサーバーの新ツール\n\n[18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)で導入された初期のMCPサーバーを拡張して、GitLab 18.4では、MCPツール（MCPクライアントがGitLabとやり取りする方法を定義する機能）を追加しています。これらの新しいツールは統合の可能性を拡張し、ファーストパーティとサードパーティの両方のAIエージェントが、既存のセキュリティと権限モデルを遵守しながら、プロジェクトデータへのアクセス、コード操作の実行、リポジトリ全体での検索など、より豊富なタスクを実行できるようにします。18.4の新機能を含むMCPツールの完全なリストは、[MCPサーバードキュメント](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/)をご覧ください。\n\n## インテリジェントなソフトウェア開発の未来を体験する\n\n[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)により、エンジニアは単一スレッドで一度に1つのイシューに取り組む作業から、チームメイトのように機能する非同期エージェントとのマルチスレッドコラボレーションに移行し、より速く作業を完了できるようになります。私たちは、お客様の独立性と選択への要望に応えるユニークなビジョンを市場に提供しています。お好みのクラウド環境で、最適なLLMとAIツールを使用して実行し、設定したセキュリティとコンプライアンスのガードレール内で作業できます。\n\nこのイノベーションの重要な部分として、GitLab 18.4は単なるソフトウェアアップグレード以上のものであると言えるでしょう。デベロッパーの日常体験をよりスムーズで、スマートで、安全なものにすることを目的としています。再利用可能なエージェントからビジネス認識型のパイプライン修正まで、すべての機能はチームがスピード、セキュリティ、制御のバランスを保ちながら作業に集中できるように設計されています。これらの機能が実際にどのように機能するかの詳細については、ウォークスルービデオをご覧ください。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1120288083?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=\"A day in the life with GitLab Duo Agent Platform\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\u003Cp>\u003C/p>\n\nGitLab PremiumおよびUltimateをご利用中のお客様は、[GitLab.com](https://GitLab.com)とSelf-Managed環境で、これらの機能を今すぐご利用いただけます。[GitLab Dedicated](https://about.gitlab.com/dedicated/)のお客様への提供は来月を予定しています。\n\n> **GitLab Duo Agent Platformのベータ版と試験的機能を今すぐ有効にして**、フルコンテキストAIがチームのソフトウェア構築方法をどのように変革できるかをぜひ体験してください。GitLabが初めての方は、[無料トライアルを開始できます。](https://about.gitlab.com/ja-jp/free-trial/devsecops/)　開発の未来がなぜAIを活用し、安全で、世界で最も包括的なDevSecOpsプラットフォームを通じてオーケストレーションされるのかを体験してください。\n\n## GitLabを最新の状態に保つ\n\n最新の機能、セキュリティアップデート、パフォーマンス改善を確実に受け取るために、GitLabインスタンスを最新の状態に保つことをお勧めします。アップグレードの計画や完了に役立つ以下のリソースをご確認ください：\n\n* [アップグレードパスツール](https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) – 現在のバージョンを入力して、インスタンスの正確なアップグレード手順を確認\n* [アップグレードドキュメント](https://docs.gitlab.com/update/upgrade_paths/) – サポートされている各バージョンの詳細なガイド（要件、ステップバイステップの手順、ベストプラクティスを含む）\n\n定期的にアップグレードすることで、チームが最新のGitLab機能を活用し、安全でサポートされた状態を維持できます。\n\n手間をかけたくない組織には、[GitLabのマネージドメンテナンスサービス](https://content.gitlab.com/viewer/d1fe944dddb06394e6187f0028f010ad#1)をご検討ください。マネージドメンテナンスにより、GitLabの専門スタッフがSelf-Managedインスタンスを確実にアップグレードし、安全に保ち、DevSecOpsをリードする準備を整えている間、チームはイノベーションに集中できます。詳細については、担当営業にお問い合わせください。\n\n*このブログ投稿には、1933年証券法第27A条（改正後）および1934年証券取引所法第21E条の意味における「将来予想に関する記述」が含まれています。これらの記述に反映されている期待が合理的であると考えていますが、実際の結果または成果が大きく異なる可能性がある既知および未知のリスク、不確実性、仮定、その他の要因の影響を受けます。これらのリスクやその他の要因に関する詳細は、SECへの提出書類の「リスク要因」というタイトルの下に含まれています。法律で義務付けられている場合を除き、このブログ投稿の日付以降、これらの記述を更新または改訂する義務を負いません。*",[1041],"2025-09-24","2025-09-23","GitLab 18.4: 自動化と分析を活用したAIネイティブ開発",[673,676,9,674],"カスタムエージェントの作成、Knowledge Graphのコンテキスト活用、パイプラインの自動修復機能などが導入されました。",{"featured":90,"template":681,"slug":1067},"gitlab-18-4-ai-native-development-with-automation-and-insight","content:ja-jp:blog:gitlab-18-4-ai-native-development-with-automation-and-insight.yml","Gitlab 18 4 Ai Native Development With Automation And Insight","ja-jp/blog/gitlab-18-4-ai-native-development-with-automation-and-insight.yml","ja-jp/blog/gitlab-18-4-ai-native-development-with-automation-and-insight",{"_path":1073,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1074,"content":1078,"config":1085,"_id":1087,"_type":13,"title":1088,"_source":15,"_file":1089,"_stem":1090,"_extension":18},"/ja-jp/blog/gitlab-duo-agent-platform-public-beta",{"noIndex":6,"title":1075,"description":1076,"ogImage":1077},"GitLab Duo Agent Platform ベータ版：次世代AIオーケストレーション","開発者とAIエージェント間の非同期コラボレーションを実現するDevSecOpsオーケストレーションプラットフォームをご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg",{"heroImage":1077,"body":1079,"authors":1080,"updatedDate":1081,"date":1082,"title":1075,"tags":1083,"description":1076,"category":679},"**私たちはソフトウェア開発の未来を構築しています。**\n\nGitLabでは、[ソフトウェアエンジニアリングの未来を人間とAIのコラボレーション](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops/)として再構想しています。開発者が技術的で複雑な問題の解決とイノベーションの推進に集中する一方で、AIエージェントが進捗を遅らせる日常的で反復的なタスクを処理します。開発者がはるかに低いコストで新しいアイデアをコードで自由に探求でき、バグのバックログが過去のものとなり、構築するソフトウェアのユーザーがより使いやすく、信頼性が高く、安全な体験を楽しめる世界です。これは遠い夢ではありません。私たちは現在この現実を構築しており、それがGitLab Duo Agent Platformです。\n\n## GitLab Duo Agent Platformとは？\n\nGitLab Duo Agent Platformは、開発者とAIエージェント間の非同期コラボレーションを実現するように設計された次世代DevSecOpsオーケストレーションプラットフォームです。これにより、ソフトウェア開発ワークフローを、従来の1人ずつ順番に開発を進めるプロセスから、複数の人やAIエージェントが同時に協力しあえる開発スタイルへ変革できます。まるで無限のチームメンバーを自由に使えるようなものです。\n\n複雑なリファクタリングタスクをSoftware Developer Agentに委任しながら、同時にSecurity Analyst Agentに脆弱性をスキャンさせ、Deep Research Agentにリポジトリ履歴全体の進捗を分析させることを想像してください。これらはすべて並行して行われ、GitLab内でシームレスにオーケストレーションされます。\n\n本日、GitLab.comおよびSelf-ManagedのGitLab PremiumとUltimateのお客様向けに、[GitLab Duo Agent Platformの最初のパブリックベータ版](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)のローンチを発表します。これは、インテリジェントな自動化を通じて人間の創意工夫を増幅させながら、ソフトウェアの計画、構築、検証、デプロイの方法を改善する一連のアップデートの最初のものです。\n\nこの最初のベータ版は、GitLab VS Code拡張機能とJetBrains IDEプラグインを通じてIDE体験を解放することに焦点を当てています。来月には、Duo Agent Platform体験をGitLabアプリケーションに導入し、IDEサポートを拡張する予定です。現在から今年後半に予定されている一般提供までのロードマップに関する私たちのビジョンについて、もう少し詳しくお話しさせていただきます。最初のベータ版の詳細は以下をご覧ください。\n\n現在利用可能な機能と今後の予定については、このビデオをご覧いただくか、続きをお読みください。その後、Duo Agent Platformを開始する準備ができたら、[パブリックベータ版での開始方法をご覧ください](#get今すぐ始める)。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101993507?title=0&amp;byline=0&amp;portrait=0&amp;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=\"GitLab Agent Platform Beta Launch_071625_MP_v2\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## オーケストレーションプラットフォームとしてのGitLabのユニークなポジション\n\nGitLabは、エンジニアリングチームの記録システムとして開発ライフサイクルの中心に位置し、5,000万人以上の登録ユーザー（Fortune 500の半数を含む）のコンセプトから本番環境までの全行程をオーケストレーションしています。これには、公共機関を含むすべてのセグメントと業界にわたる10,000以上の有料顧客が含まれます。\n\nこれにより、GitLabは競合他社が持ち得ないものを手に入れています：ソフトウェアを提供するために必要なすべてに関する包括的な理解です。私たちは、プロジェクト計画、コード、テスト実行、セキュリティスキャン、コンプライアンスチェック、CI/CD設定を統合し、チームに力を与えるだけでなく、あなたがコントロールするAIエージェントとのコラボレーションをオーケストレーションします。\n\nインテリジェントで統一されたDevSecOpsプラットフォームとして、GitLabはソフトウェアエンジニアリング実践に関するすべてのコンテキストを1か所に保存します。私たちは、この統一されたデータをナレッジグラフを介してAIエージェントに公開します。構築されるすべてのエージェントは、このSDLC接続されたデータセットに自動的にアクセスでき、豊富なコンテキストを提供するため、エージェントは情報に基づいた推奨を行い、組織の標準に準拠したアクションを実行できます。\n\n**このアドバンテージの実例をご紹介します。** 数十、場合によっては数百のストーリーやイシューにわたって、関係するすべての開発者を含めてプロジェクトがどのように進行しているかを正確に把握しようとしたことはありますか？Deep Research AgentはGitLab Knowledge Graphとセマンティック検索機能を活用して、エピックとすべての関連イシューを横断し、関連するコードベースと周囲のコンテキストを探索します。リポジトリ、マージリクエスト、デプロイメント履歴全体の情報を迅速に相関させます。これにより、スタンドアロンツールでは実現できず、人間の開発者が発見するのに何時間もかかる重要な洞察が得られます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101998114?title=0&amp;byline=0&amp;portrait=0&amp;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=\"Deep Research Demo_071625_MP_v1\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## AI機能からエージェントオーケストレーションへの戦略的進化\n\nGitLab Duoは、Duo ProとEnterpriseを通じて開発者に生成AIをもたらすアドオンとして始まりました。GitLab 18.0では、プラットフォームに組み込まれています。すべてのPremiumおよびUltimateユーザー向けに[Duo Agentic Chat](https://about.gitlab.com/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover/)とCode Suggestionsを解放し、現在Duo Agent Platformへの即座のアクセスを提供しています。\n\nエンジニアリング投資を強化し、デリバリーを加速させており、毎月強力な新しいAI機能が登場しています。しかし、私たちは単なる別のコーディングアシスタントを構築しているわけではありません。GitLab Duoは、AIエージェントを作成、カスタマイズ、デプロイでき、他のシステムと簡単に相互運用できるエージェントオーケストレーションプラットフォームになりつつあり、生産性を劇的に向上させます。\n\n> **「GitLab Duo Agent Platformは、私たちのコードベースと組織を真に理解するAIで開発ワークフローを強化します。コード、テスト、CI/CD、およびソフトウェア開発ライフサイクル全体の記録システムにGitLab Duo AIエージェントが組み込まれることで、生産性、開発速度、効率性が向上します。エージェントは私たちのチームの真のコラボレーターとなり、意図を理解し、問題を分解し、アクションを実行する能力により、開発者は情熱を持つエキサイティングで革新的な作業に取り組むことができます。」** - Bal Kang氏、NatWest エンジニアリングプラットフォームリード\n\n### すぐに使えるエージェント\n\n私たちは、おなじみのチームの役割を反映したエージェントを導入しています。これらのエージェントは、GitLab全体で既存のアーティファクトを検索、読み取り、作成、変更できます。これらは個別に対話できるエージェントであり、独自のエージェントを作成するためにカスタマイズできるビルディングブロックとしても機能します。チームメンバーと同様に、エージェントにはソフトウェア開発、テスト、技術文書作成などの定義された専門分野があります。スペシャリストとして、適切なコンテキストとツールを活用して、デプロイされる場所に関係なく、同じタイプのタスクを一貫して達成します。\n\n現在構築中のエージェントの例をいくつか紹介します：\n\n* **Chat Agent（現在ベータ版）：** 自然言語のリクエストを受け取り、ユーザーに情報とコンテキストを提供します。イシューの読み取りやコードの差分の読み取りなど、一般的な開発タスクを実行できます。例として、ジョブのURLを提供することで、失敗したジョブのデバッグをChatに依頼できます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1102616311?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=\"agentic-chat-in-web-ui-demo_Update V2\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\u003Cp>\u003C/p>\n\n* **Software Developer Agent（現在ベータ版）：** 割り当てられたアイテムに取り組み、仮想開発環境でコード変更を作成し、レビュー用のマージリクエストを開きます。\n* **Product Planning Agent：** 製品バックログの優先順位付け、人間およびエージェントのチームメンバーへの作業アイテムの割り当て、指定されたタイムライン上でのプロジェクト更新の提供を行います。\n* **Software Test Engineer Agent：** バグの新しいコード貢献をテストし、報告された問題が解決されたかどうかを検証します。\n* **Code Reviewer Agent：** チーム標準に従ってコードレビューを実行し、品質とセキュリティの問題を特定し、準備ができたらコードをマージできます。\n* **Platform Engineer Agent：** GitLab Runnersを含むGitLabデプロイメントを監視し、CI/CDパイプラインの健全性を追跡し、人間のプラットフォームエンジニアリングチームにパフォーマンスの問題を報告します。\n* **Security Analyst Agent：** コードベースとデプロイされたアプリケーション内の脆弱性を発見し、セキュリティの弱点の解決に役立つコードと設定の変更を実装します。\n* **Deployment Engineer Agent：** 本番環境に更新をデプロイし、異常な動作を監視し、アプリケーションのパフォーマンスやセキュリティに影響を与える変更をロールバックします。\n* **Deep Research Agent：** 開発エコシステム全体にわたって包括的なマルチソース分析を実施します。\n\nこれらのエージェントを強力にするのは、GitLabの包括的なツールキットへのネイティブアクセスです。現在、イシューやエピックからマージリクエストやドキュメントまで、25以上のツールがあり、さらに増える予定です。限られたコンテキストで動作する外部AIツールとは異なり、エージェントは組織の監督の下で完全なプラットフォーム権限を持つ真のチームメンバーとして機能します。\n\n今後数か月で、これらのエージェントを組織のニーズに合わせて変更することもできるようになります。例えば、Software Test Engineer Agentが特定のフレームワークや方法論のベストプラクティスに従うように指定でき、その専門性を深め、さらに価値のあるチームメンバーに変えることができます。\n\n## Flowsが複雑なエージェントタスクをオーケストレーション\n\n個々のエージェントに加えて、エージェントFlowsを導入しています。これらは、自律的に実行できる特定のタスクに対して、事前に構築された指示、ステップ、アクションを含む複数のエージェントを含むことができる、より複雑なワークフローと考えてください。\n\n個人に共通する基本的なタスクのFlowsを作成できますが、通常は調整と労力に何時間もかかる複雑で専門的なタスクに適用すると真に優れています。Flowsは複雑なタスクをより速く完了する支援をし、多くの場合、人間の介入なしに非同期で実行できます。\n\nFlowsには実行のための特定のトリガーがあります。各Flowには一連のステップが含まれ、各ステップには専門のエージェントに何をすべきかを伝える詳細な指示があります。この詳細なアプローチにより、Flow内のエージェントに正確な指示を与えることができます。より詳細に指示を定義し、構造化された決定ポイントを確立することで、FlowsはAI応答の固有の変動性を解決しながら、同じ要件を繰り返し指定する必要をなくし、ユーザー設定なしでより一貫性があり予測可能な結果を解放できます。\n\n私たちが構築している、すぐに使えるFlowsの例をいくつか紹介します：\n\n**Software Development Flow（現在ベータ版）：** 複数のエージェントをオーケストレーションして、コード変更をエンドツーエンドで計画、実装、テストし、チームがコンセプトから本番環境まで機能を提供する方法を変革する支援をします。\n\n**Issue-to-MR Flow：** エージェントを調整して要件を分析し、包括的な実装計画を準備し、コードを生成することで、イシューを実行可能なマージリクエストに自動的に変換します。\n\n**Convert CI File Flow：** 既存のCI/CD設定を分析し、完全なパイプライン互換性を持つGitLab CI形式にインテリジェントに変換するエージェントを使用して、移行ワークフローを合理化します。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101941425?title=0&amp;byline=0&amp;portrait=0&amp;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=\"jenkins-to-gitlab-cicd-for-blog\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\n**Search and Replace Flow：** プロジェクト構造を体系的に分析し、最適化の機会を特定し、正確な置換を実行することで、コードベース全体でコードパターンを発見して変換します。\n\n**Incident Response & Root Cause Analysis Flow：** システムデータを相関させ、根本原因分析のための専門エージェントを調整し、解決プロセス全体を通じて関係者に情報を提供しながら、承認された修復手順を実行することで、インシデント対応をオーケストレーションします。\n\nこれは、GitLab Duo Agent Platformが他のAIソリューションと比較して真にユニークなアプローチを取っている点になります。事前に構築されたエージェントを提供するだけではありません。個人および組織の独自のニーズに完全に一致するエージェントFlowsを作成、カスタマイズ、共有する力も提供します。そして、Flowsを使用すると、一般的で複雑なタスクに対してエージェントに特定の実行計画を与えることができます。\n\nこのアプローチは、競合他社が行うような目的別のエージェントを構築するよりも強力であると考えています。なぜなら、すべての組織には異なるワークフロー、コーディング標準、セキュリティ要件、ビジネスロジックがあるからです。汎用AIツールは特定のコンテキストを理解できませんが、GitLab Duo Agent Platformはチームの作業方法に正確に合わせて調整できるようになります。\n\n## なぜGitLab Duo Agent PlatformでエージェントとエージェントFlowsを構築するのか？\n\n**高速構築：**高速で宣言的な拡張性モデルとUIアシスタンスを使用して、Duo Agent Platformでエージェントと複雑なエージェントFlowsを迅速かつ簡単に構築できます。\n\n**組み込みコンピュート：**Duo Agent Platformを使用すると、エージェント用の独自のインフラストラクチャを立ち上げる手間をかける必要がなくなります：コンピュート、ネットワーク、ストレージはすべて組み込まれています。\n\n**SDLCイベント：**エージェントは、パイプラインのエラー、デプロイメントの失敗、イシューの作成など、一般的なイベントで自動的に呼び出すことができます。\n\n**即座のアクセス：**GitLabまたはIDEプラグインのどこからでもエージェントと対話できます：イシューを割り当て、コメントで@メンションし、Duo Chatが利用可能なあらゆる場所でチャットできます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1102029239?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=\"assigning an agent an issue\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script> \u003Cp>\u003C/p>\n\n**組み込みモデルとカスタムモデルをサポート：** エージェントは、サポートするすべてのモデルに自動的にアクセスでき、ユーザーは特定のタスクに特定のモデルを選択できます。Duo Agent Platformを独自のセルフホストモデルに接続したい場合は、それも可能になります！\n\n**Model Context Protocol（MCP）エンドポイント：**すべてのエージェントとFlowはネイティブMCPエンドポイントを介してアクセスまたはトリガーでき、Claude Code、Cursor、Copilot、Windsurfなどの人気のあるツールを含む、どこからでもエージェントとFlowsに接続してコラボレーションできます。\n\n**可観測性とセキュリティ：**組み込みの可観測性と使用状況ダッシュボードを提供し、エージェントが誰が、どこで、何を、いつあなたに代わってアクションを実行したかを正確に確認できます。\n\n## コミュニティ主導の未来\n\nコミュニティの貢献は長い間GitLabのイノベーションとソフトウェア開発を促進してきました。AI Catalogの導入により、コミュニティとパートナーシップを組むことに興奮しています。AI Catalogにより、組織内およびGitLabエコシステム全体でエージェントとFlowsを作成して共有できるようになります（今後のベータ版で）。\n\n最も価値のあるAIアプリケーションは、GitLab Duo Agent Platformを毎日適用して多数の実世界のユースケースを解決することで、コミュニティの皆様から生まれる可能性が高いと考えています。エージェントとFlowsのシームレスな共有を可能にすることで、各コントリビュートがプラットフォームの集合的なインテリジェンスと価値を高めるネットワーク効果を生み出しています。時間の経過とともに、Agent Platformからの最も価値のあるユースケースは、繁栄するGitLabコミュニティから生まれると信じています。\n\n![AI Catalog](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752685501/awdwx08udwrxgvcpmssb.png \"AI Catalog\")\n\n## 現在GitLab Duo Agent Platformパブリックベータ版で利用可能\n\nGitLab Duo Agent Platformパブリックベータ版は、PremiumおよびUltimateのお客様に以下の機能を提供して現在利用可能です：\n\n**Software Development Flow：** 最初のFlowは、包括的なコンテキストの収集、人間の開発者との曖昧さの明確化、コードベースとリポジトリに正確な変更を加えるための戦略的計画の実行においてエージェントをオーケストレーションします。プロジェクト全体（構造、コードベース、履歴を含む）と、GitLabのイシューやマージリクエストなどの追加コンテキストを活用して、開発者の生産性を増幅します。\n\n**新しいエージェントツールが利用可能：** エージェントは作業を行うために複数のツールにアクセスできるようになりました：\n\n* ファイルシステム（読み取り、作成、編集、ファイル検索、リスト、Grep）\n* コマンドライン実行*\n* イシュー（リスト、取得、コメント取得、編集*、作成*、コメント追加/更新*）\n* エピック（取得、コメント取得）\n* MR（取得、コメント取得、差分取得、作成、更新）\n* パイプライン（ジョブログ、パイプラインエラー）\n* プロジェクト（取得、ファイル取得）\n* コミット（取得、リスト、コメント取得、差分取得）\n* 検索（イシュー検索）\n* セキュア（脆弱性リスト）\n* ドキュメント検索\n  *=ユーザー承認が必要\n\n**IDEでのGitLab Duo Agentic Chat：** Duo Agentic Chatは、チャット体験を受動的なQ&Aツールから、IDE内で直接アクティブな開発パートナーに変換します。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1103237126?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=\"agentic-ai-launch-video_NEW\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\u003Cp>\u003C/p>\n\n* **反復的なフィードバックとチャット履歴：** Duo Agentic Chatは、チャット履歴と反復的なフィードバックをサポートするようになり、エージェントを状態を持つ会話型パートナーに変換します。これにより信頼が育まれ、開発者がより複雑なタスクを委任し、修正指導を提供できるようになります。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101743173?title=0&amp;byline=0&amp;portrait=0&amp;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=\"agentic-chat-history\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **スラッシュコマンドによる合理化された委任：** /explain、/tests、/includeなどの拡張されたより強力なスラッシュコマンドは、迅速で正確な意図のための「委任言語」を作成します。/includeコマンドにより、特定のファイル、開いているイシュー、マージリクエスト、または依存関係からのコンテキストをエージェントの作業メモリに直接注入でき、エージェントをより強力にし、高品質な応答のための最適なコンテキストを提供する方法をユーザーに教えます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101743187?title=0&amp;byline=0&amp;portrait=0&amp;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=\"include-agentic-chat-jc-voiceover\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **カスタムルールによるパーソナライゼーション：** 新しいカスタムルールにより、開発者は自然言語（例：開発スタイルガイド）を使用して、エージェントの動作を個人およびチームの好みに合わせて調整できます。この基本的なメカニズムは、エージェントのペルソナをパーソナライズされたアシスタントに形成し、ユーザー定義の好みと組織ポリシーに基づいて専門的なエージェントへと進化します。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101743179?title=0&amp;byline=0&amp;portrait=0&amp;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=\"custom-rules-with-jc-voiceover\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **JetBrains IDEでのGitLab Duo Agentic Chatのサポート：** 開発者が作業する場所で会うために、IntelliJ、PyCharm、GoLand、WebstormなどのJetBrainsファミリーのIDEにDuo Agentic Chatサポートを拡張しました。これは既存のVS Codeサポートに追加されます。既存のユーザーは自動的にエージェント機能を取得し、新しいユーザーはJetBrains Marketplaceからプラグインをインストールできます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101743193?title=0&amp;byline=0&amp;portrait=0&amp;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=\"jetbrains-support-jc-voiceover\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **MCPクライアントサポート：** Duo Agentic Chatは、MCPクライアントとして機能し、リモートおよびローカルで実行されているMCPサーバーに接続できるようになりました。\n\nこの機能により、エージェントはGitLab以外のJira、ServiceNow、ZenDeskなどのシステムに接続してコンテキストを収集したり、アクションを実行したりできます。MCPを介して自身を公開するサービスは、エージェントのスキルセットの一部になることができます。公式のGitLab MCPサーバーは近日公開予定です！\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1101743202?title=0&amp;byline=0&amp;portrait=0&amp;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=\"McpDemo\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n* **GitLab Web UIでのGitLab Duo Agentic Chat。** Duo Agentic ChatはGitLab Web UI内でも直接利用できるようになりました。この重要なステップにより、エージェントはコーディングアシスタントから真のDevSecOpsエージェントへと進化します。イシューやマージリクエストのディスカッションなどの豊富な非コードコンテキストにアクセスできるようになり、作業の背後にある「なぜ」を理解できるようになります。コンテキストを理解するだけでなく、エージェントはイシューのステータスの自動更新やマージリクエストの説明の編集など、WebUIから直接変更を加えることができます。\n\n## GitLab Duo Agent Platformに近日登場\n\n今後数週間にわたって、Duo Agent Platformに新しい機能をリリースし、より多くのすぐに使えるエージェントとFlowsを含めます。これらは、現在愛用されているGitLab体験にプラットフォームをもたらし、さらに大きなカスタマイズと拡張性を可能にし、お客様の生産性を増幅します：\n\n![GitLab Duo Agent Platform パブリックベータロードマップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752685275/hjbe9iiu2ydp9slibsc2.png \"GitLab Duo Agent Platform パブリックベータロードマップ\")\n\n* **統合されたGitLab体験：** 18.2で利用可能なIDE拡張機能を基に、GitLabプラットフォーム内でエージェントとFlowsを拡張しています。このより深い統合により、エージェントと同期的および非同期的にコラボレーションする方法が拡張されます。エージェントに直接イシューを割り当て、GitLab Duo Chat内で@メンションし、選択した開発ツールからのMCP接続を維持しながら、アプリケーションのどこからでもシームレスに呼び出すことができます。このネイティブ統合により、エージェントはGitLab全体でアクセス可能な真の開発チームメンバーに変わります。\n* **エージェントの可観測性：** エージェントがより自律的になるにつれて、Flowsを進行する際のアクティビティに対する包括的な可視性を構築しており、意思決定プロセスを監視し、実行ステップを追跡し、開発の課題をどのように解釈して行動しているかを理解できるようにします。エージェントの動作に対するこの透明性は信頼と確信を構築し、ワークフローを最適化し、ボトルネックを特定し、エージェントが意図したとおりに正確に実行されていることを確認するのに役立ちます。\n* **AI Catalog：** 素晴らしいソリューションはコミュニティのイノベーションから生まれることを認識し、まもなくAI Catalogのパブリックベータ版を導入します - GitLabから、そして時間の経過とともにより広いコミュニティから調達された専門的なエージェントとFlowsでDuo Agent Platformを拡張できるマーケットプレイスです。これらのソリューションをGitLabで迅速にデプロイし、プロジェクトとコードベース全体のコンテキストを活用できます。\n* **Knowledge Graph：** ソースコードとその周囲のコンテキストの記録システムとしてのGitLabのユニークなアドバンテージを活用して、コードベース全体のファイルと依存関係をマッピングするだけでなく、そのマップをユーザーがナビゲート可能にし、AIクエリ時間を加速し、精度の向上に役立つ包括的なKnowledge Graphを構築しています。この基盤により、GitLab Duoエージェントは、コードの依存関係からデプロイメントパターンまで、開発環境全体の関係を迅速に理解でき、複雑な質問に対するより速く、より正確な応答を解放します。\n\n![GitLab Duo Agent Platform Knowledge Graph](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752685367/n0tvfgorchuhrronic3j.png \"GitLab Duo Agent Platform Knowledge Graph\")\n\n* **エージェントとFlowsの作成と編集：** すべての組織には独自のワークフローと要件があることを理解し、AI Catalogが成熟するにつれて導入される強力なエージェントとFlow作成および編集機能を開発しています。組織の作業方法に正確に合わせてエージェントとFlowsを作成および変更でき、Duo Agent Platform全体で高品質な結果と生産性の向上を可能にする深いカスタマイズを提供します。\n\n![AI Catalog](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752684938/fruwqcqvvrx8gmkz5u0v.png \"AI Catalog\")\n\n* **公式GitLab MCPサーバー：** 開発者が複数のツールと環境で作業することを認識し、MCPを介してすべてのエージェントとFlowsにアクセスできる公式GitLab MCPサーバーを構築しています。Claude Code、Cursor、Copilot、WindsurfなどのポピュラーなツールをMCPがサポートされている場所から、エージェントとFlowsに接続してコラボレーションでき、好みの開発環境に関係なくシームレスなAIコラボレーションを解放します。\n* **GitLab Duo Agent Platform CLI：** 今後のCLIにより、コマンドラインでエージェントを呼び出し、Flowsをトリガーできるようになり、コードリポジトリとマージリクエストからCI/CDパイプラインとイシュー追跡まで、ソフトウェア開発ライフサイクル全体にわたるGitLabの豊富なコンテキストを活用できます。\n\n## 今すぐ始める\n\n* GitLab.comおよびGitLab 18.2を使用するセルフマネージド環境の**GitLab PremiumおよびUltimateのお客様**は、Duo Agent Platformをすぐに使用できます（GitLab Duoの[ベータ版および実験的機能を有効にする必要があります](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/#turn-on-beta-and-experimental-features)）。\n* ユーザーは[VS Code拡張機能](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow)または[JetBrains IDEsプラグイン](https://plugins.jetbrains.com/plugin/22857-gitlab)をダウンロードし、Duo Chat [スラッシュコマンド](https://docs.gitlab.com/user/gitlab_duo_chat/examples/#gitlab-duo-chat-slash-commands)を含む[GitLab Duo Agentic Chatの使用ガイド](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat)に従ってください。\n\n**GitLabは初めてですか？** 誰でも今後の[GitLab Duo Agent Platformを実際に見るための技術デモ](https://page.gitlab.com/webcasts-jul16-gitlab-duo-agentic-ai-emea-amer.html)に参加できます。GitLab Duo Agent Platformを自分で実際に体験するには、今すぐ[無料トライアル](https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2Fsales%2F)にサインアップしてください。\n\n\u003Csmall>*このブログ記事には、改正1933年証券法第27A条および1934年証券取引所法第21E条の意味における「将来の見通しに関する記述」が含まれています。このブログ記事に含まれる将来の見通しに関する記述に反映された期待は合理的であると考えていますが、それらは既知および未知のリスク、不確実性、仮定、およびその他の要因の影響を受けるため、実際の結果または成果は、将来の見通しに関する記述によって表現または暗示されたものと大きく異なる可能性があります。*\n\n*将来の見通しに関する記述に含まれるまたは検討される実際の成果や結果が大きく異なる原因となる可能性のあるリスク、不確実性、およびその他の要因に関する詳細情報は、証券取引委員会に提出する書類および報告書の「リスク要因」という見出しおよびその他の箇所に記載されています。私たちは、このブログ記事の日付以降に発生するイベントや状況を報告したり、予期しないイベントの発生を反映したりするために、将来の見通しに関する記述の改訂を更新または公開する義務を法律で要求される場合を除いて負いません。*\u003C/small>",[1041],"2025-07-22","2025-07-17",[673,676,9,1084],"news",{"featured":90,"template":681,"slug":1086},"gitlab-duo-agent-platform-public-beta","content:ja-jp:blog:gitlab-duo-agent-platform-public-beta.yml","Gitlab Duo Agent Platform Public Beta","ja-jp/blog/gitlab-duo-agent-platform-public-beta.yml","ja-jp/blog/gitlab-duo-agent-platform-public-beta",{"_path":1092,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1093,"content":1099,"config":1106,"_id":1108,"_type":13,"title":1109,"_source":15,"_file":1110,"_stem":1111,"_extension":18},"/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover",{"title":1094,"description":1095,"ogTitle":1094,"ogDescription":1095,"noIndex":6,"ogImage":1096,"ogUrl":1097,"ogSiteName":694,"ogType":695,"canonicalUrls":1097,"schema":1098},"GitLab Duo Chatが自律型AIでさらに進化","実験的なリリースとして提供が開始された新しいGitLab Duo Chatは、デベロッパーがプロジェクトに参加したり、担当作業を理解したり、変更を実装したりする際に役立ちます。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","https://about.gitlab.com/blog/gitlab-duo-chat-gets-agentic-ai-makeover","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Chatが自律型AIでさらに進化\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Torsten Linz\"}],\n        \"datePublished\": \"2025-05-29\",\n      }",{"title":1094,"description":1095,"authors":1100,"heroImage":1096,"date":1102,"body":1103,"category":679,"tags":1104,"updatedDate":1105},[1101],"Torsten Linz","2025-05-29","生成AIのチャットアシスタントは、ソフトウェア開発の現場で一般的に使われるようになり、コードの作成や修正をサポートします。もしそのチャットアシスタントが、コードだけでなく開発プロセス全体のアーティファクトを理解できたとしたらどうでしょうか？コードを書く前にイシューやプロジェクトドキュメントの確認を手伝い、CI/CDパイプラインやマージリクエストにアクセスして、コーディング作業を適切に完了できるように支援してくれるとしたらどうでしょうか？\n\n\n**こうした高度な開発支援を実現するのが、次世代のGitLab Duo Chat「GitLab Duo Agentic\nChat」です。これは、AIネイティブな開発支援の大きな進化形であり、現在は[実験的なリリース](https://docs.gitlab.com/policy/development_stages_support/#experiment)としてGitLabプラットフォームに新たに追加された機能です。**\nGitLab Duo Agentic Chatは、VS CodeでGitLab\nWorkflow拡張機能をお使いのGitLab.comユーザーであれば利用できます。\n\n\nAgentic\nChatは、従来の対話型AIによるチャット体験を、ユーザーに代わってアクションを実行するチャット体験に変革します。複雑な問題を細かいタスクに分割し、自律的に完了することができます。Agentic\nChatは、提供されたコンテキストに基づいて質問に答えるだけでなく、以下のようなことができます。\n\n\n* 質問に答えるために必要な情報を**自律的に判断する**\n\n* 複数の情報源から必要な情報を取得するための**一連の操作を実行する** \n\n* プロジェクト全体から得られる分析結果を組み合わせて、**包括的な回答を作成する**\n\n* ソリューションを実装するために**ファイルを作成、編集する**\n\n\nこれらすべての作業が、人間のデベロッパーが常に状況を把握できる状態で行われます。\n\n\nAgentic\nChatは、[現在プライベートベータ版](https://about.gitlab.com/ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/)のDuo\nWorkflowアーキテクチャ上に構築されています。このアーキテクチャは、与えられた質問に適したコンテキストを見つけたり、ファイルを編集したりするなど、特定のタスクを担うエージェントとツールで構成されています。\n\n\n**GitLab Duo Agentic Chatのユースケース**\n\n\nここでは、Agentic Chatの実際の活用例と一般的なユースケースをご紹介します。\n\n\n* __新しいプロジェクトにすばやくオンボーディング__：新しいコードベースに慣れる作業をAIが支援することで、より迅速にプロジェクトに参加できます。\n\n\n* __担当業務にすぐに着手__：イシューの説明が不明確でも、Agentic\nChatが要件と既存の実装との関連性を示してくれるため、すぐに担当作業に取りかかることができます。\n\n\n* __変更の実装支援__：変更作業が必要になった際には、Agentic\nChatがプロジェクト全体にわたって複数のファイルを作成、編集し、実装を支援します。\n\n\n* __リリース時の検証__：リリースの段階では、Agentic\nChatがマージリクエストと元のイシューやタスクを照らし合わせて、ソリューションが本当に要件を満たしているかを検証する手助けをします。\n\n\n![agentic chat -\n例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099210/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750099210429.png)\n\n\n\u003Ccenter>\u003Ci>コードの編集を行う Agentic Chat\u003C/i>\u003C/center>\n\n\n## 学習からリリースまで：4ステップの開発ワークフロー\n\n\nGitLabエンジニアリングチームの実際のシナリオを通じて、Agentic\nChatが開発体験をどのように変革するかをご紹介します。あなたはチームの新メンバーとして、イシューを割り当てられましたが、コードベースについてはまだ何も知らないとします。\nそれでは、以下のデモ動画に従って体験してみましょう。\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/uG9-QLAJrrg?si=kaOhYylMIaWkIuG8j\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n**ステップ1：プロジェクトを理解する**\n\n\nファイルやドキュメントを自分で探し回る代わりに、Agentic Chatに以下のように質問してみましょう。\n\n\n```unset\n\nこのプロジェクトは初めてです。構造を読んで説明してもらえますか？\n\n```\n\n\nAgentic Chatは、以下の方法でプロジェクトの全体像をわかりやすく示してくれます。\n\n- ディレクトリ構造の探索\n\n- READMEファイルやドキュメントの読み取り\n\n- 主要なコンポーネントやアプリケーションの特定\n\n\n**ステップ2：担当タスクを理解する**\n\n\n次に、あなたが担当するタスクの内容を把握する必要があります。以下のように質問してみましょう。\n\n\n```unset\n\nイシュー1119を担当することになりました。このタスクの内容を説明してもらえますか？特に、リファクタリングが必要な箇所はどこですか？\n\n```\n\n\nAgentic Chatは、以下の方法でタスクの説明とリファクタリングの提案を行ってくれます。\n\n- リモートのGitLabサーバーからイシューの詳細を取得し、分析\n\n- 関連するプロジェクトファイルの調査\n\n- 変更が必要な箇所の特定\n\n\n**ステップ3：ソリューションを実装する**\n\n\n手動で作業する代わりに、以下のようにリクエストできます。\n\n\n```unset\n\nその編集を行ってもらえますか？ステップ1、2、3から始めてください。\n\n```\n\n\nAgentic Chatは以下のアクションを実行します。\n\n- 必要に応じて新しいディレクトリやファイルを作成\n\n- 複数の場所にまたがってコードを抽出、リファクタリング\n\n- 変更されたすべてのファイル間で一貫性を維持\n\n- 行ったすべての変更の要約を報告\n\n\n**ステップ4：作業の完了を確認する**\n\n\nマージリクエストを作成したら、最後に作業の完了を確認します。\n\n\n```unset\n\nこのマージリクエストはイシュー1119を完全に解決していますか？\n\n```\n\n\nAgentic Chatは、マージリクエストと元のイシューの内容を分析し、すべての要件が満たされているかどうかを検証してくれます。\n\n\n## フィードバックをお待ちしています\n\n\nGitLab Duo Agentic Chatは現在、VS Codeの実験的機能として、GitLab Duo\nProおよびEnterpriseユーザーの皆様にご利用いただけます。前提要件や設定手順については、[セットアップドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/)をご確認ください。\n\n\n実験的な機能であるAgentic\nChatにはいくつかの既知の制限があります。これには、複数のAPIコールによる応答時間の遅延、文脈理解による検索ではなくキーワードベースの検索の実行、新しいローカルフォルダやGitLab以外のプロジェクトに対するサポートの制限などが含まれます。現在GitLabは、これらの事項の改善に積極的に取り組んでいます。\n**皆さまからのフィードバックは、改善の優先順位を決め、Agentic\nChatを一般公開へと導く上で非常に重要です。ぜひ、[こちらのイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/542198)で皆さまの体験を共有してください。**\n\n\n## 今後の取り組み\n\n\nGitLabは、Agentic Chatの改善と一般公開へ向けた開発を全力で進めています。主な取り組みとして、応答速度の改善のほか、現在のGitLab\nDuo Chatで利用可能な各種機能をAgentic Chatでも使えるようにする作業があります。これには、セルフホストモデルのGitLab\nDuoとの統合や、VS Codeに加えてJetBrainsやVisual Studioをサポートする機能拡張が含まれます。Duo\nChatをこの新しいアーキテクチャに切り替えた後は、GitLab Webアプリケーション内のチャットにもAgentic Chatを導入する予定です。\nまた、GitLabアーティファクトの編集、カスタムモデルコンテキストプロトコル（MCP）サーバーからのコンテキストの取得、ターミナルで実行できるコマンドの提供など、多くの新機能の追加も予定しています。\n\n\n> まだGitLabをご利用でなくても、自律型の開発支援を今すぐ体験していただけます。[GitLab UltimateとGitLab Duo\nEnterpriseの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)で、Agentic\nChatを今すぐお試しください。AIを活用した開発の未来を一緒に形作りましょう。VS\nCodeでのセットアップ手順は、[こちら](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-vs-code)からご確認いただけます。\n\n\n***免責事項：このブログには、今後の製品、機能、および機能性に関する情報が含まれています。本ブログ記事に含まれる情報は、情報提供のみを目的としている点にご留意ください。購入や計画の判断材料として使用することはお控えください。すべてのプロジェクトと同様に、このブログおよびリンク先のページに記載されている項目は、変更または遅延される場合があります。製品、機能、機能性の開発、リリース、およびタイミングに関する決定権は、GitLabに帰属します。***\n\n\n## 関連リンク\n\n\n- [GitLab Duo\nWorkflow：自律型AIに対するエンタープライズレベルの可視性と管理](https://about.gitlab.com/ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/)\n\n- [自律型AIとは？](https://about.gitlab.com/ja-jp/topics/agentic-ai/)\n\n-\n[自律型AIに関するガイドとリソース](https://about.gitlab.com/blog/agentic-ai-guides-and-resources/)（英語）\n",[673,1084,9,674,676,678],"2025-06-05",{"slug":1107,"featured":90,"template":681},"gitlab-duo-chat-gets-agentic-ai-makeover","content:ja-jp:blog:gitlab-duo-chat-gets-agentic-ai-makeover.yml","Gitlab Duo Chat Gets Agentic Ai Makeover","ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover.yml","ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover",{"_path":1113,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1114,"content":1120,"config":1127,"_id":1129,"_type":13,"title":1130,"_source":15,"_file":1131,"_stem":1132,"_extension":18},"/ja-jp/blog/gitlab-duo-enterprise-is-now-available",{"title":1115,"description":1116,"ogTitle":1115,"ogDescription":1116,"noIndex":6,"ogImage":1117,"ogUrl":1118,"ogSiteName":694,"ogType":695,"canonicalUrls":1118,"schema":1119},"GitLab Duoエンタープライズを提供開始","AIパートナーの登場です。GitLab Duoエンタープライズが、DevSecOpsのライフサイクル全体にどのようなメリットをもたらすかご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665660/Blog/Hero%20Images/Untitled__1800_x_945_px_.png","https://about.gitlab.com/blog/gitlab-duo-enterprise-is-now-available","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duoエンタープライズを提供開始\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2024-09-03\",\n      }",{"title":1115,"description":1116,"authors":1121,"heroImage":1117,"date":1123,"body":1124,"category":679,"tags":1125,"updatedDate":1126},[1122],"David DeSanto, Chief Product Officer, GitLab","2024-09-03","[GitLab Duoエンタープライズ](https://about.gitlab.com/ja-jp/gitlab-duo/)は、ソフトウェア開発ライフサイクル全体に適用できるように設計されたエンドツーエンドのAIパートナーです。この強力なAIツール群は、デベロッパーの生産性向上、セキュリティの強化、コラボレーションの効率化、そしてDevSecOpsプロセスの加速を目的として設計されました。\n\n主な機能は次のとおりです。\n- 25以上のプログラミング言語に対応したインテリジェントなコード支援\n- AIによるセキュリティ脆弱性の詳細情報と解決策の提示テスト生成と根本原因分析の自動化\n- テスト生成と根本原因分析の自動化\n- AI生成のサマリーによるチームコラボレーションの改善\n- AIインパクトダッシュボードによるROIの定量化\n\n## GitLab Duoエンタープライズを開発した理由\n\n組織は、より高品質なソフトウェアを迅速に提供し、顧客価値を高めようとする中で、その進捗を妨げる大きな課題に直面しています。[当社の調査（英語）](http://about.gitlab.com/developer-survey/2024/ai)によると、95%の企業がソフトウェア開発プロセスにおいてAIの導入を検討しているか、すでに使用しています。しかし、55%の回答者が、ソフトウェア開発にAIを使用することにはリスクが伴うと感じています。\n\n企業が直面する一般的な問題には、デベロッパーのエクスペリエンスや生産性の最適化が不十分であること、セキュリティやコンプライアンスの要求が増加していること、チーム間のコラボレーションが非効率であること、AI技術への投資に対するROIの評価が困難であることが挙げられます。GitLab Duoエンタープライズは、これらの課題に真っ向から取り組むために開発され、開発チームに対して安全で効率的かつ強力なAIパートナーを提供します。\n\n**このブログでは、GitLab Duoエンタープライズによって、企業のソフトウェア開発とデプロイにどのようなメリットがもたらされるかをご紹介します。** \n\n## インテリジェントなコード支援を活用してデベロッパーの生産性を高める\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1004252678?h=83f35171b6&amp;badge=0&amp;badge=0&amp?autoplay=1&loop=1&autopause=0&background=1&muted=1\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Code Suggestions clip\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\nソフトウェア開発における主なハードルのひとつは、日常的なコーディング作業に時間がかかることです。しかし、次の機能を活用すれば、より重要な作業にすばやく着手できます。\n\n- __コード提案__：25以上のプログラミング言語に対応しています。このAI搭載機能を使用することで、コード作成の高速化、コード品質の向上、および定型作業にかかる時間の短縮を実現できます。\n\nしかし、新しいコードを作成することだけが目的ではありません。\n\n- __コードの説明__（GitLab Duoエンタープライズ機能）：デベロッパーが複雑なコードや不慣れなコードをすばやく理解できるよう支援します。\n\n- **コードリファクタリング**：この機能を使用することで、デベロッパーは[既存のコードの改善とモダナイゼーション（英語）](https://about.gitlab.com/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo/)を行えます。\n\n- __テスト生成__：包括的なユニットテストの作成を自動化します。これにより、デベロッパーがイノベーションを促進する価値の高いタスクに集中できるようになり、結果として開発サイクルの短縮とソフトウェアの品質向上につながります。\n\n> [欧州のテクノロジー企業であるCube社（英語）](https://about.gitlab.com/customers/cube/)が、コード提案やテスト生成、その他のGitLab Duo機能を活用して、どのようにスピードと効率を大幅に向上させているかをご確認ください。\n\n## チームのコラボレーションとコミュニケーションを強化\n\n効果的なコラボレーションは、ソフトウェア開発を成功に導くための基盤となります。しかし、長時間にわたる議論、複雑なマージリクエスト、そして時間のかかるコードレビューによって、その実現が妨げられてしまうことも多々あります。GitLab Duoエンタープライズなら、次に挙げる一連の要約（サマリー生成）機能とテンプレートツールを使用してこれらの課題に対処できます。\n\n- __ディスカッションサマリー__：イシュー内の長い議論内容を要約し、チームメンバーがすばやく理解できるよう支援します。\n- __マージリクエストサマリー__：提案された変更の概要を明確かつ簡潔に説明します。\n- __コードレビューサマリー__：レビュープロセスを効率化し、作成者とレビュアー間の引き継ぎをスムーズにします。\n\nGitLab Duoエンタープライズは、より明確なコミュニケーションと迅速な意思決定を促進し、チームがより効率的に仕事をし、より迅速に成果を上げられるよう支援します。\n\n## トラブルシューティングとデバッグを効率化\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1004252688?h=fc6c048bfd&amp;badge=0&amp;badge=0&amp?autoplay=1&loop=1&autopause=0&background=1&muted=1\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Root Cause Analysis clip\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\n開発パイプラインが失敗した場合、プロジェクトタイムラインに大きな影響が生じる可能性があります。ここでは、GitLab Duoエンタープライズの__根本原因分析__機能が活躍します。根本原因分析は、ログを自動分析し、失敗の詳細な説明と修正手順を提示することで、トラブルシューティングにかかる時間を大幅に短縮できます。\n\nこのメリットは、単なる時間の節約にとどまりません。[CI/CDビルドの問題解決を高速化](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/)することで、チームのスピード維持、ダウンタイムの削減、そして最終的には、ソフトウェアアップデートの頻度と信頼度を高めることができます。\n\n## 開発ライフサイクル全体のセキュリティを強化\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1004252706?h=73e568b89c&amp;badge=0&amp;badge=0&amp?autoplay=1&loop=1&autopause=0&background=1&muted=1\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Vulnerability Explanation and Resolution clip\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\nサイバーセキュリティの脅威は常に存在しているため、堅牢なアプリケーションセキュリティが必要です。GitLab Duoエンタープライズは、 __脆弱性の説明機能__ と __脆弱性の修正機能__ を備えています。これらのAI搭載ツールは、[デベロッパーがセキュリティの脆弱性を完全に理解（英語）](https://about.gitlab.com/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities/)し、提案された修正案が反映されたマージリクエストを自動生成します。\n\n## AIの影響を定量化して戦略的意思決定を実現\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1004252663?h=d35106288b&amp;badge=0&amp?autoplay=1&loop=1&autopause=0&background=1&muted=1\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"AI Impact Dashboard clip\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\u003Cp>\u003C/p>\n\n技術投資のROIを示すことは非常に重要です。このニーズを確実に満たすために、GitLab Duoエンタープライズには __AIのインパクトダッシュボード__ が備わっています。この分析ツールは、バリューストリーム分析とDORA4メトリクスに基づいて構築されており、サイクルタイムの改善やデプロイ頻度の向上に関連する具体的なメトリクスを提示します。これにより組織は、開発プロセスへのAI導入がもたらす明確なメリットを定量化できます。\n\n[AIインパクトダッシュボード](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)には、AIの活用が主要な生産性メトリクスとどのように関連しているかのインサイトが表示されます。これにより、経営陣はリソース配分や戦略的な技術投資に関するデータに基づいた意思決定を行えるようになります。\n\n## AIが導くDevSecOpsの新時代を迎えましょう\n\nGitLab Duoエンタープライズの発表に際し、GitLabが初の[Gartner® Magic Quadrant™のAIコードアシスタント部門](https://about.gitlab.com/ja-jp/gartner-mq-ai-code-assistants/)のリーダーの1社に選定されたことをご案内します。この評価は、真のビジネスバリューをもたらすAIソリューションを提供するGitLabの取り組みを強調するものです。\n\nソフトウェア開発の未来はすでにここにあり、それを支えているのはAIです。GitLabは、DevSecOpsのライフサイクル全体にインテリジェントで拡張性に優れたAIを組み込むサポートを提供し、組織が顧客に成果をより迅速に届けられるよう支援します。\n\n> [無料トライアルでGitLab Duoエンタープライズを今すぐ始めましょう！](https://about.gitlab.com/solutions/gitlab-duo-pro/sales/?type=free-trial&toggle=gitlab-duo-pro)\n",[673,676,674,9,1084],"2024-09-13",{"slug":1128,"featured":90,"template":681},"gitlab-duo-enterprise-is-now-available","content:ja-jp:blog:gitlab-duo-enterprise-is-now-available.yml","Gitlab Duo Enterprise Is Now Available","ja-jp/blog/gitlab-duo-enterprise-is-now-available.yml","ja-jp/blog/gitlab-duo-enterprise-is-now-available",{"_path":1134,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1135,"content":1141,"config":1148,"_id":1150,"_type":13,"title":1151,"_source":15,"_file":1152,"_stem":1153,"_extension":18},"/ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy",{"title":1136,"description":1137,"ogTitle":1136,"ogDescription":1137,"noIndex":6,"ogImage":1138,"ogUrl":1139,"ogSiteName":694,"ogType":695,"canonicalUrls":1139,"schema":1140},"GitLab Duo Self-Hosted：セキュリティ境界内で実現するエンタープライズ向けAI","GitLab Duo Self-Hostedを使用すれば、エンタープライズレベルのデータレジデンシーとプライバシーを維持しながら、生成AIの力を活用できます。セキュリティやガバナンスの要件が厳格でも、GitLab Duoをセルフマネージドのインフラ上に安全に導入できるようになりました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097840/Blog/Hero%20Images/Blog/Hero%20Images/Self-Hosted%201800x945_1dL1II2ITh2PteObA9DBLD_1750097839679.png","https://about.gitlab.com/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Self-Hosted：セキュリティ境界内で実現するエンタープライズ向けAI\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Susie Bitters\"},{\"@type\":\"Person\",\"name\":\"Aathira Nair\"}],\n        \"datePublished\": \"2025-02-27\",\n      }",{"title":1136,"description":1137,"authors":1142,"heroImage":1138,"date":1144,"body":1145,"category":679,"tags":1146,"updatedDate":1147},[919,1143],"Aathira Nair","2025-02-27","このたび、Gitab Duo Self-Hostedの一般提供を開始しました。この機能はGitLab Duoコード提案およびGitLab Duo Chatで利用可能です。これにより、組織はエンタープライズレベルの AI機能を活用しながら、データを自社のインフラ内で保持できるようになります。GitLab Duo Self-Hostedはオンプレミス、インターネット未接続（エアギャップ）環境、セキュアなクラウド設定に対応しており、 機密データや知的財産を厳重に管理しながら、チームが AI を活用して革新を促進できるよう支援します。\n\nセキュリティに関する懸念は、規制の厳しい業界でAIを導入する上で大きな障壁となっています。こちらの[グローバルDevSecOpsレポート](https://about.gitlab.com/ja-jp/developer-survey/2024/ai/)によると、回答者の半数以上が、ソフトウェア開発ライフサイクルにAIを組み込むことはリスクが伴うと答えています。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)により、組織がソフトウェア開発ライフサイクル全体でAIを活用し、より安全で迅速なソフトウェアデリバリーを実現できるようになります。\n\n17.9のリリースでは、厳格なデータプライバシー要件を持つ組織の特定のニーズに対応するためにGitLab Duo Self-Hostedの機能を拡張し、生成AIの大規模言語モデル（LLM）を含む柔軟なモデルデプロイメントが可能になりました。公共部門や規制の厳しい業界（金融サービス、自動車、医療）の組織は、AI を活用した開発ツールを自社の閉じた環境にシームレスに統合できるようになり、セキュリティチームは必要な制御を維持しながら、AIによる競争優位性を得ることができます。\n\nある米国政府機関は次のように述べています。\n「DevSecOpsプラットフォームの基盤としてGitLabを選定した後、ソフトウェアファクトリー機能をさらに強化するためにGitLab Duo Self-Hostedを採用することにしました。\nGitLab Duoはエアギャップ環境で利用でき、データに対して詳細な制御が可能なため、セキュアなAI機能の実現に不可欠でした。\nGitLab Duoの統一されたアプローチにより、ワークフローの効率化、セキュリティ強化、AI 活用による生産性向上を実現するとともに、厳格なコンプライアンス要件を満たすことができるようになりました」\n\n![GitLab Duo Self-Hosted モデル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097848/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097848329.png)\n\n## セキュアなAI導入を設計\n\nGitLab Duo Self-Hostedは、Anthropic、Mistral、OpenAIなどの主要な生成AIモデルをサポート対象としており、GitLab Duoのユースケースやプロンプトライブラリに最適なパフォーマンスを発揮するモデルを選択できます。現在サポート対象となっているLLMは次のとおりです。\n\n* オンプレミス：vLLMサービングプラットフォームを使用したMistralモデル\n* AWS：AWS Bedrockを介したMistralおよびAnthropic Claude 3.5 Sonnet\n* Microsoft Azure：Azure AIを介したMistralおよびOpenAI GPTモデル\n\n今後サポート予定のモデルを評価中です。[サポートしているLLMについての詳細は、こちらをご覧ください。](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/)\n\nGitLab Duo Self-Hostedは、オープンソースのvLLMフレームワークを活用したオンプレミスインストールや、AWS BedrockやMicrosoft Azure AIなどのサービスを利用したプライベートクラウドデプロイメントを含む、多様なオプションをサポートしています。\nこの柔軟性により、組織は自社のセキュリティ、コンプライアンス、パフォーマンス要件に合わせた最適なAIソリューションを設計できます。\n\n## AI/MLの実装を簡単に\n\nAI抽象化レイヤーは、AI/MLテクノロジーの実装に必要なエンジニアリング作業を省き、選択した大規模言語モデル（LLM）への統合を標準化および簡素化します。\n企業は複数のツールを統合・維持する複雑さから解放され、AI導入プロセスを効率化するとともに、デベロッパーエクスペリエンスを向上させることができます。\n\n![GitLab Duo Self-Hosted AI機能](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097848/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097848330.png)\n\n## データレジデンシー要件を満たす\n\nGitLabインスタンス、AIゲートウェイ、LLMを独自の環境や選択した国に分離することで、機密データや知的財産を指定された境界内に保持することができます。\nデータローカリティ（データが物理的に保存される場所）を細かく制御することにより、厳格なデータレジデンシー規制を遵守しつつ、エアギャップ環境などの安全な設定でAI機能を導入することが可能になります。\n外部APIへの依存をなくすことで、すべてのリクエストと応答のログに対して完全な可視性を確保でき透明性が向上します。公共部門の組織でも、最も厳格なコンプライアンス要件に準拠しながら AI機能を安全に導入できるようになります。\n\n**下の画像をクリックしてデモ（クリックスルー）をご覧ください。**\n\n[![GitLab Duo Self-Hosted tour screenshot](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097848/Blog/Content%20Images/Blog/Content%20Images/Screenshot_2025-02-20_at_7.00.34_AM_aHR0cHM6_1750097848332.png)](https://gitlab.navattic.com/gitlab-duo-self-hosted)\n\n## GitLab Duo Self-Hostedの利用を開始する \n\n厳しいセキュリティやコンプライアンスの要件を満たしながらAI導入を進めていきたい場合は、[GitLab Duoのトライアルにご登録ください](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/)。\n\n\u003Cbr>\u003Cbr>\u003Cbr>\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*",[673,9,674,676,1084],"2025-02-28",{"slug":1149,"featured":90,"template":681},"gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy","content:ja-jp:blog:gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy.yml","Gitlab Duo Self Hosted Enterprise Ai Built For Data Privacy","ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy.yml","ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy",{"_path":1155,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1156,"content":1162,"config":1169,"_id":1171,"_type":13,"title":1172,"_source":15,"_file":1173,"_stem":1174,"_extension":18},"/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws",{"title":1157,"description":1158,"ogTitle":1157,"ogDescription":1158,"noIndex":6,"ogImage":1159,"ogUrl":1160,"ogSiteName":694,"ogType":695,"canonicalUrls":1160,"schema":1161},"GitLab Duo with Amazon Q（AWS向けに最適化された自律型AI）の一般提供を開始","AIを搭載した包括的なDevSecOpsプラットフォームと業界最高水準のクラウドコンピューティング機能の組み合わせにより、開発サイクルの高速化、自動化の推進、そしてコード品質の向上を可能にします。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659604/Blog/Hero%20Images/Screenshot_2024-11-27_at_4.55.28_PM.png","https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo with Amazon Q（AWS向けに最適化された自律型AI）の一般提供を開始\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2025-04-17\",\n      }",{"title":1157,"description":1158,"authors":1163,"heroImage":1159,"date":1165,"body":1166,"category":679,"tags":1167,"updatedDate":1168},[1164],"Emilio Salvador","2025-04-17","このたび、[GitLab Duo with Amazon Q](https://about.gitlab.com/ja-jp/partners/technology-partners/aws/)が一般公開されました。この新機能は、AWSユーザー向けにソフトウェア開発ライフサイクル全体にわたって自律型AIを提供するものです。GitLab UltimateをベースとしたGitLab Duo with Amazon Qには、コード補完、コードの説明、コード生成、Chat、脆弱性の説明および修正など、使い慣れた機能が多数搭載されており、これらすべてがAmazon Qによって強化されています。このソリューションは、Amazon Web Services（AWS）環境のGitLab Self-Managedでご利用いただけます。\n\nAmazon QのAIエージェントがGitLabのDevSecOpsプラットフォームに直接組み込まれているため、デベロッパーは慣れ親しんだ開発環境を維持しながら、強力なAI機能を活用できます。これにより、開発サイクルの高速化、手作業の削減、コード品質の向上をスムーズに実現できる環境が整いました。\n\n「GitLab Duo with Amazon Qの早期アクセスプログラムに参加したことで、開発ワークフローの変革の可能性を垣間見ることができました」と、Volkswagen Digital Solutions社でDevOpsエンジニアを務めるOsmar Alonso氏は述べています。「まだ初期段階にもかかわらず、自律型エージェントとの緊密な連携により、コードのコミットから本番環境までのプロセス全体を効率化できることが明らかになりました。このテクノロジーによって、チームがイノベーションに集中し、デジタルトランスフォーメーションを加速できることに大いに期待しています」\n\n## 自律型AIが複雑な顧客環境に登場\n\nGitLabとAWSは、自律型AIと安全かつ信頼性の高いクラウドインフラを組み合わせることで、セキュリティ、拡張性、信頼性を備えたソリューションを実現しました。これにより、複雑な環境を運用するお客様でも、以下のようなメリットを実感していただけます。\n\n__シームレスな開発を実現する一元化された開発環境__\n\nデベロッパーは、GitLab Duo Chatインターフェイスを介して、普段使用しているIDEやGitLab WebインターフェイスからAmazon Qを利用できます。これにより、複数のツールの行き来がなくなり頭の切り替えが不要になるため、作業中のプロジェクトに集中しやすくなります。\n\n__ソフトウェア開発ライフサイクル全体に対応した統合ソリューション__\n\nコード提案や最適化は、AWS特有のパターンや手法を活用しながら実行されます。また、テストツールはAWSサービス間の相互作用や依存関係を適切に把握します。すべてのステージを通じて共通のデータストアを用いることで、AIエージェントに必要なコンテキストが提供され、関連する操作に対する完全な可視性とトレーサビリティが確保されます。\n\n__エンタープライズレベルのガードレールによる安全な開発__\n\n開発プラットフォームにはエンドツーエンドのセキュリティとコンプライアンスが直接組み込まれており、開発速度を損なうことなくリスクを軽減するためのガードレールが備わっています。この安全に優れたソフトウェア開発アプローチは、AIエージェントを通じて透明性と可監査性を確保しつつ、AWSのセキュリティサービスやコンプライアンスフレームワークとスムーズに連携します。\n\n## GitLab Duo with Amazon Qの始め方\n\nチームで自律型AIを活用し、より迅速かつ安全にソフトウェアを開発するための5つのユースケースをご紹介します。\n\n1. **機能開発の加速** \n\nイシューの説明生成、既存のコードベースに基づいた実装計画の立案、レビュー可能なマージリクエストの作成など、一連の作業を自動化します。これにより、社内の開発基準との整合性を維持しながら、機能リリースの加速化を実現します。\n\n2. **レガシーアプリケーションのモダナイゼーション**\n\n古いJavaコードベースを解析し、包括的なアップグレードプランを作成します。さらに、必要なコード変更をすべて含んだマージリクエストを自動生成します。これにより、Javaアップグレードの所要時間を大幅に短縮しながら、すべてのコード変更を明確に追跡できる監査証跡も提供します。なお、今後のリリースで、.NETやその他の言語のサポートも予定されています。\n\n3. **品質保証の強化**\n\nコードを解析し、アプリケーションのロジックやAWSサービスとの連携を正確に理解した上で、包括的な単体テストを自動生成します。これにより、テストカバレッジの拡大、手作業によるテスト作成の負担軽減、そしてアプリケーション全体におけるテスト品質の一貫性確保を実現します。\n\n4. **コードレビューの最適化**\n\nコード変更に対してフィードバックをインラインで提供し、開発標準に基づいた改善提案を行うとともに、セキュリティやパフォーマンスに関する重要な考慮点を明示します。これにより、コードレビューのサイクルを短縮し、より高品質なコードのマージとデプロイを実現できます。\n\n5. **脆弱性の修正**\n\n検出された脆弱性をわかりやすく詳細に説明し、推奨されるコード変更に基づいてワンクリックで修正できる機能を備えています。これにより、脆弱性の検出から修正までの時間を大幅に短縮できます。\n\n以下の動画で、GitLab Duo with Amazon Qを実際に使用する様子をご覧いただけます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1075753390?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\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Technical Demo: GitLab Duo with Amazon Q\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n> #### GitLab Duo with Amazon Qのメリットを今すぐ体験\n> AIを搭載したGitLabの統合型DevSecOpsプラットフォームにAmazon Qの高度なAI機能を組み合わせることで、AWSユーザーにソフトウェアの構築およびデプロイのプロセスを革新するソリューションを提供します。GitLab Duo with Amazon Qの詳細については、[お近くで開催されるAWSサミット](https://about.gitlab.com/ja-jp/events/aws-summits/)にご参加いただくか、[GitLab担当者までお気軽にお問い合わせ](https://about.gitlab.com/ja-jp/partners/technology-partners/aws/#form)ください。",[673,674,677,676,9,1084],"2025-04-22",{"slug":1170,"featured":90,"template":681},"gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws","content:ja-jp:blog:gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws.yml","Gitlab Duo With Amazon Q Agentic Ai Optimized For Aws","ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws.yml","ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws",{"_path":1176,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1177,"content":1183,"config":1189,"_id":1191,"_type":13,"title":1192,"_source":15,"_file":1193,"_stem":1194,"_extension":18},"/ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"title":1178,"description":1179,"ogTitle":1178,"ogDescription":1179,"noIndex":6,"ogImage":1180,"ogUrl":1181,"ogSiteName":694,"ogType":695,"canonicalUrls":1181,"schema":1182},"GitLab Duo Workflow：自律型AIに対するエンタープライズレベルの可視性と管理","安全で自律的かつコンテキストを理解できるAIエージェントに複雑なタスクを任せることで、デベロッパーは革新的なソフトウェアの迅速なリリースに専念できます。現在、限定公開のベータ版のウェイトリスト受付中です。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660174/Blog/Hero%20Images/Workflow_1800x945.png","https://about.gitlab.com/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Workflow：自律型AIに対するエンタープライズレベルの可視性と管理\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Pini Wietchner\"}],\n        \"datePublished\": \"2025-02-24\",\n      }",{"title":1178,"description":1179,"authors":1184,"heroImage":1180,"date":1186,"body":1187,"category":679,"tags":1188,"updatedDate":1144},[1185],"Pini Wietchner","2025-02-24","このたび、[GitLab Duo Workflowの限定公開ベータ版](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)の利用登録（ウェイトリスト）の受付を開始しました。GitLab Duo Workflowは、最も包括的なDevSecOpsプラットフォーム上に構築された自律型AIです。GitLabのAIロードマップにおける次のステップとして、GitLab Duo Workflowは、プロジェクトの立ち上げからデプロイプロセス、デバッグ対応からチーム間の調整まで、あらゆる開発業務をIDE内で進行できるようサポートします。\n\nGitLab Duo Workflowは、コラボレーション、継続的インテグレーション、継続的デプロイメント、セキュリティ、コンプライアンスに特化したGitLabプラットフォームの枠組みを活かし、組織がAIエージェントを使用して開発プロセスを加速できるよう支援します。\n\nGitLab Duo Workflowを活用すると、次のような作業を効率化できます。\n\n* 新規開発プロジェクトの立ち上げ\n* コードのモダナイズ\n* コンテキストを考慮したタスクの実行\n* ドキュメントの作成\n* テストカバレッジの強化\n* その他\n\nこれらはあくまで基本的な活用例です。GitLabの統合データストアにより、GitLabを使えば使うほど、GitLab Duo Workflowはコード、設定、セキュリティ検出結果、デプロイ手法をより深く理解するようになります。結果として、組織に最適化された強力な開発プロセスが実現します。\n\n## AIエージェントの展望と課題\n\nソフトウェアは世界を大きく変えてきましたが、現在、ソフトウェア開発のスキルを持つ人材は、世界人口のごく一部にすぎません。それでも、こうした人材が生み出した技術は、スマートフォンやインターネットを通じて何十億人もの人々に届けられています。より多くの人々が本番環境レベルのソフトウェアを構築し、安全に運用し、提供できる世界を想像してみてください。そうなれば、何十億もの人々に影響を与えるソフトウェアが次々と生まれ、かつてない規模のイノベーションが巻き起こるでしょう。__自律型AIがそれを実現します。__\n\nAIエージェントはコンテキストを理解し、コードベース全体の知識を保持しており、開発、セキュリティ、オペレーションにまたがる複雑なソフトウェアプロジェクトを積極的にサポートできる高度な能力を備えています。AIエージェントを活用すれば、デベロッパーはこれまで個人やチームでは想像もできなかった規模でソフトウェアを開発できるようになります。\n\nしかしこの変化は、可視性、制御、AIがデベロッパーの業務にどのような影響を与えるかについて新たな懸念をもたらします。組織は、AIがデベロッパーの能力を強化しつつ、開発プロセスに対する適切な監視を維持する必要があります。このバランスの実現が、今日のソフトウェア開発における重大な課題です。単にAIを導入するだけでなく、セキュリティ、コンプライアンス、ガバナンスを維持しながらデベロッパーの能力を引き出す形でAIを導入することが成功の鍵と言えるでしょう。\n\n## AI導入を成功させるアプローチ：アドオンツールの追加ではなく包括的なプラットフォーム上にAIを構築\n\nより多くのデベロッパーが関与し、コードや潜在的なセキュリティリスクが増加するような環境に対し、新しい課題ごとに個別のツールを追加していくと、複雑さが増すだけです。最新の[DevSecOps調査で](https://about.gitlab.com/the-source/platform/devops-teams-want-to-shake-off-diy-toolchains-a-platform-is-the-answer/)、この問題の深刻さが明らかになりました。DevSecOpsチームは最大14種類のツールを使用せざるを得ない状況に陥り、最大80%の時間をコーディング以外のタスクに費やしています。AIが効果的に機能するためには、高品質で統一されたデータが必要ですが、個別のツールを追加し続けるアプローチでは、分散したデータを統合することが非常に困難になります。GitLab DevSecOpsプラットフォームとGitLab AIエージェントを組み合わせることで、ソースコード、マージリクエスト、エピック、ユーザー、アクセス権など、すべての要素を単一のデータモデルに統合します。当社が構築中のエージェントは、ユーザーとプロジェクトに関するコンテキストを使用して、チームの働き方を標準化し、セキュリティ問題のスキャンやコンプライアンス規則の適用など、デベロッパーの時間を奪ってしまうコーディング以外のタスクを自動化します。AIがプラットフォームに直接組み込まれることで、これらの機能がさらに強力になります。AIエージェントを開発パートナーとして活用しながら、AIがプロセスを強化する方法をユーザーがコントロールできるようにし、AIの効果とガバナンスのバランスを取ります。\n\n__これは遠い未来の話ではありません。GitLab Duo Workflowで現在構築中のものです。__\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1059060959?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\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Duo Workflow, the future of secure agentic AI software development\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>`\n\n## GitLab Duo Workflow： 最も包括的なDevSecOpsプラットフォーム上のAIエージェント\n\nGitLabのエンドツーエンドのDevSecOpsプラットフォームを活用したGitLab Duo Workflowは、デベロッパーが最大限の可能性を発揮できるように支援します。AIコードアシスタントが個々のコードを支援する一方で、GitLab Duo Workflowは開発ライフサイクル全体を理解してルーチンタスクを自動化します。これにより、デベロッパーは戦略的イノベーションとクリエイティブな問題解決に集中できます。GitLab Duo Workflowの開発が進むにつれ、チームは以下のことを実現できるようになります。\n\n### プロジェクトの立ち上げをスムーズに\n\nデベロッパーは、新しいプロジェクトのセットアップや依存関係の管理、基本的なインフラストラクチャの構築に追われ、本来の機能開発に充てる貴重な時間が削られがちです。GitLab Duo Workflowを使用すると、**IDE内で直接プロジェクトの立ち上げを自動化**できます。最初から適切な設定が適用されるため、より早くイノベーションの創出に専念できます。\n\n### レガシーコードから最新のアプリケーションへ\n\nレガシーコードのモダナイズは、単に構文を更新するだけではありません。依存関係、テスト、CI/CDパイプライン、ドキュメントを理解する必要があります。GitLab Duo Workflowは、コードからテストまでの**コードリファクタリングを実行することでコードベースのモダナイズ**を効率化します。\n\n### 頭の切り替えが必要な状態からフロー状態へ\n普段、デベロッパーは、ツール、ドキュメント、コードベースを常に切り替えながら問題を解決しています。GitLab Duo Workflowがコードベース関連のイシューやマージリクエストの完全なコンテキストを提供してくれるため、デベロッパーは切り替えなしで必要な情報にアクセスでき、開発に集中したフロー状態を維持できます。\n\n### ドキュメントを動的な知識へ\n\nドキュメントが最新の状態に追いつかないことで、コードベースの理解と保守が困難になります。GitLab Duo WorkflowがREADMEファイル、コードフロー図、アーキテクチャドキュメントなどのドキュメントの生成と更新をサポートするため、__ドキュメントが常に最新の状態を保ち__「動的な知識」として機能するようになります。\n\n### 断片的なテストから包括的なテストへ\n\nコードベースが拡大するにつれて、すべての機能や変更に対する包括的なテストというのが難しくなります。GitLab Duo Workflowは、既存のテストインフラストラクチャと統合しながら、AIを活用して __コードベースの広範囲に対するテストを自動的に生成できる__ ため、より少ない労力でより信頼性の高いソフトウェアを開発できます。\n\n## 限定公開ベータ版の利用を登録する\n\n[GitLab Duo Workflowの限定公開ベータ版の利用にご登録](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)ください。プロジェクトのセットアップからデプロイまで、当社のセキュアな自律型AIに関するビジョンにおける次のステップをご確認いただけます。これらのエージェントは、GitLabのDevSecOpsプラットフォーム上に構築されており、組織が必要とするエンタープライズレベルのセキュリティと制御を保持しながら、ソフトウェアライフサイクル全体を理解する高度な機能を提供します。\n\n*免責事項：このページには、今後予定されている製品、機能および機能性に関する情報が含まれています。この情報は情報提供のみを目的としたものであり、購入や計画の判断材料として使用することはお控えください。すべての項目は変更や未更新の可能性があります。開発、リリース、およびタイミングについては、予告なく内容を変更または削除する場合があります。*",[674,673,9,676,1084,771],{"slug":1190,"featured":90,"template":681},"gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai","content:ja-jp:blog:gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai.yml","Gitlab Duo Workflow Enterprise Visibility And Control For Agentic Ai","ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai.yml","ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"_path":1196,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1197,"content":1203,"config":1210,"_id":1212,"_type":13,"title":1213,"_source":15,"_file":1214,"_stem":1215,"_extension":18},"/ja-jp/blog/gitlab-for-agile-software-development",{"title":1198,"description":1199,"ogTitle":1198,"ogDescription":1199,"noIndex":6,"ogImage":1200,"ogUrl":1201,"ogSiteName":694,"ogType":695,"canonicalUrls":1201,"schema":1202},"GitLab をアジャイルソフトウェア開発で使用する方法","本ブログでは、アジャイルアーティファクトが GitLab 機能にどのようにマッピングされるのか、また、GitLab 内でアジャイルのイテレーションがどのように表示されるのかについてご説明します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097459/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2821%29_2pdp2MNB7SoP4MhhiI1WIa_1750097459157.png","https://about.gitlab.com/blog/gitlab-for-agile-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab をアジャイルソフトウェア開発で使用する方法\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Victor Wu\"},{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2018-03-05\",\n      }",{"title":1198,"description":1199,"authors":1204,"heroImage":1200,"date":1206,"body":1207,"category":744,"tags":1208,"updatedDate":1209},[1205,741],"Victor Wu","2018-03-05","GitLab で[アジャイル開発手法](https://about.gitlab.com/ja-jp/solutions/agile-delivery/)がサポートされているかどうか考えたことはありますか。GitLab の使用を検討中の場合、DevSecOps プラットフォームの機能がどのようにアジャイルのアーティファクトと対応しているのかが分かりにくいかもしれません。そこで、本記事で詳しくご説明します。\n\nアジャイルとは、ここ数十年でソフトウェアエンジニアリング分野に導入された、最も重要で革新的な手法のひとつです。アジャイルの概念に関する細かい用語は統一されていないものの、アジャイル自体は、[アジャイルソフトウェア開発](https://about.gitlab.com/ja-jp/topics/agile-delivery/)プロセスとアジャイルデリバリープロセスを通じて顧客中心の製品を効率的に開発できるなど、ソフトウェア開発チームに大きなプラスの影響を与えてきました。\n\nGitLab は、アジャイルであっても、アジャイルの影響を受けた手法であっても、ソフトウェア開発の手法に柔軟に適応できるよう設計されています。この記事では、アジャイルアーティファクトを簡単に GitLab 機能にマッピングさせる方法をご紹介し、お客様が GitLab を使用することで、パフォーマンスの良い[アジャイルソフトウェアデリバリーチーム](https://about.gitlab.com/ja-jp/solutions/agile-delivery/)をどのように運営しているのかを解説します。\n\n## アジャイルアーティファクトを GitLab 機能にマッピングする\n\n### アジャイルアーティファクト &#8594; GitLab 機能\n\n- ユーザーストーリー –> [イシュー](https://docs.gitlab.com/ee/user/project/issues/) \n- タスク –> [タスク](https://docs.gitlab.com/ee/user/tasks.html) \n- エピック –> [エピック](https://docs.gitlab.com/ee/user/group/epics/) \n- ポイントと推定 –> [イシューのウェイト](https://docs.gitlab.com/ee/user/project/issues/issue_weight.html) \n- プロダクトのバックログ –> [イシューボード](https://docs.gitlab.com/ee/user/project/issue_board.html)\n- スプリント／イテレーション –> [イテレーション](https://docs.gitlab.com/ee/user/group/iterations/) \n- アジャイルボード –> [イシューボード](https://docs.gitlab.com/ee/user/project/issue_board.html) \n- チームワークロード –> [イシューボード](https://docs.gitlab.com/ee/user/project/issue_board.html) \n- バーンダウンチャート –> [バーンダウンチャート](https://docs.gitlab.com/ee/user/project/milestones/burndown_and_burnup_charts.html)\n\n## GitLabで行うアジャイルのイテレーション\n\n### ユーザーストーリー &#8594; GitLab イシュー\n\nアジャイルソフトウェア開発手法では、通常、ユーザーストーリーの作成から始めます。ユーザーストーリーでは、1つの機能に対する理解を深め、ユーザーにビジネス価値を提供するために必要な要素を明確にします。GitLab では、[イシュー](https://docs.gitlab.com/ee/user/project/issues/) (英語版) を作成します。GitLab のイシューはタスクやプロジェクトを管理する効果的な手法であり、アジャイルチームにとって不可欠です。ソフトウェアデベロッパーはイシューの作成、割り当て、追跡を行い、責任の明確化と進捗の可視化を実現できます。イシューには、担当者、イテレーション、ウェイト、ラベルといった重要なメタデータが含まれており、ソフトウェア開発プロセス全体を通じてタスクの優先順位付けやワークフローの管理が強化されます。さらに、ディスカッションスレッド、添付ファイル、リアルタイムでの通知により、チームが効率的にイシューに取り組むことができるため、スムーズなコミュニケーションが促進され、優れたチームワークが発揮されます。\n\n![GitLabイシューのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097468/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097468371.png)\n\nGitLab のイシューは、冒頭にタイトルがあり、その下にビジネス価値やユーザーストーリーに関連するペルソナといった詳細を記載できます。右側のサイドバーには、イシューが紐付けられている親エピックや、イシューのイテレーション、イシューのウェイトなど、他のアジャイル対応機能と統合されており、推定工数を反映しています。\n\n### タスク &#8594; タスク\n\nユーザーストーリーは多くの場合、個々のタスクに細分化されます。GitLab の[タスク](https://docs.gitlab.com/ee/user/tasks.html)(英語版) を使用すると、アジャイルチームはユーザーストーリーを個々の作業に細分化できるため、効率的にプロジェクト管理を進められます。この機能は、ソフトウェアデベロッパーがプロジェクト内でタスクを作成、割り当て、追跡できるようにすることで、アジャイルフレームワークをサポートします。タスク管理を GitLab に直接統合することによって、チームは一貫したワークフローを維持し、ソフトウェア開発プロジェクトのあらゆるアクテビティを簡単に追跡、管理できます。\n\n![GitLab を使ったタスク管理とプロジェクト追跡を示すスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097468372.png)\n\nGitLabを使用して正確なタスク管理とプロジェクト追跡を行うことで、ユーザーに提供する価値を高められます。タスクも、担当者、イテレーション、ウェイト、ラベル、タイムトラッキング、コラボレーション機能など、イシューと同じメタデータを備えています。この包括的な各種機能により、アジャイルチームやプロジェクトマネージャーはワークロードの効果的な管理、タスクの優先順位付け、ソフトウェアデベロッパー間のシームレスなコラボレーションを実現できます。\n\n### エピック &#8594; GitLabエピック\n一方、アジャイルを使用する人の中には、エピックと呼ばれる抽象化したものをユーザーストーリーの上に指定する人もいます。エピックとは、複数の機能から構成されている大きなユーザーフローを指します。GitLab の[エピック](https://docs.gitlab.com/ee/user/group/epics/) (英語) には、イシューと同様にタイトルと説明が記載されます。また、複数の子イシューも表示させることができ、階層構造が一見して分かります。\n![ネストされたGitLabエピックのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097468374.png)\n\nGitLab では、 最大9 階層までのエピックをネストできるため、アジャイルチームは大規模なプロジェクトも効果的に構築、管理することができます。この階層構造により、プロジェクトのロードマップが明確に示され、ソフトウェアデベロッパーやプロジェクトマネージャーが複雑なイニシアティブを管理しやすいサイズに細分化しやすくなります。子エピックや[紐付けされたエピック](https://docs.gitlab.com/ee/user/group/epics/linked_epics.html) (英語) を活用すると、チームは進捗状況、依存関係、プロジェクトのマイルストーンを的確に追跡できるため、コラボレーションの向上と、一環したアジャイルデリバリーを実現できます。\n\n### プロダクトバックログ &#8594; GitLabイシューボード\n\nプロダクトやビジネスのオーナーは通常、ビジネスや顧客のニーズを反映させるためにユーザーストーリーを作成します。ユーザーストーリーは緊急性や開発希望順に基づいてプロダクトバックログ内で優先順位が付けられます。プロダクトオーナーは関係者とコミュニケーションをとり、優先順位を決定したり継続してバックログを調整します。GitLab には[イシューボード](https://docs.gitlab.com/ee/user/project/issue_board.html) (英語版) があり、イテレーションをリストとして整理できるほか、ドラッグアンドドロップで作業を進められるため、アジャイルでのバックログが簡単に優先順位付けできたり、ストーリーを次のスプリントに割り当てたりできます。\n\n![GitLabイシューボードのGIF画像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/WIP_limit_aHR0cHM6_1750097468376.gif)\n\n### スプリント &#8594; GitLabイテレーション\n\nアジャイルにおけるスプリントとは、作業が完了するまでの期限を指します。 1 週間、数週間、または 1 ヶ月以上になることもあります。プロダクトオーナーと開発チーム間で検討を重ね、次のスプリントのスコープとなる作業を決定します。GitLab の[イテレーション](https://docs.gitlab.com/ee/user/group/iterations/) (英語版) 機能ではイテレーションに開始日と終了日を設定し、イテレーションの期間を把握できます。次に、チームは特定のイテレーションにイシューを割り当て、スプリントに取り込みます。\n\nイテレーションを使用することで、GitLab の強化されたアジャイルプロジェクト管理機能を活用して、アジャイルのプランニングならびにデリバリーにおける可視性とコントロールを向上できます。\n\n### ポイントと推定 &#8594; GitLabイシューのウェイト\n\nこの章にあるリンクはすべて英語版です。\n\nまた、この段階でユーザーストーリーが共有され、スコープ内の各ユーザーストーリーごとに技術的工数の推定が行われます。GitLab では、イシューには[ウェイト](https://docs.gitlab.com/ee/user/project/issues/issue_weight.html)属性があり、工数の推定に使用されます。\n\nこの時点（またはこの後の段階）で、ユーザーストーリーがさらに技術的な成果物に細分化されたり、技術計画やアーキテクチャがドキュメント化されたりすることもあります。GitLab では、この情報をイシューか[マージリクエストの説明](https://docs.gitlab.com/ee/user/project/merge_requests/)に記載します。技術的なコラボレーションはマージリクエストで行われることが多いためです。\n\nスプリント (GitLabのイテレーション) 中、ソフトウェア開発チームのメンバーは取り組むユーザーストーリーをひとつずつ選びます。GitLab では、イシューに担当者を指定できます。イシューに自分を[割り当てる](https://docs.gitlab.com/ee/user/project/issues/multiple_assignees_for_issues.html)ことで、現在その作業に取り組んでいることを明示します。コードの最初の一行を書く前に[イシューに紐付けた空のマージリクエストを作成する](https://docs.gitlab.com/ee/user/project/issues/)ことをお勧めします。そうすることで技術的なコラボレーションプロセスをすぐに開始できます。\n\n### アジャイルボード &#8594; GitLabイシューボード\n\nこの章にあるリンクはすべて英語版です。\n\nアジャイルでは、スプリントの間、イシューは特定の組織のワークフローに応じて「`Ready for dev` (開発準備完了)」「`In dev` (開発中)」「`In QA` (QA 中)」「`In review` (レビュー中)」「`Done` (完了)」など、さまざまなステージを経て進行していきます。\n\n通常、これらのステージがアジャイルボードの列として表示されます。GitLab では、[イシューボード](https://docs.gitlab.com/ee/user/project/issue_board.html)でステージを定義し、イシューをステージ間で移動させることができます。チームは、イテレーションやその他の関連属性に応じて[ボードを設定](https://docs.gitlab.com/ee/user/project/issue_board.html#board-with-configuration)できます。毎日のスタンドアップミーティングでは、チームメンバーが一緒にボードを見て、ワークフローの観点からスプリントの進捗状況を確認します。\n\n![GitLabイシューボードのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097468378.png)\nGitLab イシューボードは、GitLab イシューリストと同様、イシューを動的にプルしますが、より柔軟なワークフローも可能です。ボードに個別のリストを設定すれば、アジャイルボードのステージを反映できます。このようにして、チームはユーザーストーリーが「`Ready for dev` (開発準備完了)」から「`Released to production` (本番環境にリリース)」まで推移していくのを管理、追跡できます。\n\n### チームワークロード &#8594; GitLabイシューボード\n\nアジャイルチームは、GitLab 内で担当者別でフィルタリングされたリストを持つイシューボードを作成して、ワークフローを最適化できます。この機能により、チームメンバー間のタスクの分配が可視化され、アジャイルデリバリーが強化されます。担当者ごとのリストを作成するには、プロジェクトまたはグループに移動し、「ボード」セクションで新規ボードを作成し、各担当者用の[リストを追加](https://docs.gitlab.com/ee/user/project/issue_board.html#create-a-new-list) (英語) します。イシューをチームメンバーに割り当てると、対応するリストに割り当てが自動的に表示されます。この動的なビューにより、作業負荷のバランスを取りながら効果的なタスク管理を行うことができます。\n\n![整理されたGitLabイシューボードのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097468380.png)\n\n[スコープラベル]を使用すると、担当者別またはスクワッド別にイシューボードを整理できます。GitLabのイシューボードは非常に幅広く、ソフトウェア開発ライフサイクル全体のワークフローをサポートします。\n\n### バーンダウンチャート &#8594; GitLabバーンダウンチャート\n\nこの章にあるリンクはすべて英語版です。\n\n開発チームは、リアルタイムでプロジェクトが順調に進んでいるかどうかを把握し、リスクが発生した場合にはそれを軽減したいと考えます。GitLab の[バーンダウンチャート](https://docs.gitlab.com/ee/user/project/milestones/burndown_and_burnup_charts.html)を使用すれば、チームは現在のスプリントのスコープとなっている作業が完了するにつれて「バーンダウンする（作業量が減少していく）」様子を視覚化できます。\n\nスプリントの終わりに近づくと、開発チームは完成した機能のデモをさまざまな関係者に向けて実施します。GitLab では、[レビューアプリ](https://docs.gitlab.com/ee/ci/review_apps/index.html)を使うことでこのプロセスが簡素化され、まだ本番環境にリリースされていないコードでも、さまざまなテスト、ステージング、または UAT 環境でデモを行うことができます。レビューアプリと [CI/CD 機能](https://docs.gitlab.com/ee/ci/)は、マージリクエスト自体に統合されています。\n\nデベロッパーやQA担当者は、こうしたツールを活用してCI/CDによる自動テストやレビューアプリ環境での手動テストを行い、ソフトウェアの品質を維持しています。\n\n![GitLabバーンダウンチャートのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097469/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097468381.png)\n\nGitLabのバーンダウンチャートを使用すると、チームはスプリントのスコープとなっている作業が完了する様子を追跡できます。そのため、リスクに早期に対処し、それに応じて調整を行えます。たとえば、ある機能が次のスプリントに遅れることが見込まれている場合、それを関係者に知らせることができます。\n\nアジャイルスプリントの最後に行われるチームレトロスペクティブ（振り返り）は、GitLab の [wiki](https://docs.gitlab.com/ee/user/project/wiki/index.html) に記録できるため、学んだ教訓や対処項目などを長期にわたって追跡できます。実際のレトロスペクティブでは、チームは[イテレーションレポート](https://docs.gitlab.com/ee/user/group/iterations/#iteration-report)を見ながら、バーンダウンチャートや完了したスプリントに関するその他の統計などを確認することができます。\n\n## GitLabでアジャイルを試してみよう\nアジャイルにおけるプロジェクトマネジメントをレベルアップさせませんか？GitLab は、アジャイルチーム、ソフトウェアデベロッパー、プロジェクトマネージャー向けに特化した包括的な機能を提供し、円滑なコラボレーションと効率的なワークフローを実現します。GitLab の価格オプションをご覧いただき、無料トライアルを始めましょう。GitLab がどのようにアジャイルデリバリープロセスを変革できるかをぜひご体感ください。\n\n> [GitLab アジャイルプランニングについてさらに詳しく知り](https://about.gitlab.com/ja-jp/pricing/)、今すぐGitLabでアジャイルを始めましょう。\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n",[746,9,771,768],"2025-03-19",{"slug":1211,"featured":6,"template":681},"gitlab-for-agile-software-development","content:ja-jp:blog:gitlab-for-agile-software-development.yml","Gitlab For Agile Software Development","ja-jp/blog/gitlab-for-agile-software-development.yml","ja-jp/blog/gitlab-for-agile-software-development",{"_path":1217,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1218,"content":1224,"config":1230,"_id":1232,"_type":13,"title":1233,"_source":15,"_file":1234,"_stem":1235,"_extension":18},"/ja-jp/blog/gitlab-premium-with-duo",{"title":1219,"description":1220,"ogTitle":1219,"ogDescription":1220,"noIndex":6,"ogImage":1221,"ogUrl":1222,"ogSiteName":694,"ogType":695,"canonicalUrls":1222,"schema":1223},"GitLab PremiumおよびUltimateのすべてのユーザーにAIの恩恵を","このたび、GitLab PremiumおよびUltimateで「GitLab Duo」の基本機能を追加料金なしでご利用いただけるようになりました。この機能により、ソフトウェア開発ライフサイクル全体をとおしてコードの作成・理解を支援するAI機能をご活用いただけます。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660188/Blog/Hero%20Images/blog-premium-with-duo-cover-0756-fy26-v2-1800x945.png","https://about.gitlab.com/blog/gitlab-premium-with-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab PremiumおよびUltimateのすべてのユーザーにAIの恩恵を\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2025-05-15\",\n      }",{"title":1219,"description":1220,"authors":1225,"heroImage":1221,"date":1226,"body":1227,"category":676,"tags":1228,"updatedDate":1229},[1122],"2025-05-15","GitLab 18.0をリリースしました。このリリースでは、DevSecOpsの中核となるワークフロー、セキュリティとコンプライアンスの向上、そしてAI技術における革新的な進化と未来像が凝縮されています。**本リリースに合わせて、GitLab PremiumおよびUltimateで、GitLab Duoの基本的なAI機能を追加料金なしでご利用いただけるようになりました。** PremiumおよびUltimateのお客様は全員、サポートされているソースコードエディタやIDEから直接、GitLab Duoコード提案とGitLab Duo Chatをすぐにご利用いただけます。\n\n## すべての開発チームにAIを\n\n人工知能（AI）は今や、デベロッパーエクスペリエンスの中核をなしています。AIは、コードベースの分析、入力中リアルタイムでの提案の提供、プロジェクトのコンテキストに基づいた関数やメソッドの作成、繰り返しの作業の軽減、コードレビューの自動化など、さまざまな方法でコーディングを強化します。\n\nこの数年間、当社ではこうした生成AIやエージェント型AIの機能をGitLabプラットフォームに統合するために[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を開発してきました。GitLabが実施した[グローバルDevSecOps調査](https://about.gitlab.com/ja-jp/developer-survey/)によると、デベロッパーはコード作成以外のタスクに作業時間の79%を費やしています。コード作成はソフトウェアライフサイクルの始まりに過ぎないため、当社ではソフトウェア開発ライフサイクル全体をとおしてAIを統合する戦略を採用してきました。\n\n本リリースではこの戦略をさらに進め、デベロッパーのみなさまが追加料金なしでAIの恩恵を受けられるように、GitLab PremiumおよびUltimateプランにGitLab Duoの基本機能を追加しました。\n\nPremiumとUltimateでChatとコード提案をご利用いただけるようになったことで、すべてのソフトウェアエンジニアが、さまざまなツールやライセンス、そして管理体制を必要とせずに、IDE内でワークフローを高速化できます。既存のPremiumおよびUltimateのお客様は全員、GitLab 18.0へのアップグレード後にすぐにChatとコード提案をご利用いただけるようになります。また、この機能強化は新規のお客様には標準機能として提供されます。\n\n> **「GitLabはすでに、分散されたツールチェーンへの依存を排除し、これにより連携していないソリューションにかかるコストを削減し、ワークフローを効率化する上で重要な役割を果たしています。GitLab PremiumにGitLab Duoを追加することで、さらなる効率化とコスト削減が期待できます。日常的なコーディング作業にかかる時間が削減されるため、デベロッパーは真のビジネス価値を生み出す複雑な課題に、より多くの時間を費やせるようになります。」**\n>\n>- McKenzie Intelligence Services社、最高技術責任者、Andrei Nita氏\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1083723619?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\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Premium with Duo Core\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\u003Cbr>\u003C/br>\n\n本リリースから、PremiumおよびUltimateのお客様は、以下のAIネイティブ機能をご利用いただけます。\n\n#### GitLab Duoコード提案\n\n* コメントから完全な関数やコードブロックを生成 \n* 入力時にAIによる的確なコード補完を実行\n* 20以上のプログラミング言語をサポート\n* 主要なIDE各種で利用可能\n\nコード提案機能については、こちらの操作ガイドをご覧ください（ツアーを開始するには以下の画像をクリックしてください）。\n\n\u003Ca href=\"https://gitlab.navattic.com/code-suggestions\">\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752175911/Blog/b5gdnls7jdyrpeyjby5j.png\" alt=\"GitLab Duo Code Suggestions cover image\">\u003C/a>\n\n詳細については、[コード提案のドキュメント](https://docs.gitlab.com/user/project/repository/code_suggestions/)でもご確認いただけます。\n\n#### GitLab Duo Chat\n\n* 馴染みのないコードを分かりやすく解説し、複雑な機能の理解をサポート\n* 既存のコードをリファクタリングして品質と保守性を向上\n* バグを早期に発見できるように、包括的なテストケースを自動作成\n* ワークフロー内でコードの問題を直接修正\n\n![ChatによるAPIエンドポイントの説明](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673912/Blog/Content%20Images/Duo_Chat_-_gif_-_API_endpoint_explanation__3_.gif)\n\n詳細については、[Duo Chatのドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/)をご覧ください。\n\n> **「私たちGitLabユーザーにとって、GitLab Duoのインテリジェントなコード提案は、デベロッパーの日常業務を支える資産となっています。Chat機能と組み合わせることで、即時にフィードバックを得て改善できるため、開発サイクルが加速し、より安全なコードベースが実現できています。ワークフローにシームレスに統合された強力な機能です。」**\n>\n>- Ignite by FORVIA HELLA社、最高技術責任者、Felix Kortmann氏\n\n## GitLab Premiumのお客様もGitLab Duo Enterpriseをご利用可能に\n\n多くのお客様からのご要望に応え、[GitLab Premium](https://about.gitlab.com/ja-jp/pricing/premium/)をご利用のお客様は、GitLab UltimateにアップグレードすることなくAI機能をフル搭載したGitLab Duo Enterpriseをご購入いただけるようになりました。Premiumのお客様は、ソフトウェア開発ライフサイクル全体にシームレスに統合された、充実したAI機能をご活用いただけます。\n\nDuo Enterprise のパワフルな機能ラインナップは次のとおりです。\n\n* [GitLab Duo根本原因分析](https://docs.gitlab.com/user/gitlab_duo/use_cases/#root-cause-analysis-use-cases)：CI/CDパイプラインの失敗を迅速に解決して、パイプラインを健全に保ちます。  \n* [GitLab Duoコードレビュー](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code)：GitLab Duoをコードレビュアーとして活用することで、マージリクエストのレビューを高速化します。  \n* [高度なチャット](https://docs.gitlab.com/user/gitlab_duo_chat/)：会話の内容を要約し、コード変更を理解できるように支援するほか、複雑な設定のサポートを提供します。  \n* [GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/)：使用が許可されたAIモデルを社内でホスティングすることで、インターネット未接続（エアギャップ）環境やオフライン環境でもGitLab Duoを活用できます。\n\nGitLab Duo Enterpriseの提供と並行して、今GitLab Premiumの価値向上に向けた投資も強化しています。GitLab 17のリリース以降、以下を含む[100件を超える機能や改善を実装してきました](https://gitlab.com/gitlab-org/gitlab/-/releases)。\n\n* [CI/CDカタログ](https://about.gitlab.com/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch/)：デベロッパーが既存のCI/CDコンポーネントや設定を共有、検索、再利用できる一覧ページ  \n* [アーティファクトレジストリ](https://docs.gitlab.com/user/packages/virtual_registry/)：デベロッパーにアーティファクトへの安全なアクセスを提供するとともに、CI/CDパイプラインとのシームレスな統合を実現  \n* [リモート開発](https://docs.gitlab.com/user/project/remote_development/)：デベロッパーがオンデマンドのクラウドベースの開発環境で作業できるように支援する機能\n\n> [GitLab Premiumの詳細はこちらをご覧ください。](https://about.gitlab.com/ja-jp/pricing/premium/)\n\n## GitLab Duo：組織の現在のステージに対応するAI\n\nGitLabは、ProからEnterpriseまで多彩なDuoサービスをご用意しており、お客様のAI導入段階に最適なソリューションをお選びいただけます。チームのAI活用レベルが高まるにつれて、より多くの機能を活用して、安全なソフトウェアをより迅速にビルド、テスト、デプロイすることができます。\n\n![GitLab Duoプランの主な機能](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673912/Blog/Content%20Images/Screenshot_2025-05-14_at_8.50.34_AM.png)\n\n## GitLab UltimateおよびPremiumの既存のお客様がGitLab Duoを使い始めるには\n\nGitLab 18.0以降、UltimateとPremiumの既存のお客様は、コード提案とChatがデフォルトではオフになっていますが、以下の手順で簡単に有効にできます。\n\nGitLab PremiumおよびUltimateでGitLab Duoを利用する手順：\n\n1. GitLab PremiumまたはUltimateを利用中であることを確認します。いずれも導入していない場合は、無料トライアルを開始できます。  \n2. 組織の設定で、GitLab Duoを有効にします。  \n3. ローカルIDEを使用している場合は、対応するGitLab[エディタ拡張機能](https://docs.gitlab.com/editor_extensions/#available-extensions)をインストールします。  \n4. サポートされているローカルIDEまたはGitLab Web IDEで、コード提案やChatの利用を開始します。\n\n**注**：新規ユーザーまたはトライアル中の場合、GitLabのAI機能が自動的に有効になります。\n\n## AIネイティブ開発にはDevSecOpsプラットフォームが不可欠\n\n今やAIによって、デベロッパーエクスペリエンスは根本から再構築されつつあります。これからの組織では、ソフトウェア開発に携わる人員が単に増えるだけではなく、AIによって本番環境向けコードの量も増えることになります。**そのため、GitLabの存在価値がはかつてないほど高まっています。** \n\n当社では、この新時代に向け、GitLab Duoを備えたGitLab PremiumおよびUltimateを構築しました。これによりチームは、あらゆるコードを安全に一元管理できる環境を構築できます。組織全体でAIがコードを生成する環境下で、GitLabが司令塔としての役割を担います。セキュリティスキャンやコンプライアンスチェック、パイプライン管理のために別々のツールを導入する必要はありません。組織の成長に合わせてスケールする単一の統合プラットフォームで、各コードが本番環境へのリリース前に基準を満たしているかを確認できます。AIによって開発速度が加速する中、GitLabを使えば全工程を通じて一貫性のあるコントロール、セキュリティ、品質を保てます。\n\n> チームの生産性を向上させるGitLab Duoの活用方法については、[GitLab Premiumのページをご覧ください](https://about.gitlab.com/ja-jp/pricing/premium/)。すでにGitLabをご利用の場合は、GitLab担当者にご連絡いただき、デモンストレーションをご予約ください。また、2025年6月24日に[GitLab 18バーチャルリリースイベント](https://about.gitlab.com/eighteen/)を開催します。AIとともに進化するソフトウェア開発の未来像を探る機会となりますので、ぜひご参加ください。\n\n*本ブログは、[Unlocking AI for every GitLab Premium and Ultimate customer](https://about.gitlab.com/blog/gitlab-premium-with-duo/)の抄訳です。内容に相違がある場合は、原文が優先されます。*",[673,674,1084,9,676],"2025-05-19",{"slug":1231,"featured":90,"template":681},"gitlab-premium-with-duo","content:ja-jp:blog:gitlab-premium-with-duo.yml","Gitlab Premium With Duo","ja-jp/blog/gitlab-premium-with-duo.yml","ja-jp/blog/gitlab-premium-with-duo",{"_path":1237,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1238,"config":1241,"content":1243,"_id":1250,"_type":13,"title":1251,"_source":15,"_file":1252,"_stem":1253,"_extension":18},"/ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"title":1239,"description":1240},"GitLab Duo Agent PlatformがDataOpsを変革する方法","本ブログでは、dbtモデル作成方法を詳しく解説し、何時間もかかっていた手動コーディングを、わずか数分の自動生成に変える方法をご紹介します。",{"slug":1242,"featured":90,"template":681},"how-gitlab-duo-agent-platform-transforms-dataops",{"title":1239,"description":1240,"authors":1244,"heroImage":1246,"date":1247,"category":679,"tags":1248,"body":1249},[1245],"Dennis van Rooijen","blog/hero%20images/workflow_1800x945.png","2025-09-16",[676,678,9],"dbtモデルの手動作成は、データエンジニアにとって何時間も取られる単調な作業です。特に大きなビジネス変換がない場合、エンジニアのデータ業務の中でも最もやりがいを感じにくい部分と言えるでしょう。\n\nしかし、このプロセス全体を自動化できるとしたらどうでしょうか？本ブログでは、[GitLab Duo Agent Platform](https://about.gitlab.com/gitlab-duo/agent-platform/)を使用して、適切な構造、テスト、ドキュメントを含む包括的なdbtモデルをわずか数分で生成する方法を詳しく解説します。\n\n## 何を構築するのか\n\nマーケティングチームは、広告投資を効果的に管理・最適化したいと考えています。広告プラットフォームの一つがRedditであるため、Reddit Ads APIからエンタープライズ[データプラットフォーム](https://handbook.gitlab.com/handbook/enterprise-data/platform/)Snowflakeにデータを抽出しています。GitLabでは、3つのストレージレイヤーがあります：\n\n1. `raw`レイヤー - 外部ソースからの未処理データの最初の着陸地点。ビジネス用途に準備されていない\n2. `prep`レイヤー - ソースモデルを含む最初の変換レイヤー。まだ一般的なビジネス用途には準備されていない\n3. `prod`レイヤー - ビジネス用途とTableauレポート用に準備された最終変換データ\n\n![ストレージレイヤーのチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png)\n\nこの実践ガイドでは、データは既に抽出ツールFivetranによってrawレイヤーに配置されており、`prep`レイヤーから`prod`レイヤーまでデータを処理するdbtモデルを生成します。\n\n一行のdbtコードを自分で書くことなく、このガイドを最後まで進めると以下が完成します：\n\n- prepレイヤーの**ソースモデル**\n- prodレイヤーの**ワークスペースモデル**\n- Reddit Adsデータセットのすべての13テーブル（112列を含む）の**完全なdbt構成**\n- 結果を検証する**テストクエリ**\n\nプロセス全体は10分以内で完了します。手動では通常数時間かかる作業です。以下の手順に従ってください：\n\n## 1. データ構造の準備\n\nGitLab Duoがモデルを生成する前に、完全なテーブル構造を理解する必要があります。そこで重要になるのが、Snowflakeの情報スキーマに対してクエリを実行することです。現在、GitLab DuoをModel Context Protocol（[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)）経由でSnowflakeインスタンスに接続する方法を検討中です：\n\n```sql\nSELECT \n    table_name,\n    column_name,\n    data_type,\n    is_nullable,\n    CASE \n        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'\n        ELSE NULL \n    END as key_type\nFROM raw.information_schema.columns\nWHERE table_schema = 'REDDIT_ADS'\nORDER BY table_name, ordinal_position;\n```\n\nこのクエリは以下を取得します：\n\n- すべてのテーブル名と列名\n- 適切なモデル構造のためのデータ型\n- NULL制約\n- 主キーの識別（このデータセットでは非NULL列）\n\n**ポイント：** Reddit Adsデータセットでは、すべての非NULL列が主キーとして機能するパターンになっています。実際に`ad_group`などのテーブルを確認したところ、このテーブルには2つの非NULL列（`account_id`と`id`）があり、両方とも主キーとしてマークされています。このクエリを実行すると112行のメタデータが返されたため、それらをCSVファイルとしてエクスポートしてモデル生成に使用しました。この手動ステップは現在は問題なく機能していますが、MCPを介してデータプラットフォームとGitLab Duoの直接統合を調査して、このプロセスの完全自動化を目指して取り組んでいます。\n\n## 2. GitLab Duoのセットアップ\n\n[GitLab Duo](https://docs.gitlab.com/user/get_started/getting_started_gitlab_duo/)と対話する方法は2つあります：\n\n1. **Web UIチャット機能**\n2. **Visual Studio Codeプラグイン**\n\ndbtモデルをローカルで実行してテストできるため、VS Codeプラグインを選択しました。\n\n## 3. 「効果的な」プロンプトの入力\n\nすべてのdbtコードを生成するために使用した実際のプロンプトは以下の通りです：\n\n```yaml\nCreate dbt models for all the tables in the file structure.csv.（structure.csvファイル内のすべてのテーブルに対してdbtモデルを作成してください）\n\nI want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.（主キーに基づいてデータの重複を除去するフィルターを使用してソースモデルを作成したいです。これらを新しいフォルダーreddit_adsに作成してください。）\nI want to have workspace models created and store these in the workspace_marketing schema.（ワークスペースモデルを作成し、これらをworkspace_marketingスキーマに保存してください。）\n\nTake this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. \n（このMRを例として参考にしてください： [以前のソース実装を参照]。これはSource Aで実施した内容ですが、同様の処理をReddit Adsに対して行う必要があります。）\n\nPlease check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/（コードを作成する際は、dbtスタイルガイドをチェックしてください）\n```\n\nこのプロンプトが効果的だった理由：\n\n- ソースモデルとワークスペースモデル両方の**明確な仕様**\n- 以前の類似マージリクエストからの**参考例**\n- コードの品質と一貫性を確保するための**スタイルガイド参照**\n- 適切な構成管理のための**特定のスキーマ指定**\n\n## 4. GitLab Duoのプロセス\n\nプロンプトを送信した後、GitLab Duoが作業を開始しました。生成プロセス全体は数分かかり、その間にGitLab Duoは以下を行いました：\n\n1. CSV入力ファイルを**読み取り分析**\n2. メタデータから**テーブル構造を調査**\n3. コーディング標準について**dbtスタイルガイドを参照**\n4. 適切な構造化のために**類似のマージリクエストを考慮**\n5. すべての13テーブルの**ソースモデルを生成**\n6. すべての13テーブルの**ワークスペースモデルを作成**\n7. **dbtサポートファイルを生成**：\n   - `sources.yml`構成\n   - テストとドキュメントを含む`schema.yml`ファイル\n   - スキーマ参照で`dbt_project.yml`を更新\n\n## 結果\n\n出力は素晴らしいものでした：\n\n- **変更ファイル1個：** dbt_project.yml（reddit_adsスキーマ構成を追加）\n- **新しいファイル29個：**\n  - **dbtモデル26個**（ソース13個 + ワークスペース13個）\n  - **YAMLファイル3個**\n- **900行近くのコード**が自動生成\n- 主キー列の一意制約を含む**組み込みデータテスト**\n- すべてのモデルと列の**汎用説明**\n- ソースモデルの**適切な重複除去ロジック**\n- GitLab dbtスタイルガイドに従った**クリーンで一貫したコード構造**\n\n```yaml\ntransform/snowflake-dbt/\n├── dbt_project.yml                                                    [MODIFIED]（変更）\n└── models/\n    ├── sources/\n    │   └── reddit_ads/\n    │       ├── reddit_ads_ad_group_source.sql                        [NEW]（新規）\n    │       ├── reddit_ads_ad_source.sql                              [NEW]\n    │       ├── reddit_ads_business_account_source.sql                [NEW]\n    │       ├── reddit_ads_campaign_source.sql                        [NEW]\n    │       ├── reddit_ads_custom_audience_history_source.sql         [NEW]\n    │       ├── reddit_ads_geolocation_source.sql                     [NEW]\n    │       ├── reddit_ads_interest_source.sql                        [NEW]\n    │       ├── reddit_ads_targeting_community_source.sql             [NEW]\n    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEW]\n    │       ├── reddit_ads_targeting_device_source.sql                [NEW]\n    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEW]\n    │       ├── reddit_ads_targeting_interest_source.sql              [NEW]\n    │       ├── reddit_ads_time_zone_source.sql                       [NEW]\n    │       ├── schema.yml                                            [NEW]\n    │       └── sources.yml                                           [NEW]\n    └── workspaces/\n        └── workspace_marketing/\n            └── reddit_ads/\n                ├── schema.yml                                        [NEW]\n                ├── wk_reddit_ads_ad.sql                              [NEW]\n                ├── wk_reddit_ads_ad_group.sql                        [NEW]\n                ├── wk_reddit_ads_business_account.sql                [NEW]\n                ├── wk_reddit_ads_campaign.sql                        [NEW]\n                ├── wk_reddit_ads_custom_audience_history.sql         [NEW]\n                ├── wk_reddit_ads_geolocation.sql                     [NEW]\n                ├── wk_reddit_ads_interest.sql                        [NEW]\n                ├── wk_reddit_ads_targeting_community.sql             [NEW]\n                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEW]\n                ├── wk_reddit_ads_targeting_device.sql                [NEW]\n                ├── wk_reddit_ads_targeting_geolocation.sql           [NEW]\n                ├── wk_reddit_ads_targeting_interest.sql              [NEW]\n                └── wk_reddit_ads_time_zone.sql                       [NEW]\n```\n\n### 生成されたコードのサンプル\n\n生成されたコード品質の例をご紹介します。`time_zone`テーブルについて、GitLab Duoは以下を作成しました：\n\n**Prepレイヤーソースモデル**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ source('reddit_ads','time_zone') }}\n  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1\n),\n\nrenamed AS (\n  SELECT\n    id::VARCHAR                               AS time_zone_id,\n    code::VARCHAR                             AS time_zone_code,\n    dst_offset::NUMBER                        AS time_zone_dst_offset,\n    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,\n    name::VARCHAR                             AS time_zone_name,\n    offset::NUMBER                            AS time_zone_offset,\n    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at\n  FROM source\n)\n\nSELECT * FROM renamed\n```\n\n**Schema.yml**\n\n```yaml\nmodels:\n  - name: reddit_ads_time_zone_source\n    description: Reddit Adsシステムからのタイムゾーンデータ\n    columns:\n      - name: time_zone_id\n        description: Time zone data from Reddit Ads system（タイムゾーンレコードの一意識別子）\n        data_tests:\n          - unique\n          - not_null\n      - name: time_zone_code\n        description: Code for the time zone（タイムゾーンのコード）\n      - name: time_zone_dst_offset\n        description: Daylight saving time offset for the time zone（タイムゾーンの夏時間オフセット）\n      - name: is_time_zone_dst_active\n        description: Flag indicating if daylight saving time is active（夏時間がアクティブかどうかを示すフラグ）\n      - name: time_zone_name\n        description: Name of the time zone（タイムゾーンの名前）\n      - name: time_zone_offset\n        description: Offset for the time zone（タイムゾーンのオフセット）\n      - name: fivetran_synced_at\n        description: Timestamp when the record was last synced by Fivetran（レコードがFivetranによって最後に同期されたタイムスタンプ）\n```\n\n**Source.yml**\n\n```yaml\nsources:\n  - name: reddit_ads\n    database: RAW\n    schema: reddit_ads\n    loaded_at_field: _fivetran_synced\n    loader: fivetran\n    description: Reddit Ads data\n\n    quoting:\n      database: true\n      schema: false\n      identifier: false\n\n    tables:\n      - name: time_zone\n```\n\n**ワークスペースモデル**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ ref('reddit_ads_time_zone_source') }}\n)\n\nSELECT * FROM source\n```\n\n## 5. 品質検証\n\nコードに問題がないことを確認し、MRにプッシュして[CIテストパイプライン](https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes)を実行し、コードのテストと結果検証を行いました。GitLab Duoに検証クエリの作成を依頼しました：\n\n```yaml\nCreate a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.（rawレイヤーとworkspaceレイヤー間の行数をテストするクエリを作成してください。重複除去を実施しているため、主キーに対してdistinctを使用して比較できます。）\n```\n\nAIが生成した包括的な検証クエリには、以下が含まれています:：\n\n- rawレイヤーとワークスペースレイヤー間の行数を比較\n- 重複除去ロジックに対応\n- 全13テーブルをテスト\n- データ保持率を算出\n\n\u003Cdetails>\n\u003Csummary>生成されたSQLテストクエリ\u003C/summary>\n\n```sql\n-- Reddit Ads Row Count Validation Test（Reddit Ads行数検証テスト）\n-- Compares distinct counts between RAW layer and WORKSPACE_MARKETING layer（RAWレイヤーとWORKSPACE_MARKETINGレイヤー間の一意カウントを比較）\n-- Accounts for deduplication logic in source models（ソースモデルの重複除去ロジックを考慮）\n\nWITH raw_counts AS (\n  -- Single primary key tables（単一主キーテーブル）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count\n  FROM RAW.REDDIT_ADS.AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_INTEREST\n),\n\nworkspace_counts AS (\n  -- Workspace layer counts using primary keys from schema.yml（schema.ymlの主キーを使用したワークスペースレイヤーカウント）\n  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE\n  \n  -- Composite primary key tables（複合主キーテーブル）\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST\n)\n\n-- Final comparison with validation results（検証結果との最終比較）\nSELECT \n  r.table_name,\n  r.raw_count,\n  w.workspace_count,\n  r.raw_count - w.workspace_count AS count_difference,\n  CASE \n    WHEN r.raw_count = w.workspace_count THEN '✅ PASS（成功）'\n    WHEN r.raw_count > w.workspace_count THEN '⚠️ RAW > WORKSPACE (Expected due to deduplication 重複除去のため正常)'\n    ELSE '❌ FAIL（失敗） - WORKSPACE > RAW (Unexpected 異常)'\n  END AS validation_status,\n  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage\nFROM raw_counts r\nJOIN workspace_counts w ON r.table_name = w.table_name\nORDER BY r.table_name;\n```\n\n\u003C/details>\n\n![クエリ結果テーブル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png)\n\nこのクエリを実行した結果：\n\n- 重複除去後の行数に**差異なし**\n- 全テーブルで**100%のデータ保持**\n- **すべてのテスト**が正常に完了\n\n## 結論：大幅な時間短縮\n\n- **従来のアプローチ：** 手動コーディング、テスト、デバッグで6-8時間\n\n- **GitLab Duoを活用：** 生成 + レビュー時間で6-8分\n\n開発効率が60倍に向上（6-8時間から6-8分へ）し、高品質なコードを確保できます。\n\n## 成功のためのベストプラクティス\n\n本事例から得られた主要な推奨事項：\n\n### メタデータの準備\n\n- データ型や制約を含む完全なテーブル構造を抽出する\n- 主キーと関係を事前に特定する\n- クリーンで適切にフォーマットされたCSV入力ファイルをエクスポートする\n\n**注：** GitLab DuoをMCP経由で（メタ）データに接続することで、この手動ステップを省略できる可能性があります。\n\n### 明確なコンテキストの提供\n\n- 可能な限り既存のMR例を参照例として示す\n- コーディング標準とスタイルガイドを明示する\n- フォルダー構造と命名規則について明確に指定する\n\n### 徹底的な検証\n\n- データ整合性を確認する検証クエリを必ず作成する\n- マージ前にローカルでテストする\n- CI/CDパイプラインを実行して問題を検出する\n\n### AIを活用したフォロオーアップ作業\n\n- テストクエリを自動生成する\n- ドキュメントテンプレートを作成する\n- 検証スクリプトを構築する\n\n## 今後の展開\n\n本ガイドでは、GitLab DuoをはじめとするAI搭載開発ツールがデータエンジニアリングワークフローをいかに変革しているかを示しました。テスト、ドキュメント、適切な構造を含む数百行の本番対応コードを数分で生成できる能力は、反復的な開発タスクへのアプローチの根本的な転換を表しています。\n\nAIにdbtモデル作成の反復作業を委ねることで、データエンジニアはデータモデリング戦略、パフォーマンス最適化、ビジネスロジック実装などといった、より価値の高い業務に専念できます。\n\n**ぜひお試しください** 小さなデータセットから着手し、メタデータを慎重に準備することで、GitLab Duoが何時間の作業をわずか数分の自動生成に変える様子を実感できます。\n\n> [GitLab Duo Agent Platformを今すぐお試しください。](https://about.gitlab.com/gitlab-duo/agent-platform/)\n\n## さらに読む\n\n- [GitLab 18.3: ソフトウェアエンジニアリングにおけるAIオーケストレーションの拡張](https://about.gitlab.com/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)\n- [GitLab Duo Agent Platform ベータ版：次世代AIオーケストレーション](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta/)\n","content:ja-jp:blog:how-gitlab-duo-agent-platform-transforms-dataops.yml","How Gitlab Duo Agent Platform Transforms Dataops","ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops.yml","ja-jp/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"_path":1255,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1256,"content":1262,"config":1268,"_id":1270,"_type":13,"title":1271,"_source":15,"_file":1272,"_stem":1273,"_extension":18},"/ja-jp/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"title":1257,"description":1258,"ogTitle":1257,"ogDescription":1258,"noIndex":6,"ogImage":1259,"ogUrl":1260,"ogSiteName":694,"ogType":695,"canonicalUrls":1260,"schema":1261},"GitLabのカスタムコンプライアンスフレームワークをDevSecOps環境で活用する方法","新しいフレームワークと、50個を超えるすぐに使えるコントロールを活用することで、これまでひとつずつチェックしていた規制要件を、統合された自動化ワークフローの一部へと変換する方法をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097104/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750097104092.png","https://about.gitlab.com/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLabのカスタムコンプライアンスフレームワークをDevSecOps環境で活用する方法\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fernando Diaz\"}],\n        \"datePublished\": \"2025-04-30\",\n      }",{"title":1257,"description":1258,"authors":1263,"heroImage":1259,"date":1265,"body":1266,"category":770,"tags":1267},[1264],"Fernando Diaz","2025-04-30","コンプライアンスは、単なるチェック項目ではなく、業務リスクから顧客の信頼に至るまで、あらゆるものに影響を与える重要なビジネス機能です。開発チームにとっては、コンプライアンス要件と開発速度のバランスを取ることは特に困難です。GitLabの[カスタムコンプライアンスフレームワーク](https://about.gitlab.com/blog/introducing-custom-compliance-frameworks-in-gitlab/)を使えば、コンプライアンスの確認を開発ワークフローに直接統合することができます。この記事では、この機能の概要と、その効果を最大限に活用する方法についてご紹介します。\n\n## GitLabのカスタムコンプライアンスフレームワークとは？\n\nGitLabのカスタムコンプライアンスフレームワークを使うと、組織は自社のGitLabインスタンス内で、コンプライアンス基準を定義・実装・適用できます。この機能により、GitLabに元々備わっているコンプライアンス機能を拡張し、特定の規制要件や社内ポリシー、業界標準に合わせたカスタマイズ可能なフレームワークを作成できるようになります。\n\nカスタムコンプライアンスフレームワークには、次のようなメリットがあります。\n* 手動での追跡作業にかかる手間を削減\n* 監査対応の準備を加速\n* コンプライアンス制御をGitLab上でネイティブに適用\n\n![フレームワークが一覧表示されたコンプライアンスセンターのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097114254.png)\n\n今回のリリースでは、50個を超えるすぐに使える（OOTB）コントロールが提供されており（今後さらに追加予定）、医療分野のHIPAA、データプライバシーに関するGDPR（EU一般データ保護規則）、サービス組織向けのシステムおよび組織管理（SOC）2、その他業界固有の規制など、組織ごとのコンプライアンスのニーズに合わせて調整できます。OOTBコントロールの一例は以下のとおりです。\n\n* 職務分離（SoD、例：最低2名の承認者が必要、作成者によるマージリクエストの承認）\n* セキュリティスキャナの実行（例：SASTの実行、[依存関係スキャン](https://docs.gitlab.com/user/application_security/dependency_scanning/)の実行）\n* 認証/認可（例：プロジェクトの公開設定が非公開、AuthSSOが必須）\n* アプリケーション構成（例：ステータスチェックが必須、Terraformが必須）\n\nさらに、GitLab APIを使用して外部環境のコントロールを構成することもでき、外部環境のステータスや詳細を確認できます。\n\n## ゼロからカスタムコンプライアンスフレームワークを作成する\n\nその価値を理解できたところで、次はGitLab環境でカスタムコンプライアンスフレームワークを実装する方法を見ていきましょう。デモアプリケーションを使って説明しますので、動画を見ながら一緒に進めてください。\n\n**注：** GitLab Ultimateのサブスクリプションが必要です。\n\n\u003C!-- TODO: EMBED_YT_VIDEO -->\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/bSwwv5XeMdQ?si=unDwCltF4vTHT4mB\" title=\"Adhering to compliance requirements with built-in compliance controls\n\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n**ステップ1：コンプライアンス要件を定義する**\n\nカスタムフレームワークを構築する前に、まずはコンプライアンス要件を明確に定義する必要があります。\n\n1. **適用される規制を特定する：** 自社に適用される規制や標準（例：GDPR、PCI DSS、HIPAA）を確認します。\n2. **各要件に対応するコントロールを割り当てる：** 各規制を、具体的で実行可能なコントロールとして整理します。\n3. **要件に優先順位を付ける：** リスクの高い領域や、影響の大きい要件を優先します。\n\n**ステップ2：カスタムコンプライアンスフレームワークを作成する**\n\n以下の手順でカスタムコンプライアンスフレームワークを作成できます。\n\n1. GitLabグループの**セキュア  > コンプライアンスセンター**セクションに移動します。\n2. **新しいフレームワーク**ボタンを押します。  \n3. **空のフレームワークを作成**を選択します。\n\n![カスタムコンプライアンスフレームワークの作成画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097114255.png)\n\n4. フレームワークの名前、説明、色を設定します。\n\n![「新しいコンプライアンスフレームワーク」の画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097114257.png)\n\n5. フレームワークに要件を追加します：\n   a. ページを下にスクロールして**要件**タブを開きます。\n\n   b. **新しい要件**ボタンをクリックします。\n\n   c. 名前と説明を入力します。\n   d. **コントロール**セクションで**GitLab コントロールを選択**をクリックします。  \n   e. 一覧からコントロールを選択します（例：少なくとも 2 つの承認、SAST の実行など）。 \n   f.  **要求事項を作成**ボタンをクリックします。\n\n![「要求事項を作成」ボタン](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752378652/Blog/oufh8frdwiq1os85byin.png)\n\n6. **フレームワークを作成**ボタンをクリックします。\n\n指定した内容でフレームワークが作成され、プロジェクトに追加できるようになります。また、適切なスキーマに準拠したJSONを使用して、コンプライアンスフレームワークを[インポート](http://TODO)することも可能です。\n\n**ステップ3：プロジェクトにフレームワークを適用する**\n\nフレームワークを作成したら、以下の手順に従います。\n1. コンプライアンスセンターから**プロジェクト**タブを選択します。\n2. 検索バーを使って対象のプロジェクトを**検索**または**絞り込み**ます。 \n3. フレームワークを適用するプロジェクトを選択します。\n4. **一括操作を選択**ボタンをクリックします。\n5. **選択したプロジェクトにフレームワークを適用する**を選択します。\n6. **フレームワークを選択**ボタンをクリックします。\n7. 一覧から適用するフレームワークを選択します。\n8. **適用**ボタンをクリックします。\n\n![SOC 2フレームワークのドロップダウンが表示されたコンプライアンスセンターの画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097114258.png)\n\n適用されたフレームワークは、プロジェクト内で要求事項として可視化され、追跡できるようになります。\n\n**ステップ4：コンプライアンスの状況をモニタリング・報告する**\n\nフレームワークを設定したら、以下のことができるようになります。\n\n1. コンプライアンスセンターを使って、プロジェクト全体のコンプライアンス状況を管理する。不合格となったコントロールの詳細や、推奨される修正方法も確認できます。\n2. 監査や関係者によるレビューへ向けた、**コンプライアンスレポート**を生成する。\n3. **コンプライアンスに関するアラート**を設定し、潜在的な問題を関係者へ通知する。\n4. **監査イベント**で、コンプライアンス設定に対して行われた操作の概要を確認する。\n\n![SOC2テストフレームワークが表示されたコンプライアンスセンターの画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097114260.png)\n\n## 実例：SOC2 コンプライアンスフレームワークの実装\n\nシステムおよび組織管理（SOC）2、通称SOC2は、米国公認会計士協会（AICPA）によって策定された、厳格な監査基準です。SOC2は、サービス組織のセキュリティ、可用性、処理の完全性、機密性、プライバシーに関するコントロールを評価します。詳細については、[GitLabでSOC 2のセキュリティ要件を満たすためのガイド](https://about.gitlab.com/blog/guide-to-fulfilling-soc-2-security-requirements-with-gitlab/)をご覧ください。\n\nそれでは、カスタムコンプライアンスフレームワークを使って SOC2 のセキュリティコンプライアンスを検証する実践的な例を見てみましょう。SOC2 のセキュリティ基準には以下が求められます。\n\n* 不正アクセスを防ぐためのコントロールの導入\n* リスクを特定し、軽減するための手順の確立\n* セキュリティインシデントの検出および対応のためのシステムの構築\n\n**免責事項：** これはSOC2の要件に準拠するために利用可能な一部のコントロールを紹介する例です。本番環境に導入する前に、必ずセキュリティ/コンプライアンスチームと相談してください。\n\nGitLabのOOTB（すぐに使える）コントロールを活用したSOC2用カスタムコンプライアンスフレームワークの例：\n\n* **名前：** SOC2セキュリティ要件\n* **説明：** SOC2フレームワークに準拠するためのセキュリティ要件を追加します\n* **要件：**  \n  * **不正アクセスを防ぐためのコントロールの導入**  \n    * Auth SSOを有効化\n    * CI/CDジョブトークンのスコープを有効化\n    * 組織レベルでMFA（多要素認証）を必須化\n  * **リスクを特定し、軽減するための手順の確立**  \n    * 少なくとも2つの承認\n    * 作成者によるマージリクエストの承認\n    * コミッターによるマージリクエストの承認\n    * デフォルトブランチの保護\n  * **セキュリティインシデントの検出および対応のためのシステムの構築**  \n    * 依存関係スキャンの実行\n    * SASTの実行\n    * DASTの実行\n\nこのフレームワークをプロジェクトに適用することで、コンプライアンスが崩れたタイミングや、再度準拠するために必要な対策を把握できるようになります。なお、1つのプロジェクトに対して複数のコンプライアンスフレームワークを作成・適用することも可能です。たとえば、SOC2のプロセス整合性要件専用のフレームワークを別途設けることもできます。\n\n## コンプライアンス要件を満たすためにセキュリティポリシーを実装する\n\n必須ではありませんが、カスタムコンプライアンスフレームワークを含むプロジェクトにセキュリティポリシーを適用することができます。これにより、特定のコンプライアンス基準がセキュリティポリシーによって強制されることを保証できます。たとえば、セキュリティスキャンを求めるカスタムコンプライアンスフレームワークが適用されたプロジェクトに対して、セキュリティスキャナーの実行を強制できます。\n\nGitLab では、以下のようなさまざまなセキュリティポリシーが提供されています。\n\n* [スキャン実行ポリシー](https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/)：パイプラインの一部または指定されたスケジュールでセキュリティスキャンを実行します。\n* [マージリクエスト承認ポリシー](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/)：スキャン結果に基づいて、プロジェクトレベルの設定や承認ルールを強制します。\n* [パイプライン実行ポリシー](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/)：プロジェクトのパイプラインにおけるCI/CDジョブの実行を強制します。\n* [脆弱性管理ポリシー](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/)：デフォルトブランチで検出されなくなった脆弱性を自動的に解決します。\n\nここでは、SASTスキャナーを実行することで、SASTスキャンを要求する要件への準拠を自動的に行う方法を紹介します。特定のフレームワークが適用されたプロジェクトに対してセキュリティポリシーを作成・適用するには、次の手順に従います。\n\n1. **SAST スキャン**が求められるカスタムコンプライアンスフレームワークが適用されているプロジェクトに移動します。\n2. サイドバーで、**セキュア > ポリシー**の順に選択します。\n3. **新しいポリシー**ボタンをクリックします。\n4. **スキャン実行ポリシー**で、**ポリシーを選択**ボタンをクリックします。\n5. **名前**と**説明**を入力します。\n6. **アクション**で、実行するスキャンとして**SAST**を選択します。\n\n![「アクション」画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097114263.png)\n\n7. **条件**で、すべてのブランチでパイプラインが実行されたときにトリガーされるように設定します。\n\n![「条件」画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097114/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097114264.png)\n\n8. **マージリクエスト経由で設定** ボタンをクリックします。\n9. この時点で、すべてのセキュリティポリシーが含まれた別プロジェクトでマージリクエスト（MR）が作成されます。\n10. **マージ**ボタンをクリックします。\n\nこれで、すべてのブランチでSASTが実行されるようになり、その領域におけるコンプライアンスが保証されます。他にもさまざまな種類のセキュリティポリシーがありますので、要件に合うものを探してみてください。\n\n\n\n## 5つのベストプラクティス\n\nカスタムコンプライアンスフレームワークを最大限に活用するために、以下のベストプラクティスに従いましょう。\n\n1. **小さく始める：** まずは、重要な規制や標準のうち1つから着手し、そこから範囲を広げていきましょう。\n2. **関係者を巻き込む：** フレームワークの作成には、コンプライアンスチーム、セキュリティチーム、デベロッパーチームを含めることが重要です。\n3. **可能な限り自動化する：** GitLab CI/CDを活用して、コンプライアンスチェックの自動化を図りましょう。\n4. **しっかりと文書化する：** フレームワークがどのように規制要件に対応しているか、明確に文書化しておきましょう。\n5. **定期的に見直す：** 規制の変更や新たな要件の発生に応じて、フレームワークを更新するようにしましょう。\n\n## 無料トライアルで今すぐスタート！\n\nGitLabのカスタムコンプライアンスフレームワークは、コンプライアンスを開発ワークフローに直接組み込むことで、DevSecOpsにおける大きな進化をもたらします。カスタムフレームワークを導入することで、コンプライアンス業務の負担を軽減し、リスク管理を強化しながら、規制要件を満たしたまま開発サイクルを加速させることが可能になります。\n\nカスタムコンプライアンスフレームワークを定義・適用できる機能により、チームは自社特有の規制状況に対応する柔軟性を得られる一方で、組織全体のコンプライアンスの慣習を一貫させるために必要な構造も得られます。\n\n今後さらに規制要件が複雑化していく中で、カスタムコンプライアンスフレームワークのようなツールを活用して、コンプライアンスと開発速度のバランスを持続的に両立させることが、ますます重要になるでしょう。\n\n> 今すぐカスタムコンプライアンスフレームワークをお試しになりたい場合は、[GitLab Ultimateの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)にぜひお申し込みください。\n\n## 関連リンク\n\n以下のリソースで、カスタムコンプライアンスフレームワークの詳細や、そのメリットについてご覧いただけます。\n\n* [カスタムコンプライアンスフレームワークのドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/)  \n* [カスタムコンプライアンスフレームワークに関するエピック](https://gitlab.com/groups/gitlab-org/-/epics/13295)  \n* [セキュリティポリシーに関するドキュメント](https://docs.gitlab.com/user/application_security/policies/)  \n* [GitLabのセキュリティおよびコンプライアンスソリューション](https://about.gitlab.com/ja-jp/solutions/security-compliance/)",[770,678,674,9,676],{"slug":1269,"featured":90,"template":681},"how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops","content:ja-jp:blog:how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops.yml","How To Use Gitlabs Custom Compliance Frameworks In Your Devsecops","ja-jp/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops.yml","ja-jp/blog/how-to-use-gitlabs-custom-compliance-frameworks-in-your-devsecops",{"_path":1275,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1276,"content":1282,"config":1288,"_id":1290,"_type":13,"title":1291,"_source":15,"_file":1292,"_stem":1293,"_extension":18},"/ja-jp/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams",{"title":1277,"description":1278,"ogTitle":1277,"ogDescription":1278,"noIndex":6,"ogImage":1279,"ogUrl":1280,"ogSiteName":694,"ogType":695,"canonicalUrls":1280,"schema":1281},"アジャイルプランニングチームに特化したGitLabの新しい「プランナー」ロールのご紹介","GitLabの新しい「プランナー」ロールを活用して、SaaS、GitLab Dedicated、Self-Managedといった各ソリューションでのアクセス権を最適化し、アジャイルチームの計画ワークフローを効率的に管理する方法についてご説明します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662488/Blog/Hero%20Images/blog-image-template-1800x945__3_.png","https://about.gitlab.com/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"アジャイルプランニングチームに特化したGitLabの新しい「プランナー」ロールのご紹介\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-11-25\",\n      }",{"title":1277,"description":1278,"authors":1283,"heroImage":1279,"date":1284,"body":1285,"category":744,"tags":1286,"updatedDate":1287},[741],"2024-11-25","GitLabは、DevSecOpsプラットフォームに新たなロール「プランナー」を導入しました。以前リリースされた[カスタムロール機能と同様に](https://docs.gitlab.com/ee/user/custom_roles.html)、「役割に応じた柔軟なアクセス制御を実現する」というGitLabの戦略に基づいて開発されました。このロールは、ソフトウェア開発チームや計画に携わるユーザーに対し、過剰な権限を付与することなく、アジャイル開発のワークフローを管理するために必要なツールへのアクセス権を提供します。これにより、過剰な権限付与によるセキュリティリスクの増加を防止できます。プランナーロールを活用してユーザーごとの特定のニーズに合わせてアクセスを調整することで、チームは生産性を維持しつつ、セキュリティとコンプライアンスを確保し、[最小権限の原則](https://about.gitlab.com/blog/the-ultimate-guide-to-least-privilege-access-with-gitlab/)を遵守できます。\n\n## プランナーロールが開発された理由\n\nこの新しいロールの開発は、お客様や社内チームからのフィードバックをきっかけに始まりました。GitLabはアジャイル開発サイクルを計画および管理するための包括的なツールを提供していますが、役割に基づくより具体的なアクセス制御が必要だという声が度々寄せられていました。プロダクトマネージャーやプロジェクトリード、その他の計画業務を担当する役割は、計画機能へのアクセスは必要ですが、開発全体の権限は必要ありません。実際、必要以上のアクセス権は、セキュリティリスクだけでなく、コードや重要な設定に意図しない変更を加える可能性も高めるため、好ましくありません。このようなフィードバックを受け、GitLabは対応を進めました。\n\nユーザーへの聞き取り、競合分析、そして徹底的な調査を通じて、新しいロールの必要性が明確になりました。計画ツールへの十分なアクセスを提供しつつ、デベロッパー向けの機能へのアクセスを制限することでセキュリティを確保するロールが求められていました。\n\n## プランナーロールの特徴\n\nプランナーロールは、既存の[ゲストロールとレポーターロール](https://docs.gitlab.com/ee/user/permissions.html#roles)を組み合わせたハイブリッドロールであり、計画ワークフローへのアクセスが必要なユーザー向けに特化して設計されています。\n\nこのロールを使用すると、以下のことを行えます。\n\n* 主要な計画ツール（エピック、ロードマップ、イシューボード、[OKR](https://docs.gitlab.com/ee/user/okrs.html)など）へのアクセスを許可する（*一部の機能はGitLab PremiumまたはGitLab Ultimateのライセンスが必要です*）\n* 機密性の高い開発関連の機能への不要なアクセスを制限することで、セキュリティを強化する\n* プランナーロールをGitLab Enterprise Agile Planningアドオンと併用することで、チームに計画ツールへのカスタマイズされたアクセスを提供しつつ、セキュリティと制御を維持する（*プランナーロール単体はすべてのライセンスプランで利用可能です*）\n\nプランナーロールは、SaaS、GitLab Dedicated、Self-Managedを含むすべてのGitLabソリューションで利用可能となっており、すべてのお客様がこのカスタマイズされたアクセス制御のメリットを活用できます。\n\nこのロールを使用することで、チームは職務に応じて権限を柔軟に調整でき、アクセス性とセキュリティのバランスを確保できます。\n\n## アジャイル手法の実践を後押しするプランナーロールの役割\n\n[アジャイルソフトウェア開発](https://about.gitlab.com/ja-jp/blog/categories/agile-planning/)において、各チームメンバーにそれぞれの役割に即したツールと権限を与えることは、ワークフローを効率化する上で非常に重要です。プランナーロールは、計画チームのメンバーが開発やデプロイといった領域に踏み込み過ぎるリスクを排除しつつ、ソフトウェア開発ライフサイクルの計画段階に適切に参加できるようにすることで、アジャイル開発をサポートします。\n\nプランナーロールは、エピックの作成・管理からロードマップの定義まで、アジャイルチームが連携を保ちながら効率的に業務を進めるために必要なツールを提供します。\n\n## お客様中心の設計\nこのロールは、GitLabが単独で作り上げたものではありません。プロセスのすべての段階でコミュニティの意見を取り入れてきました。具体的には、アンケート調査、インタビュー、テストを通じて、プロダクトマネージャーやプロジェクトマネージャーの実務上のニーズに合致するよう、権限を細かく調整しました。\n\nまた、このロールには「エンタープライズアジャイルチーム向けのプラットフォームを提供する」というGitLabの長年の使命が反映されており、企業がアジャイル開発手法を大規模に導入する上で必要な柔軟性と制御性を提供します。\n\n## コミュニティのフィードバックとエンゲージメント\n\nGitLabでは、皆様からのご意見を大変重視しており、新しいプランナーロールに関するご感想をぜひお聞かせいただきたいと考えています。皆様からのフィードバックは、GitLabの利用体験の改良・改善に欠かせません。ご意見やご提案がありましたら、ぜひ[フィードバック用イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/503817)からお寄せください。\n\n## 今すぐGitLabで計画を始めましょう！\n\nGitLabは、ソフトウェア開発チームの効果的な計画、コラボレーション、デリバリーをさまざまなアプローチを通じて支援しており、プランナーロールはそのうちの一つにすぎません。GitLabは、製品管理ワークフローの効率化、チームコラボレーションの強化、アジャイル手法の整備など、あらゆる目的の達成を支援する充実したツールを取り揃えています。\n\n> GitLabのすべての機能をお試しになりたい場合は、ぜひ[GitLab Ultimateの無料トライアルにご登録](https://about.gitlab.com/ja-jp/free-trial/)ください。チーム独自のニーズに合わせてカスタマイズされたプランナーロールを活用して、次のプロジェクトの計画を始めましょう。\n\n## その他の記事\n- [開発チームだけでなく、あらゆる職務に対応可能なGitLab Enterprise Agile Planningアドオン（英語）](https://about.gitlab.com/blog/gitlab-enterprise-agile-planning-add-on-for-all-roles/)\n- [GitLabをアジャイルソフトウェア開発で使用する方法](https://about.gitlab.com/ja-jp/blog/gitlab-for-agile-software-development/)\n- [初公開：新しくなったGitLabのアジャイル計画（英語）](https://about.gitlab.com/blog/first-look-the-new-agile-planning-experience-in-gitlab/)\n\n\u003Cbr>\n\u003Cbr>\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n",[746,674,9,676],"2025-05-01",{"slug":1289,"featured":90,"template":681},"introducing-gitlabs-new-planner-role-for-agile-planning-teams","content:ja-jp:blog:introducing-gitlabs-new-planner-role-for-agile-planning-teams.yml","Introducing Gitlabs New Planner Role For Agile Planning Teams","ja-jp/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams.yml","ja-jp/blog/introducing-gitlabs-new-planner-role-for-agile-planning-teams",{"_path":1295,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1296,"content":1300,"config":1311,"_id":1313,"_type":13,"title":1314,"_source":15,"_file":1315,"_stem":1316,"_extension":18},"/ja-jp/blog/monday-merge-2025-august-11",{"config":1297,"title":1298,"description":1299},{"noIndex":6},"Monday Merge 8月号","Monday Merge8月号では、",{"date":1301,"title":1298,"category":1084,"tags":1302,"body":1306,"authors":1307,"description":1309,"heroImage":1310},"2025-08-11",[108,673,677,768,269,1303,769,279,9,1084,1304,770,1305],"customers","releases","user stories","GitLabコミュニティのみなさん、こんにちは！今月もソフトウェア開発の最新トレンドをお届けします。\n\n今回のトピックはこちら：\n\n* GitLab Duo Agent Platformのパブリックベータ版がスタート：AIともっとスマートに働く方法とは\n* 現場のニーズに応える最新GitLabリリース情報\n* 世界2,786名のCレベル層に聞いた、AIとソフトウェアイノベーションに関する意識調査\n* 注目イベントやおすすめコンテンツ、NatWest社の導入事例もご紹介\n\nそれでは、さっそく見ていきましょう⚓\n\n# **GitLab Duo Agent Platform：パブリックベータ版がついに登場**\n\n![agent platform](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369419/qascscd3p9azk7ros2nw.png)\n\n従来のAIアシスタントの概念を覆す新しい体験 ── GitLab Duo Agent Platformは、開発・セキュリティ・運用すべてをカバーする次世代のDevSecOpsオーケストレーションエンジンです。パブリックベータ版としての提供がスタートしました。\n\nこれは単なるIDE内のAIボットではありません。複数のAIエージェントがチームの一員として非同期に連携し、計画からリリースまでをトータルでサポートします。\n\n初期搭載されているエージェントは以下の通りです：\n\n* **Chat Agent**：自然言語での質問や汎用的な開発作業をサポート\n* **Developer Agent**：仮想開発環境でマージリクエストを作成\n* **Security Analyst Agent**：脆弱性の検出と修正提案\n* **Deep Research Agent**：リポジトリ全体を分析し、背景を踏まえたインサイトを提供\n* **Software Development Flow**：複数エージェントを連携させて一連の開発タスクを自動化\n\nGitLabのイシュー、パイプライン、CI/CDなど25以上の機能にネイティブにアクセスできるため、コンテキストを理解した精度の高い支援が可能です。さらに今後は、エージェントをカスタマイズし、複雑な作業を自動実行できる「フロー」も登場予定です。\n\nPremiumおよびUltimateプランをご利用中の方は、VS CodeやJetBrains IDEでベータ版を今すぐお試しいただけます。Web UIでも「Duo Agentic Chat」がすでに利用可能です。　\n\n▶︎ [GitLabがオーケストレーションプラットフォームとして持つ独自の強みについて、CEOのBill Staplesが語るインタビューはこちら。導入方法もあわせてご紹介しています。](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta)\n\n[](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta)\n\n# [](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta)**GitLab企業経営調査2025：AI・信頼・7,500億ドルの可能性**\n\n![$750+B](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369415/i8ccbygymqgrxno9vul5.png)\n\nAIは単なるトレンドではありません。世界の開発者2,700万人がAIを活用すれば、7,500億ドル以上の価値が生まれると言われています。最新のGitLab企業経営調査2025では、世界中の経営層2,786名にAIとソフトウェア開発の未来について調査を行いました。\n\n主な調査結果：\n\n* AI活用によって、開発者1人あたり年間28,249ドルのコスト削減を実現（世界中の開発者数で見積もると7,500億ドル規模に）\n* 89％の経営者が、今後3年以内にAIエージェントが業界標準になると予想\n* 懸念点は「サイバー攻撃（52%）」「データのプライバシーとセキュリティ（51%）」「ガバナンスの維持（45%）」\n* 92％が「社員がAIと協働できるようスキルトレーニングが必要」と回答\n\n📥 [レポート全文はこちらからダウンロードできます](https://about.gitlab.com/software-innovation-report)\n\n（日本に特化したレポートは近日中に公開予定）\n\n# **GitLab 18.2がリリースされました**\n\n![GitLab 18.2 Release ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369416/vdubujaphpphyk2n4wnw.png)\n\nGitLab 18.2では、30以上の新機能や改善が追加され、よりスピーディーかつ安全な開発が可能に。今回のアップデートにも、GitLabコミュニティから152件の貢献が寄せられました。ありがとうございます！\n\n注目の新機能：\n\n* ✅ カスタムワークフローステータス：イシューの状態を自社の運用に合わせて柔軟に管理可能に\n* 🧭 Merge Requestページの再設計：ロールやワークフロー別に表示を最適化\n* 🔐不変コンテナタグ： 本番環境への不意な変更を防止\n\n🔗 [全リリース内容はこちら](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release/)\n\n[](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release/)\n\n# **今月のイベント情報：Black Hat USA & OSS EU**\n\n![Black Hat USA & OSS EU](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369416/buoqb3vmhmnsnznqquwj.png)\n\n今月はGitLabチームがイベントに登場します！\n\n📍 Black Hat USA（ラスベガス） – [詳細はこちら](https://www.blackhat.com/us-25/)[\n](https://www.blackhat.com/us-25/)\\\n📍 Open Source Summit Europe（アムステルダム） – 今月後半 👉 [登録はこちら](https://events.linuxfoundation.org/open-source-summit-europe/register/)\n\n開催地にいらっしゃる方は、ぜひお立ち寄りください！ステッカーもご用意しています。\n\n# **お客様事例：NatWest社**\n\n![NatWest](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369415/dr8uwztk6f1akrj7cdsp.png)\n\n金融機関NatWest社は、GitLab Duo Agent Platformを活用して開発スピードと生産性を大幅に向上させています。\n\n「GitLab Duo Agent Platformは、私たちのコードベースと組織構造を理解したうえで、AIが開発ワークフロー全体を支援してくれます。コード・テスト・CI/CDとあらゆる工程にAIが溶け込み、チームの一員として一緒に仕事している感覚があります。開発者はより創造的な仕事に集中できるようになりました」\n— NatWest社エンジニアリングプラットフォームリード Bal Kang\n\n# **今月のおすすめ記事＆動画👀**\n\n![What We're Reading](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369415/mmjg9yy77orkohaureis.png)\n\nGitLabリーダーたちが語る、AI・DevSecOps・ソフトウェアセキュリティの未来。\n\n\u003Chttps://leaddev.com/reporting/the-rise-and-looming-fall-of-acceptance-rate>\n\n\u003Chttps://www.thestack.technology/a-cisos-focus-lessons-from-the-field/>\n\n\u003Chttps://www.raconteur.net/technology/agentic-ai-vibe-coding-oped>\n\n\u003Chttps://thenewstack.io/software-security-imperative-forging-a-unified-standard-of-care/>\n\n\u003Chttps://youtu.be/wZytaN-1URM>\n\n**最後に、今月の名言を**\n\n> 「知性の本当の証は知識ではなく、想像力である」\n> — アルベルト・アインシュタイン\n\n素晴らしいアイデアは、予想外の場所から生まれるものです。知識だけでなく、「想像する力」を大切にしたいですね。\n\n今月号は以上です。Duo Agent Platformはついに一般公開され、AIはC-suiteの重要議題へ、そしてMerge Requestページもさらに進化した、盛りだくさんな月でしたね。\n\nそれではまた来月、お会いしましょう！Happy Merging！\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/)｜GitLab Developer Advocate\n\n🧡 このニュースレターが気に入った方は、ぜひチームにもシェアしてください。\n 👉 [The Developer Show](https://www.linkedin.com/feed/update/urn:li:activity:7340777670714019840)の購読もお忘れなく！\n\n![Happy Merging!](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369416/is5jitqrtujnkmmkijlg.png)",[1308],"GitLab Japan Team","AIエージェント、新機能、そして7,500億ドルの可能性に注目\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754368844/vagh8krfgft9cghbknod.png",{"featured":90,"template":681,"slug":1312},"monday-merge-2025-august-11","content:ja-jp:blog:monday-merge-2025-august-11.yml","Monday Merge 2025 August 11","ja-jp/blog/monday-merge-2025-august-11.yml","ja-jp/blog/monday-merge-2025-august-11",{"_path":1318,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1319,"content":1323,"config":1327,"_id":1329,"_type":13,"title":1330,"_source":15,"_file":1331,"_stem":1332,"_extension":18},"/ja-jp/blog/monday-merge-2025-july-14",{"noIndex":6,"ogImage":1320,"title":1321,"description":1322},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204420/ccdkkhlyrjmyjxsicf7d.jpg","Monday Merge 7月号","Monday Merge７月号では、GitLab 18の最新トピックのほか、AWS Summit、新しいライブ番組のスタート、そして注目のカスタマーストーリーをご紹介します。",{"date":762,"body":1324,"title":1321,"category":1084,"heroImage":1320,"authors":1325,"description":1322,"tags":1326},"GitLabコミュニティのみなさん、こんにちは！Fatimaです。今月のMonday Mergeも、本当に盛りだくさんです！GitLab 18の最新トピックはもちろん、活気あふれるニューヨークでのAWS Summit、新しいライブ番組のスタート、そして注目のカスタマーストーリーまで。7月はまさにDevSecOpsの話題で溢れています。\n\nさらに、IBMと協力してメインフレームDevOpsの最新化にも取り組んでいます。（そう、あのCOBOLが再び注目を浴びています！）\n\nそれでは、さっそく見ていきましょう👇\n\n## GitLab 18 バーチャルローンチ：AI × オーケストレーションの未来へ\n\n![GitLab 18 バーチャルローンチ：AI × オーケストレーションの未来へ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/ryjaxhkcssnxn9x6genq.png)\n\n先月、GitLab 18のバーチャルローンチイベントを開催しました。\\\nライブ配信を見逃した方も大丈夫。ここで簡単にポイントを振り返ります。\n\n注目のハイライトは？ \\\nそれは、GitLab Duo Agent Platform の登場です。この新しいプラットフォームでは、エンジニアとAIエージェントがソフトウェア開発のあらゆる工程で連携・協働できるようになります。これにより、開発チームの生産性や開発スピードが大きく向上することが期待されています。\n\nGitLabのCEO、ビル・ステイプルズはこのように語りました：\n\n> *「GitLab 18は、人とAIエージェントが一緒に働けるDevSecOpsオーケストレーションフォームです。ソフトウェア開発のあらゆる工程で、“エージェント型AI”を活用したチームワークを実現します。」*\n\nつまり、これは開発者の代わりになるものではなく、繰り返し作業の負担を減らし、人の創造力と専門性をもっと活かせるようにするための進化です。私たちはそんな未来を目指しています。\n\nさらに今回、GitLabの統合DevSecOpsプラットフォームとAmazon Q Developerエージェントの連携も発表しました。この強力な組み合わせにより、より安全でスピーディーなソフトウェア開発が実現します。\n\nGitLab Duo + Amazon Qは、AIを活用したシームレスな開発の新時代を象徴するものです。\n\nイベントにはBarclaysとThalesも登場し、GitLab 18がそれぞれの組織の開発プロセスをどう変えているのか、リアルな声を共有してくれました。金融の高度なセキュリティ要件から航空業界のイノベーションまで、GitLab 18がもたらす影響は確かなものです。\n\n👉 イベントのフル動画は [GitLab 18 Launch Event](https://about.gitlab.com/ja-jp/eighteen/?utm_medium=social&utm_source=linkedin&utm_campaign=20250624_global_corp_webcast_aisdlc_en_gitlab18)ページ でご覧いただけます。\n\n## GitLab 18.1がリリースされました：セキュリティ、スピード、そしてAIの進化\n\n![18.1](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/wbauaqzctmlul8lg7mu3.png)\n\nGitLab 18をリリースをしてすぐではありますが、[GitLab18.1が登場](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release/)しました！この最初のリリースには、チームの開発スピードとセキュリティをさらに高めるためのアップデートが満載です。\n\n#### 注目の新機能はこちら：\n\n✅ Duoコードレビュー が正式リリース！\\\n AIがマージリクエストに対してインテリジェントなフィードバックを提供し、レビューのスピードアップやバグの早期発見を支援します。\n\n📦 Maven仮想レジストリ（Virtual Registry） がベータ版に\\\n GitLab上でのMaven依存関係の管理がより簡単になりました。\n\n🔐 漏洩パスワード検出機能 を追加\\\n あなたのパスワードが既知のデータ漏洩に含まれていないかを検出し、安全な変更方法を案内してくれます。\n\n🔁 SLSAレベル 1 準拠をサポート\\\n 新しいCI/CDコンポーネントを使って、ソフトウェアサプライチェーンのセキュリティ強化に貢献します。\n\nそして、何より嬉しいのは、みなさんからの 110件以上の改善と、311件ものコミュニティ貢献によってこのリリースが実現したことです。開発・レビュー・ドキュメント・ビルドに関わってくださった全ての方々、本当にありがとうございます！\n\n👉 [リリースノート全文はこちら！](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release/)\n\n## 新ライブ配信シリーズ：The Developer Show – Powered by GitLab \n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204283/guz14qmyjhiyuf6oyh9k.png)\n\nGitLabからの新しいライブ配信シリーズが始まりました！その名も The Developer Show – Powered by GitLab。私とセキュリティPMMのSalがホストを務める、月1回のライブ配信番組です。\n\nこれはよくある「普通のウェビナー」ではありません。毎回、実際に今の開発現場を変えている技術について深く掘り下げていきます。\n\n対象は、開発者、開発リード、コードに関わるすべての人。業界で本当に語られているリアルな会話をキャッチアップしたい人向けです。\n\n📺 エピソード1では、GitLab 18 バーチャルローンチの内容を振り返り！\\\n ハイライトの紹介はもちろん、実践的なヒントやちょっと辛口なコメントも交えてお届けします。\n\n👉 [今すぐ視聴＆チャンネル登録して、次回もお見逃しなく！](https://www.linkedin.com/events/7340777668130312193/comments/)\n\n## AWS Summit New York：GitLabブースでお会いしましょう！ !\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/thiukj2hnn9mjyd1mcui.png)\n\n先日の東京に引き続き、7月16日、GitLabチームはニューヨークで開催されるAWS Summitに参加します！お近くの方は、Javits Center内のGitLabブースにぜひお立ち寄りください。\n\n当日は以下の内容をご用意しています：\n\n* GitLab DuoのAI機能を体験できるハンズオンデモ  \n* セキュリティ、開発スピード、開発者体験に関するライトニングトーク  \n* GitLabのDevSecOpsエキスパートとの対話（ご質問大歓迎です！）  \n* 限定ノベルティやプレゼントもご用意しています\n\nさらに、当日はAWSのAgentic AI担当VPのSwami Sivasubramanian氏による基調講演も実施されます。Agentic AIがソフトウェア開発をどう変えていくのか、GitLabとしても非常に関心のあるテーマです。\n\n参加登録は無料です。ぜひこちらからお申し込みください：[登録はこちら](https://about.gitlab.com/events/aws-summits/)\n\n## GitLabチームに会いに来ませんか？ WeAreDevelopers World Congress !\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/z9hot8dhmj1k4gjxefmg.png)\n\n世界中の開発者とつながるこのイベントで、GitLabチームも皆さんとお会いできるのを楽しみにしています！スタンド A07 にぜひお立ち寄りください。GitLabのDevSecOpsプラットフォームが、ソフトウェアのデリバリーをどのように加速し、チーム間のコラボレーションを強化できるか等をご紹介します。\n\nCI/CDやセキュリティ自動化、開発フローの改善に興味がある方はもちろん、\\\n どんな質問にもチームメンバーがお答えしますので、お気軽にお声がけください。\n\nまた、金曜日には注目のセッションも：\n\n* 13:40〜 GitLab VP of Engineering、Maw Wildpanerによる講演\\\n   　「なぜ“セキュリティファースト開発”が、より良いソフトウェアを早く届ける鍵となるのか」\n* 16:30〜 GitLab VP of Strategy and Developer Relations、Emilio Salvadorが登壇するパネル「DevRelの戦略的な力：コミュニティからビジネスインパクトへ」\n\n👋 [ベルリンでお会いしましょう！](https://www.wearedevelopers.com/world-congress/)\n\n## 事例のご紹介：Thales \n\n![Thales](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/m85bcsqac7gitoewqfrb.png)\n\n今月の事例紹介は、なんと高度3万5千フィートの空の上からお届けします。Thales は、航空宇宙・防衛分野のグローバルリーダー企業。彼らは従来のDevOpsプロセスを、クラウドネイティブでCI/CD駆動のイノベーションエンジンへと進化させました。\n\nGitLabを活用して開発したのが、次世代の機内エンターテインメントシステム「FlytEDGE」。乗客ごとにパーソナライズされたコンテンツやサービスを提供しながら、デプロイ時間を95%短縮することに成功しています。分散チーム間のコラボレーションをスムーズにし、パイプライン全体に自動化を導入し、開発者がボトルネックなく素早くリリースできる環境を実現。その結果、従来の20倍のスピードでデプロイできるようになりました。\n\n👉 [こちらから導入事例を詳しくご覧ください](https://about.gitlab.com/ja-jp/customers/thales/)\n\n## 今月のおすすめ記事\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204283/agkyge3unfoilwmmk1c9.png)\n\n今月もGitLabのSlackチャンネルでは、たくさんの素晴らしいDevSecOpsの考えや情報がシェアされています。その中から特に注目されているものをご紹介します。\n\n* [https://japan.zdnet.com/article/35234560/](\u003C>) \n* \u003Chttps://vmblog.com/archive/2025/06/23/breaking-down-silos-gitlab-and-ibm-partner-to-modernize-mainframe-devops.aspx>\n* \u003Chttps://www.nextgov.com/ideas/2025/05/legacy-government-systems-enter-ai-era/405642/>\n* \u003Chttps://www.economiematin.fr/investissement-operateur-telecom-technologie-caronna>\n* \u003Chttps://thenewstack.io/accelerating-developer-velocity-with-effective-platform-teams/>\n* \u003Chttps://leaddev.com/uncategorized/how-get-most-out-ai-tooling>\n\n\n\n## 📌 今月の名言\n\n>  「何事も、それが成し遂げられるまでは不可能に思えるものだ。」\\\n>  – ネルソン・マンデラ\n\n高速なデプロイ、スマートなセキュリティ、次世代の開発者のための開発など、\\\nどんなに難しいことに取り組んでいても、あなたならきっとできます。\n\n🦊 また次回まで！\n\nGitLabコミュニティの一員でいてくださり、ありがとうございます！みなさんがGitLab 18でどんなものを作ってくださるのか、私たちも楽しみにしています。バーチャルイベントの登録と、AI機能の活用開始もお忘れなく。それではまた次回のMonday Mergeでお会いしましょう。Happy Merging! \\\n[The Developer Showの購読もお忘れなく！](https://www.linkedin.com/feed/update/urn:li:activity:7340777670714019840)\n\n[Fatima Sarah Khalid](\u003C>) | GitLab Developer Advocate\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204279/hdcjv0v3qqk53xjazumo.png)\n\n[](https://www.linkedin.com/feed/update/urn:li:activity:7340777670714019840)",[1308],[108,673,677,768,269,1303,769,279,9,1084,1304,770,1305],{"featured":6,"template":681,"slug":1328},"monday-merge-2025-july-14","content:ja-jp:blog:monday-merge-2025-july-14.yml","Monday Merge 2025 July 14","ja-jp/blog/monday-merge-2025-july-14.yml","ja-jp/blog/monday-merge-2025-july-14",{"_path":1334,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1335,"content":1340,"config":1347,"_id":1349,"_type":13,"title":1350,"_source":15,"_file":1351,"_stem":1352,"_extension":18},"/ja-jp/blog/monday-merge-2025-september-8",{"config":1336,"title":1337,"ogImage":1338,"description":1339},{"noIndex":6},"Monday Merge 9月号","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756904278/ov1n66vq8dnikcjyu0iw.png","最新リリース、注目のホワイトペーパー、そして大規模なDevSecOpsの取り組み事例をお届け。",{"title":1341,"authors":1342,"heroImage":1338,"date":1343,"category":1084,"tags":1344,"body":1345,"description":1346},"Monday Merge 9月号：より速いパイプライン、もっと賢いエージェント、そしてより大きな成果を！",[1308],"2025-09-08",[673,108,768,269,1303,769,279,9,1084,1304,770,1305],"9月の始まりとともに、最新リリース、注目のホワイトペーパー、そして大規模なDevSecOpsの取り組み事例をお届けします👇\n\n## **GitLab 18.3 リリース！Duo AgentsのIDE対応、Embedded Viewsなど多くの新機能が登場**\n\n![GitLab 18.3 リリース](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955192/hjiu0tadczplc14wsfbc.png)\n\n今回のリリースでは、セキュリティやコンプライアンスの強化から、開発ツール内でのAIアシストまで、プラットフォーム全体に渡る改善を実現しました。\n\n新機能はこちら：\n\n* Visual Studio向け Duo Agent Platform（ベータ）\\\n  開発者はVisual Studio内でGitLab Duo Agent ChatとAgent Flowsを直接利用可能に。IDEを離れることなく、質問、タスク自動化、アーキテクチャ設計、コード生成まで行えます。\n* 埋め込みビュー（一般提供）\\\n  エピック、Wiki、課題を動的でクエリ可能なダッシュボードに変換。GLQLでリアルタイムデータを活用し、チームの足並みを常に揃えられます。\n* CI/CDジョブトークンの細かな権限設定\\\n  最小権限の原則を適用し、ジョブトークンごとのアクセス範囲を正確に制御。\n* 直接転送によるマイグレーション（一般提供）\\\n  GitLabインスタンス間でのプロジェクト移行がよりスムーズで信頼性も向上。\n* Duo Self-Hosted のアップデート\\\n  ハイブリッドモデル選択のサポート、持ち込みモデルの柔軟性、コードレビュー用カスタム指示に対応。\n\nそのほかWeb IDE、コンプライアンス機能、管理者ロール、AWS Secrets ManagerとのCI/CD連携など、多数の改善が追加されています。\n\n💜 今回のリリースには 314件のコミュニティ貢献 が寄せられました！まさに「みんなが参加できる」ということを証明してくれました。\n\n👉 [18.3リリースノート全文はこちら](https://about.gitlab.com/ja-jp/blog/gitlab-18-03-release/)\n\n## **エージェント駆動のCIモダナイゼーション**\n\n**「よりスマートなパイプライン。より速い投資回収。」**\n\n![エージェント駆動のCIモダナイゼーション](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955192/g0ayfgu2zudqn53so11z.png)\n\n企業がCI/CDパイプラインを最新化しようとする時、現実には「時間がかかる」「コストが高い」「スケールが難しい」といった課題が立ちはだかります。\n\nそこでGitLabの新ホワイトペーパーが提案するのが Agentic CI Modernization。GitLab Duo Agent Platformを活用することで、ラボテストでは以下の成果が示されています：\n\n⏱️ パイプライン変換が 81%高速化（240分 → 45分）\n💸 コンサル費用が 83%削減\n📉 モダナイゼーション期間が 2.5年 → 9か月に短縮\n\n従来のやり方はツール乱立やコンテキスト切り替え、コンサル依存の進め方で停滞しがちですが、エージェント型AIが状況を変えます。\n\nGitLab Duo Agentsはレガシーパイプラインを解析し、アーキテクチャや依存関係を理解したうえでGitLab CI設定を自動生成。これによりエラーを最大70%削減し、価値提供までのスピードを大幅に加速します。\n\nこのホワイトペーパーで語られる内容は単なる時間短縮の話ではありません。目指しているのは、プラットフォームエンジニアリングを大規模に実現し、開発者が共通のCI/CDコンポーネントをサービスとして利用できる環境をつくることです。\n\n👉 [ホワイトペーパーはこちらから](https://about.gitlab.com/the-source/ai/cicd-modernization-break-down-barriers-with-agentic-ai/)\n\n## **カスタマースポットライト：Deutsche Telekom**\n\n![カスタマースポットライト：Deutsche Telekom](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955192/jp9ywqbc5k4i3jt66koc.png)\n\n18か月のリリースサイクルが、わずか3か月へ。分断されたツール群から、13,000人以上が使う統合されたGitLabプラットフォームへ。手作業のセキュリティチェックから、GitLab Ultimateによる完全統合スキャンへ。\n\n2億4,000万人以上のモバイル顧客を抱える通信大手Deutsche Telekom社。いまや単なるネットワークプロバイダーにとどまらず、DevSecOpsの先駆者へと変貌を遂げています。\n\nGitLabに集約したことで、同社IT部門はCI/CDの全社展開に成功し、“インナーソース”文化を育成。いまやアジャイルプログラムの75%がGitLabに依存しています。\n\n「セキュリティが1つのアプリに統合されていれば、すぐに問題箇所へ飛んで修正できます（中略）これによりセキュリティ対応の効率が大幅に向上しました。」\n\n— Thorsten Bastian, Business Owner IT, CI/CD Hub, Telekom IT\n\n👉 [ストーリー全文はこちら](https://about.gitlab.com/customers/deutsche-telekom/)\n\n## **ドキュメントが新しく生まれ変わりました**\n\n![ドキュメントが新しく生まれ変わりました](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955192/osfy2yhgsrfj5tgmrydu.png)\n\n**新しい [docs.gitlab.com](http://docs.gitlab.com) にようこそ！**\nゼロから再構築し、わかりやすさ、スピード、使いやすさが大幅アップしました。\n\n新しくなったポイント：\n\n* どのデバイスでも快適に使える、モダンなインターフェース\n* 必要な情報にすぐたどり着けるスマート検索\n* より直感的なナビゲーションとアクセシビリティ向上\n\n[経験豊富なDevSecOpsプロから、これから始める方まで。新しいドキュメントはあなたの強い味方 →](https://docs.gitlab.com/)\n\n## **今月のイベントで会いましょう**\n\n![今月のイベントで会いましょう](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955192/rmjcneaitcox1n2xiq1b.png)\n\n今月はサンパウロからシンガポールまで、GitLabが世界各地へ！ぜひブースに立ち寄って、ノベルティをゲットし、DevSecOpsの最新情報を語り合いましょう。\n\n🇧🇷 Google Cloud Summit Brazil 👉 [[登録はこちら](https://cloudonair.withgoogle.com/events/google-cloud-summit-brasil-2025)]\n🇸🇬 EPIC Conference Singapore 👉 [[登録はこちら](https://events.gitlab.com/e/event-epic-conference-singapore)]\n🇨🇭 Google Cloud Summit Switzerland 👉 [[登録はこちら](https://cloudonair.withgoogle.com/events/google-cloud-summit-switzerland-2025)]\n\nGitLab Duoを実際に体験し、新しいアイデアやインスピレーション、次の大きなデプロイ成功のヒントを持ち帰りませんか？\n\n## **今月のおすすめ記事**\n\n![今月のおすすめ記事](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756955489/ipkozh9ai6wbmhxmv3gn.png)\n\nエージェント型AIのブレークスルーから、大規模なソフトウェアのセキュリティ対策まで、今月の注目記事をご紹介します。\n\n* [](https://www.scworld.com/podcast-segment/14186-softwares-agentic-future-is-coming-how-cisos-can-prepare-today-josh-lemos-bh25-1)\u003Chttps://www.devopsdigest.com/gitlab-signs-strategic-collaboration-agreement-with-aws-to-deliver-secure-devsecops-to-gitlab>\n* [](https://thenewstack.io/how-intuitive-machines-used-devsecops-to-reach-the-moon/)\u003Chttps://thenewstack.io/how-intuitive-machines-used-devsecops-to-reach-the-moon/>\n* [](https://techvoices.com/video-podcasts/gitlabs-emilio-salvador-on-how-ai-agents-are-reshaping-software-development/)\u003Chttps://techvoices.com/video-podcasts/gitlabs-emilio-salvador-on-how-ai-agents-are-reshaping-software-development/>\n* [](https://techvoices.com/video-podcasts/gitlabs-emilio-salvador-on-how-ai-agents-are-reshaping-software-development/)\u003Chttps://techvoices.com/video-podcasts/gitlabs-emilio-salvador-on-how-ai-agents-are-reshaping-software-development/>\n* [](https://leaddev.com/technical-direction/are-you-ready-for-ai-agents)\u003Chttps://leaddev.com/technical-direction/are-you-ready-for-ai-agents>\n* [](https://leaddev.com/technical-direction/are-you-ready-for-ai-agents)\u003Chttps://leaddev.com/technical-direction/are-you-ready-for-ai-agents>\n* [](https://www.scworld.com/podcast-segment/14186-softwares-agentic-future-is-coming-how-cisos-can-prepare-today-josh-lemos-bh25-1)\u003Chttps://www.scworld.com/podcast-segment/14186-softwares-agentic-future-is-coming-how-cisos-can-prepare-today-josh-lemos-bh25-1>\n* [](https://www.devopsdigest.com/from-ai-risk-to-business-resilience-prompt-engineering-as-strategic-security-capability)\u003Chttps://www.devopsdigest.com/from-ai-risk-to-business-resilience-prompt-engineering-as-strategic-security-capability>\n* [](https://www.devopsdigest.com/from-ai-risk-to-business-resilience-prompt-engineering-as-strategic-security-capability)\u003Chttps://www.devopsdigest.com/from-ai-risk-to-business-resilience-prompt-engineering-as-strategic-security-capability>\n* [](https://www.scworld.com/podcast-segment/14186-softwares-agentic-future-is-coming-how-cisos-can-prepare-today-josh-lemos-bh25-1)\u003Chttps://www.scworld.com/podcast-segment/14186-softwares-agentic-future-is-coming-how-cisos-can-prepare-today-josh-lemos-bh25-1>\n\nそしてまだの方は、ぜひAIがソフトウェアイノベーションに与える影響に関するC-suiteレポート もチェックしてみてください。\n\n* [](https://about.gitlab.com/software-innovation-report/)\u003Chttps://about.gitlab.com/software-innovation-report/> \\\n  （日本に特化したレポートは近日中に公開予定）\n\n## **最後に、今月の名言を**\n\nパイプラインの最新化、ツール統合、エージェント型AIの導入。大きな変革はときにハードルが高く見えますが、すべては小さな一歩から始まります。\n\n> 「それが成し遂げられるまでは、いつも不可能に見えるものだ。」\n>  — ネルソン・マンデラ\n\n難しいパイプラインに直面したら、「不可能」とは「まだ実現していないだけ」と思い出してください。\n\n### **次回まで**\n\n今月も読んでいただきありがとうございました！感想やフィードバックはぜひXでのメンションやコメントでシェアしてください。お待ちしています。\n\nそれではまた来月、お会いしましょう！Happy Merging！\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/)｜Developer Advocate, GitLab\n\n🧡 このニュースレターが気に入った方は、ぜひチームにもシェアしてください。\n 👉 [The Developer Show](https://www.linkedin.com/feed/update/urn:li:activity:7340777670714019840)の購読もお忘れなく！\n\n![Fatima Sarah Khalid](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754369416/is5jitqrtujnkmmkijlg.png)","9月号のMonday Mergeでは、最新リリース、注目のホワイトペーパー、そして大規模なDevSecOpsの取り組み事例をお届け。",{"featured":6,"template":681,"slug":1348},"monday-merge-2025-september-8","content:ja-jp:blog:monday-merge-2025-september-8.yml","Monday Merge 2025 September 8","ja-jp/blog/monday-merge-2025-september-8.yml","ja-jp/blog/monday-merge-2025-september-8",{"_path":1354,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1355,"content":1361,"config":1368,"_id":1370,"_type":13,"title":1371,"_source":15,"_file":1372,"_stem":1373,"_extension":18},"/ja-jp/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai",{"title":1356,"description":1357,"ogTitle":1356,"ogDescription":1357,"noIndex":6,"ogImage":1358,"ogUrl":1359,"ogSiteName":694,"ogType":695,"canonicalUrls":1359,"schema":1360},"破損したCI/CDパイプラインをAIで迅速に解決","CI/CDパイプラインの失敗が発生すると、遅延、生産性の低下、ストレスが生じます。AI搭載の根本原因分析なら、より迅速でスマートな問題解決ができます。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097355/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_78Dav6FR9EGjhebHWuBVan_1750097355230.png","https://about.gitlab.com/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"破損したCI/CDパイプラインをAIで迅速に解決\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Itzik Gan Baruch\"}],\n        \"datePublished\": \"2024-12-03\",\n      }",{"title":1356,"description":1357,"authors":1362,"heroImage":1358,"date":1364,"body":1365,"category":679,"tags":1366,"updatedDate":1367},[1363],"Itzik Gan Baruch","2024-12-03","CI/CDパイプラインは、ソフトウェア開発における効率の要です。これにより、チームはコードのテスト、ビルド、デプロイを迅速に行うことができます。しかし、こうしたパイプラインが破損すると、すべてに遅れが生じ、締め切りに間に合わなくなります。また、デベロッパーは、問題の解決に取り組み、プロジェクトを軌道に戻そうと奮闘する中で、不満を抱えたままになってしまいます。\n\n![失敗したジョブを複数含むCI/CDパイプライン](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097362/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097362772.png)\n\n\u003Ccenter>\u003Ci>失敗したジョブを複数含むCI/CDパイプライン\u003C/i>\u003C/center>\u003Cbr>\u003C/br>\n\n**では、そもそもなぜパイプラインは破損してしまうのでしょうか？** 詳しく見ていきましょう。\n\n## パイプラインの失敗が生じる理由\n\nパイプラインの失敗は、[CI/CDパイプライン](https://about.gitlab.com/ja-jp/topics/ci-cd/cicd-pipeline/)内の自動化されたワークフロー（ビルド、テスト、コードのデプロイなどを含む一連のステップ）が正常に実行されず、エラーメッセージで終了する場合に発生します。この失敗により、コードが適切にビルド、テスト、またはデプロイされないことになり、ソフトウェアデリバリーが遅れるだけでなく、トラブルシューティングが必要になります。\n\nパイプラインの失敗にはさまざまな原因があります。一般的な原因には次のようなものがあります。\n\n- 構文エラー：セミコロンの不足や変数名の間違いなど、コード内の小さなミス\n- テストの失敗：コードの不具合、誤設定、依存関係の不一致により、ユニットテストや統合テストが失敗する\n- 設定ミス：パイプライン設定や環境設定により、ビルドやデプロイが失敗する\n\nさらに複雑な問題もあります。\n\n- Infrastructure-as-Code（[IaC](https://about.gitlab.com/ja-jp/topics/gitops/infrastructure-as-code/)）の問題：TerraformスクリプトやCloudFormationテンプレートのエラーなど、クラウドインフラストラクチャのプロビジョニングで問題が発生し、正常なデプロイができない\n- KubernetesとGitOpsの課題：[Kubernetesクラスター](https://about.gitlab.com/blog/kubernetes-the-container-orchestration-solution/)の設定ミスや[GitOps](https://about.gitlab.com/ja-jp/topics/gitops/)ワークフローの問題（Kubernetesの状態とGitリポジトリの同期など）により、原因特定が困難なパイプラインの失敗が発生する\n-  長くて複雑なスタックトレース：システムの深い部分でエラーが発生すると、特に複数のコンポーネントやサービスにまたがるとスタックトレースが長く複雑になり、解読が難しくなる\n\nこうした理由から、トラブルシューティングがより難しく時間がかかるものになります。根本原因を特定するには、複雑なログの確認や設定ファイルの見直し、さまざまな解決策の検証が必要になるからです。\n\n## 失敗したパイプラインの実際の影響\n\nパイプラインが失敗すると、デプロイが遅れるだけでなく、ストレスや不満も引き起こします。デベロッパーは作業を中断し、トラブルシューティングに専念する必要があり、多くの場合、チームやプロジェクト全体、他のタスクへと影響が広がります。 その結果、納期を守るのがさらに難しくなり、チーム全体のプレッシャーが増えます。しかし、なぜ手動でのトラブルシューティングはこれほど大きなストレスになるのでしょうか？\n\n### 手動でのトラブルシューティング\n\n壊れたパイプラインを修正するのにかかる時間はケースによってさまざまです。次のような要素に依存します：\n\n- デベロッパーがプロジェクトをどれだけ理解しているか  \n- 類似の問題に対する経験  \n- 全体的な問題解決能力\n\nログを手動で調べて原因を特定するのは、骨の折れる単調な作業です。ログは、アプリケーションエラーやシステムメッセージを含むあらゆるところに存在し、多くの場合、整理されておらず解釈が難しいことがあります。その上、パイプラインの修正には、通常、タスク間を行ったり来たりしながら作業を進める必要があり、さらに時間がかかります。\n\nそこで役に立つのが[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)です。GitLab Duoは、そういった複雑なデータをすべて分析し、問題を素早く見つけ出します。専門知識がなくても何が原因かを特定できるようプロセスをシンプルにします。AIを活用することで、パイプラインの修正がより速く、簡単で、はるかにストレスの少ないものになります。\n\n\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176104/Blog/zxvvu7p9vc3qpmwl32ya.png\" alt=\"broken pipeline\">\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176108/Blog/bpx6dqilfhltzboyp8k8.png\" alt=\"fix suggestions for broken pipelines\">\n\n## 生成AIによるGitLab Duo根本原因分析\n\n[GitLab Duo根本原因分析（RCA）](https://docs.gitlab.com/ee/user/gitlab_duo/#root-cause-analysis)を活用すれば、CI/CDパイプラインが破損しても、何時間もかけて手動でトラブルシューティングする必要はありません。このAI搭載ツールは、失敗の原因を正確かつ素早く特定し、修正案をDevSecOpsプラットフォーム内で提供します。スタックトレースがどれだけ長く複雑でも、RCAはすべてのデータを分析し、分かりやすく処理して、実行可能なインサイトを提供します。\n\nエラーの原因の正確な情報を提供してくれるだけでなく、修正手順を示し、注意が必要なファイルやコード行まで具体的に教えてくれます。 さらに、コード提案で全体を正常に戻すサポートをするため、トラブルシューティングが非常に速く、シンプルに進みます。\n\n\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176111/Blog/nmagby9hoksskogve53m.png\" alt=\"root cause of failure\">\n\n\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176115/Blog/dndis1cedwbmbnj33q3v.png\" alt=\"example fix\">\n\n## フォローアップ質問で会話を掘り下げる\n\nGitLab Duo RCAでは、答えを得た後にさらに詳細な質問をして、問題を掘り下げることができます。代替案を検討したい場合も、リポジトリ内の他のファイルやイシュー、エピックを参照にすることで、[コンテキスト](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html#the-context-chat-is-aware-of)を追加できます。たとえば、`.gitlab-ci.yml`ファイルをIDEで開き、「このファイルとCI/CDパイプラインの分析結果をもとに、どのようにパイプラインを改善するのが最適だと思いますか？」とChatで質問できます。\n\n## プライバシー第一で、すべてGitLab内で処理\n\nGitLab Duo RCAの最大の利点のひとつは、GitLab内でそのまま利用できることです。ツールを切り替えたり、外部のサポートを探したりする必要はありません。また、[ログや機密データを外部のAIソリューションに送信する必要もありません。GitLab内で安全に処理](https://about.gitlab.com/ja-jp/privacy/)されます。RCAはGitLabにシームレスに統合されており、プライバシーを守りながら有益なインサイトを提供します。\n\n![パイプラインの破損 - 画像6](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097363/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097362773.png)\n\n## 今すぐ始める\n\nAIを活用して開発プロセスをパワーアップし、よりスムーズかつスピーディーに進めてみませんか？以下のGitLab Duo Enterprise製品ツアーで、プランニング、コーディング、トラブルシューティング、デプロイまで、GitLab DuoのAI搭載機能が全工程にわたって与える効果をご覧ください。ツアーを開始するには、下の画像をクリックしてください。\n\n[![GitLab Duo Enterpriseツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097363/Blog/Content%20Images/Blog/Content%20Images/Screenshot_2024-12-02_at_12.41.10_PM_aHR0cHM6_1750097362774.png)](https://gitlab.navattic.com/duo-enterprise)\n\n> [GitLab Duoの無料トライアルを今すぐお試しいただけます。](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/)\n\n\u003Cbr>\n\u003Cbr>\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n",[673,674,678,9],"2025-03-12",{"slug":1369,"featured":6,"template":681},"quickly-resolve-broken-ci-cd-pipelines-with-ai","content:ja-jp:blog:quickly-resolve-broken-ci-cd-pipelines-with-ai.yml","Quickly Resolve Broken Ci Cd Pipelines With Ai","ja-jp/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai.yml","ja-jp/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai",{"_path":1375,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1376,"content":1382,"config":1387,"_id":1389,"_type":13,"title":1390,"_source":15,"_file":1391,"_stem":1392,"_extension":18},"/ja-jp/blog/safe-without-silos-in-gitlab",{"title":1377,"description":1378,"ogTitle":1377,"ogDescription":1378,"noIndex":6,"ogImage":1379,"ogUrl":1380,"ogSiteName":694,"ogType":695,"canonicalUrls":1380,"schema":1381},"GitLabで実現するサイロのないSAFe","Scaled Agile Framework（SAFe）をDevSecOpsプラットフォームのネイティブ機能にマッピングする方法と、そこから得られるメリットについて学びましょう。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097569/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2811%29_2hcwWx49wQ7CHfvhhkVH6S_1750097569126.png","https://about.gitlab.com/blog/safe-without-silos-in-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLabで実現するサイロのないSAFe\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2025-04-08\",\n      }",{"title":1377,"description":1378,"authors":1383,"heroImage":1379,"date":1384,"body":1385,"category":744,"tags":1386},[741],"2025-04-08","あなたの組織がScaled Agile Framework（SAFe）を導入し、エンタープライズ規模へとスケールしようとするとき、何が起こるのか考えてみましょう。複数のチームが複雑な製品の開発に取り組んでおり、すべての作業を調整する手段が必要になります。しかし、ここでよくある問題が発生します。計画はあるツールで行い、実際の開発作業はまったく別の場所で進められているという状況です。\n\nこのような分断は、日常業務においてさまざまな問題を引き起こします。デベロッパーは複数のシステムを行き来し、プロダクトマネージャーは正確な進捗状況を把握できず、誰もが情報を手作業でほかの場所へとコピーすることに時間を浪費します。これこそがまさに、SAFeが解消しようとしている「分断された体験」の典型です。\n\nすでに開発チームがGitLabを使ってソースコード管理、CI/CD、セキュリティを行っている場合、SAFeフレームワークでの計画管理にもGitLabを活用できるのかどうか疑問に思うかもしれません。幸いなことに、GitLabのアジャイルプロジェクト管理機能はSAFeを強力にサポートしています。この記事では、GitLabがSAFeの各種概念やセレモニーとどのように対応しているのかを紹介します。しかも、すべてデベロッパーがすでに慣れ親しんでいる同じDevSecOpsプラットフォーム上で実現できます。\n\n## SAFeとは？\n\nSAFe（Scaled Agile Framework）は、アジャイルの考え方をスピードや方向性、顧客重視の姿勢を失うことなく、大規模な組織全体に広げるための手法です。少人数チームで使われる柔軟かつ反復的なアジャイルの進め方を、複数のチームやロードマップ、関係者を抱える大規模組織にも適用できるように設計されています。このフレームワークを活用することで、組織全体の方向性が揃い、計画と実行が一貫して進むようになります。プロダクトマネージャーにとっては、SAFeを導入することで、戦略と実行をしっかりつなげることができ、とにかく早くリリースするだけでなく、チームで方向性を揃え、優先順位に基づいて本当に出すべきものをリリースできるようになります。\nSAFeはサイロを減らし、チーム間のコラボレーションを促進するとともに、単なる作業の実行ではなく、「顧客が求める成果」を中心にチームをまとめます。GitLabにSAFeを統合すると、可視性、トレーサビリティ、成果のすべてが、1か所に集約され、その効果はさらに高まります。\n\n## GitLabにおけるSAFeの用語対応\n\nまず、SAFeの概念がGitLab内でどのように対応するかを確認しましょう。\n\n| SAFe | GitLab |\n| :---- | :---- |\n| Epic | トップレベルエピック |\n| Capability | サブエピック（レベル1） |\n| Feature | サブエピック（レベル2） |\n| User Story | イシュー |\n| Task | タスク |\n| Team | カスタムフィールド/範囲指定したラベル |\n| Sprint | イテレーション |\n| Program Increment (PI) | マイルストーン |\n| Value Stream | トップレベルグループ |\n| Agile Release Train (ART) | トップレベルグループ |\n\n\u003Cbr>\u003C/br>\n\nこの対応表をガイドとして活用すると、GitLabをSAFeの実装と連動させて構築できます。グループ構造を使うと、バリューストリームやART（Agile Release Train）単位で整理できます。また、最大7階層までネスト可能なエピックによる作業アイテムの階層構造により、複雑なプロダクトポートフォリオにも対応できる深さを備えています。ポートフォリオレベル（トップレベルグループ）、プログラムレベル（サブグループ）、チームレベル（プロジェクト）といった、どの階層で作業していても、GitLabの組織構造はSAFeの階層とぴったり合致します。\n\n## GitLabでのSAFeのセレモニーのサポート\n\nここからが本題です。GitLab上でSAFeのセレモニーを実際にどう実行するのか、順を追って見ていきましょう。\n\n### PIプランニング\n\nチーム間の調整と依存関係の管理を促進し、PIプランニングを成功させるために、GitLabでは以下のような機能が提供されています。\n\n* [ロードマップ](https://docs.gitlab.com/user/group/roadmap/)ビューを使用して、複数のチームや期間にわたるフィーチャーを可視化する\n* フィーチャーをPI[マイルストーン](https://docs.gitlab.com/user/project/milestones/)に割り当てる\n* 見つかったチーム間の[依存関係](https://docs.gitlab.com/user/project/issues/related_issues/#blocking-issues)を文書化し、視覚化する\n\nGitLabでは、エピックボード（チームごとの割り当てを表示するように設定可能）とロードマップビュー（ガントチャートのように時間軸でフィーチャーを表示）を使い分けることで、柔軟にPIプランニングを進めることができます。タイムラインかチーム構成のどちらに注目するかに応じて、プランニング中にビューを切り替えられます。\n\n![ロードマップビューとエピックボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097576746.gif)\n\n\u003Cbr>\u003C/br>\n\n![ガントチャート付きロードマップビュー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097576747.png)\n\n### リファインメント\n\nプロダクトマネージャーにとって、効果的なリファインメントを行うには、フィーチャーのバックログを明確に把握しておくことが重要です。GitLabなら、リファインメントをそのままGitLab上で実施できます。会議中に1つのツールを更新して、その後に別のツールを更新する必要はもうありません。 \n\nGitLabでは、以下の機能によってリファインメントを効率的に進められます。\n\n* 状態ごとにフィーチャーを整理できる[エピックボード](https://docs.gitlab.com/user/group/epics/epic_boards/)\n* ストーリーポイントを[概要](https://docs.gitlab.com/user/group/epics/epic_boards/#view-count-of-issues-weight-and-progress-of-an-epic)ビューで直接確認できる機能\n* 作業アイテムをその場で操作しながら、全体の文脈を見失わない包括的な[drawerビュー](https://docs.gitlab.com/user/group/epics/manage_epics/#open-epics-in-a-drawer)\n* エピックから[子イシュー](https://docs.gitlab.com/user/group/epics/manage_epics/#add-an-issue-to-an-epic)を直接作成・リンクできる機能 \n\n![SAFe - 画像3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097576749.gif)\n\n### スプリント計画\n\n次のスプリントでチームが取り組む作業を決めるタイミングでは、GitLabの以下の機能を活用できます。\n\n* バックログを包括的に確認できる[イシューボード](https://docs.gitlab.com/user/project/issue_board/)\n* ボード上にユーザーストーリーの[合計ウェイト](https://docs.gitlab.com/user/project/issue_board/#sum-of-issue-weights)を直接表示\n* イシューを簡単にイテレーション間で移動できる機能\n* スプリント間のストーリー移動を効率化する折りたたみ可能なビュー\n\nつまり、すべてを1か所に集約して管理でき、プランニングミーティングではツールを行き来するのではなく、実際の計画に集中できます。\n\n![GitLabで行うスプリント計画](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752378662/Blog/ynmq3wnf77yk6xkehkda.gif )\n\n* GitLabを活用したスクラムの進め方については、[こちら](https://docs.gitlab.com/tutorials/scrum_events/)のチュートリアルをご覧ください。アジャイルプランニングやスプリントの進捗管理におけるGitLabの便利な機能を詳しく確認できます。*\n\n### デイリースタンドアップ\n\nデイリースタンドアップでは、チーム全員がボードを囲んで、誰が何に取り組んでいるか、どこで詰まっているか、どの作業がレビュー待ちかを、すべて単一のビューで確認できます。GitLabでは、以下の機能が開発チームのデイリースタンドアップに役立ちます。\n\n* 現在のスプリントに絞った[イテレーションスコープ付き](https://docs.gitlab.com/user/project/issue_board/#iteration-lists)のボードを作成\n* 各カード上にストーリーポイント/ウェイトを直接表示\n* コンテキストを失わずに詳細にアクセスできる[drawerビュー](https://docs.gitlab.com/user/project/issues/managing_issues/#open-issues-in-a-drawer)の活用\n* [ヘルスステータス](https://docs.gitlab.com/user/project/issues/managing_issues/#health-status)でリスクのあるタスクをハイライト表示\n\n![デイリースタンドアップのボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097576751.gif)\n\n### スプリントレビュー\n\nチームの進捗状況を継続的に把握したいですか？GitLabでは、以下のような包括的なメトリクスを利用できます。\n\n* イテレーションごとの[バーンダウンチャートおよびバーンアップチャート](https://docs.gitlab.com/user/group/iterations/#iteration-burndown-and-burnup-charts)\n* ベロシティのトラッキング\n* [リードタイムおよびサイクルタイム](https://docs.gitlab.com/user/group/value_stream_analytics/#lifecycle-metrics)のメトリクス\n* チーム単位でスコープ設定できるダッシュボード\n\nこれらの指標により、チームのスピードが上がっているか、どこでつまずいているか、そして次回のレトロスペクティブで話し合うべきポイントを明確に把握できます。\n\n![バーンダウンチャートとバーンアップチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097577/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097576755.png)\n\n## 統合プラットフォームが強みとなる5つの理由\n\nSAFeのセレモニーを管理できる計画ツールはたくさんあります。でも、GitLabが本当に他と違うと私が感じているのには、明確な理由があります。\n\n1. **頭の切り替えが不要** - 計画、コーディング、テスト、セキュリティのすべてを、1か所で完結できます。\n2. **すべてがつながっている** - 大きなエピックからコード、デプロイまで、作業の流れをたどれます。\n3. **全員が同じ認識を持てる** - デベロッパー、プロダクト担当、セキュリティチームが、同じツール上で連携できます。\n4. **完全な可視性** - ステークホルダーは、進捗の確認を1か所で行えます。\n5. **全体像が見える** - 計画と開発のメトリクスをまとめて確認できるため、本当の状況が明確になります。\n\nもしあなたの開発チームがすでにGitLabを使いこなしているなら、プランニングのためだけに別のツールへ切り替えたり、複雑なインテグレーションを無理やり組み合わせたりする必要はありません。SAFeプランニングをGitLabに取り込むことで、チーム全体にとってはるかにスムーズな体験が得られます。\n\n## 実装の原則\n\n私は従来型のSAFeツールからGitLabへの移行に取り組むチームと協力してきましたが、その経験から学んだことがあります。それは、以前のツールをそのまま再現しようとするのではなく、**それぞれのセレモニーが何を目的としているか**に注目することが重要だということです。\n\nGitLabの利点を最大限に活用しているのは、GitLabのネイティブ機能を素直に受け入れて、それに逆らわずに活用しているチームです。もちろん、SAFeの概念をどうマッピングするか、ワークフローをどう構築するかを最初に整理するには少し手間がかかります。しかし、一度その形ができてしまえば、プロセスは複雑になるどころか、むしろシンプルになります。\n\n成功のカギは、全員が従うべき規則を定義することです。どのラベルが何を意味するのか？ チームをどう追跡するのか？エピックとイシューにはそれぞれ何を入れるのか？こうした判断を事前に少し整理しておくだけで、複数ツール間の調整にかかっていた手間を解消できる、直感的なシステムが手に入ります。\n\n## 導入を始める\n\nさて、試してみる準備はできましたか？GitLabでSAFeを導入するためのステップは以下のとおりです。\n\n1. **構造を整える** - [組織構成](https://about.gitlab.com/ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale/)に合わせて、グループやサブグループを作成します。\n2. **作業の詳細を定義する** - [エピック](https://about.gitlab.com/ja-jp/blog/best-practices-to-set-up-organizational-hierarchies-that-scale/)、[イシュー](https://docs.gitlab.com/user/project/issues/managing_issues/)、[タスク](https://docs.gitlab.com/user/tasks/)をどのように使い分けるかを定義します。\n3. **イテレーションを作成する** - [スプリントのスケジュール](https://docs.gitlab.com/user/group/iterations/#create-an-iteration-cadence)を設定します。\n4. **マイルストーンを追加** - GitLab上でプログラムインクリメント（PI）を表す[マイルストーン](https://docs.gitlab.com/user/project/milestones/#create-a-milestone)を作成します。 \n5. **ボードを構築する** - セレモニーごとに異なるビューを用意します。\n6. **規則について合意する** - ラベルやカスタムフィールドの使い方を文書化し、チームで統一します。\n\nこれらのポイントを最初にしっかり考えておくことで、後々のトラブルや混乱を避けられます。そして、初日から完璧にする必要はないことを忘れないでください。運用しながら学び、必要に応じていつでも調整できます。\n\n## すべてをまとめる\n\nGitLabは、SAFeを実行するための堅実な基盤を提供します。特に、あなたの開発チームがすでにGitLabに慣れ親しんでいる場合には最適です。計画と開発を同じツール上で進めることで、煩雑なハンドオフが不要になり、コラボレーションが格段にしやすくなり、すべての動きがよりスピーディになります。\n\nGitLabのプランニングツールの魅力は、あなたのチームに合わせて柔軟にSAFeをカスタマイズできることです。 決められた型にはまる必要はありません。チームが成熟し、ニーズが変われば、それに応じて運用方法も進化させることができます。\n\n> サイロ化したプランニングにさよならして、もっと快適なワークフローを体験してみませんか？まずは[無料トライアルを開始](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)して、GitLabがどのようにSAFe導入を変革できるかを実感してください。\n\n*💡 このトピックに興味を持った方は、関連記事の[アジャイルソフトウェア開発におけるGitLabの活用法](https://about.gitlab.com/ja-jp/blog/gitlab-for-agile-software-development/)もぜひご覧ください*\n",[746,674,9,676,678],{"slug":1388,"featured":90,"template":681},"safe-without-silos-in-gitlab","content:ja-jp:blog:safe-without-silos-in-gitlab.yml","Safe Without Silos In Gitlab","ja-jp/blog/safe-without-silos-in-gitlab.yml","ja-jp/blog/safe-without-silos-in-gitlab",{"_path":1394,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1395,"content":1401,"config":1407,"_id":1409,"_type":13,"title":1410,"_source":15,"_file":1411,"_stem":1412,"_extension":18},"/ja-jp/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale",{"title":1396,"description":1397,"ogTitle":1396,"ogDescription":1397,"noIndex":6,"ogImage":1398,"ogUrl":1399,"ogSiteName":694,"ogType":695,"canonicalUrls":1399,"schema":1400},"Jira2Labを使用してJiraからGitLabへの大規模な移行をシームレスに実現","複雑なデータ移行の処理、スケーラビリティの向上、効率的な統合を保証するJira2GitLabを使用することで、JiraからGitLabへの大規模な移行がどのように簡素化されるかをご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663129/Blog/Hero%20Images/blog-image-template-1800x945__28_.png","https://about.gitlab.com/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Jira2Labを使用してJiraからGitLabへの大規模な移行をシームレスに実現\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Maximilien Belinga\"}],\n        \"datePublished\": \"2024-10-10\",\n      }",{"title":1396,"description":1397,"authors":1402,"heroImage":1398,"date":1404,"body":1405,"category":744,"tags":1406},[1403],"Maximilien Belinga","2024-10-10","[2月にAtlassianサーバーのサポートが終了した](https://about.gitlab.com/ja-jp/move-to-gitlab-from-atlassian/)ことで、多くのユーザーがAtlassian CloudやAtlassian Data Centerのような代替製品を検討する必要に迫られています。その一方、Atlassianサーバーを使用している企業の間では、より柔軟でコスト効率に優れ、DevSecOpsの堅牢な統合を実現できるアジャイル計画ソリューションを求める動きが広がっています。こうした企業は、移行中にデータ量、カスタマイズ、ユーザーマッピング、パフォーマンス、データ整合性に関する課題にも取り組む必要があります。そこで役に立つのが、[GitLabのJira2Lab](https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/jira2lab)です。Jira2Labは、CI/CDを完全に統合し、JiraからGitLabへの大規模な移行を実現するシームレスなソリューションを提供します。\n\n## 大規模なJiraの移行時に発生する問題\n\nJiraからGitLabへの移行は、特に複雑なワークフローや何千ものイシューを抱える企業では、非常に大変な作業となる場合があります。移行時に発生する最も一般的な課題は次のとおりです。\n\n- **大規模なデータ移行**：イシューや添付ファイル、コメント、プロジェクト数が多ければ多いほど、パフォーマンスの問題やデータ損失を生じさせずに、それらを移行するのは難しくなります。\n\n- **カスタムフィールドとワークフロー**：Jiraインスタンスには、GitLabにそのままではマッピングされないカスタムワークフローやフィールド、イシュータイプが含まれていることがよくあります。このようなギャップがあると、既存のツールではこれらの要素を変換するために手作業が必要となることが多いため、移行時に手間やストレスが生じます。\n\n- **包括的なDevSecOps機能の統合の欠如**：多くの移行ツールではプロジェクト管理データを処理できるものの、GitLabで提供されている包括的なDevSecOps機能は含まれていません。そのため、移行後に[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)パイプラインとソース管理システムを手動で設定する手間がかかります。\n\n## Jira2Labについて\n\nJira2Labは、JiraからGitLabへの大規模な移行時に発生する特有の課題を解決するためにゼロから設計されました。単にデータを移行するだけでなく、ダウンタイムやデータ損失を引き起こすことなく、GitLabの強力なDevSecOps環境にシームレスに移行できるようにチームを支援します。\n\n### Jira2Labの主な機能\n\n1. 大規模なデータ処理の効率化\u003Cbr>\nJira2Labは、パフォーマンスを低下させることなく、複数のプロジェクトにわたって数千ものイシュー、添付ファイル、コメント、カスタムフィールドを処理できるように最適化されています。簡単にスケールできるため、最大規模の企業移行にも対応可能です。\n\n2. カスタムワークフローとフィールドのマッピング\u003Cbr>\nJira2Labの数ある機能の中でもひときわ目立つのは、JiraからGitLabへカスタムワークフローとフィールドを自動的にマッピングする機能です。このツールの柔軟なマッピング設定を活用することで、移行プロセス中の手作業が不要となり、JiraからGitLabにすべてをスムーズに移行できます。\n\n3. CI/CDパイプラインの統合\u003Cbr>\nJira2Labはイシューやプロジェクトを移行するだけでなく、GitLabのCI/CDパイプライン全体を移行プロセスに統合します。そのため、開発チームは移行後すぐに、自動テストやデプロイパイプラインなど、GitLabのDevSecOps機能を使い始められます。\n\n4. 移行テスト\u003Cbr>\nJira2Labは移行テストに対応しているため、大規模な移行を行う前に設定やワークフローをテストできます。テストを通じてあらゆる問題を早期に発見しておくことで、移行全体を中断することなく進められます。\n\n5. リアルタイムモニタリング\u003Cbr>\nJira2Labは、移行中のリアルタイムでのモニタリングとログ生成に対応しています。これらを活用することで、完全な透明性が確保され、すべてのステップがエラーなく正確に実行されていることを確認できます。\n\n6. 柔軟かつカスタマイズ可能\u003Cbr>\nJiraインスタンスに独自の設定やワークフローがある場合でも、Jira2Labは独自の要件に従って移行をカスタマイズできる柔軟性を備えているため、移行中に何かが失われることはありません。\n\n### JiraとGitLabの機能比較\n\nJiraからGitLabに移行することで、ワークフローの統合に加え、GitLab固有の高度な機能を利用できるようになります。各プラットフォームの主な機能を簡単に比較してみました。\n\n| **機能**             | **Jira**                        | **GitLab**                    |\n|-------------------------|----------------------------------|-------------------------------|\n| **イシュートラッキング**       | はい（高度にカスタマイズ可能）       | はい（DevSecOpsに統合されている）   |\n| **アジャイルボード**         | はい（Kanban、Scrum）             | はい（イシューボード、マイルストーン） |\n| **CI/CD**                | いいえ（外部ツールが必要）    | はい（ビルトインのCI/CD）           |\n| **ソース管理**       | いいえ（GitHub／Bitbucketが必要）  | いいえ（ネイティブGitサポート）       |\n| **DevSecOpsツール**         | 統合に制限あり            | DevSecOpsライフサイクル全体          |\n\nJira2Labでは、開発および運用に対するGitLabの統合されたアプローチが最大限に活用されており、イシュートラッキングからCI/CDパイプラインまで、すべての重要な要素をスムーズに移行可能です。\n\n## 移行方法\n\nJira2Labは、5段階からなる構造化された移行方法に基づき、中断を最小限に抑えてシームレスな移行を実現します。\n\n### 1. 調査と計画\n\nまずは、お客様のJiraの設定を十分に理解し、移行すべきすべてのカスタムワークフロー、フィールド、プロジェクトを特定します。この段階では、JiraとGitLabの機能を比較し、移行プロセスを細部まで計画するためのギャップ分析も行います。\n\n### 2. 設定\nこの段階では、移行ツールの設定に加え、JiraとGitLabの両方に必要な環境を設定します。移行開始前にすべての権限を確認し、Jiraデータのバックアップを設定する作業も、この段階で行います。\n\n### 3. 移行テスト\nデータセット全体を移行する前に、一部のプロジェクトで移行テストを実行して、移行プロセスやワークフロー、データの整合性をテストします。これにより、問題がある場合でも、プロセスの早い段階で特定して解決できます。\n\n### 4. 大規模な移行\n移行テストの結果を検証した後、全プロジェクトを対象に移行を行います。その際、ダウンタイムを最小限に抑え、開発チームがスムーズに移行を行えるようにします。\n\n### 5. 移行の完了および移行後のサポート\n移行完了後も、すべてのチームでGitLabを十分にご活用いただくために、引き続きサポートいたします。この段階では、ユーザートレーニングの提供に加え、必要な場合はJiraインスタンスの廃止も行います。\n\n## 事例：Jira2Labで大規模な移行に取り組む\n\nある大企業では最近、移行を実施する際に、50のプロジェクトにまたがる20,000件超のイシューをJiraからGitLabに移行する必要に迫られました。プロジェクトには高度にカスタマイズされたワークフロー、数千ものコメントや添付ファイルもあり、これらもすべて移行する必要がありました。\n\nJira2Labの活用により、以下を達成しました。\n\n- データを一切失うことなく、カスタムフィールドを含むすべてのデータを移行。\n- GitLab内にCI/CDパイプラインを設定したことで、移行後すぐにチームが作業を継続可能に。\n- 2つのプロジェクトで移行テストを実施することで、組織全体を対象に移行を進める前に、ワークフローの軽度の矛盾を特定して修正。\n\n結果として、大きなダウンタイムも発生することなく、全プロセスが予定していた期限内に完了し、GitLabへのシームレスな移行を実現できました。\n\n## Jira2Labを今すぐ利用する\n\nほかの移行ツールでは対応できない課題を解決できるJira2Labは、市場において注目を浴びています。大規模な移行に特化して設計されており、プロジェクト管理データのみを対象とする多くのツールとは異なり、GitLabのDevSecOpsライフサイクル全体と統合できます。カスタムワークフローのマッピング、およびCI/CDパイプラインの統合に対応するJira2Labは、GitLabへの移行時に開発ワークフローを強化したい企業にとって最適なソリューションです。\n\n> GitLabを使用した開発プロセスのスケーリングをご希望の場合は、GitLabの[プロフェッショナルサービスカタログ](https://about.gitlab.com/services/catalog/)をご覧ください。お客様が効率的かつ効果的に移行プロセスを進められるよう、当社チームで提供しているサポート内容をご紹介しています。GitLabによるJira2Labの個別デモをご希望の場合は、ページ下部のフォームからお問い合わせください。\n",[746,108,769,9,676],{"slug":1408,"featured":90,"template":681},"seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale","content:ja-jp:blog:seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale.yml","Seamlessly Migrate From Jira To Gitlab With Jira2lab At Scale","ja-jp/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale.yml","ja-jp/blog/seamlessly-migrate-from-jira-to-gitlab-with-jira2lab-at-scale",{"_path":1414,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1415,"content":1421,"config":1427,"_id":1429,"_type":13,"title":1430,"_source":15,"_file":1431,"_stem":1432,"_extension":18},"/ja-jp/blog/the-ultimate-guide-to-token-management-at-gitlab",{"title":1416,"description":1417,"ogTitle":1416,"ogDescription":1417,"noIndex":6,"ogImage":1418,"ogUrl":1419,"ogSiteName":694,"ogType":695,"canonicalUrls":1419,"schema":1420},"GitLabにおけるトークン管理の究極ガイド","ソフトウェア開発ライフサイクル全体のセキュリティを向上させるために、トークンを特定、管理、保護するためのエンドツーエンドのプロセスをすべてご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097408/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_1097303277_6gTk7M1DNx0tFuovupVFB1_1750097407860.jpg","https://about.gitlab.com/blog/the-ultimate-guide-to-token-management-at-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLabにおけるトークン管理の究極ガイド\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Hakeem Abdul-Razak\"}],\n        \"datePublished\": \"2025-02-25\",\n      }",{"title":1416,"description":1417,"authors":1422,"heroImage":1418,"date":1424,"body":1425,"category":770,"tags":1426},[1423],"Hakeem Abdul-Razak","2025-02-25","深夜2時、成長中のテック企業でエンジニアとして働いているあなたに、緊急の電話がかかってきました。重要なデプロイパイプラインが失敗し、チームはその原因を突き止めようと必死です。数時間後、1週間前に退職したエンジニアのパーソナルアクセストークンが失効していたことが判明します。そのトークンは複数の重要な自動化プロセスで使用されており、その影響でシステム全体が混乱状態に陥ってしまいました。これを防ぐためには、どのようにトークンを管理すべきなのでしょうか？\n\n\nこのガイドでは、トークンを適切に特定、管理、保護するためのエンドツーエンドのプロセスをご紹介します。このガイドは、プロジェクト内でのトークン管理を徹底したいGitLabの管理者、デベロッパー、セキュリティチームに向けて、[トークンに関する詳しい文書](https://docs.gitlab.com/ee/security/tokens)を補う参考資料として活用いただけます。\n\n\nこのガイドでは、以下の内容を取り上げています。\n\n- [ジョブに適したトークンの選び方](#how-to-select-the-right-token-for-the-job)\n\n- [トークンの種類](#token-types)\n\n- [自分が使用しているトークンの把握方法](#discovering-your-tokens)\n    - [認証情報インベントリ](#credentials-inventory)\n- [GitLab UIおよびAPIでのトークン管理](#managing-tokens-in-the-gitlab-ui-and-api)\n\n- [トークンのローテーションと有効期限の管理](#token-rotation-and-expiration-management)\n\n- [トークン管理のベストプラクティス](#token-management-best-practices)\n    - [サービスアカウント](#service-accounts)\n\n## ジョブに適したトークンの選び方\n\n\nユースケースに合ったトークンを選ぶことで、セキュリティと機能性の両面で最適な運用が可能になります。\n\nトークンは、APIリクエストの認証、CI/CDパイプラインの自動化、サードパーティツールとの統合、デプロイやリポジトリの管理など、幅広い場面で活用できます。\n\n\n![トークン管理ガイド -\nトークンのフローチャート](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097435/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097434869.png)\n\n\nわかりやすさを重視し、この図では1人のユーザーがトークンを所有するシンプルなユースケースを例にしています。詳細については、インスタンスまたはトップレベルグループの各[ネームスペース](https://docs.gitlab.com/ee/user/permissions.html)（ユーザー/グループ）におけるユーザーロールや権限に関するGitLabの文書をご参照ください。以下のようなユースケースが考えられます。\n\n\n- **パーソナルアクセストークン**（[PAT]\n(https://docs.gitlab.com/user/profile/personal_access_tokens/#personal-access-token-scopes)）：デベロッパーがユーザーの個人アクセスや権限を必要とする場合に使えるトークンです。このトークンは、ユーザーのステータスと権限に従って認証情報が管理されるため、ユーザーが特定のプロジェクトやグループへのアクセス権を失った場合や、アカウントが無効化された場合には、自動的にそのトークンも無効になります。\n\n-\n**プロジェクト/グループアクセストークン**（[PrAT](https://docs.gitlab.com/user/project/settings/project_access_tokens/#scopes-for-a-project-access-token)/[GrAT](https://docs.gitlab.com/user/group/settings/group_access_tokens/#scopes-for-a-group-access-token)）：特定のプロジェクトまたはグループ内でのリソースへのアクセスを制限する必要がある場合に適したトークンです。PrAT/GrATを持つユーザーは、割り当てられたスコープを通じてこれらのリソースにアクセスできるようになります。\n\n\n## トークンの種類\n\n\nこちらは、GitLabトークンの種類と、それぞれのデフォルトのプレフィックスおよびユースケースの一覧です。詳細については、[GitLabトークンの概要ページ](https://docs.gitlab.com/ee/security/tokens/#available-scopes)をご覧ください。\n\n\n| トークン | プレフィックス | 説明 |\n\n| :---: | :---: | :---: |\n\n| パーソナルアクセストークン | glpat | ユーザー固有のデータにアクセス |\n\n| OAuth 2.0トークン | gloas | OAuth2.0 認証プロトコルを使ったサードパーティアプリとの連携 |\n\n| なりすましトークン | glpat | 他のユーザーの代わりに管理操作を実行 |\n\n| プロジェクトアクセストークン | glpat | 特定のプロジェクトのデータにアクセス |\n\n| グループアクセストークン | glpat | 特定のグループのデータにアクセス |\n\n| デプロイトークン | gldt | ユーザー名とパスワードなしでプロジェクトのコンテナイメージをクローン、プッシュ、プル |\n\n| デプロイキー | 該当なし | リポジトリへの読み取り専用または読み書きアクセスを許可 |\n\n| Runner認証トークン | glrt | GitLab Runnerを認証 |\n\n| CI/CDジョブトークン | glcbt | CI/CDプロセスを自動化 |\n\n|トリガートークン| glptt | パイプラインを手動またはプログラムでトリガー |\n\n| フィードトークン | glft | パッケージ/RSSフィードへのアクセス認証 |\n\n| 受信メールトークン | glimt | 受信メールの処理 |\n\n| Kubernetes向けGitLabエージェントトークン | glagent |\nGitLabGitLabエージェントを通じてKubernetesクラスターを管理 |\n\n| SCIMトークン | glsoat | SCIMを利用したユーザー管理の統合 |\n\n| 機能フラグクライアントトークン | glffct | プログラムで機能フラグを有効化 |\n\n| Webhookトークン | 該当なし | WebhookのリクエストがGitLabから送信されたことを検証するための秘密トークン（ユーザーが設定）\n|\n\n\n## トークンの確認方法\n\n\n### 認証情報インベントリ\n\n\nGitLab Ultimateでは、GitLab\nSelf-Managedの管理者や、GitLab.com（バージョン17.5以降）における企業組織のトップレベルグループのオーナーが、自身のネームスペース内の認証情報を監視できます。\n\n\nこのインベントリでは、以下のようなトークン情報を確認できます。\n\n\n* トークンの種類\n  * [GitLab.com](https://docs.gitlab.com/ee/user/group/credentials_inventory.html)で利用可能なトークン\n  * [GitLab Self-Managed](https://docs.gitlab.com/ee/administration/credentials_inventory.html)で利用可能なトークン\n* 関連付けられたユーザーアカウント \n\n* トークンのスコープ、および作成日と有効期限 \n\n* 最終使用時のIPアドレス（GitLab 17.10時点）\n\n* 上記のユーザー定義パラメータに基づくトークンのフィルタリング\n\n* トークンの取り消しおよびローテーションの機能\n\n\n認証情報インベントリを適切に管理することで、権限が過剰なトークンの特定や、ローテーションが必要な認証情報の把握が可能になり、安全かつ効率的な運用が実現します。\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/A9ONfnwswd0?si=4VIEUgJaD4daj81b&amp;start=105\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n#### 認証情報インベントリAPI\n\n\nUIの機能に加えて、新しい/group/:id/manage[エンドポイント](https://docs.gitlab.com/ee/api/members.html#list-all-members-of-a-group-or-project)を通じて認証情報インベントリAPIをリリースするための[開発が進行中](https://gitlab.com/groups/gitlab-org/-/epics/16343)です。このエンドポイントでアクセスできる認証情報は企業[ユーザー](https://docs.gitlab.com/ee/user/enterprise_user/)に限定されており、企業組織のトップレベルグループのオーナーが利用可能です。将来のAPIコールの例は以下のとおりです。\n\n\n```console\n\ncurl --header \"PRIVATE-TOKEN: \u003Cpat>\"\n\"https://verified_domain.com/api/v4/groups/\u003Cgroup_id>/manage/personal_access_tokens\"           \n\n```\n\n### GitLab API\n\n\nGitLab\nAPIを使用すると、組織内のトークンをプログラムで一覧表示および管理できます。主要な認証関連エンドポイントは、個人用、グループ用、CI/CDトークンなど、[さまざまなトークンの種類](https://docs.gitlab.com/ee/api/rest/authentication.html)をサポートしています。GitLab上で認証済みユーザーがアクセスできるすべてのプロジェクトを一覧表示する際のパーソナルアクセストークンの使用方法は次のとおりです。\n\n\n```console\n\ncurl --header \"PRIVATE-TOKEN: \u003Cyour_access_token>\" \\\n     \"https://gitlab.example.com/api/v4/projects\"\n\n```\n\n\nGitLab APIへのAPIコールの方法については、次の動画をご覧ください。\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/0LsMC3ZiXkA?si=vj871YH610jwQdFc\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n### トークンの使用場所の確認\n\n\nトークンの使用場所を確認する方法は以下のとおりです。\n\n* **ユーザープロフィール >\n[アクセストークン](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#view-the-time-at-and-ips-where-a-token-was-last-used)**\n\n* 認証情報インベントリ\n\n* 監査イベント\n\n* API経由\n\n\nトークンの使用状況に関する情報は、**last_used**は10分ごと、**last_used_ip**は1分ごとに更新されます。\n\n\nIPアドレスの確認機能はGitLab\n17.9で追加され、**:pat_ip**機能フラグにより管理されます。[トークンの最終使用時間](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#view-the-time-at-and-ips-where-a-token-was-last-used)と、そのトークンが使われた最後の5つの異なるIPアドレスを表示する方法は以下のとおりです。\n\n\n![トークン管理ガイド -\nパーソナルアクセストークンの設定](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097435/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097434870.png)\n\n\n## GitLab UIとAPIにおけるトークンの管理\n\n以下の表には、UIにおけるトークン作成の詳細と、APIを介したトークンの使用方法を示すビデオが含まれています。\n\n\n| トークン | GitLab UI | GitLab API |\n\n| ---------- | ---------- | ---------- |\n\n| パーソナルアクセストークン |\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=3)\n|\n[ドキュメント](https://docs.gitlab.com/ee/api/personal_access_tokens.html)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=43)\n|\n\n| グループアクセストークン |\n[ドキュメント](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html#group-access-tokens)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=120)\n|\n[ドキュメント](https://docs.gitlab.com/ee/api/group_access_tokens.html)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=157)\n|\n\n| プロジェクトアクセストークン |\n[ドキュメント](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#project-access-tokens)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=254)\n|\n[ドキュメント](https://docs.gitlab.com/ee/api/project_access_tokens.html)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=285)\n|\n\n\n## トークンのローテーションと有効期限の管理\n\n\nトークンローテーションと厳格な有効期限管理を実施することで、セキュリティリスクを減らし、セキュリティ基準への準拠を確保できます。定期的なローテーションと有効期限の強制により、期限切れの認証情報がセキュリティの脆弱性となるのを防ぎます。\n\n\nこれまで、グループおよびプロジェクトのアクセストークンは、有効期限が切れると自動的に削除されていました。そのため、無効なトークンの記録が残らず、監査やセキュリティレビューを行う上で課題となっていました。この問題に対応するため、[最近のアップデート](https://gitlab.com/gitlab-org/gitlab/-/issues/462217)により、無効化されたグループおよびプロジェクトのアクセストークンの記録が、無効になってからUI上に30日間保持されるようになりました。これにより、トークンの使用状況や有効期限、取り消しの履歴を追跡しやすくなり、コンプライアンスやモニタリングの強化につながります。\n\n\nトークンのローテーションと有効期限の管理をより積極的に行うには、次の手順を実行します。\n\n\n*\nUIまたはAPIを介してトークンを積極的にローテーションする。APIを使用する場合は、[自動的にトークンの再利用を検知](https://docs.gitlab.com/ee/api/personal_access_tokens.html#automatic-reuse-detection)するセキュリティ機能に注意が必要です。\n\n*\nインスタンス全体で、[アクセストークンの最大有効期間](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#limit-the-lifetime-of-access-tokens)を制限する設定を導入。\n\n\n### トークンローテーションAPI\n\n\nGitLab\n17.7までは、アクセストークンのローテーションはAPIを通じてプログラム上で行う必要がありましたが、現在はUI上でも実行可能になりました。操作方法は以下の表の動画または[ドキュメント](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#use-the-ui)をご確認ください。\n\n\n### トークンローテーションスニペット\n\n\n以下の表には、GitLabトークンのローテーションに関する動画のリンクをまとめています。\n\n\n| トークン | 前提条件 | GitLab UI | GitLab API |\n\n| :---: | :---: | ----- | ----- |\n\n| パーソナルアクセストークン | スコープ：api  |\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=76) \n|\n[ドキュメント](https://docs.gitlab.com/ee/api/personal_access_tokens.html#rotate-a-personal-access-token)\nと[動画](https://youtu.be/v5Nj3Jy4vaI?t=92)  |\n\n| グループアクセストークン | スコープ：apiと役割：オーナー |\n[ドキュメント](https://docs.gitlab.com/ee/user/group/settings/group_access_tokens.html#create-a-group-access-token-using-ui)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=203) \n|\n[ドキュメント](https://docs.gitlab.com/ee/api/group_access_tokens.html)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=214) \n|\n\n| プロジェクトアクセストークン | スコープ：apiと役割：オーナー、メンテナー |\n[ドキュメント](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#create-a-project-access-token)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=335) \n|\n[ドキュメント](https://docs.gitlab.com/ee/api/project_access_tokens.html)と[動画](https://youtu.be/v5Nj3Jy4vaI?t=349) \n|\n\n\n## トークン管理のベストプラクティス\n\n\n### 最小権限の原則\n\n\n各トークンに割り当てる権限を、それぞれのタスクに必要な最小限に制限することで、リスクを軽減します。これにより、システム内の潜在的な障害箇所を事前に予測・対処しやすくなります。以下のような方法で、この原則を実践できます。\n\n\n* それぞれのジョブに合った適切なトークンを選ぶ。フローチャートを参照。\n\n*\nトークンの作成時に必要なスコープのみを割り当てる。たとえば、監査目的のようなジョブには読み取り専用のスコープを使用します。詳細は[ロール](https://docs.gitlab.com/ee/user/permissions.html#roles)を参照。\n\n* 特別な理由がない限り、管理者権限を付与しない。\n\n*\nインスタンス全体でのデフォルトのトークン[有効期限](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#set-a-lifetime-1)を設定する。\n\n* トークンの権限を定期的に確認・監査し、運用実態に合っているか見直す。\n\n* タスク完了後は速やかにトークンを無効化する。\n\n\n### サービスアカウント\n\n\n[サービスアカウント](https://docs.gitlab.com/ee/user/profile/service_accounts.html)を使用することで、トークンを人間のユーザーではなく非人間エンティティに紐づけることができ、特定ユーザーへの依存を減らせます。自動化にトークンを使う場合、個人アカウントではなく、スコープを制限したサービスアカウントを作成することが推奨されます。サービスアカウントを使用する主なメリットは次のとおりです。\n\n\n* CI/CDパイプラインでサービスアカウントのトークンを使うことで、ユーザーアカウントの変更による中断を防げる\n\n* 個人アカウントに影響を与えずに、プログラム上でトークンのローテーション処理を自動化できる\n\n* サービスアカウントによる操作のモニタリング・監査がより明確になる \n\n*\n[有効期限のない](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-service-account-personal-access-token-with-no-expiry-date)サービスアカウントを作成できる\n\n*\n[ライセンスシート](https://docs.gitlab.com/user/profile/service_accounts/#create-a-service-account)を消費しない\n\nGitLabでは、サービスアカウントとそのトークンの管理をより簡単にするために、[APIベースでの作成](https://docs.gitlab.com/ee/api/user_service_accounts.html#create-a-service-account-user)に対応する新しい[サービスアカウントUI](https://gitlab.com/groups/gitlab-org/-/epics/9965)の提供を予定しています。以下のデモでは、サービスアカウントをプログラム上で使用する方法を紹介しています。\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/oZvjg0SCsqY?si=cj-0LjfeonLGXv9u\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n### 脆弱性ツール\n\n\nGitLabに組み込まれたセキュリティツールを活用することで、トークンの使用に関連する脆弱性を特定し、リスクを軽減できます。最大限のカバレッジを得るには、各ツールを併用することを推奨します。\n\n\n*\n[シークレット検出](https://docs.gitlab.com/ee/user/application_security/secret_detection/)：リポジトリ内にハードコードされたシークレット（APIトークン、パスワード、その他の機密情報）がないかをスキャンします。[検出されたシークレットの一覧](https://docs.gitlab.com/ee/user/application_security/secret_detection/detected_secrets.html)も確認可能です。\n\n*\n[静的アプリケーションセキュリティテスト（SAST）](https://docs.gitlab.com/ee/user/application_security/sast/)：ソースコードに存在するセキュリティ上の脆弱性を分析し、[マージリクエスト内でUI上のレポートとして表示](https://docs.gitlab.com/ee/user/application_security/sast/#features)するなどの機能を提供します。\n\n*\n[依存関係スキャン](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/)：プロジェクトで使用しているサードパーティライブラリに、トークンに関連する脆弱性が含まれていないかを確認します\n\n\n### 監査ログとモニタリング\n\n\nインスタンスまたはグループ単位で、監査ログとトークンの使用状況を定期的に確認することで、トークンの健全性を維持できます。\n\n\n*\n[監査イベント](https://docs.gitlab.com/ee/user/compliance/audit_events.html)：GitLabの監査イベントログを有効にすると、トークンの作成、使用、削除、不審なAPIコール（ログ内の許可されていないパラメーターやレートリミッターの継続的なトリガーなど）を追跡できます。\n\n*\n[IP許可リスト](https://docs.gitlab.com/ee/administration/reporting/ip_addr_restrictions.html#configure-ip-address-restrictions)：悪意のあるユーザーが複数のIPアドレスを使ってアクティビティを隠すことを防ぎます。\n\n*\n[アラート](https://docs.gitlab.com/ee/operations/incident_management/alerts.html)：不審なアクティビティに対してアラートを設定できます（オンコールローテーションに関するページングのトリガーやインシデントの作成に活用可能）。\n\n*\n[認証情報インベントリ](https://docs.gitlab.com/ee/administration/credentials_inventory.html)：利用可能なすべてのアクセストークンを完全に管理し、必要に応じて取り消すことができます。\n\n*\n[通知](https://docs.gitlab.com/ee/user/profile/notifications.html)：グループ、プロジェクト、パーソナルの各種トークンについて、有効期限が近づいた際に送信される通知メールを積極的に処理します。お客様からのご要望に応え、この通知機能は従来の7日前に加え、30日前、60日前の通知にも対応しました。\n\n*\n[Webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#create-a-webhook)：アクセストークンのWebhookをグループとプロジェクトに設定して、トークンの有効期限7日前の通知イベントを送信できるようになりました。この機能も最近、**:extended_expiry_webhook_execution_setting**機能\nフラグ（デフォルトでは無効）によって、30日、60日前の通知送信に対応しました。\n\n\n## 今後の展開\n\n\nGitLabでは多くの種類のトークンを提供しており、今後はそれらを統合しつつ、トークンの有効期間や細かなスコープ設定、一貫した管理・運用に重点を置いた改善を進めていく[予定](https://gitlab.com/gitlab-org/gitlab/-/issues/502630)です。現在注力しているトークン関連の機能には、サービスアカウント用の完全なUI、認証情報インベントリへの追加認証情報タイプの対応、トークンおよびサービスアカウントの監査強化などが含まれます。\n\n\n> トークン管理機能を体験するには、[GitLab\nUltimateの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)にぜひご登録ください。\n",[678,770,674,9,676],{"slug":1428,"featured":90,"template":681},"the-ultimate-guide-to-token-management-at-gitlab","content:ja-jp:blog:the-ultimate-guide-to-token-management-at-gitlab.yml","The Ultimate Guide To Token Management At Gitlab","ja-jp/blog/the-ultimate-guide-to-token-management-at-gitlab.yml","ja-jp/blog/the-ultimate-guide-to-token-management-at-gitlab",{"_path":1434,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1435,"content":1441,"config":1448,"_id":1450,"_type":13,"title":1451,"_source":15,"_file":1452,"_stem":1453,"_extension":18},"/ja-jp/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"title":1436,"description":1437,"ogTitle":1436,"ogDescription":1437,"noIndex":6,"ogImage":1438,"ogUrl":1439,"ogSiteName":694,"ogType":695,"canonicalUrls":1439,"schema":1440},"【トップ10】プロダクトマネージャーが一挙紹介！GitLabワークフロー テクニック","GitLabのプロダクトマネージャーが、GitLab DevSecOpsプラットフォームを効率的に操作し、チームコラボレーションを促進できるお気に入りのテクニックを一挙ご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099361/Blog/Hero%20Images/Blog/Hero%20Images/lightvisibility_lightvisibility.png_1750099361252.png","https://about.gitlab.com/blog/top-10-gitlab-workflow-hacks-you-need-to-know","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"【トップ10】プロダクトマネージャーが一挙紹介！GitLabワークフロー テクニック\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Amanda Rueda\"}],\n        \"datePublished\": \"2024-04-09\",\n      }",{"title":1436,"description":1437,"authors":1442,"heroImage":1438,"date":1443,"body":1444,"category":1445,"tags":1446,"updatedDate":1447},[741],"2024-04-09","ソフトウェア開発の世界では、「効率」とは単に速く動くことではなく、スマートなナビゲーションのことも意味します。GitLabのプロダクトマネージャーとして、本日ご紹介する私のお気に入りのGitLab機能トップ10は、必要であることに気づいていなかったワークフローハックかもしれません。\n\nこれらのテクニックをぜひ身につけて、チーム内の生産性とコラボレーションを新たなレベルに引き上げてみませんか。\n\nそれでは一つずつ見ていきましょう。\n\n## 1. コメントの解決\n\nコメントの解決は、マージリクエスト上だけではありません。イシューへのコメントを解決することで、ノイズを大幅に減らし、タスク管理を合理化できます。特にフィードバックを効率的に管理するのに便利です。\n\n> __お気に入りの理由：__ コメントを解決することは、イシューのノイズを減らすだけでなく、タスクを管理する効果的な方法でもあるからです。\n> \n> **ユースケース：** コメントを解決することは、フィードバックを集めているイシューにとって有効な手法です。フィードバックに返信してリンクを提供し、コメントを解決して次のイシューに進みましょう。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/discussions/#resolve-a-thread)__\n\n![解決コメントの例 - 画像1](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099376147.gif)\n\n\u003Cp>\u003C/p>\n\n## 2. 内部コメント\n\n外部の人に見られることなく、チームと直接相談することができます。イシューまたはマージリクエスト内のディスカッションは非公開にし、コメントはチームメンバーのみが閲覧できるようにしましょう。透明性とプライバシーのバランスが絶妙です。\n\n> __お気に入りの理由：__ プライバシーと透明性のバランスをとりながら、より幅広い議論をコミュニティに投げかけられるからです。\n> \n> __ユースケース：__ 例えば製品のローンチを調整する際、マーケティングチームが社内のコメントを使ってメッセージングや戦略について話し合い、練り直すことができます。ドラフトモード中もディスカッションは一元管理され、チームも簡単にアクセスできますよ。\n> \n> **[詳細はこちら](https://docs.gitlab.com/ee/user/discussions/#add-an-internal-note)**\n\n![内部コメント例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750099376148.png)\n\n\u003Cp>\u003C/p>\n\n## 3. and/orフィルター\n\n一覧ページでレコードを検索する場合、and/orフィルターを使用することで、ノイズを切り分け、探しているものを素早く効率的に見つけることができます。\n\n> __お気に入りの理由：__ 必要なものを的確に見つけ、効率的で合理的なワークフローを実現するからです。\n> \n>**ユースケース：** 特定のグループに割り当てられた、特定のイニシアチブに関連する機能のイシューを検索します。\n>\n> __[詳細はこちら](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#filter-with-the-or-operator)__\n\n![および/またはフィルター例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/and_or__1__aHR0cHM6_1750099376152.gif)\n\n\u003Cp>\u003C/p>\n\n## 4. URLの自動展開\n\nGitLabのURLの末尾に '+' または '+s' を追加すると、そのURLは情報スニペットに変換され、チームメイトがページを離れることなく進捗を共有できるようになります。\n\n> __お気に入りの理由：__ URLのX線透視をするようなもので、クリックすることなく重要な情報を見ることができるからです。\n>\n> **ユースケース：** コメントで進捗状況を共有したい場合、リンクに '+s' を加えるだけで、誰もが即座に状況を把握できます。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/markdown.html#show-the-issue-merge-request-or-epic-title-in-the-reference)__\n\n![URLの自動展開の例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750099376154.gif)\n\n\u003Cp>\u003C/p>\n\n## 5. クイック アクション\n\nシンプルなテキストコマンドを使用したショートカットであるクイック アクションでは、説明やコメント欄から直接、ユーザーの割り当てやラベルの追加などのタスクを実行できるため、クリック数と時間を減らせます。\n\n> __お気に入りの理由：__ クリック数と時間を減らして時間を節約できるからです。\n> \n> **ユースケース：** 新しいイシューを作成する際、クイック アクションを使用して、ラベル、マイルストーンを自動的に追加し、レコードを保存する際にエピックに接続します。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/project/quick_actions.html)__\n\n![クイック アクションの例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750099376156.gif)\n\n\u003Cp>\u003C/p>\n\n## 6. 一括編集\n\n複数のイシューに対して、ラベルの適用、担当者の変更、マイルストーンの更新を一度に行うことができます。この機能により、面倒になりがちなアップデートが簡単になり、数多くのイシューを素早く調整できるようになります。\n\n> __お気に入りの理由：__ 面倒な更新作業が、簡単かつ迅速に行えるようになるからです。\n> \n> **ユースケース：** スプリントのイシューすべてにレビューが必要なタグを付ける必要がある場合、フィルターをかけて、すべて選択し、ラベルを一括で追加するだけ。とても簡単です。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#bulk-edit-issues-from-a-project)__\n\n![一括編集の例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099376157.gif)\n\n\u003Cp>\u003C/p>\n\n## 7. エピックスイムレーン\nボード上のエピックでイシューをグループ化すると、進捗状況を視覚的に追跡し、議論できます。レビューやスタンドアップの際に、作業同士のつながりをわかりやすくします。\n\n> __お気に入りの理由：__ ボードを確認することで、仕事の背景を容易に理解できるからです。\n> \n> **ユースケース：** スタンドアップレビュー中にエピックごとにグループ化し、親イニシアチブと簡単に連携します。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/project/issue_board.html#group-issues-in-swimlanes)__\n\n![エピックスイムレーンの例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750099376158.gif)\n\n\u003Cp>\u003C/p>\n\n## 8. Wikiダイアグラム\n\n作成が簡単なダイアグラムを使用して、Wikiページに直接アイデアとワークフローを示します。この機能により視覚的に学習でき、複雑な概念を簡素化できます。\n\n> __お気に入りの理由：__ 非常にユーザーフレンドリーで柔軟性があるからです。\n> \n> **ユースケース：** 新しい機能のワークフローを概説する場合は、チーム全員が明確に理解できるように、Wikiページに直接描画します。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/administration/integration/diagrams_net.html)__\n\n![WiKiダイアグラムの例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750099376159.gif)\n\n\u003Cp>\u003C/p>\n\n## 9. 表の作成\n\n表の作成にはマークダウンを使用しないでください。リッチテキストエディターを使用すると、表を簡単に挿入および書式設定でき、ドキュメントをより明確に構造化できます。\n\n> __お気に入りの理由：__ これを使えば、表作成の手間が一気に省け、数回のクリックできれいに整理された更新をかけられます。\n> \n> **ユースケース：** スプリントのレトロスペクティブ（振り返り）を作成する際、表を素早く挿入して、フィードバック、アクションアイテム、オーナーを整理することで、全員がレビュープロセスをスムーズに行えます。\n> \n> __[詳細はこちら](https://docs.gitlab.com/ee/user/rich_text_editor.html#tables)__ \n\n![テーブル作成の例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750099376160.gif)\n\n\u003Cp>\u003C/p>\n\n## 10. ビデオとGIFの埋め込み\n\nイシューやエピックの説明やコメントにGIFやYouTube動画を埋め込んで、コミュニケーションに動的な要素を加えましょう。\n\n> __お気に入りの理由：__ 時にはGIFや動画の方が言葉よりも伝わりやすいですよね。\n> \n> **ユースケース：** UIのバグを説明する時は、YouTube動画を埋め込んで、提案する機能改善の手順を簡単に示しましょう。\n\n![ビデオとGIFの埋め込みの例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099376/Blog/Content%20Images/Blog/Content%20Images/gif__1__aHR0cHM6_1750099376161.gif)\n\n\u003Cp>\u003C/p>\n\n## これらの機能をもっと活用しましょう！\n\nこれらの機能は、GitLabの包括的なツールキットのほんの一部にすぎません。ツールキットは効率を高め、より良いコラボレーションを促進するように設計されています。十分に活用されていないかもしれませんが、ワークフローに大きな影響を与える可能性があります。日々のルーティーンにぜひ取り入れてくださいね。\n\n*監修：大井 雄介 （GitLab合同会社 ソリューションアーキテクト本部 本部長）*\n\n> GitLabを使用してDevSecOpsワークフローを強化しよう！[GitLab Ultimateを【無料】で試す](https://gitlab.com/-/trial_registrations/new)。\n","devsecops",[678,674,9,771],"2024-05-29",{"slug":1449,"featured":6,"template":681},"top-10-gitlab-workflow-hacks-you-need-to-know","content:ja-jp:blog:top-10-gitlab-workflow-hacks-you-need-to-know.yml","Top 10 Gitlab Workflow Hacks You Need To Know","ja-jp/blog/top-10-gitlab-workflow-hacks-you-need-to-know.yml","ja-jp/blog/top-10-gitlab-workflow-hacks-you-need-to-know",{"_path":1455,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1456,"content":1462,"config":1468,"_id":1470,"_type":13,"title":1471,"_source":15,"_file":1472,"_stem":1473,"_extension":18},"/ja-jp/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance",{"title":1457,"description":1458,"ogTitle":1457,"ogDescription":1458,"noIndex":6,"ogImage":1459,"ogUrl":1460,"ogSiteName":694,"ogType":695,"canonicalUrls":1460,"schema":1461},"GitLab Duo Workflowを使用してアプリケーションの品質保証を強化","自律型AIを使用してJavaアプリケーションに単体テストを追加する方法をステップ別にご説明します。動画チュートリアルもご覧いただけます。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097617/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097616649.png","https://about.gitlab.com/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Workflowを使用してアプリケーションの品質保証を強化\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-04-10\",\n      }",{"title":1457,"description":1463,"authors":1464,"heroImage":1459,"date":1465,"body":1466,"category":679,"tags":1467},"自律型AIを使用してJavaアプリケーションに単体テストを追加する方法をステップ別にご説明します。動画チュートリアル（英語版）もご覧いただけます。",[669],"2025-04-10","テスト駆動設計、十分なコードカバレッジの確保、問題検出を通じてアプリケーションの品質を保証することは、顧客の信頼や組織の評判にとって非常に重要ですが、同時にそれは時間のかかる作業でもあります。最も包括的なDevSecOpsプラットフォーム上に構築された自律型AIである[GitLab\nDuo\nWorkflow](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)は、Javaアプリケーションに単体テストを追加するなどの開発作業を迅速に完了するよう支援します。このチュートリアルでは、こちらのサンプルの[Javaプロジェクト](https://gitlab.com/gitlab-da/playground/csaavedra/gdw/prodmgr-gdw)を使用しながら手順をご説明します。\n\n\n> GitLab Duo\nWorkflowは現在プライベートベータ版です。[ウェイトリスト](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)に登録して、ソフトウェアデリバリーライフサイクル（SDLC）全体のプロセスを理解するAIエージェントを活用すると何が実現できるのかをご確認ください。\n\n\n## プロジェクトをVS Codeで開く\n\n\n1. お使いのローカルマシンにクローンしたJavaプロジェクトをVisual Studio\nCodeで開きます。作業を始める前に、メインブランチやデフォルトブランチではなく、フィーチャーブランチにいることを確認してください。すでにマージリクエストの作業中であれば、対応するフィーチャーブランチが存在しているはずです。\n\n\n2.（このステップは任意です）。GitLab Duo\nWorkflowに単体テストを作成させたいJavaクラスを定義したファイルに移動します。そのファイルの内容を確認しておくことで、生成された単体テストがクラスのメンバーを正常にカバーしているかを後から確認できます。表示される内容は以下のとおりです。\n\n\n![GitLab Duo\nWorkflowに単体テストを作成させたいJavaクラスを定義するファイル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097627482.png)\n\n\n**注意**：このチュートリアルは、VS CodeでGitLab Duo\nWorkflow拡張機能が有効になっていることを前提としています。そうでない場合は、[セットアップドキュメント](https://docs.gitlab.com/user/duo_workflow/#use-workflow-in-vs-code)を参照して有効化してください。\n\n\n3. VS Codeコマンドパレット[Ctrl + Shift + P]を開き、「GitLab Duo Workflow」と入力して、**GitLab:\nShow Duo Workflow**を選択して、GitLab Duo Workflowを起動します。次のようなタブが表示されます。\n\n\n![VS CodeでGitLab\nDuoワークフローを起動](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097627483.png)\n\n\n4.\n次に、デフォルトコンストラクター、オブジェクト作成の検証、およびProductクラスのプロパティの初期状態のテストを追加します。これを実行するには、GitLab\nDuo Workflowのテキストエリアに以下のプロンプトを入力します。\n\n\n```unset\n\nCreate unit tests for class defined in the Product.java file and store the\nunit tests in its own file titled ProductTest.java\n\n```\n\n\n![GitLab Duo\nWorkflowのプロンプトエリア](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097627484.png)\n\n\n5. GitLab Duo Workflowウィンドウの\n[**Start**（開始）]ボタンをクリックします。2つの新しいウィンドウが、画面中央と右側にそれぞれ表示されます。右側のウィンドウには、プロンプトで指定した目標を達成するために、GitLab\nDuo\nWorkflowが実行している分析内容が表示されます。中央のウィンドウには、作成された計画が表示されます。分析と計画の生成が終了すると、次のような出力が表示されるはずです。\n\n\n![GitLab Duo\nWorkflowによって生成された分析と計画](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097627486.png)\n\n\n6. 分析と計画を確認し、問題がなければ、ウィンドウの下部にある[**Approve plan**（計画を承認）]をクリックします。\n\n\n7. GitLab Duo Workflowは、承認された計画の実行を開始し、それに応じてプロジェクトに変更を加えます。\n\n\n8.\n計画の実行が終了すると、プロジェクトに新しいディレクトリ`src/test/java/csaa/jspring/ProductManager`が表示され、`ProductTest.java`という名前の新しいファイルが表示されます。このファイルには、`Product.java`クラスに対するすべての単体テストが含まれています。\n\n\n![新しいファイル名`ProductTest.java`のプロジェクト内の新しいディレクトリ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image7_aHR0cHM6_1750097627488.png)\n\n\n9.\n新しく作成されたファイル`ProductTest.java`に移動すると、いくつかのインポートステートメントが赤い下線で強調されており、インポートエラーが発生していることがわかります。\n\n\n![`ProductTest.java`には、インポートステートメントとエラーインジケータが赤で表示されます](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097627489.png)\n\n\nGitLab Duo Workflowを使用して、これらのエラーを修正してみましょう。\n\n\n**注意**：最初のプロンプトでGitLab Duo\nWorkflowに`pom.xml`ファイルを適宜更新するように依頼することもできます。今回はそうしなかったので、新しいワークフローでこれらのエラーを修正しましょう。\n\n\n## GitLab Duo Workflowを起動して、生成されたコードのエラーを修正する\n\n\n10. 画面右側の分析ウィンドウの下部にある[**New workflow**（新規ワークフロー）]\nボタンをクリックして、新しいワークフローを開始します。\n\n\n![新規ワークフローボタン](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097628/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097627491.png)\n\n\n11. プロンプトテキストエリアに次のように入力します。\n\n\n```unset\n\nThe file ProductTest.java has an error “The import org.junit cannot be\nresolved”. Please fix it\n\n```\n\n\n12. 提案された計画を承認すると、GitLab Duo\nWorkflowは現在の`pom.xml`ファイルを読み取って分析を開始します。また、その後、古いJUnitの依存関係を削除し、正しい依存関係とバージョンを追加します。最後に、`ProductTest.java`ファイルを読み込み、依存性エラーをすべてクリアします。\n\n\n![GitLab Duo\nWorkflowは、pom.xmlを読み取って分析を実行します](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097627/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097627492.png)\n\n\n## チュートリアルを見る\n\n\nこの計画の実行を通じて、GitLab Duo\nWorkflowはプロンプトでリクエストされた内容を達成するために、プロジェクトを効果的に更新しています。これにより、時間と労力が節約され、生産性も向上するため、デベロッパーは組織のイノベーションと価値創造により多くの時間を費やせるようになります。\n\n\n上記の動作を確認したい場合は、次の動画をご覧ください。（英語版のみ視聴可能）\n\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/Tuj7TgqY81Q?si=RReuL1pUsLafvAzs\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- blank line -->\n\n\n[GitLab Duo\nWorkflowプライベートベータ版のウェイトリスト](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)にサインアップして、SDLC全体のプロセスを理解するAIエージェントを活用すると何が実現できるのかをご確認ください。\n\n\n## GitLab Duo Workflowと自律型AIの関連記事\n\n\n- [GitLab Duo\nWorkflow：自律型AIに対するエンタープライズレベルの可視性と管理](https://about.gitlab.com/ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai/)\n\n- [GitLab Duo Workflowドキュメント](https://docs.gitlab.com/user/duo_workflow/)\n\n- [GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)\n\n- [自律型AI：デベロッパーの可能性を解き放つ（The\nSource）](https://about.gitlab.com/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/)\n",[673,674,678,676,9],{"slug":1469,"featured":6,"template":681},"use-gitlab-duo-workflow-to-improve-application-quality-assurance","content:ja-jp:blog:use-gitlab-duo-workflow-to-improve-application-quality-assurance.yml","Use Gitlab Duo Workflow To Improve Application Quality Assurance","ja-jp/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance.yml","ja-jp/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance",{"_path":1475,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1476,"content":1480,"config":1487,"_id":1489,"_type":13,"title":1490,"_source":15,"_file":1491,"_stem":1492,"_extension":18},"/ja-jp/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"config":1477,"title":1478,"description":1479},{"noIndex":6},"GitLab Duo Agent Platform：イシューからMRフロー","デベロッパーが数分でアイデアを実際のコードに変換。最新のエージェントフローでアプリケーションを素早く更新する方法をご紹介します。",{"heroImage":1481,"body":1482,"authors":1483,"updatedDate":1484,"date":1485,"title":1478,"tags":1486,"description":1479,"category":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662465/Blog/Hero%20Images/GitLab_Duo_Workflow_Unified_Data_Store__1_.png","[GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/gitlab-duo/agent-platform/)（現在ベータ版で提供中）は、AIエージェントがイシューやマージリクエストなどのGitLabリソースとやり取りできるフレームワークを提供し、コンセプトから完成まで複雑な多段階タスク実行を可能にします。Agent Platformは、コード生成、モダナイゼーション、セキュリティ脆弱性の修正、プロジェクト分析を支援する対話型（[エージェント型チャット](https://about.gitlab.com/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover/)）と自動化型（[エージェントフロー](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)）のエクスペリエンスを提供します。これらはすべてエンタープライズレベルのセキュリティとカスタマイズ可能な制御機能も備えています。\n\n「イシューからMR」は、適切にスコープが定義されたイシューを、ドラフトのマージリクエスト（MR）に変換するプロセスを効率化するエージェントフローです。このフローはイシューの説明と要件を分析し、イシューにリンクされたドラフトMRを開き、開発計画を作成し、実装案を提案します。これらすべてがGitLab UIから直接実行できます。\n\n## デベロッパーが直面する課題\n\nUIレイアウトの調整、コンポーネントのサイズ変更、ワークフローの微調整といった製品の小さな改善に、何時間もの設定作業は必要ないはずです。しかし、デベロッパーはこのようなイライラするサイクルに陥りがちです。適切なファイルを見つけるためにコードベースを探し回り、ブランチを作成し、複数のコンポーネントに散在する変更をまとめ、複雑なレビュープロセスを経る必要があります。そして、これらはすべて、ソリューションが実際に機能するかどうかを確認できる前の作業です。開発のオーバーヘッドにより、本来であれば素早い反復作業であるべきものが時間のかかるタスクに変わり、フィードバックループが遅くなり、シンプルな製品の改善が大掛かりな取り組みのように感じられてしまいます。\n\n## 「イシューからMRフロー」を使ってアプリケーションの更新を加速する方法\n\n「イシューからMRフロー」を使用する前に、以下の前提条件を満たす必要があります。\n\n前提条件：\n\n* 明確な要件と受け入れ基準が記載された既存のイシュー。これにより、達成しようとしていることをGitLab Duo Agent Platformがよく理解し、出力の品質を向上させることができます。\n* プロジェクトのソースコードを編集するフローのため、Developer以上の権限を持つプロジェクトアクセス。\n* グループまたはプロジェクトでGitLab Duo Agent Platformが有効になっており、「フロー」が許可されていること。これには、プロジェクトの**設定 > 一般 > GitLab Duo > フローの実行の許可**トグルを有効にしてください。GitLabは適切なガードレールの提供に取り組んでおり、エージェント型AI機能では機密性の高いプロジェクトを保護し、GitLab Duo Agent Platformがアクセスしてほしいプロジェクトのみを許可するため、これらのトグルを有効にする必要があります。\n\n上記のすべての前提条件を満たしたら、以下の手順に従ってイシューからMRフローを活用できます：\n\n1. GitLab Duo Agent Platformに実行してもらいたいことを説明するプロジェクトイシューを作成します。イシューの説明にできるだけ詳細を記載してください。イシューがすでに存在する場合は、**計画 > イシュー**に移動し、更新したい内容を説明しているイシューをクリックして開きます。イシューのスコープは明確かつ具体的に設定してください。\n\n2. イシューヘッダーの下にある**Duoでマージリクエストを生成**をクリックしてフローを開始します。\n\n3. イシューの実装に取り組むエージェントの進行状況を追跡したい場合は、**自動化 > エージェントセッション**に移動して、エージェントが計画を立てて、変更を提案している様子をライブセッションログで確認できます。\n\n4. パイプラインが完了すると、イシューのアクティビティにMRへのリンクが表示されます。これを開いて、サマリーとファイルレベルの変更を確認してください。\n\n5. GitLab Duo Agent Platformが提案した更新をローカルで検証したい場合は、ラップトップにブランチをプルし、アプリをビルド・実行し、更新が期待通りに動作することを確認できます。必要に応じてMRで編集を行い、通常のレビューを進めてください。\n\n6. 提案されたアプリケーションの更新にすべて満足したら、MRをメインブランチにマージします。\n\n## 「イシューからMRフロー」がアプリケーションの変更に効果的な理由\n\n「イシューからMRフロー」はコード変更を提案し、MRを直接更新するため、ファイルを探す時間が短縮され、結果の評価とレビューのみに集中できます。さらに、MRは自動的に元のイシューにリンクされ、レビュアーや関係者にとってコンテキストが明確に保たれます。また、エージェントセッションをモニタリングすることで、各ステップで何が起こっているかを把握できます。\n\n## GitLab Duo Agent Platformのメリット\n\nGitLab Duo Agent Platformは、**完全なプロジェクトコンテキスト**を提供する[エージェント型オーケストレーションレイヤー](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/)で、プランニングからコーディング、ビルド、セキュリティ、デプロイ、監視まで含むため、エージェントは単なるコード編集だけでなく、ソフトウェア開発ライフサイクル（SDLC）全体をサポートできます。\n\n* 統合データモデル：GitLab DuoエージェントはGitLabの統合されたSDLCデータ上で動作し、コーディング以外のタスクを含めて、より質の高い意思決定とコラボレーションを可能にします。\n\n* セキュリティとコンプライアンスがビルトイン：GitLab Duoエージェントはエンタープライズのガードレール内で実行され、高度に規制された環境やオフライン/エアギャップ環境でも使用できます。\n\n* 相互運用性と拡張性：ベンダーやツール間でフローをオーケストレートします。[MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)/A2A経由で外部データを接続し、より豊富なコンテキストを提供します。\n\n* コラボレーションのスケール：GitLab DuoエージェントはGitLab UIとIDEで動作し、複数の人間と複数のエージェント間のコラボレーションを可能にします。\n\n* 検索可能かつ共有可能：一元化されたAIカタログでエージェントとフローを検索・共有できます。\n\n## 今すぐ「イシューからMRフロー」を試してみましょう\n\nアプリケーションの更新、例えばUI調整のような小規模な作業では、「イシューからMRフロー」によって、明確に定義されたイシューからレビュー可能なMRまでを素早く作成できます。進行状況を監視でき、標準のワークフローで変更内容を検証・マージできます。チームはコンテキストを保ちつつ、引き継ぎ作業を削減できるので、単純作業ではなく品質に注力できるようになります。\n\nイシューからMRフローの動作を実際にご覧ください：\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/BrrMHN4gXF4?si=J7beTgWOLxvS4hOw\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n> [GitLab UltimateとDuo Enterpriseの無料トライアル](https://about.gitlab.com/ja-jp/free-trial/)で今すぐGitLab Duo Agent PlatformのイシューからMRフローを試してみましょう。\n\n\n",[669],"2025-09-05","2025-09-03",[673,676,9,678],{"featured":90,"template":681,"slug":1488},"vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow","content:ja-jp:blog:vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow.yml","Vibe Coding With Gitlab Duo Agent Platform Issue To Mr Flow","ja-jp/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow.yml","ja-jp/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"_path":1494,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1495,"content":1501,"config":1509,"_id":1511,"_type":13,"title":1512,"_source":15,"_file":1513,"_stem":1514,"_extension":18},"/ja-jp/blog/what-are-the-benefits-of-a-microservices-architecture",{"title":1496,"description":1497,"ogTitle":1496,"ogDescription":1497,"noIndex":6,"ogImage":1498,"ogUrl":1499,"ogSiteName":694,"ogType":695,"canonicalUrls":1499,"schema":1500},"マイクロサービスアーキテクチャの基本とそのメリット","マイクロサービスアーキテクチャは、環境を細分化することで開発がスピーディに、かつ低コストで行えます。拡張性やセキュリティ面にも優れています。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662898/Blog/Hero%20Images/microservices-explosion.jpg","https://about.gitlab.com/blog/what-are-the-benefits-of-a-microservices-architecture","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"マイクロサービスアーキテクチャの基本とそのメリット\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2022-09-29\",\n      }",{"title":1496,"description":1497,"authors":1502,"heroImage":1498,"date":1504,"body":1505,"category":1445,"tags":1506,"updatedDate":1508},[1503],"GitLab","2022-09-29","マイクロサービスアーキテクチャを利用すると、アプリケーション開発がスピーディかつ低コストで行えます。また、複雑な開発や規模の大きな開発にも適しているため、マイクロサービスアーキテクチャを導入する企業が世界中で増加しています。\n\n本記事では、マイクロサービスアーキテクチャとは何か、マイクロサービスアーキテクチャを利用するメリットやデメリットについて解説します。\n\n## マイクロサービスアーキテクチャとは？\n\nマイクロサービスアーキテクチャ（Microservices Architecture）とは、開発環境やデータベースを細分化したアプリケーション開発手法です。それぞれのメンバーが、異なる環境やプログラミング言語で開発し、最終的にそれぞれの開発内容を統合して1つのアプリケーションやシステムを作りあげます。単にマイクロサービスと呼ばれることもあります。\n\n以前は、1つの環境でシステム開発を進める「モノリシック」という方法が主流でした。モノリシック（monolithic）は「一枚岩のような」という意味を持ち、開発者全員が単一の開発環境やデータベースを利用していました。これにより、優れたシステムやアプリケーションが多数誕生したのも事実です。\n\nしかしながら昨今、モノリシックは様々な壁に直面しています。例えば、モノリシックでは1つのエラーでシステム全体が影響を受けてしまい、修正に多くのコスト（時間や人件費）が必要になることがあります。また、変化の激しいVUCA時代に突入し、顧客からの要求が日々変化するようになり、モノリシック型の開発環境では対応に時間がかかりすぎるという課題も指摘されるようになりました。\n\nそこで注目を集めたのがマイクロサービスアーキテクチャです。マイクロサービスアーキテクチャは、複数人が同時並行で開発を進められます。また、問題が生じた際には関連する箇所を修正するだけで解決可能です。\n\n![Microservices vs monolith ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687528/Blog/Content%20Images/monolith-vs-microservices.png)\n\n*図：モノリスとマイクロサービスの比較*\n\n## 世界はモノリシックからマイクロサービスへ\n\n日本ではまだマイクロサービスを利用している企業は限定的ですが、世界ではモノリシックサービスからマイクロサービスへと変わりつつあります。例えば、日本でも人気の動画ストリーミングサービス「Netflix」は、モノリシックからマイクロサービスへ移行することで成功を収めた企業として有名です。膨大な情報をマイクロサービスで細分化して管理することで、1日に何千回も発生するデプロイや顧客からの要望に迅速に対応しています。\n\n[Fortune Business Insightsの調査](https://www.fortunebusinessinsights.com/jp/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%83%9E%E3%82%A4%E3%82%AF%E3%83%AD%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E5%B8%82%E5%A0%B4-107793)によれば、世界のマイクロサービスクラウドの評価額は2022年に12億9千万ドル、そして2030年までに60億4千万ドルまで成長すると見込まれています。\n\n## マイクロサービスアーキテクチャのメリット\n\nマイクロサービスアーキテクチャを利用するメリットを以下にまとめました。それぞれについて詳しく説明します。\n\n- サービスをスピーディに提供できる\n- 拡張性が高い\n- 大規模なエラーが抑制できる\n- プログラミング言語の自由度が高い\n- 市場の要求に応じて柔軟に対応できる\n- 新規機能へのアップグレードが容易\n- コスト削減につながる\n- セキュリティ対策がしやすい\n- アウトソーシングを活用しやすくなる\n- 優秀な人材を確保しやすくなる \n\n### サービスをスピーディに提供できる\n\nモノリシックアーキテクチャーでは、1つの開発環境を共有し順番に開発を進めていく必要があります。自身に割り当てられた作業も、その他の作業が終わっていないという理由で、取りかかれないことがありました。\n\n一方マイクロサービスでは、各サービスが独立しているため、好きなタイミングで作業に取り組むことが可能です。また、複数人が同時に作業できるため、アプリケーションやシステムをスピーディに提供したい事業者に適しています。\n\n### 拡張性が高い\n\n各マイクロサービスが独立しているため、サービスの追加や削除、更新、拡張などが容易に実施できます。アップデートや市場に合わせた修正を頻繁に行いたい企業にとって大きなメリットといえます。\n\n### 大規模なエラーが抑制できる\n\nモノリシックアーキテクチャーでは、1つのエラーが原因でシステム全体が崩壊する可能性があります。一方マイクロサービスでは、各サービスが独立しているため、他のサービスに影響を与えることがまずありません。これにより、1つのエラーがシステム全体に影響を及ぼすことを抑制できます。\n\n### プログラミング言語の自由度が高い\n\nモノリシックアーキテクチャーの場合、単一の環境によって開発を行うため、場合によっては不慣れなスキルセットやテクノロジーでの対応が必要になります。その結果、開発に時間がかかるとともに、クオリティにも影響を及ぼします。\n\n一方マイクロサービスでは、各サービスでプログラミング言語やテクノロジーを選べます。開発者が得意なスキルセットを選べるため、高いクオリティのアプリケーションをスピーディに開発できるとともに、不慣れなプログラミング言語でエラーを出してしまうような事故も防ぐことができます。\n\n### 市場の要求に柔軟に対応できる\n\nシステムやアプリケーションを開発している最中に、市場の状況が変わり、急な変更を迫られることもあるでしょう。モノリシックの場合には、修正箇所がシステム全体に影響し、開発が大きく停滞してしまうことがありますが、マイクロサービスの場合、関連する箇所のみの修正で、その他のマイクロサービスには影響を与えないため、手戻りを最小限に食い止めることができます。\n\n### 新規機能へのアップグレードが容易\n\nモノリシックな環境では、一度構築したシステムやアプリケーションをアップグレードするのに多くのコストを費やす必要があるため、企画や実行に多大な労力が必要になります。一方マイクロサービスでは、必要な箇所のみのアップグレードで完了するため、開発の負担が圧倒的に小さくなります。\n\n### コスト削減につながる\n\nマイクロサービスでは、改修での開発工数やテスト工数を削減できるため、コスト削減につながります。サービスのアップデートやエラー修正にかかる時間も削減できるため、保守・運用にかかるコストを大幅に削減できるのも魅力です。\n\n### セキュリティ対策がしやすい\n\nモノリシックな環境下で何らかのセキュリティ問題が発生した場合、開発環境上にあるすべての情報が漏洩する可能性があります。一方マイクロサービスの場合には、各サービスごとに情報が分断されているため、重要な情報がまとまったかたちで漏洩するのを防げます。機密情報を扱う箇所に強固なセキュリティ対策を施しておけば、大規模な情報漏洩のリスクを削減できます。サービス間の連携では適切な[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)を使用すれば、より安心して利用できるでしょう。\n\n### アウトソーシングを活用しやすくなる\n\n昨今、開発業務の一部をアウトソースする企業が増えています。モノリシックな環境では、組織の知的財産の共有が懸念点としてありましたが、マイクロサービスであれば、必要なサービスの環境のみを共有できるため、情報漏洩の不安を抱えずに協力体制を構築できます。\n\n### 優秀な人材を確保しやすくなる\n\nマイクロサービスアーキテクチャは、開発者にとっても魅力的なプラットフォームです。プログラミング言語の自由度が高いことで、自身の得意なプログラミング言語やテクノロジーを最大限に活用して貢献できるためです。日本ではまだマイクロサービスを導入している企業が少ないのが現状ですが、今後マイクロサービス環境に興味を持ち、アプローチしてくる開発者が増えるでしょう。\n\n## マイクロサービスアーキテクチャのデメリット \n\n一方で、マイクロサービスアーキテクチャには以下のようなデメリットもあります。\n- 初期費用（導入コスト）が高くなる\n- 熟練者が求められる\n- インターフェイス制御が難しい\n- エラーの特定や結合テストが複雑になる\n\n### 初期費用（導入コスト）が高くなる\n\nマイクロサービスは長期的に見た場合にはコストカットに効果的ですが、セキュリティやメンテナンスサポートを備えたホスティングインフラストラクチャが必要になるため、初期費用はモノリシックと比べて高くなる傾向にあります。\n\n### 熟練者が求められる\n\nマイクロサービスは様々なパーツ開発を同時並行でマネジメントしたり、出来上がったサービスを適切に組み合わせたりするスキルが必要です。そのため、マイクロサービスの活用に精通した熟練者が1名以上必要です。\n\n### インターフェイス制御が難しい\n\nマイクロサービスの接点、つまりインターフェイスの制御が複雑になり、ときにマイクロサービスを利用する企業の悩みの種になります。各サービスには独自の[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)があるため、大規模なアプリケーションを開発する際には大量の[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)を同時に管理する必要があります。\n\n### エラーの特定や結合テストが複雑になる\n\nマイクロサービスでは、複数の開発が同時に行われるのに加え、サービスごとに異なる環境やコーディング規約で開発が行われているため、エラーの特定や修正に時間がかかる場合があります。\n\nまた、複数のサービス間で実施する結合テストは、各サービスのインターフェース設定を事前に行う必要があるため、より複雑で、時間がかかる傾向にあります。\n\n## サービス指向アーキテクチャ（Service-oriented architecture）とマイクロサービスの違い\n\nクラウドコンピューティングに携わっている方なら、サービス指向アーキテクチャ（SOA）とマイクロサービスの議論を耳にしたことがあるかもしれません。どちらも作業しやすいように小さなユニットに分割すること、またアジャイル開発のためのクラウドコンピューティングを必要とすることなど、類似点もたくさんあります。\n\nしかし、SOAは「できる限り共通性を持たせた上で細分化」するのに対し、マイクロサービスは「共通性よりも独立性を尊重している」という大きな違いがあります。例えばSOAでは、チーム内でできる限りリソースやコードを統一しようと努めます。一方でマイクロサービスは、それぞれの担当者が自分の得意なスキルセットを用いて開発することに重点を置きます。\n\n大規模なシステム開発会社が社内のリソースで大規模開発を行う際などにはSOAが優先されます。一方で、アウトソーシングや他社との連携を利用するなど、多様なヒストリーを持つ開発者が共同で開発を行う場合にはマイクロサービスが好まれます。\n\n考え方は非常によく似ていますが、開発に関する手法やコンセプトの点で違いがあるため、実施前にどちらが最適か、よく検討するとよいでしょう。\n\n## GitLabでマイクロサービスを利用する\n\nマイクロサービスアーキテクチャは、各サービスを必要に応じて組み合わせる開発手法により、開発会社が抱える様々な悩みを解決します。[GitLabは、マイクロサービスアーキテクチャにも対応](https://about.gitlab.com/ja-jp/topics/cloud-native/)していますので、マイクロサービス開発で使えるプラットフォームをお探しの方はぜひ検討してみてください。 \n\n*監修：伊藤 俊廷 [@toshitakaito](https://gitlab.com/toshitakaito) （GitLab合同会社 ソリューションアーキテクト本部 スタッフソリューションアーキテクト）*",[1507,1507,9],"DevOps","2024-12-12",{"slug":1510,"featured":90,"template":681},"what-are-the-benefits-of-a-microservices-architecture","content:ja-jp:blog:what-are-the-benefits-of-a-microservices-architecture.yml","What Are The Benefits Of A Microservices Architecture","ja-jp/blog/what-are-the-benefits-of-a-microservices-architecture.yml","ja-jp/blog/what-are-the-benefits-of-a-microservices-architecture",{"_path":1516,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1517,"content":1520,"config":1529,"_id":1531,"_type":13,"title":1532,"_source":15,"_file":1533,"_stem":1534,"_extension":18},"/ja-jp/blog/what-is-docker",{"noIndex":6,"description":1518,"title":1519},"Dockerのコンテナ技術は広く普及しつつあります。Dockerとは何なのか。Dockerの使い方は？Dockerプラットフォームとその技術の基礎を学びましょう。","Dockerとは：GitLabとの統合とコンテナについての入門編 | GitLab",{"title":1521,"description":1522,"authors":1523,"date":1524,"body":1525,"category":812,"heroImage":1526,"tags":1527},"Dockerとは：超入門編","Dockerのコンテナ技術は広く普及しつつあります。Dockerとは何なのか。Dockerの使い方は？Dockerプラットフォームとその技術の基礎を学びましょう。\n",[938],"2025-06-18","Dockerコンテナ技術は、2013年にオープンソースの「Dockerエンジン」として公開され、翌年2014年には本番環境向けの商用版が発表されました。その後約10年の間に、Dockerは使いやすさと高い利便性から、IT業界で瞬く間に広く普及してきました。これからもその人気は高まっていくでしょう。\n\nしかしその一方で、いまだに「Dockerとは何ですか」という声もよく耳にします。この記事では、Docker環境の導入を検討中で、Dockerにまだ不慣れなデベロッパーやプログラマーの皆様を対象に、Dockerの基本を解説します。Dockerに触れたことのない初心者向けの「Docker超入門編」です。\n\n## 目次\n\n1. Dockerとは：超入門編\n2. Dockerの目的\n\n   * Dockerとは\n   * Dockerでできること\n   * Dockerイメージとは\n   * Dockerコンテナとは\n   * Dockerfileとは\n   * Dockerはなぜ重要なのか\n3. Dockerの主な機能\n\n   * Dockerの特徴\n   * Docker Composeとは\n4. アプリケーションのデプロイにおけるDockerのメリット\n\n   * 開発環境と本番環境のシームレス化\n   * 起動の軽量化・処理速度の高速化\n   * バージョン管理のしやすさ\n   * 優れたスケーラビリティ\n5. Dockerのデメリット\n\n   * ひとつのOSを使わなければならない\n   * 大規模開発時のオーバーヘッド\n   * 技能習得に時間がかかる\n   * セキュリティに脆弱性が生じることもある\n   * コンテナ間での連携が難しい\n6. GitLabはDockerが抱える課題をどのように解決するのか\n7. GitLabのDevSecOpsにおけるDockerの役割\n8. まとめ\n9. FAQ（よくある質問）\n\n## Dockerの目的\n\nはじめに、Dockerとはどういったもので、何ができて、どうして便利なのか、なぜ重要なのか、Dockerの目的に着目しながらその概念をまとめていきます。\n\n### Dockerとは\n\nDockerは、Linuxのコンテナ技術を用いた軽量なソフトウェアコンテナプラットフォームです。アプリケーションの開発、出荷、実行を簡易化するために設計されました。Dockerを使えば、すべての依存関係と一緒にアプリケーションをパッケージ化できるため、依存関係を一つひとつ手動でインストールする必要がなくなり、一貫性のあるコード実行が可能になります。\n\nDockerを使えばアプリケーションの実行環境を標準化でき、環境の違いによる問題を減らすことで開発から本番環境へのデプロイ時間を大幅に短縮できます。\n\nLinuxには以前からコンテナ仮想化という技術がありました。この技術を使うと、プログラムを開発・実行環境から隔離することにより、複数のプログラムを素早く実行できます。ただし、この従来型の仮想化技術は、仮想環境を構築するためにホストとなるOS（オペレーティングシステム）に依存する必要がありました。Dockerはこのコンテナ仮想化技術をOSに関係なく簡単に扱えるようにしたソフトウェアといえます。\n\nDockerの基本概念はイメージとコンテナです。Dockerイメージは、読み取り専用のテンプレートであり、コンテナを作成するための指示が記述されています。たとえば、コンテナで実行するアプリケーションとその依存関係、環境変数、ファイルシステムなどがこれに含まれます。\n\n### Dockerでできること\n\nDockerを使うと、1台のマシン中に複数のコンテナ（仮想環境）をビルドできるため、いくつかの開発環境に対応することができます。つまり、1台のサーバー上で複数のアプリケーションを効率的に動かすことができるのです。アプリケーションの開発環境をDockerで構築すれば、たとえば開発環境（Windows）で動いていたアプリケーションがLinux上で起動しない、といった問題は発生しません。Dockerで構築した環境は、他のデベロッパーとクラウド上で簡単に共有できるため、開発作業がスムーズに進められます。\n\n### Dockerイメージとは\n\nDockerイメージは、アプリケーションを実行するのに必要なソースコードと必要な依存関係をパッケージ化したものです。Dockerコンテナを実行する際には、このDockerイメージが必要です。\n\nDockerイメージは、コンテナイメージを構成する複数のファイルに、`Dockerfile` を合わせてビルドします。つまり、Dockerイメージは、手作業で書くのではなく、コマンドを使って作成します。\n\nそのため、Dockerイメージは単一のファイルではなく、Dockerコンテナの実行に必要なパッケージ（ファイルやメタデータの集合体）であることを理解することが重要です。\n\n### Dockerコンテナとは\n\nLinuxのコンテナは、アプリケーションを内包し、必要なライブラリや依存関係、ファイルが含まれています。\n\n一方、Dockerコンテナは、Dockerイメージの実行可能なインスタンスです。これはDockerイメージから生成され、アプリケーションを実行するためのランタイム環境です。ただし、ハイパーバイザーを使用する従来の仮想化とは違い、DockerのコンテナはホストOS（オペレーティングシステム）のカーネルで実行されます。Dockerイメージ内には、個別のOSはありません。\n\nDockerイメージは環境のスナップショットであり、コンテナはソフトウェアを実行する環境といえます。\n\n### Dockerfileとは\n\n`Dockerfile`は文字情報を主体とするファイルで、ファイルの拡張子はありません。`Dockerfile`には、アプリケーションの構築から実行までのプロセスに必要なコマンドが記述されています。どのファイルをどこから取得して、どんな処理を行ない、Dockerイメージに含めるのかなどを記述します。\n\n`Dockerfile`は、Dockerイメージを作成するためのテキストファイルです。コンテナイメージをビルドする場合も、コンテナのビルド手順を`Dockerfile`で定義する必要があります。この`Dockerfile`には、命令のスクリプトが含まれており、Dockerはコンテナイメージをビルドする際にこのスクリプトを使用します。\n\n### Dockerはなぜ重要なのか\n\nDockerは、コンテナに関する既存のコンピューティングの概念、とりわけLinuxの「cgroups」や「namespaces」、「overlayfs」などの技術を活用しています。これは、アプリケーションの依存関係をサーバーやネットワークなどのインフラストラクチャから隔離したいという、デベロッパーやシステムオペレーターのニーズに応えるものでした。\n\nDockerを使うと、1台のサーバー上でさまざまなアプリケーションを簡単に仮想化・実行できるようになります。さらには、ローカルマシンに依存しない開発環境を実現でき（開発環境の統一）、本番環境に近い環境でのシミュレーションが可能になり、アプリケーションの依存関係も管理できます。加えて、ビルド、テスト、デプロイまでの各プロセスを一貫して行なうことができます。\n\n## Dockerの主な機能\n\nDockerは、Linuxのコンテナ技術を使用しています。Dockerコンテナはよく仮想マシンと比較されます。\n\n仮想マシンでは、ホストマシン上でハイパーバイザーを利用してゲストOSを動かし、さらにその上でミドルウェアやライブラリ、さらにその上にアプリなどを実行します。\n\nそれに対し、コンテナはホストマシンのカーネルを利用し、プロセスやユーザーなどを隔離します。そのため、非常に軽量で、まるで別のマシンが動いているかのように動作します。その結果、アプリなどを高速に起動、停止することが可能です。\n\nDockerは、次の4つの構成要素から成り立っています。\n\n* **Dockerイメージ：** アプリケーション実行に必要なソースコード、アプリと依存関係のパッケージ\n* **Dockerコンテナ：** アプリケーションを実行するランタイム環境\n* **Docker Hub：** クラウド上のレジストリサービス。アプリケーションやサービスコンテナのビルドと配信を行なう\n* **Dockerfile：** Dockerイメージを作成するために実行するコマンドライン命令を含むテキストファイル\n\n### Dockerの特徴\n\nDockerには、次のような特徴があります。\n\n* **軽量かつ高速：** 1つのOSで複数のコンテナを管理でき、仮想マシンより軽量で高速に立ち上げることが可能。\n* **環境の一貫性が保持でき再現性がアップ：** Dockerコンテナは異なるプラットフォームでも一貫して動作するため、ローカル、クラウド、ハイブリッド環境への移行が簡単にできる。\n  移植性が高い －クラウドシステムとの親和性が高く、主要なクラウドプロバイダーはDockerコンテナの実行をサポートしている。\n* **サンドボックスの提供：** セキュリティ対策やソフトウェア開発において、隔離された仮想環境でプログラムを実行・検証できる。このため、ホストマシンの環境を守ることができる。\n* **IaC（インフラストラクチャのコード化）を使用して、インフラをコード化：** Dockerfileによりミドルウェアのインストールや環境設定をコード化して管理できる。\n\n### Docker Composeとは\n\nDocker Composeは、複数のDockerコンテナを一元管理する、 Dockerアプリケーションのためのツールです。YAMLファイルを使用してアプリケーションのサービスを設定します。単一のコマンドで複数のサービスをまとめて生成したり、起動・停止したりすることができます。\n\nDocker Composeのコマンド例は次のとおりです。\n\n* **`docker-compose up`：** サービス用のコンテナを構築、作成、起動、アタッチします。リンクされているサービスがまだ起動していない場合は、それらも起動します。\n* **`docker-compose ps`：** Docker Composeで管理されている稼働中のサービスを一覧表示します。\n* **`docker-compose build`：** Docker Composeファイルで定義されているサービスをビルド（構築）します。\n\n## アプリケーションのデプロイにおけるDockerのメリット\n\nアプリケーションのデプロイにおけるDockerのメリットは次のとおりです。\n\n### 開発環境と本番環境のシームレス化\n\nコンテナ技術の利用を開発環境と本番環境で統一することで、環境の違いにより起こる問題を減らすことができます。その結果、デベロッパーと運用チームとの連携がスムーズに行われ、チーム間で発生していた問題も最小限に抑えられます。\n\n### 起動の軽量化・処理速度の高速化\n\nDockerのコンテナ技術は従来の仮想環境より軽く、アプリを瞬時に起動できます。これは、CPUやメモリなどのコンピュートリソースを必要最低限しか使用しないためです。起動速度が上がることで、開発にも集中できます。\n\n### バージョン管理のしやすさ\n\nDockerでは、GitLabなどのソースコードのバージョン管理ツールを使用できるため、バージョン管理の可視化が進むだけでなく、ロールバックやアップデートも簡単に行なえるようになります。\n\n### 優れたスケーラビリティ\n\nコンテナは軽量で拡張性に優れています。必要に応じて簡単に増減できます。これにより、アプリケーションの拡張やスケーリングを迅速に行なえるため、変わりゆく状況にも柔軟に対応できます。\n\n## Dockerのデメリット\n\nDockerにはさまざまなメリットがありますが、いくつかデメリットも存在します。以下にデメリットを挙げます。\n\n### 1つのOSを使わなければならない\n\nDockerは1つのOS上で複数のコンテナを作成します。これにより起動速度や処理速度の面でメリットがありますが、同時にデメリットになることもあります。たとえば、異なるOS環境で検証をしたい場合には、別のマシンや仮想マシンを準備する必要が生じます。\n\n### 大規模開発時のオーバーヘッド\n\nDocker自体は軽量ですが、大規模システムに拡張する場合には、Dockerの管理に伴う負荷が発生します。Dockerは1台のサーバーで多数のコンテナを実行できますが、その反面、管理やオーケストレーションが必要になり、その処理のためにオーバーヘッドが生じる場合があります。Dockerだけですべての管理を行なうのが困難になることもあります。\n\n### 技能習得に時間がかかる\n\nDockerは他の仮想マシンと異なる手法で仮想環境を構築します。つまり、デベロッパーは新しいコンセプトをすべてゼロから習得しなければならず、それには時間がかかります。Dockerの動作原理をきちんと理解せずに使用すると、あとでトラブルや問題が発生することもあります。Dockerについてしっかりと学習してから運用に取り組むようにしましょう。\n\n### セキュリティに脆弱性が生じることもある\n\nDockerはコンテナ型アーキテクチャです。1台のマシン上で複数のコンテナが動作するため、このことに起因する脆弱性には注意が必要です。たとえば、複数のコンテナがホストOSのリソースやカーネルを共有しているため、一つのコンテナに脆弱性があった場合、全体にその影響が及ぶ可能性があります。\n\n### コンテナ間での連携が難しい\n\n複数のコンテナ間での連携を検討している場合、各種設定が難しいために、運用時に問題が発生することがあります。たとえば、アプリとデータベースを別のコンテナで作成し、一緒に運用したい場合には、同一ホスト内で通信設定をしなければなりません。ポートやソケットを開放する場合にはセキュリティ面でリスクが生じます。それを避けるために設定を複雑にしてしまうと、今度は運用面で問題が起きる恐れがあります。コンテナを連携させる際は、設計段階から十分に検討することが重要です。\n\n## GitLabはDockerが抱える課題をどのように解決するのか\n\nDockerコンテナ内にGitLabをインストールすることができます。[GitLab](https://about.gitlab.com/ja-jp/platform/)は、Git「分散型バージョン管理システム」を主体としたDevSecOpsプラットフォームです。ソフトウェア開発ライフサイクル全体に対応する単一のプラットフォームで、GItLabを活用することで高品質なソフトウェアの迅速なデリバリーを実現できます。\n\nDockerコンテナ内にGitLabをインストールすると、GitLabインスタンスにアクセスできるようになります。Dockerコンテナへの[GitLab Dockerイメージのインストールは公式にサポート](https://about.gitlab.com/ja-jp/install/)されています。\n\nDockerが抱えるいくつかの問題のうち、特にセキュリティについては、GitLabのDevSecOps（開発、セキュリティ、運用）を活用して対処することができます。GitLabのDevSecOpsでは、[シフトレフト](https://about.gitlab.com/ja-jp/topics/ci-cd/shift-left-devops/)を重視しており、セキュリティ対策を開発サイクルの早い段階に組み込むことにより、コンテナイメージの持つセキュリティの問題の早期発見と対応を図っています。継続的インテグレーションによってこのシフトレフトのコンセプトを実践することで、セキュリティ対応にかかっていたコストを削減できます。\n\nDevSecOpsにおいて重要なCI/CDを実現するためには、自動化が欠かせません。GitLabではパイプラインがCI/CDの命令をまとめています。そして、その指示に従いプロセスの自動化を実現するときの基盤になっているのが[GitLab Runner](https://docs.gitlab.com/runner/)（英語）です。GitLab Runnerはセキュリティのシフトレフトを実現する上で重要な役割を果たしています。\n\nGitLab Runnerはセキュリティスキャンやテストを指定したタイミングで自動で実行してくれます。また、レポート作成ジョブを実行して、ダッシュボードに最新情報を表示することも可能です。\n\n## GitLabのDevSecOpsにおけるDockerの役割\n\nGitLabを活用したDevSecOpsインテグレーションにおいても、Dockerは非常に大切な役割を担っています。\n\n### CI/CDジョブのコンテナ化\n\nGitLab CI/CDでは、CI/CDパイプラインでDockerコンテナを使用することで、次のようなことが可能になります。\n\n* **一貫性：** CI/CDジョブはコンテナ内で実行されるため、依存関係や環境の違いによるエラーが防げます。\n* **スケーラビリティ：** コンテナは軽量かつ迅速に起動でき、大規模なパイプラインでも効率的に実行できます。\n* **環境の柔軟性：** ジョブごとに異なるDockerイメージを指定できるため、必要な環境を簡単に準備できます。\n\nGitLab RunnerのDockerイメージは、UbuntuまたはAlpine Linuxをベースにしています。Dockerイメージは標準の`gitlab-runner`コマンドを内包しており、ホストに直接GitLab Runnerをインストールしたかのように動作します。\n\n### セキュリティスキャンの自動化\n\nセキュリティはDevSecOpsでの重要な要素であり、Dockerはこれをサポートします。\n\n* **コンテナイメージのセキュリティスキャン：** GitLabには、CI/CDパイプラインでDockerイメージをスキャンする機能があります。このスキャンにより脆弱性がチェックされ、イメージ内の依存関係やコードの安全性を評価できます。\n* **コンテナ脆弱性スキャンの自動化：** GitLabにはTrivyやAquaなどのセキュリティツールを統合できます。DockerイメージのOSやアプリケーションが最新であるか、既知の脆弱性がないかをチェックします。\n\n### IaC（インフラストラクチャのコード化）と環境管理\n\n* **再現性：** DockerをGitLabのCI/CDジョブ内で使用することで、開発環境と本番環境の整合性を保つことできます。\n* **ステージングやテスト環境を即時に構築：** Docker ComposeやKubernetesと連携することで、特定のブランチやマージリクエストごとに分離された環境をGitLabで作成できます。これにより、テストやセキュリティスキャンを効率的に実行できます。\n\n### デプロイの効率化\n\nGitLabは、Dockerを使用する以下のデプロイパターンをサポートしています。\n\n* **Dockerイメージのビルドとプッシュ：** アプリをコンテナイメージとしてビルドして、GitLabのContainer Registryや他のDockerレジストリにプッシュします。\n* **継続的デリバリー：** Dockerイメージを使ってコンテナオーケストレーションツールにデプロイすることで、迅速で安全なリリースが可能になります。\n\n### マイクロサービスアーキテクチャのサポート\n\nGitLabとDockerを組み合わせることで、マイクロサービスアーキテクチャを簡単に構築できます。マイクロサービスは別々のDockerコンテナとして実行します。GitLab CI/CDパイプラインを使うと、以下のことを管理できます。\n\n* サービス間の依存関係の設定\n* 個別のセキュリティスキャン\n* バージョン管理（ロールバックが容易になります）\n\n## まとめ\n\n2013年の公表以来、Dockerは瞬く間にIT業界に広く普及しました。本記事では、Dockerの基本概念、基本技術、Dockerを使って何ができるのか、なぜDockerが重要なのか、Dockerを理解上でよく目にする用語などについて紹介してきました。\n\nDockerを使う場合には、DevSecOpsにとって大切なCI/CDを実現するためにも、GitLab CI/CDなどの自動化ツールの導入をおすすめします。GitLab のCI/CDパイプラインでDockerコンテナを使用することで、開発における一貫性の維持、スケーラビリティの実現、柔軟な環境の準備が可能になります。\n\n## FAQ（よくある質問）\n\n### Dockerで何ができるのか？\n\nDockerコンテナは、軽量でスタンドアロンの仮想化技術であり、アプリケーションコード、その依存関係、ライブラリをすべてパッケージ化します。Dockerを使うと、1台のマシン上に複数のコンテナ（仮想環境）を構築でき、開発環境や検証環境の統一が図れます。詳しくは、記事の本文をご覧ください。\n\n### Dockerは何に使うのか？\n\nDockerは、デベロッパーがアプリケーションとその依存関係をシステムから切り離したいとき使用します。コンテナにはアプリケーションとその依存関係がまとめられており、軽量な実行環境を提供します。詳しくは、記事の本文をご覧ください。\n\n### Dockerコンテナとは何ですか？\n\nDockerイメージが実行時にコンテナになります。Dockerコンテナは、アプリケーションを実行するためのランタイム環境です。Dockerコンテナに関する詳細は、記事の本文をご覧ください。\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)*\n\n*（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750226168/pf5cwmvqq09v1pe0re66.jpg",[108,1528,1507,769,9,860,770,678],"cloud native",{"featured":90,"template":681,"slug":1530},"what-is-docker","content:ja-jp:blog:what-is-docker.yml","What Is Docker","ja-jp/blog/what-is-docker.yml","ja-jp/blog/what-is-docker",{"_path":1536,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1537,"content":1542,"config":1547,"_id":1549,"_type":13,"title":1550,"_source":15,"_file":1551,"_stem":1552,"_extension":18},"/ja-jp/blog/what-is-gantt-chart",{"config":1538,"ogImage":1539,"title":1540,"description":1541},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988342/gqogwxai28zzwwuj2z3i.jpg","ガントチャートとは？ソフト開発における役割やメリット、作り方","ガントチャートとは何か、作り方やメリットを詳しく解説。プロジェクト管理に役立つおすすめツールも紹介します。",{"heroImage":1539,"date":1247,"authors":1543,"category":812,"body":1544,"tags":1545,"title":1546,"description":1541},[938],"ソフトウェア開発におけるプロジェクト管理を円滑に行うには「ガントチャート」の活用が役立ちます。実際に自社の開発プロジェクトにおいて複雑で多岐にわたるプロセス管理に課題を感じており、ガントチャートの活用を検討している人もいるのではないでしょうか。\nこの記事では、ガントチャートの役割や活用のメリット、具体的な作成方法などを解説します。ガントチャートの作成やプロジェクト管理におすすめのツールも紹介しているのでぜひ参考にして下さい。\n\n## 1. ガントチャートとは？意味やその役割\n\n![ガントチャートとは？意味やその役割](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988290/sjxtqobutpz8gwszlfaw.jpg)\n\nまずはガントチャートの意味や役割など基礎知識について解説します。\n\n### 1-1. ガントチャートの定義・意味\n\nガントチャート（Gantt Chart）とは、プロジェクトのスケジュール管理やタスク管理のために活用されるツールです。縦軸に各タスクと作業の開始日・終了日を示し、横軸に進捗を示す時間軸を配置することでプロジェクトの進捗状況やタスク間の依存関係、担当者を一目で把握できます。\nガントチャートはIT業界だけでなく、建設業などさまざまな業種・業界のプロジェクト管理に活用されています。\n\n### 1-2. ソフトウェア開発におけるガントチャートの役割\n\nソフトウェア開発では、要件定義からプログラミング、テスト、リリース、保守運用まで多岐にわたる工程を踏む必要があり、複数の人材や関係者がプロジェクトに参加します。\nその中でメンバーや関係者間の認識のズレを防止しつつ、プロジェクトを円滑に進めるにはガントチャートによる徹底したスケジュール管理とタスク管理が重要です。\nガントチャートはソフトウェア開発において、メンバー間のコミュニケーションの向上や適切な進捗管理の実現、リカバリー策の設計などの役割を担います。\n\n## 2. ガントチャートの歴史・誕生背景\n\n![ガントチャートの歴史・誕生背景](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988299/y4ewrmhuneplgjp1lbcg.jpg)\n\nガントチャートは、1896年にポーランドの経済学者であるKarol Adamiecki（カロル・アダミエツキ）氏によって最初に作成されたと言われています。\nその後、1910年代にHenry Gantt（ヘンリー・ガント）氏が独自のバージョンとしてガントチャートを考案しました。Henry Gantt氏は、工場で働く労働者が与えられたタスクを完了させるのにどのくらいの期間を要したかを現場の責任者が確認できるよう独自にガントチャートを考案したのです。\nさらに、Henry Gantt氏の死後、Wallace Clark（ウォーレス・クラーク）氏が、自身の著書でガントチャートの使い方やそのメリットを解説し、世界中に普及しました。\n\n## 3. ガントチャートの一般的な構成要素\n\nガントチャートを作成・活用する際には、構成要素について理解しておく必要があります。\n| 構成要素 | 詳細 |\n| :---- | :---- |\n| タスク | プロジェクトにおける各作業 |\n| タスクの期間 | 各作業の実施期間（開始日と終了日） |\n| タスクの担当者 | 各タスクの担当者の名前 |\n| タスクの依存関係 | タスク同士がどのような影響を与えるか |\n| タイムスケール | チャートの上部に示す時間軸（日・週など） |\n| マイルストーン | プロジェクトの重要な中間目標や節目 |\n| 進捗率 | タスクの完了率（%で表示） |\n一般的には上記のような要素で構成されますが、自社のプロジェクトの規模や内容によっても記載する要素は異なります。\n\n## 4. ガントチャートとWBS・バーチャート工程表との違い\n\n![ガントチャートとWBS・バーチャート工程表との違い](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988296/ymdhirenqdz60ohwb1ys.jpg)\n\nガントチャートと混同されやすい用語として「WBS」と「バーチャート工程表」があります。それぞれの違いについて詳しく解説します。\n\n### 4-1. ガントチャートとWBSとの違い\n\nWBSとは、「Work Breakdown Structure」の略語でプロジェクト全体の作業を段階的に細分化したリストのことです。「プロジェクトを達成するためには何をすべきか？」という点にフォーカスし、必要なタスクを整理するのが目的です。\n一方、ガントチャートは時間軸を活用してWBSで整理されたタスクの進捗状況の把握や全体のスケジュール管理を行うための表を指します。つまり、ガントチャートを作成する際にはWBSによるタスクの細分化が不可欠であり、両者は密接な関係にあります。\n\n### 4-2. ガントチャートとバーチャート工程表との違い\n\nバーチャート工程表とは、縦軸に作業項目、横軸に時間を示して、横棒（バー）を使って作業の実施時間を可視化した図表を指し、主に建設現場や製造業で使われています。\nバーチャート工程表は、各タスクに要する実施期間を明確にすることを目的としていますが、ガントチャートのようにタスク間の依存関係を管理するのには向いていないツールです。\nソフトウェア開発においては各タスクの依存関係や進捗状況の把握が重要になってくるため、バーチャート工程表ではなくガントチャートの活用を検討することが大切です。\n\n## 5. ガントチャートを活用するメリット\n\n![ガントチャートを活用するメリット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988290/cjpufbck1bqaqizhiotv.jpg)\n\nガントチャートを活用することでどのようなメリットがあるのでしょうか。具体的には以下が挙げられます。\n\n* プロジェクトの全体像を把握できる  \n* 専門知識がなくても扱える  \n* 関係者間の認識のズレを防止できる  \n* マイルストーンを管理・最適化が可能になる  \n* タスクの依存関係を確認できる  \n* プロジェクトにおけるリカバリー策を取りやすい\n\n### 5-1. プロジェクトの全体像を把握できる\n\nガントチャートを活用すれば、関係者全員がプロジェクト全体の計画を直感的に把握できます。マネージャーや責任者だけでなく、メンバー1人ひとりがプロジェクト計画や進捗状況を確認できるため、個々が担当するタスクに対して責任を持って作業に取り組むことが可能です。例えば、「自分が担当しているタスクが完了しなければ、次のタスクに移れない」とタスク同士の依存関係を事前に把握していれば、計画を意識しながら作業を進められるでしょう。\nプロジェクトマネージャーも、ガントチャートを見ながらプロジェクトが計画的に進んでいるか常に状況をチェックできるため、メンバーへの指示も出しやすくなるでしょう。\n\n### 5-2. 専門知識がなくても扱える\n\nガントチャートは図表の構成そのものがシンプルであり、難解な用語も使用しないためメンバーや関係者に専門知識がなくても直感的に理解できます。プロジェクトマネージャーがガントチャートを作成する際にも専門知識は不要であり、専用ツールを活用すれば時間と手間をかけることなくスムーズな作成・修正が可能です。\n誰もが見やすくわかりやすいガントチャートを作成すれば、開発メンバーも戸惑うことなく作業に集中できるようになるでしょう。\n\n### 5-3. 関係者間の認識のズレを防止できる\n\nガントチャートで全体のプロジェクト計画をメンバーや関係者間で共有すれば、認識のズレなく全員が同じ方向を向いて開発を進められます。\n例えば、開発側と顧客側で認識のズレがあると、本来必要のない機能の開発のために工数を割いてしまうということにもなりかねません。ガントチャートなら、必要なタスクを細分化してスケジュールとして可視化できるようになっているため、関係者全員が事前に擦り合わせした上で計画を実行することが可能です。\nまた、開発途中でなんらかの課題や変更が発生した場合でも随時状況を共有し、スケジュールを修正すれば問題なくプロジェクトを進められるでしょう。\n\n### 5-4. マイルストーンの管理・最適化が可能になる\n\nマイルストーンとは、プロジェクトにおける重要な中間目標地点を指す言葉です。全体のスケジュールを可視化できるガントチャートなら、プロジェクト計画において重要な要素となるマイルストーンの管理も行うことができます。\n例えば、ガントチャート上にマイルストーンを設置すれば、「この期間までにはこのタスクを完了している必要がある」と視覚的に把握できるため、メンバー間での認識の強化やプロジェクトの遅延防止につなげられるでしょう。\n\n### 5-5. タスクの依存関係を確認できる\n\nソフトウェア開発を進めるに当たり、タスクによっては前のタスクが完了していないと着手できないといった依存関係が発生するケースも少なくありません。\nガントチャートを作成する際に各タスクにおける依存関係をマッピングすれば、容易にタスク同士の関係性を把握でき、ボトルネックの可能性を事前に認識することが可能です。例えば、タスクの依存関係が集中するフェーズでは、他の担当者がフォローできる体制を整えておくなどの対策を検討できるでしょう。\nなお、ガントチャートで各タスクの依存関係を示す際には必要な機能が搭載されたツールを活用すると効率的です。\n\n### 5-6. プロジェクトにおけるリカバリー策を取りやすい\n\nソフトウェア開発においては必ず計画通りプロジェクトが進むというわけではなく、途中トラブルなどが発生するケースも多いです。\nガントチャートで全体のスケジュールやタスクを可視化しておけば、急なトラブルや仕様変更などが発生した場合でも、どのフェーズまで戻り、どのような作業が必要になるのか検討しやすくなります。このように迅速なリカバリー策を講じることで、顧客の要望に沿った開発を実現できるでしょう。\nなお、計画に変更が生じた場合はガントチャートの修正も忘れずに行うことが大切です。\n\n## 6. ガントチャートの注意点\n\n![ガントチャートの注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988298/gzdswdhfx3mnedmvxv2v.jpg)\n\nガントチャートは、プロジェクト全体のスケジュールや各タスクの実施期間、進捗状況などを視覚的に確認できますが、作業工数における細かな情報については表示しないのが特徴です。例えば、「タスクAの実施期間は10日間」と表示されている場合でも、タスクAを完了させるために必要な細かな工数が見えないため、想定以上のコストがかかる場合があります。\nこのような事態を避けてプロジェクトを円滑に進めるためには、ガントチャートの活用と併せて工数管理表などのツールを導入し、別途で工数を管理する方法を検討することが大切です。\n\n## 7. ガントチャートの作り方\n\n![ガントチャートの作り方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988291/j4iylagxbsfajpa3s6uw.jpg)\n\nここではガントチャートの作り方について解説していきます。\n\n### 7-1. WBSを作成する\n\nガントチャートを作成する際には、まずWBSを作成してプロジェクトに必要なタスクを洗い出していきます。\nWBSでタスクを細分化することによって、作業内容が明確になり全体のスケジュール管理がしやすくなります。WBS作成の土台となるのはプロジェクトの目標設定です。開発における最終成果物や成功の定義が明確であるほど、ゴールまでのプロセスを丁寧に考えることができます。必要なタスクの洗い出しにおいては、まずは大きなフェーズから書き出し、そこからさらに細分化していくというステップを踏むのがポイントです。そうすることで次で紹介するタスクの依存関係の整理がスムーズになります。\n\n### 7-2.タスク間の依存関係を整理する\n\nプロジェクト達成に必要なタスクを洗い出した後は、各タスクの依存関係を整理します。「タスクAの作業が完了しなければ、タスクBに進めない」という依存関係がある場合は、視覚化して整理しておくことが大切です。\n例えば、開発において設計が完了しないと次のプログラミングに着手できないというケースは依存関係に該当するため、関係性をきちんと整理しておきます。\n\n### 7-3.各タスクのスケジュールを設定する\n\n次に各タスクに費やす作業期間を検討し、開始日と終了日を設定します。タスクの作業期間はプロジェクトの規模やタスクの内容に応じて、日数や週数の単位で検討します。その際、タイトなスケジュールを組んでしまうとメンバーの負担増加や、プロダクトの品質低下を招く原因にもなるため、余裕を持たせた上で各タスクの作業期間を設定することが大切です。\nまた、タスク間で依存関係が発生するフェーズにおいては遅延の可能性も考慮しなければなりません。\n併せてマイルストーンの設定も行っておきます。プロジェクトの中間目標を認識した上でスケジュールを検討することで、各タスクにおいて適切な作業期間を設定できるでしょう。\n\n### 7-4.各タスクの担当者を割り当てする\n\n各タスクのスケジュール設定が完了した後は、担当者を割り振っていきます。担当者の選定においては、個人のスキルや経験などを考慮しながら行います。各タスクの割り振りを誤ってしまうと、プロジェクトの遅延やトラブルを招くため、プロジェクトマネージャーはメンバーの能力をよく理解した上で検討しなければなりません。\n各タスクの担当者が決定したらガントチャート上に担当者の名前を記載しておきます。そうすることで誰がどのタスクを担当するのかをメンバー全員が把握できるため、個々が自身のタスクにおいて責任感を持てるようになります。\n\n### 7-5.関係者への共有と更新\n\nガントチャートの作成が完了すれば、メンバーや顧客など関係者全員に共有します。その中で関係者からタスクの洗い出しや作業期間において指摘やフィードバックがあった場合は、修正を実施します。関係者全員で共通の認識がなく、懸念点を抱えたままプロジェクトがスタートしてしまうとスムーズに作業が進まないため、時間をかけて細かな擦り合わせをしておきましょう。\nまた、プロジェクト開始後にも定期的なミーティングを実施し、進捗状況や認識のズレがないかを確認します。繰り返しにはなりますが、仕様変更やトラブルの発生などによって計画が変更された場合は、ガントチャートの修正も忘れずに行うことが大切です。\n\n## 8. ガントチャートを作成する際のポイント\n\n![ガントチャートを作成する際のポイント](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988290/uz6tvvkkuepoghl2zo2k.jpg)\n\nガントチャートを作成する際には以下のポイントを意識することが大切です。\n\n* 視認性の高さを意識する  \n* 更新されることを前提に作成する\n\n### 8-1. 視認性の高さを意識する\n\nガントチャートはプロジェクトの関係者全員に共有するツールであるため、誰もが見やすい形で作成することが大切です。例えば、以下のような工夫が考えられます。\n\n* タスクの作業期間を示す横棒（バー）は、タスクのカテゴリ別に色分けする  \n* タスクの依存関係によりボトルネックが発生しそうなフェーズにはマークをつけておく  \n* マイルストーンにはわかりやすいアイコンを配置しておく など\n  視認性の高いガントチャートを作成するには、直感的なUIやレイアウト機能を備えた専用ツールを活用するのがおすすめです。\n\n### 8-2. 更新されることを前提に作成する\n\nガントチャートは事前に立てた計画通りに進行されるのが理想ですが、実際にはプロジェクトが開始されると仕様変更やトラブルが発生するケースも少なくありません。\nそのため、ガントチャートは「計画通りに進行させる」という前提ではなく、「更新されること」を前提として作成し柔軟性を持たせておく必要があります。例えば、バッファを含めて各タスクの作業期間を設定する、遅延が想定されるタスクにおいては別の担当者がフォローできるよう割り振りを工夫するなどの方法が挙げられます。\nプロジェクトの変更が発生した際に、同時に計画の変更もスムーズに行える体制を整えておくことで問題なく目標達成できるでしょう。\n\n## 9. ガントチャートと各開発手法との相性・使い方\n\n![ガントチャートと各開発手法との相性・使い方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988297/gyoodojgd9rfatopq20e.jpg)\n\nソフトウェア開発においては、近年開発手法も変化してきているためガントチャートと各開発手法との相性も把握しておくことも大切です。\nソフトウェア開発の手法においてはこれまで「ウォーターフォール開発」が主流でした。ウォーターフォール開発は開発前に全ての機能計画を立ててから計画通りに作業を進める手法であるため、プロジェクト全体のスケジュール管理やタスク管理ができるガントチャートとの相性は良いと言えるでしょう。\nなお、近年変化が激化しているビジネス環境において、迅速に顧客や市場ニーズに対応するために「アジャイル開発」にも注目が集まっています。アジャイル開発はウォーターフォール開発のように全体のスケジュールを立ててから開発を進めるのではなく、機能単位ごとに実装とテストを繰り返し開発を進めていきます。そのため、アジャイル開発においてはガントチャートによるスケジュール管理は不向きだと捉えてしまうかもしれません。\nしかし、ガントチャートが持つ計画性はアジャイル開発にも工夫次第で組み合わせることも可能です。例えば、スプリントプラニングにガントチャートを取り入れれば、視覚的に各タスクの作業期間や依存関係を表現できます。\n\n## 10. ガントチャートを作成できるツール・サービス\n\n![ガントチャートを作成できるツール・サービス](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988291/fzynvxnilg3s0o3k9rf0.jpg)\n\nガントチャートを作成できるツール・サービスは以下の通りです。\n\n* エクセル・スプレッドシート  \n* プロジェクト管理ツール\n\n### 10-1. エクセル・スプレッドシート\n\nガントチャートは、エクセルやGoogleスプレッドシートを活用して自作で作成することが可能です。\nエクセルなら一般的にビジネスシーンで利用されることが多いツールであるため、操作に慣れている人であれば使いやすいでしょう。Googleスプレッドシートも、Googleアカウントを持っていれば手軽に利用できるツールです。\nただし、エクセルやGoogleスプレッドシートを活用してガントチャートを作成する場合は、さまざまな課題が発生するため後に詳しく解説します。\n\n### 10-2. プロジェクト管理ツール\n\nガントチャートを作成する方法としてプロジェクト管理ツールを活用する方法もあります。プロジェクト管理ツールは、複数のタスクやプロジェクトを管理でき、ガントチャートの作成も可能です。\nプロジェクト管理ツールなら、マイルストーン機能や依存関係の設定などさまざまな機能が搭載されており、ガントチャート作成における面倒な設定やレイアウト作成も不要です。ツール導入に当たりコストは発生しますが、プロジェクト管理における包括的なサポートを受けられるというメリットを考えると、高い費用対効果が期待できると言えるでしょう。\n\n## 11. エクセルなど自作でガントチャートを作成することの課題\n\n![エクセルなど自作でガントチャートを作成することの課題](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988291/njhjqwrqpccvuk0cocq1.jpg)\n\nここでは、先ほど紹介したエクセルやGoogleスプレッドシートを活用して自作で作成することの課題について解説します。\n\n* 作成や更新に時間がかかる  \n* 視認性が低い  \n* スケジュール共有に時間がかかる\n\n### 11-1. 作成や更新に時間がかかる\n\nエクセルやGoogleスプレッドシートでガントチャートを自作する場合、作成や更新に時間がかかってしまいます。作成においてはテンプレートを利用する方法もありますが、自社のプロジェクトに沿ってカスタマイズしたい場合は操作に慣れている必要があり、ある程度関数や条件付き書式などの知識も求められます。\nまた、スケジュールの変更が発生する度に手作業で更新しなければならないため時間と手間がかかり、誤操作や更新漏れも発生しやすいと言えるでしょう。\n特に、プロジェクトの規模が大きいほど更新や修正における負担が増し、重要な業務に注力できなくなる恐れがあります。\n\n### 11-2. 視認性が低い\n\nエクセルやGoogleスプレッドシートでガントチャートのレイアウト作成や調整を行う場合、視認性が低くなってしまう恐れがあります。例えば、見た目を調整しようと必要のない項目を増やしたり、無駄な色使いなどを行うとガントチャートの情報量が多くなりかえって見づらくなってしまうでしょう。\nガントチャートは一目で全体の計画や進捗状況が把握できるかというポイントが重要になってくるため、慣れていないとエクセルやGoogleスプレッドシートで表現するのが難しい可能性があります。特に大規模なプロジェクトの場合は自作で視認性の高いガントチャートを作成するのに適していないと言えるでしょう。\n\n### 11-3. スケジュール共有に時間がかかる\n\nエクセルやGoogleスプレッドシートの場合、リアルタイムでの情報共有が難しくなります。特にエクセルの場合、更新の度にクラウドサービスなど別の媒体を使って共有する必要があり手間がかかります。また、その際誤操作によってファイルが破損してしまう可能性もあるでしょう。\nこのような形で情報共有がスピーディーかつ、正確に行われないと関係者間で認識のズレが生じてしまい、プロジェクトが円滑に進まなくなる恐れがあります。情報共有の正確性や迅速化を目指すなら専用のプロジェクト管理ツールの導入を検討するのが良いでしょう。\n\n## 12. ガントチャートの作成・プロジェクト管理なら「GitLab」\n\n![ガントチャートの作成・プロジェクト管理なら「GitLab」](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757988295/ldz4szcwrxwnpfl0bfnk.png)\n\nガントチャートの作成やプロジェクト管理を効率化するなら「[GitLab](https://about.gitlab.com/ja-jp/)」の導入がおすすめです。ここでは、GitLabの概要やプロジェクト管理機能の特徴について紹介します。\n\n### 12-1. GitLabとは\n\nGitLabは、AIを搭載したDevSecOpsプラットフォームです。AIによるソースコード管理やCI/CDによる開発プロセスの自動化、プロジェクト管理、セキュリティ強化など企業のソフトウェア開発を支援するさまざまな機能を提供しています。\nDevSecOpsとは、ソフトウェア開発における開発・セキュリティ・運用を掛け合わせたアプローチを指し、開発サイクル全体を効率化できるGitLabなら単一のプラットフォームでDevSecOpsを実現できます。GitLabは中小企業からエンタープライズまで世界中の多くの企業で導入されているプラットフォームです。\n\n### 12-2. GitLabのプロジェクト管理機能の特徴\n\n[GitLabのプロジェクト管理](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-mastering-project-management/)にはさまざまな機能が搭載されています。例えば、「ロードマップ」ならエピック（プロジェクトの大枠や目標）とマイルストーンをタイムライン形式（ガントチャート風）で視覚的に表示することが可能です。また、イシュー（タスク）の間に依存関係を設定することもできるため、事前に潜在的な障害を回避できます。\nその他にもアジャイル開発のプランニングに役立つ「イテレーション」や作業時間を測定できる「タイムトラッキング」などの機能があり、GitLabを導入することで自社のプロジェクト管理を円滑に進められます。\n\n## 13. ガントチャートを作成してプロジェクトを円滑に進めよう\n\nガントチャートを自社のソフトウェア開発に積極的に取り入れることで、全体のスケジュール管理やタスク管理がスムーズになり、プロジェクトの成功率を高められるでしょう。ガントチャートの作成はエクセルなどを利用して自作することも可能ですが、時間と手間がかかるためプロジェクト管理ツールを導入するのがおすすめです。\n[GitLab](https://about.gitlab.com/ja-jp/)なら、ソフトウェア開発におけるプロジェクト管理を効率化できる豊富な機能を揃えています。ガントチャートを作成して自社のプロジェクト管理を円滑に行いたいと考えている人は、ぜひ導入をご検討下さい。\nなお、[GitLab](https://about.gitlab.com/ja-jp/)では世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧ください。\n\n\n[2024グローバルDevSecOpsレポートはこちら](https://about.gitlab.com/ja-jp/developer-survey/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-gantt-chart)",[768,678,771,9],"ガントチャートとは？ソフトウェア開発における役割やメリット、作り方",{"featured":6,"template":681,"slug":1548},"what-is-gantt-chart","content:ja-jp:blog:what-is-gantt-chart.yml","What Is Gantt Chart","ja-jp/blog/what-is-gantt-chart.yml","ja-jp/blog/what-is-gantt-chart",{"_path":1554,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1555,"content":1561,"config":1566,"_id":1568,"_type":13,"title":1569,"_source":15,"_file":1570,"_stem":1571,"_extension":18},"/ja-jp/blog/what-is-ide",{"title":1556,"description":1557,"ogTitle":1556,"ogDescription":1557,"noIndex":6,"ogImage":1558,"ogUrl":1559,"ogSiteName":694,"ogType":695,"canonicalUrls":1559,"schema":1560},"IDE、そしてWeb IDEとは","Web IDE や IDE の知識を身に付け、統合開発環境ツール使用時や、開発自体に生かしましょう。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749660036/Blog/Hero%20Images/ide.jpg","https://about.gitlab.com/blog/what-is-ide","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"IDE、そしてWeb IDEとは\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Team\"}],\n        \"datePublished\": \"2025-06-03\",\n      }",{"title":1556,"description":1557,"authors":1562,"heroImage":1558,"date":1563,"body":1564,"category":770,"tags":1565},[938],"2025-06-03","Web IDEとは、クラウドベースで機能する、Webブラウザ上でソースのコミットまで行える高度なIDEです。では、IDEとは？ Web IDEやIDEを知らなかった人にもわかりやすいように、その仕組みや概要を、ここで簡単に説明します。\n\n## 目次\n\n* IDE（統合開発環境）とは\n* IDEの主な特徴\n* IDEの仕組み\n* IDEの種類\n* IDEを使うメリット\n* IDEの例\n* Web IDEとは\n* IDEのFAQ（よくある質問）\n\n## IDE（統合開発環境）とは\n\nIDEはIntegrated Development Environmentの略で、日本語では「統合開発環境」と訳されます。IDEは、開発者がソフトウェアのコードを開発する際に必要なソフトウェアをひとつにまとめ、単一の画面で操作できるようにしたものです。\n\nプログラミングには次のようなプログラムが必要になります。\n\n* テキストエディタ：ソースコードを記述  \n* コンパイラー：ソースコードからオブジェクトコードを生成  \n* リンカー：ターゲットとなるCPU用に実行コードを生成  \n* デバッガー：作成したプログラムのバグ検出に使用  \n* コードのバージョン管理：ほとんどのIDEはシームレスにバージョン管理システムを統合  \n* 自動化ビルド：ビルドプロセスを自動化\n\nIDEがなかった時代は、これら一つひとつを手作業で統合しなければなりませんでした。しかし、現在ではすべてがIDEツールに統合されているため、IDEをインストールするか、Web IDEにアクセスすれば、開発環境が瞬時に整います。ほとんどのIDEには、ソースコードを自動的に書いたり、編集したりするための機能が含まれています。そのため、コード開発を効率的に行うことが可能になります。\n\n## IDEの主な特徴\n\nIDEはこれまで、パソコンにインストールして使用するものが主流でしたが、現在はWeb IDEなど、クラウドベースのものが増えてきています。GitLabのWeb IDEも、Webブラウザにアクセスできれば、簡単に開発ができるため、複数の開発者で開発環境を共有することが可能です。\n\n統合開発環境（IDE）の特徴は、次のとおりです。\n\n1. 時間の節約：上述のように、各種プログラムがひとつのプラットフォーム上に統合されているため、ソフトウェア開発にかかる時間が短縮できます。  \n2. チームでの開発の効率化：バージョン管理やソースコードの管理など、引き継ぎにかかる手間が省け、ミスが予防できます。  \n3. ヒューマンエラーの防止：IDEのエディタには入力サポート機能があり、コンパイラにはシンタックスチェック、つまり構文の間違いチェック機能があります。こういった機能はヒューマンエラーを防止してくれます。\n\n## IDEの仕組み\n\nIDEとは、ソフトウェアの開発で使用するさまざまなソフトウェアを支援ツールと合わせてまとめ、統合開発環境として使えるようにしたものです。\n\n## IDEの種類\n\nIDEには、さまざまな種類があります。用途や目的、プログラミング言語、ターゲットとする OS や動作環境によって、選ぶポイントがあります。何を作るのか、どういうソフトウェアやアプリケーションを開発するのかによっても、最適 IDEは変わります。どのIDEを選ぶかによって、できることが異なるからです。しかし、異なるIDEで共通してできることは、次のようなものです。\n\n* ソースファイルの構成管理  \n* ビルドの自動実行  \n* デバッグ\n\nまた、たとえば、プログラミング言語には Java、Swift、C++、C\\#、UnityやPythonなどがあるため、コードを書く言語に対応しているIDEを選ぶべきでしょう。IDEの種類としては：\n\n* 多言語対応IDE  \n* モバイル開発用IDE  \n* WebまたはクラウドベースのIDE  \n* 単言語のIDE\n\nなどがあります。\n\nまた、IDEにはダウンロードして使うものと、クラウドで使用するもの、たとえばWeb IDEなどがあります。クラウドベースのものは、複数の開発者の間で開発環境が共有できるため、各々のチームメンバーの環境設定の違いは問題になりません。また、ビルドの際はCPUの速度低下により時間がかかるものですが、クラウドIDEでは速度低下は発生しません。ソースコード開発は、Gitなどと連携すれば、チーム間での共有も行えます。\n\n## IDEを使うメリット\n\nIDE、統合開発環境を使うメリットは、一言で言うなら「開発の効率化」です。「IDEとは」で記述したように、IDEにはテキストエディタ、コンパイル、デバッグなどの機能がすべて統合されています。そのため、コード開発の効率化が図れます。\n\nIDEを使うと、環境設定を行う手間が省けますが、逆に、IDEを使わないと、各種ツールを設定しなければならず、時間がかかります。また、IDEはインストール後すぐ使えるため、プログラミングの初心者にもお勧めできます。\n\n## IDEの例\n\nIDE、統合開発環境にはたくさんの種類があります。現在よく使われているIDEのうち、例を 5 つ挙げます。\n\n●        Visual Studio/Visual Studio Code – Microsoftが開発。市場でとくに人気がある\n\n●        IntelliJ IDEA – JetBrains が開発した、多言語対応型IDE\n\n●        Vim - Bram Moolenaar氏が開発した軽量のテキストエディタでIDEとして使用可\n\n●        Eclipse – IBMが開発した、オープンソースのIDE\n\n●        Jupyter Notebook – Pythonの実行環境をもつ、ブラウザベースのIDE\n\n## Web IDEとは\n\nWeb IDEとは、前述のように、WebベースのIDEで、WebブラウザさえあればアクセスできるIDEを意味します。個々に IDE を利用するのではなく、利用者はみな、ブラウザを介してIDEにアクセスするため、各種設定のわずらわしさから解放されます。\n\n### [GitLab Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/)を使うメリット\n\nGitLabには、クラウドベースの、オンライン[Web IDE（英語版）](https://about.gitlab.com/blog/get-ready-for-new-gitlab-web-ide/)があります。Web IDEは、コミットのステージング機能を備えた高度なエディタです。Web IDEを使うと、GitLab UIから直接複数のファイルに変更を加えることができます。\n\n* フレキシブルでカスタム化可能なインターフェース  \n* パネルは折りたたみ可能で、テーマもカスタム化可能  \n* コンテキストアクションとドラッグ＆ドロップサポート  \n* 開いているファイル全部を一度に検索・置換  \n* GitLab UIから直接ブラウザで開けるため、クイックなコード修正などに便利\n\n## IDEのFAQ（よくある質問）\n\n### Q: IDE（統合開発環境）を使う理由は何ですか。  \nA: IDEはソフトウェア開発環境の一部を構成しています。よく設計されたIDEを使うと、ソフトウェア開発が大幅に効率化できます。\n\n### Q: IDEの3つの主要コンポーネントは何ですか。\n\nA: コードエディタ、コンパイラ、デバッガーが三大コンポーネントです。\n\n### Q: IDEのインストール、設定方法は？\n\nA: ニーズに合ったIDEを選び、最新バージョンを公式サイトから入手してインストールします。ほとんどのIDEで、各種設定は使用環境に合わせてカスタマイズ可能です。 \n\n## GitLab Web IDEを使ってみる\n\nGitLabのWeb IDE は、SaaSおよびSelf-Managedのサブスクリプションを購入されているお客様には無償でお試しいただけます。詳しくは[こちら](https://about.gitlab.com/direction/create/ide/web_ide/)をご覧ください。\n\n\u003Cbr>\u003Cbr>\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n",[768,9,676,678],{"slug":1567,"featured":90,"template":681},"what-is-ide","content:ja-jp:blog:what-is-ide.yml","What Is Ide","ja-jp/blog/what-is-ide.yml","ja-jp/blog/what-is-ide",{"_path":1573,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1574,"content":1579,"config":1584,"_id":1586,"_type":13,"title":1587,"_source":15,"_file":1588,"_stem":1589,"_extension":18},"/ja-jp/blog/what-is-local-llm",{"config":1575,"title":1576,"description":1577,"ogImage":1578},{"noIndex":6},"ローカルLLMとは？開発での活用メリットと注意点","ローカルLLMの意味やクラウドLLMとの違い、ソフトウェア開発における導入メリットなどを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577836/qjcz9aubvivrn4zy1kqr.jpg",{"title":1576,"description":1577,"authors":1580,"heroImage":1578,"date":1581,"body":1582,"category":812,"tags":1583},[938],"2025-09-12","近年ソフトウェア開発の領域では、開発プロセスの効率化や生産性向上などを目的としてAIの活用が重要視されています。その中で企業のセキュリティ要件に対応しやすい「ローカルLLM」にも注目が集まっています。\n\n実際にソフトウェア開発におけるAI活用において、ローカルLLMの導入を検討している人も多いのではないでしょうか。\n\nこの記事では、ローカルLLMの意味やクラウドLLMとの違い、ソフトウェア開発における導入メリットなどを解説します。\n\n## 1 そもそもLLM（大規模言語モデル）とは？\n\n![そもそもLLM（大規模言語モデル）とは？](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577783/xdlztojxzueezzp0nnhh.jpg)\n\nローカルLLMについて触れる前にまずはLLM（大規模言語モデル）について理解しておきましょう。LLMとは、膨大なデータを学習し、人間のような自然な言語を使って文章の生成や理解ができる自然言語処理に特化した生成AIの一種です。後にも詳しく解説しますが、ソフトウェア開発の領域ではコードのレビューやドキュメント作成などに役立てられます。\n\nなお、LLMのような自然言語処理ができる言語モデルには「SLM（小規模言語モデル）」もあり、さらにLLMについて触れるなら「RAG（検索拡張生成）」についても理解しておく必要があります。以下でそれぞれの特徴やLLMとの違いについて解説します。\n\n### 1-1 SLM（小規模言語モデル）との違い\n\nSLMは、LLMと同じく自然言語処理が可能なAIモデルですが、「小規模言語モデル」という名前が示すようにLLMよりも小規模で軽量な言語モデルを指します。金融や医療、保険など特定の分野で活用されることが多く、軽量な処理のためリソース要件に制約がある環境でも利用しやすいです。\n\nLLMとSLMの違いを表でまとめると以下の通りです。\n\n|           | LLM（大規模言語モデル） | SLM（小規模言語モデル） |\n| --------- | ------------- | ------------- |\n| 規模（パラメータ） | 数百億〜数兆        | 数億〜数十億        |\n| 学習データ     | 幅広いタスクに対応     | 特定のタスクに特化     |\n| 必要リソース    | 高性能GPUなどが必要   | 軽量            |\n| 開発コスト     | 高い            | 低い            |\n| 処理速度      | 遅い            | 高速            |\n\n### 1-2 RAG（検索拡張生成）との違い\n\nRAGとは、「Retrieval-Augmented Generation」の略語であり、LLMの能力や回答精度を向上させるための技術を指します。具体的には、LLMと外部のデータベースを連携し、データベースから検索した情報を付加させる形で精度の高い回答を実現する手法です。\n\nLLMの場合は、学習された既存のデータだけを利用して文章を生成するため、適切な回答を得られない可能性があります。また、学習データが古くなると最新の情報が反映されないため、情報の正確性や信頼性に劣るケースも見られます。\n\nそこでRAGも活用すれば外部データと連携して回答を行えるようになるため、最新情報や必要な情報を反映させた正確かつ信頼性の高いアウトプットを得られます。つまり、RAGはLLM活用を後押しするような技術として位置付けられるでしょう。\n\n## 2 ローカルLLMとは？クラウドLLMとの違い\n\n![2 ローカルLLMとは？クラウドLLMとの違い](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577786/im83n2lheoasu6d1jix4.jpg)\n\nではここからはローカルLLMについて、クラウドLLMとの違いも踏まえながら解説していきます。\n\n### 2-1 ローカルLLMとは？\n\nローカルLLMとは、自社サーバーやユーザー個人のPC上などオンプレミス（ローカル）環境で動作する大規模言語モデルを指します。\n\nインターネット接続を必要としないのが大きな特徴で、機密情報を外部に送信することなくAIを活用できるため、企業のセキュリティ要件に対応しやすいです。また、オフライン環境で処理が完結することから、通信障害やネットワーク遅延などの影響を受けにくく、運用におけるリスクを軽減できます。\n\nさらに、ローカルLLMではモデルの再学習・微調整（ファインチューニング）も可能です。そのため、目的に応じて特定の業界やデータに特化させたモデルを構築できるなどカスタマイズ性が高いことも特徴の一つです。\n\n### 2-2 クラウドLLMとの違い\n\nクラウドLLMは、インターネットを介してベンダーのクラウドサーバー上で動作する大規模言語モデルを指します。ローカルLLMとは異なり、大前提として活用においてはインターネット接続が必須となります。\n\nクラウドであることから導入における初期費用を抑えられ、かつ高いスケーラビリティを持つものの、入力データは外部のサーバーに送信されるため、セキュリティが重視される業界やシーンにおいては懸念があると言えます。\n\nまた、ローカルLLMよりもカスタマイズ性は劣り、ベンダーのサービス範囲内となるため、自由度は高くはありません。\n\n## 3 ローカルLLMとクラウドLLMの比較表\n\n|           | ローカルLLM                             | クラウドLLM                                  |\n| --------- | ----------------------------------- | ---------------------------------------- |\n| 実行環境・接続要件 | ・自社サーバーやローカル端末で動作 ・インターネット接続不要      | ・ベンダーのクラウドサーバー上で動作 ・インターネット接続が必須         |\n| 処理速度・性能   | ・ハードウェアの性能に依存する ・ネットワーク遅延の影響を抑えられる  | ・高性能なサーバーの利用により処理速度が速い ・通信障害の影響を受ける場合がある |\n| コスト       | ・ハードウェアへの投資が必要 ・運用コストは維持費が中心で安定しやすい | ・従量課金が一般的 ・初期費用を抑えられる                    |\n| セキュリティ    | ・オンプレミス環境によりデータを外部に送信する必要がない        | ・データを外部に送信する必要があるため、懸念あり                 |\n| カスタマイズ性   | ・自社のニーズに合わせたモデルを構築しやすい              | ・ベンダーのサービス範囲内                            |\n| スケーラビリティ  | ・物理的なリソースを都度調整する必要がある ・クラウドより手間がかかる | ・柔軟にリソースを調整できる                           |\n\nローカルLLMとクラウドLLMの違いをまとめると上記の通りになります。ただし、OpenAIが提供している「gpt-oss」のように低スペックで動作するような効率性の良いLLMも登場してきています。そういった背景からコスト面などの違いにおいては2025年8月現在、少し状況が変わってきているとも言えるため、定期的な情報収集が必要です。\n\n## 4 ローカルLLMが注目されている背景\n\n![4 ローカルLLMが注目されている背景](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577785/fuhck2u8wdffx6rmk5nc.jpg)\n\nなぜソフトウェア開発やビジネスにおいて、ローカルLLMが注目されているのでしょうか。具体的な背景としては以下が挙げられます。\n\n* 生成AI活用に対する企業ニーズの増加  \n* セキュリティ意識の向上  \n* 技術的な進化\n\n### 4-1 生成AI活用に対する企業ニーズの増加\n\nソフトウェア開発の領域においては、多様化するニーズやビジネス環境の変化に対応するためにAI活用のニーズが高まっています。\n\n実際に[GitLab](https://about.gitlab.com/ja-jp/)が開催したイベント「[DevOpsDive2025](https://about.gitlab.com/ja-jp/blog/event-report-devopsdive2025/)」によると、ソフトウェア開発ライフサイクルにおいてAIを使用中の国内企業の割合は48%で、米国の38%よりも高い数値となっています。ただし、国内のAI活用はコーディングの範囲に留まっている状況で、開発プロセス全体を通した活用には至っていません。\n\nソフトウェア開発ライフサイクル全体にAI活用を行き渡らせるためには十分なセキュリティ対策が必要になり、その手段として有効なのがローカルLLMの活用です。ローカルLLMならオンプレミス環境により企業の機密情報を安全に扱いながらAIを利用できます。つまり、ローカルLLMはAI活用における重要なソフトウェア開発基盤の一つだと言えるでしょう。\n\n### 4-2 セキュリティ意識の向上\n\n近年ビジネスにおけるIT活用が浸透する中で、セキュリティインシデントも多く発生しており、ソフトウェア開発の領域においてもセキュリティ対策への重要性が高まっています。\n\nLLMをクラウドベースで利用する場合、企業の重要な機密情報を外部のクラウドサーバーへ送信する必要があることから、情報漏えいのリスクが高まります。\n\nローカルLLMなら機密性の高いソースコードや仕様書などを、安心して投入して自由にAIを活用することが可能です。\n\n### 4-3 技術的な進化\n\nローカルLLMが注目されている背景として、技術的な進歩も挙げられます。例えば、日本語特化型LLMの登場により、日本企業がローカルLLMを導入する際にも扱いが容易になり、実用性が高まっています。\n\nまた、先ほど少し触れたようにモデルの軽量化により低スペックで動作できるようなLLMも登場してきているため、以前よりローカルLLMをスムーズに導入できる環境が整ってきていると言えるでしょう。\n\n## 5 ソフトウェア開発におけるローカルLLMのメリット\n\n![5 ソフトウェア開発におけるローカルLLMのメリット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577783/kj2jyvoa0bv2n67kwmxu.jpg)\n\nソフトウェア開発におけるローカルLLM導入のメリットは以下の通りです。\n\n* 開発の効率性と生産性の向上  \n* セキュリティ・コンプライアンスの強化  \n* コストの最適化\n\n### 5-1 開発の効率性と生産性の向上\n\nローカルLLMはソフトウェア開発ライフサイクルにおけるさまざまなプロセスで活用できます。例えば、コード補助や自動レビュー生成、バグ修正、脆弱性修正補助などに使えば、ヒューマンエラーのリスクを軽減しながら迅速かつ品質の高いソフトウェア開発を実現することが可能です。\n\nローカルLLMの活用によって効率よく開発を進めることで、開発者はより価値の高い活動や業務に集中できるようになり、結果としてチーム全体のパフォーマンスを向上させられるでしょう。\n\n### 5-2 セキュリティ・コンプライアンスの強化\n\n繰り返しにはなりますが、ローカルLLMなら自社サーバーを利用するため外部にデータを送信する必要がなく、セキュリティやコンプライアンスの強化を図りながら生成AIを活用できます。セキュリティ要件の厳しいプロジェクトや業界でも活用しやすく、開発者の心理的ハードルも下げられ安全に作業を進められるでしょう。\n\nまた、ローカルLLMを通して潜在的な脆弱性を検出し、修正案の提案を受けることでコードの安全性向上にもつなげられます。\n\n### 5-3 コストの最適化\n\nローカルLLMの導入によりコストの最適化を図れるメリットもあります。クラウド型のLLMは初期費用を抑えられるものの、従量課金制を採用していることから利用量（トークン数）が増えると、コストが大幅に増えてしまう可能性もあります。\n\n一方、ローカルLLMは初期にハードウェア導入費用が発生しますが、一度構築してしまえば運用に必要な費用は基本的に維持費だけになるため、長期的な視点で考えるとコストの最適化を図れるでしょう。\n\n## 6 ローカルLLM導入におけるデメリット・課題\n\n![6 ローカルLLM導入におけるデメリット・課題](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/k5x3ndhan9varjcyvlqb.jpg)\n\nローカルLLMの導入においては以下のようなデメリットや課題もあるため、事前に把握しておく必要があります。\n\n* 専門知識の必要性  \n* 高額な初期導入コストの発生  \n* 不正確・不完全なデータを生成する可能性\n\n### 6-1 専門知識の必要性\n\nローカルLLMを導入するためには、オープンソースLLMを自社サーバーで実行できるよう環境の構築やモデルの最適化が必要になります。このプロセスにおいては、専門的な知識や技術が求められるため、社内で適切な人材を配置しなければなりません。基盤となるインフラ設計やファインチューニングなどさまざまな知識が必要になりますが、特にvLLMとHugging Faceなどでホストされているモデルに関する知識が重要です。\n\nまた、ローカルLLM導入後のメンテナンスやセキュリティ管理なども自社で対応しなければならないため、事前に社内で体制を整備しておきましょう。\n\n### 6-2 高額な初期導入コストの発生\n\nローカルLLMを導入する際には、高性能なハードウェアなどを確保する必要があるため、初期の導入コストが高額になりがちです。特に大規模なモデルを扱う場合は、計算能力の高い高価なGPUを用意しなければなりません。\n\nしかし先述したように一度導入してしまえばその後の運用コストは安定しやすいため、長期的な利用を前提とすればクラウドLLMよりも経済的な効果が期待できる可能性は高いと言えます。\n\nなお、NVIDIAと同等スペックのハードウェアを低価格で提供する動きが既にあるので、そのあたりも注視しておきたいところです。\n\n### 6-3 不正確・不完全なデータを生成する可能性\n\nローカルLLMを活用する際には、AIが必ずしも正しいデータを生成するとは限らないことを理解しておく必要があります。例えば、ソフトウェア開発において脆弱性の分析や修正をローカルLLMを通して自動化する場合、正しい結果がアウトプットされない可能性もあるため、AIからの修正案を検討するタイミングなどにおいては人間による二重チェックを積極的に行うことが大切です。\n\nなお、ローカルLLMのデータ品質を保つためには、定期的なモデルのアップデートが重要です。クラウドLLMのように自動で最新の状態にアップデートされるわけではないため、自社で再学習や調整作業を行わなければなりません。\n\n## 7 ソフトウェア開発におけるローカルLLMの活用例\n\n![7 ソフトウェア開発におけるローカルLLMの活用例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577784/ipjhxxa41aoymc7nvkbc.jpg)\n\nソフトウェア開発においては以下のようなプロセスにおいてローカルLLMを活用できます。\n\n* コード補完・レビュー  \n* ドキュメント作成・ナレッジ共有  \n* CI/CDパイプラインの作成\n\n### 7-1 コード補完・レビュー\n\nソフトウェア開発でローカルLLMを導入することで、オフラインでのコード補完・レビューが可能になります。コード補完ならコードを記述している際に、AIがコードの提案を行なってくれるため、開発者のコーディングスピードの向上が期待できます。\n\nまた、コードレビューの自動化により、開発者は効率的にコードの改善を実施でき、AIで一貫性のあるレビューを実現することでコード品質の向上につなげられるでしょう。\n\n### 7-2 ドキュメント作成・ナレッジ共有\n\nローカルLLMの活用は、ソフトウェア開発におけるドキュメント作成やナレッジ共有でも役立ちます。例えば、ドキュメント作成なら仕様書の初稿作成や内容のチェックをローカルLLMを通して行えば、作業の効率化につなげられます。\n\nまた、RAGと連携して社内ナレッジベースや文書を利用して社内Q&A検索などを構築すれば、開発チーム内でのナレッジ共有をスムーズに行えるでしょう。\n\n### 7-3 CI/CDパイプラインの作成\n\nソフトウェア開発でのローカルLLMの活用は、[CI/CD](https://about.gitlab.com/ja-jp/blog/what-is-ci-cd/)パイプラインの作成やパイプライン実行時のエラー調査にも貢献できます。また、テストコード生成によってテスト作業の軽減化も支援することが可能です。\n\n[CI/CD](https://about.gitlab.com/ja-jp/blog/what-is-ci-cd/)パイプラインの構築から実行におけるプロセスを効率化すれば、開発者はソフトウェアの開発作業に集中できるようになるため、リリース頻度やスピードの向上につなげられます。\n\n## 8 ローカルLLMの導入方法\n\n![8 ローカルLLMの導入方法](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577783/xpoecwmgfqwwyxis4rxj.jpg)\n\nでは実際にローカルLLMを導入するにはどのような手順を踏めば良いのかを解説します。\n\n1. 目的と要件の整理  \n2. 環境整備  \n3. 継続的な検証と改善\n\n### 8-1 1.目的と要件の整理\n\nまずはソフトウェア開発の領域において「なぜローカルLLMの導入が必要なのか？」という目的を明確化することが大切です。\n\n例えば、「クラウドからの移行によるコスト最適化を図りたい」「自社のセキュリティ要件にマッチした開発環境を構築したい」など目的を検討します。明確な目的がないと導入そのものが目的となってしまい、十分な効果を得られないためきちんと設定し、社内で共通の認識を持っておく必要があります。\n\nまた、ローカルLLMを導入して具体的にどのような成果を得たいのか定量的なKPIもあわせて設定しておくことで、導入後の効果検証や改善がしやすくなります。例えば、開発コストの削減量やパイプライン実行時間などの目標値の設定が考えられます。\n\n### 8-2 2.環境整備\n\n次にローカルLLMの実行に必要なモデルの選定や環境構築を行います。モデルの選定においては導入目的をもとに、求められる性能やリソース要件などを考慮して検討します。\n\nハードウェア環境においては、使用するモデルのサイズや用途、利用ユーザー数などに応じた要件を満たすことがポイントとなり、特にGPUの性能が重要です。ハードウェア環境が整った後は、ソフトウェア環境の設定を行い実際にモデルを実装していきます。\n\n### 8-3 3.継続的な検証と改善\n\nモデル実装後は、継続的なパフォーマンステストと改善を行います。具体的には、処理速度や回答精度、リソースの利用状況などを検証し、必要に応じて改善や調整を実施します。なお、実際の運用においてはまずは小規模なプロジェクトから開始し、検証結果の内容や利用ユーザーのフィードバックを取り入れながら徐々に拡大していくと良いでしょう。\n\nまた、長期的に安定して運用するためには、メンテナンスやアップデートをスムーズに行える体制づくりも必要です。\n\n## 9 ローカルLLMのおすすめモデル\n\n![9 ローカルLLMのおすすめモデル](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/z48qapdqnbbb67lotscz.jpg)\n\nローカルLLMの導入にあたっておすすめのモデルを紹介します。なお、ここで紹介するモデルは[GitLabのサポート対象](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)です。\n\n* Mistral-Small-3.2-24B-Instruct-2506  \n* Codestral 22B  \n* Llama 3\n\n### 9-1Mixtral-8x7B-Instruct-v0.1\n\nMixtral 8x7Bは、Mistral AIが2023年12月にリリースした大規模言語モデルです。混合エキスパートモデル（MoE）を採用しているのが特徴で、学習・推論スピードに強みがあります。Mixtral 8x7Bならコード生成タスクでも高精度なアウトプットが期待でき、Duo Chatでも活用可能です。\n\n### 9-2 Codestral 22B\n\nMistral AIが2024年5月から公開しているCodestral 22Bは、コーディングに特化した大規模言語モデルです。PythonやJava、C、SQLなど人気のプログラミング言語を含め、80以上の言語に対応しています。コード自動補完など開発効率の向上を目的として活用できます。Chatには使えませんが、ソースコード生成処理として良い選択になります。この時にGitLabは、用途用途にモデルを切り替えられるメリットがあります。\n\n### 9-3 Llama3\n\nLlama3は、Meta社が2024年4月に公開したオープンソース大規模言語モデルです。Llama3には、「8B」と「70B」の2つのモデルが存在します。\n\nLlama3 8Bは、80億のパラメータを持つモデルで比較的コンパクトであることから、計算リソースが限られるシーンでの利用が向いています。一方、Llama3 70Bは、700億のパラメータを持つモデルであり、多様なタスクへの対応やパフォーマンス向上などを目的として活用できます。また、ライセンスフリーで利用可能なモデルの中では最高峰レベルの性能を誇るため、ハードウェアに予算が割けられる場合は70Bをおすすめします。\n\n## 10 ローカルLLM導入における注意点\n\n![10 ローカルLLM導入における注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/twsdcll86zz9jgetvhq5.jpg)\n\nローカルLLMを導入する際には以下のような注意点があり、事前に必要な対策を検討しておくことが大切です。\n\n* 社内での周知・教育・活用定着を図る  \n* 社内でのセキュリティ設定・アクセス制御を徹底する  \n* モデルのライセンスを確認する\n\n### 10-1 社内での周知・教育・活用定着を図る\n\nローカルLLMを自社で導入した場合でも実際に開発者に使われないと意味がありません。導入目的の説明や操作マニュアル・ガイドラインの整備などを行い、利用の定着を図ることが大切です。社内におけるAI活用の利用状況を効率的にチェックするには、ツールの活用がおすすめです。\n\nGitLabのサービスの一つとして「[AI Impact Dashboard](https://docs.gitlab.com/user/analytics/ai_impact_analytics/)」があり、この機能を活用することで自社のAI導入における利用状況を可視化してROIのモニタリングが可能になります。\n\n### 10-2 社内でのセキュリティ設定・アクセス制御を徹底する\n\nローカルLLMは自社サーバーで運用しますが、社内でのセキュリティ対策は必須です。\n\n社内でのセキュリティ対策としてまず挙げられるのは、モデルに入力した機密データの管理の徹底です。LLMが出力するログにはソースコードなどの断片が出力されるケースもあるため、LLMを運用しているOSへのログインや物理アクセスの管理などを行わなければなりません。\n\nまた、実際にモデルを入手する際には改ざんされたモデルを利用しないようダウンロード元には十分注意しましょう。\n\n### 10-3 モデルのライセンスを確認する\n\nローカルLLMを導入する際に注意点したい要素として、モデルのライセンス条件があります。各モデルによって付与されているライセンスが異なり、商用利用や改変、再配布の可否などの条件が設定されています。\n\nライセンス違反にならないよう使用予定モデルのライセンス規約を丁寧に確認し、運用におけるリスクを取り除いておきましょう。\n\n## 11 GitLab Duo Self-HostedによるローカルLLM運用\n\n![11 GitLab Duo Self-HostedによるローカルLLM運用](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/lqeesn9igwma1rdxohdd.png)\n\n[GitLab Duo Self-Hosted](https://about.gitlab.com/ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/)を活用することで、ローカルLLMをGitLabと連携して運用できます。[GitLab](https://about.gitlab.com/ja-jp/)は、ソフトウェア開発ライフサイクル全体を効率化できるDevSecOpsプラットフォームです。\n\nここでは、GitLab Duo Self Hostedの特徴やローカルLLMとの連携で実現できることを紹介します。\n\n### 11-1 GitLab Duo Self-Hostedとは？概要と主な特徴\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、GitLabが提供するソフトウェア開発におけるワークフローを支援するAIソリューションです。 [Self-Hosted版](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/)ならGitLab Duoをオンプレミス環境で運用できるため、安全にAIを活用しながら開発を進められます。\n\nまた、Mistralなど主要なモデルをサポート対象としているため、自社のセキュリティやパフォーマンス要件に応じて柔軟にモデルを選定し、最適なソリューションを構築できます。\n\n### 11-2 ローカルLLMとGitLabの連携で実現できること\n\nローカルLLMとGitLabの連携により以下のようなことが可能になるため、ソフトウェア開発における生産性と品質向上を実現できます。\n\n* コード補完・レビュー支援（20以上の言語に対応）  \n* セキュリティ脆弱性検出・修正提案  \n* アクセス制御  \n* AI投資のROI測定  \n* CI/CDのyml生成・トラブルシュート、コードレビューの自動化 など\n\n## 12 ローカルLLMの将来性・今後の展望\n\n![12 ローカルLLMの将来性・今後の展望](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/ycesbwldjawmyowsncrw.jpg)\n\n結論から述べるとローカルLLMの需要は拡大し、今後もさまざまなシーンで広く活用されていくと言えます。\n\n一般社団法人 電子情報技術産業協会（JEITA）が発表した「生成AI市場の世界需要額見通し」によると、生成AI市場の世界需要額は年平均53.3%で成長しており、2030年には2,110億ドルに達すると言われています。これは、2023年の106億ドルから約20倍の需要額となる見込みです。\n\nローカルLLMは、厳しいセキュリティ要件にも対応できるなどソフトウェア開発やビジネスにおいて多くのメリットがある技術です。今後も低スペックで動作する高性能モデルの登場や、クラウドとのハイブリッド活用などさらなる技術の発展やアプローチによって、開発者にとって必要不可欠なソフトウェア開発基盤として機能していくでしょう。\n\n※出典：[JEITA、生成 AI 市場の世界需要額見通しを発表](https://www.jeita.or.jp/japanese/topics/2023/1221-2.pdf)\n\n## 13 ローカルLLMに関するQ＆A\n\n![13 ローカルLLMに関するQ＆A](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577779/a4v40ozyl3jquhqhpsav.jpg)\n\n最後にローカルLLMに関するQ＆Aを紹介します。\n\n### 13-1 ローカルLLM導入はどのようなチームに向いている？\n\nローカルLLM導入は以下のような条件に該当するチームに向いています。\n\n* プロジェクトや業界のセキュリティ要件が厳しい  \n* 機密性が高いソフトウェア開発をしている  \n* CやC++など高い技術力が求められる言語で開発しているが、人員集めに苦労している  \n* クラウドのAPI課金に対してコスト面で負担を感じている  \n* LLMをDevSecOpsに組み込みたい など\n\n### 13-2 ローカルLLM運用のための最低限のハードウェア条件は？\n\nGitLab Duo Self-Hostedをオンプレミスで実行する場合は以下の通りです。ただ実際の要件はモデルのサイズと使用目的などによって異なるため、参考程度として捉えてください。\n\n・GPU：1 x NVIDIA A100（40GB）\\\n・VRAM: 35GB以上\\\n・ストレージ：モデルサイズ分以上\n\n※参考：[ハードウェア要件 | GitLab Duo](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#hardware-requirements)\n\n### 13-3 ローカルLLMとクラウドLLMのハイブリッド活用例は？\n\nローカルLLMとクラウドLLMの使い分けやハイブリッド活用においては目的や要件によって判断する必要があります。\n\n例えば、機密性の高いソースコードに関する作業であり、かつ利用頻度も高い場合はローカルLLMで実行する必要があります。一方で機密性が低く、かつソースコードに関する作業頻度も低い場合は、クラウドLLMを利用すると良いでしょう。\n\n万が一クラウドLLMを運用中に障害が発生した時は、ローカルLLMを利用します。ただし、使用するモデルが異なるとアウトプットの質にも影響が出てくるため、可能な範囲でハイブリッド活用を検討します。\n\nなお、クラウドLLMは最新モデルを素早く利用できる利点と、モデルを動作するインフラの規模（GPUやVRAMなど）を気にする必要がないため、最新のクオリティでLLMを活用したいケースでの利用が向いているでしょう。\n\n## まとめ ローカルLLMを自社のソフトウェア開発に取り入れよう\n\nソフトウェア開発においてローカルLLMを採用することで、セキュリティ要件が厳しいケースにおいても安全に開発を進められます。実際の導入においては目的の明確化や自社ニーズ・リソースにマッチしたモデルの選定、適切な運用体制の構築が鍵となってきます。\n\nローカルLLMを自社の開発プロセスに導入するならぜひ「[GitLab Duo Self-Hosted](https://about.gitlab.com/ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/)」をご活用ください。GitLab Duo Self-Hostedならオンプレミス環境でさまざまなAI機能を活用して、高品質かつ迅速なソフトウェア開発を実現できます。\n\nなお、[GitLab](https://about.gitlab.com/ja-jp/)では世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧下さい。\n\n*監修：小松原つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)*\n\n*（GitLab合同会社ソリューションアーキテクト本部シニアパートナーソリューションアーキテクト）*",[673,769,9,678,770],{"featured":6,"template":681,"slug":1585},"what-is-local-llm","content:ja-jp:blog:what-is-local-llm.yml","What Is Local Llm","ja-jp/blog/what-is-local-llm.yml","ja-jp/blog/what-is-local-llm",{"_path":1591,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1592,"content":1597,"config":1603,"_id":1605,"_type":13,"title":1606,"_source":15,"_file":1607,"_stem":1608,"_extension":18},"/ja-jp/blog/what-is-platform-engineering",{"config":1593,"ogImage":1594,"title":1595,"description":1596},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508254/duu6d4vclamtnnxjdaat.jpg","プラットフォームエンジニアリングとは？意味や導入メリットをわかりやすく解説","この記事では、プラットフォームエンジニアリングの意味や特徴、導入メリットなどを解説します。具体的な導入ステップや基盤構築に役立つおすすめのプラットフォームも。",{"category":812,"body":1598,"date":1599,"authors":1600,"heroImage":1594,"title":1595,"description":1601,"tags":1602},"近年ソフトウェア開発の領域では「プラットフォームエンジニアリング」と呼ばれる開発者の生産性向上に寄与するアプローチが注目されています。\n\n実際にプラットフォームエンジニアリングに興味はあるものの、意味や定義などを詳しく理解していない人も多いのではないでしょうか。\n\nこの記事では、プラットフォームエンジニアリングの意味や特徴、導入メリットなどを解説します。具体的な導入ステップや基盤構築に役立つおすすめのプラットフォームも紹介するのでぜひ参考にして下さい。\n\n## 1. プラットフォームエンジニアリングとは？\n\n![プラットフォームエンジニアリングとは](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508139/eui82g7mlcb2fr5vavir.jpg)\n\nまずはプラットフォームエンジニアリングの意味や特徴について解説します。\n\n### 1-1. プラットフォームエンジニアリングの意味・特徴\n\nプラットフォームエンジニアリングとは、企業内の開発者に対して適切なプラットフォーム（IDP）を整備し、ソフトウェア開発の効率化や生産性向上を実現するアプローチのことです。\n\n近年はIT技術の発展や消費者ニーズの多様化などを背景として将来の予測が難しい時代（VUCA時代）だと言われています。プラットフォームエンジニアリングは、VUCA時代において複雑化するビジネスニーズに対応するための新しいエンジニアリング手法として、ガートナー社が積極的に提案しているアプローチでもあります。\n\n### 1-2. IDP（内部開発者向けプラットフォーム）とは\n\nInternal Developer Platform（内部開発者向けプラットフォーム、以下IDP）とは、企業内の開発者が開発プロセスにおいて必要な機能やリソースを自ら取得して利用できるプラットフォームを指し、プラットフォームエンジニアリングの導入における重要な技術基盤に当たります。\n\nIDPを通してチームで共通して利用できるツールやリソースを開発者に提供することで、迅速なソフトウェアの構築やデプロイを実現できます。\n\nIDPの構築においては、自社の課題や目的に応じてさまざまなツールや技術を組み合わせて行いますが、[GitLab](https://about.gitlab.com/ja-jp/)のように単一のプラットフォームで開発プロセスにおける多くの作業を効率化できるサービスもあります。\n\n## 2. プラットフォームエンジニアリングが注目されている背景\n\n![プラットフォームエンジニアリングが注目されている背景](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/hvzgimgumavwq5mmfqlx.jpg)\n\nソフトウェア開発の領域でなぜプラットフォームエンジニアリングが注目されているのでしょうか。具体的な背景としては以下が挙げられます。\n\n* 開発環境の複雑化  \n* ビジネス環境の激化  \n* IT人材の不足\n\n### 2-1. 開発環境の複雑化\n\nプラットフォームエンジニアリングの必要性が高まっている背景の一つとしてまず挙げられるのが、開発環境の複雑化による開発者の認知負荷の増大にあります。\n\nソフトウェア開発における開発手法や技術は年々進化・発展し続けており、クラウドや生成AI、マイクロサービス、APIなどさまざまな技術が広く使われるようになっています。これらの技術活用によって柔軟なソフトウェア開発を実現できますが、その一方で管理すべきツールの種類が増え、かつ多様な技術を身につけなければならないという課題が発生します。\n\nそれにより、開発者は重要な開発作業や取り組み以外に自身のリソースを割く必要があり、それが結果としてチーム全体の生産性低下も招くことになります。\n\nつまり、ソフトウェア開発において効果的に最新技術を取り入れていくためには、開発者が本質的な業務に集中できる環境を構築しなければなりません。\n\n### 2-2. ビジネス環境の激化\n\n先ほども少し触れていますが、近年は[VUCA時代](https://www.nri.com/jp/knowledge/glossary/vuca.html)と呼ばれる将来の予測が難しい不確実な要素が多い時代です。\n\n市場が常に変化する中で社会や消費者にとって必要とされる価値あるソフトウェアを開発して競合と差別化を図るためには、多様な技術を活用したスケーラブルな開発が求められます。\n\nまた、自社の競争力を高めていくためには、アジャイル開発のようなスピード感のある開発手法を積極的に採用していく考えも大切です。\n\n開発者がセルフサービスで利用できるプラットフォームの提供は、柔軟かつ迅速なソフトウェア開発を実現する手段として有効なアプローチだと言えます。\n\n[アジャイル開発とは？意味や進め方、DevSecOpsとの関係性を解説](https://about.gitlab.com/ja-jp/blog/what-is-agile-development/)\n\n### 2-3. IT人材の不足\n\nソフトウェア開発の領域では、慢性的な人手不足が課題となっています。クラウドやAIなど高度な最新技術が次々と登場する一方で、それらを扱える専門知識を持った人材が業界全体で不足しているのです。\n\n実際に「[IT人材需給に関する調査](https://www.meti.go.jp/policy/it_policy/jinzai/houkokusyo.pdf)」を見てみると、2030年には最大で約79万人のIT人材が不足すると予測されています。\n\n![IT人材需給に関する調査](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/zv15e7qpd6cppogiogat.png)\n\n※引用元：[IT人材需給に関する調査](https://www.meti.go.jp/policy/it_policy/jinzai/houkokusyo.pdf)\n\nこのような背景の中で適切にソフトウェア開発を進めていくためには、プラットフォームエンジニアリングの導入を通じて開発者の負担削減や生産性向上を実現し、自社のリソースを上手に活用していく姿勢や工夫が求められると言えます。\n\n## 3. プラットフォームエンジニアリングとDevSecOps・SREとの関係性とは\n\n![プラットフォームエンジニアリングとDevSecOps・SREとの関係性とは](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508140/psg7uvfabu13r50vbwzc.jpg)\n\nプラットフォームエンジニアリングを理解する上では、DevSecOpsやSREとの違いについても把握しておくことが大切です。\n\n### 3-1. DevSecOpsとの違い\n\nDevSecOpsとは、開発（Dev）、セキュリティ（Sec）、運用（Ops）の3つの領域を連携させて開発を進めるアプローチを指します。開発と運用を連携してリリースサイクルを短縮させる従来の「DevOps」の考え方に対して、セキュリティ（Sec）のプロセスも加えることでソフトウェアの安全性を確保しつつ、迅速なリリースが可能になります。\n\n一方、プラットフォームエンジニアリングはDevSecOpのようなワークフローを実現する上で土台となるプラットフォームを社内で整備する取り組みです。\n\nつまり、プラットフォームエンジニアリングとDevSecOpsは親和性が高く、プラットフォームエンジニアリングはDevSecOpsをサポートする役割を担っていると言えます。\n\n### 3-2. SREとの違い\n\nSREとは、「Site Reliability Engineering」の略語で直訳すると、「サイト信頼性エンジニアリング」になります。Google社によって提唱された概念であり、運用プロセスにおいて手間のかかるタスクを自動化してシステムの安定稼働を実現しつつ、新機能の追加や更新などを通してユーザー体験（UX）の向上を目指す取り組みを指します。\n\nプラットフォームエンジニアリングとSREは、いずれも開発と運用における効率性・信頼性向上に関わるものですが、それぞれ目的や焦点が異なります。\n\nプラットフォームエンジニアリングは、社内の開発者の生産性向上や利便性向上を目的としたアプローチであり、SREは主にシステムの信頼性と可用性、スケーラビリティの向上に焦点を当てた考え方になります。\n\n## 4. プラットフォームエンジニアリングの導入目的とメリット\n\n![プラットフォームエンジニアリングの導入目的とメリット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508134/m2jqfbt1sfjpjqh3dbih.jpg)\n\nプラットフォームエンジニアリングの導入目的やメリットは以下の通りです。\n\n* 開発プロセスの効率化  \n* 開発者の生産性向上  \n* プロダクトの品質向上  \n* セキュリティ・ガバナンスの維持と強化  \n* 人材不足の解消  \n* 新しいイノベーションの創出  \n* コスト削減\n\n### 4-1. 開発プロセスの効率化\n\nまずプラットフォームエンジニアリングの導入は、開発プロセスの効率化につなげられます。\n\nIDPにより開発者は開発に必要なリソースを必要な時に素早く取得して利用できるため、環境構築に手間と時間をかけることなく本質的な開発業務に集中することが可能です。\n\nアジャイル開発やDevSecOpsの手法を活用する際に、積極的にプラットフォームエンジニアリングの考え方も採用すれば、プロダクトや機能のリリース頻度・スピードが向上し、自社ビジネスの加速化に貢献できるでしょう。\n\n### 4-2. 開発者の生産性向上\n\nプラットフォームエンジニアリングでIDPを整備することで、チームで再利用可能なツールと機能を開発者に提供できるようになります。この仕組みにより、開発者それぞれで多数のツールを管理・運用する手間がなくなり、認知的負荷の軽減につなげられるでしょう。\n\nその結果、戦略立案や分析、新機能開発などより重要な業務にリソースを割けるようになり、生産性の最大化を図れるでしょう。\n\n### 4-3. プロダクトの品質向上\n\n顧客が満足するプロダクトを提供するためには、品質も担保しなければなりません。IDPに対してテストやレビュー、セキュリティスキャン、デプロイなどを自動化する仕組みを整備すれば、ヒューマンエラーの防止につなげられます。\n\nプラットフォームエンジニアリングの導入でテストやレビューなどを標準化することによって、開発者やプロジェクトごとの品質のバラつきを防止でき、自社で定義されたプラットフォームの基準に沿って開発と運用を進められます。\n\nつまり、プラットフォームエンジニアリングの導入は、開発効率や生産性の向上だけでなく、プロダクト品質や信頼性の向上にも寄与します。\n\n### 4-4. セキュリティ・ガバナンスの維持と強化\n\nプラットフォームエンジニアリングで自社に必要なセキュリティやガバナンスを定義し、それらを自社のプラットフォーム上に反映させて運用することも可能です。\n\n権限設定や監査ログ、セキュリティポリシー、脆弱性対応などをプラットフォーム上で集約して一元化することで管理や証跡の収集が容易になり、組織全体におけるセキュリティ・ガバナンスの維持と強化につなげられるでしょう。\n\nまた、標準化されたプラットフォームの整備によって、開発者の心理的な負担を軽減して安全に開発を進められます。\n\n### 4-5. 人材不足の解消\n\nプラットフォームエンジニアリングの導入は、開発プロセスの効率化や開発者の生産性向上に寄与するため、企業のリソースを最大限に活かしながらソフトウェア開発を進められます。\n\nまた、開発者のニーズにマッチしたプラットフォームを提供して働きやすい環境を構築することで、開発者体験（Developer Experience）の向上も実現できます。その結果、自社に対する開発者や求職者からのイメージも良くなり、優秀なエンジニアの獲得と定着を図れるでしょう。\n\n### 4-6. 新しいイノベーションの創出\n\n近年ソフトウェア開発の効率化や価値向上に役立つさまざまな最新技術が登場しています。しかし、複数の技術やツールを開発者個人で活用するには管理の負担が増えてしまい、実際の活用にはハードルが高いと言えます。\n\nプラットフォームエンジニアリングならさまざまな機能やツールが搭載されたプラットフォームをチームで利用できるため、開発者全員が最新技術に触れやすくなります。それをきっかけとして自社で新しいアイデアやイノベーションが生まれたり、より品質の高いプロダクトをリリースできたりする可能性が高まるでしょう。\n\n### 4-7. コスト削減\n\nプラットフォームエンジニアリングを取り入れることで、ツールや環境の共通化によるコスト削減にもつながります。例えば、ソフトウェア開発のプロセスにおいて複数のツールを活用している企業が、[GitLab](https://about.gitlab.com/ja-jp/)のようなさまざまなツールを単一のプラットフォームで利用できるサービスを導入すれば、ライセンス費用や管理コストの削減につなげられるでしょう。\n\nまた、CI/CDやセキュリティチェックなどをプラットフォーム上で自動化することで運用コストの削減も実現できます。\n\nワークフローの自動化や標準化により開発スピードが向上すれば、限られたリソースを効果的に活用できるため、長期的な人件費の最適化にもつながります。\n\n## 5. プラットフォームエンジニアリングの導入ステップ\n\n![プラットフォームエンジニアリングの導入ステップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/cep3gdqsqca4gb0ckt2w.jpg)\n\nここでは実際にプラットフォームエンジニアリングを導入する際の手順について見ていきましょう。\n\n1. 専門チームの組成  \n2. 開発課題の分析と目標設定  \n3. プラットフォームの構築・組織体制の変更  \n4. フィードバック・継続的なメンテナンス\n\n### 5-1. 専門チームの組成\n\nプラットフォームエンジニアリングを導入する際には、まず専門チームの組成から始めます。専門チームを社内に配置すれば、プラットフォームエンジニアリング導入の取り組みを推進できます。専門チームの主な役割としては以下が挙げられます。\n\n* 開発者のニーズ調査  \n* プラットフォームの設計・構築  \n* 社内でのプラットフォーム活用の浸透の実現  \n* プラットフォームの運用・定期的な改善 など\n\n実際のメンバー構成においては、開発者のさまざまなニーズを考慮したプラットフォームを導入するためにも、開発・運用・セキュリティなど多様なスキルセットを持つ人材や、それぞれの分野を専門とする人材を集めることがポイントです。\n\nまた、社内向けではあるものの、自社での活用を浸透させるためにはプラットフォームを一つのサービスとして捉え、ユーザーニーズを満たすという視点が重要になります。\n\n### 5-2. 開発課題の分析と目標設定\n\nプラットフォームエンジニアリングの専門チーム結成後は、現状の開発課題の把握と分析を実施します。課題の把握や分析においては、エンジニアとの個別面談やサーベイなどを通して行います。\n\nその中で、「複数のツールを管理するための負担がかかり過ぎている」「開発環境の構築から実際のリリースまで時間がかかっており、開発効率が悪い」などの課題が挙げられたなら、それらの課題を解決するためにどのようなプラットフォームを導入すれば良いのかを検討し、具体的な目標を設定します。\n\n例えば、開発者のツール管理の負担が主な課題としてあるなら、単一のプラットフォームで複数のツールや技術を活用できるIDPを整備するという方向性を定められるでしょう。\n\n### 5-3. プラットフォームの構築・組織体制の変更\n\nプラットフォームエンジニアリングの導入における目標や方向性が明確になった後は、実際に基盤となるプラットフォームの構築を行います。\n\n開発プロセスの課題解決につながるような機能やツールを搭載し、さまざまな手法で開発を進められるよう整備していきます。\n\nまた、プラットフォームを構築して実際に活用していく際には、これまでの開発プロセスに変化が生じるため、必要に応じて開発者間での認識の擦り合わせや組織体制の変更を行いましょう。\n\n### 5-4. フィードバック・継続的なメンテナンス\n\nプラットフォームエンジニアリングの基盤構築後は、実際にプラットフォームを運用し開発者に活用してもらいます。その中で開発者からフィードバックや要望があれば、機能追加や改善を柔軟に行っていきます。\n\nソフトウェア開発におけるツールや技術は進化し続けており、トレンドも常に移り変わるため、最新情報のキャッチアップや定期的なメンテナンスがプラットフォームエンジニアリングを成功させるための鍵となります。\n\n## 6. プラットフォームエンジニアリングの導入における注意点\n\n![プラットフォームエンジニアリングの導入における注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/ew7szhpm1mnheubghlnk.jpg)\n\nプラットフォームエンジニアリングの導入においては以下のような注意点もあります。\n\n* プラットフォーム構築を目的としない  \n* 導入に効果が期待できるか見極める  \n* トップダウンでの導入は避ける  \n* 段階的に導入して小さく始める\n\n### 6-1. プラットフォーム構築を目的としない\n\nまずプラットフォームエンジニアリングの導入において、プラットフォーム構築そのものを目的として進めてしまうと失敗してしまう可能性が高まります。\n\n例えば、「最新技術だから」「高機能だから」というような考えだけで導入してしまうと、開発者ニーズにマッチしないプラットフォームを構築してしまうことになります。そうなると、社内での活用も浸透せず、誰にも使われないという結果を招いてしまうでしょう。\n\nそのため、開発者への調査を徹底して行い、どんな課題を解決したいのかを明確にした上でプラットフォームを構築する必要があります。\n\n### 6-2. 導入に効果が期待できるか見極める\n\nプラットフォームエンジニアリングの導入そのものが、実際に自社にとって効果が期待できるのかも見極めなければなりません。\n\n例えば、エンタープライズや中規模など大きめ組織で、かつ必要な人材が揃っているなら、専門チームの組成もスムーズに進み、実際のプラットフォーム構築によって開発の効率化やコスト削減などの効果が期待できる可能性が高いと言えます。\n\n一方、小規模な組織の場合で、かつ人手が足りない場合プラットフォーム構築や運用そのものに大きな負担がかかってしまい、逆効果になる可能性もあります。\n\nそのため、「プラットフォームエンジニアリングの導入や運用が自社で可能なのか」「実際にどのような効果が期待できるのか」をきちんと検討することが大切です。\n\n### 6-3. トップダウンでの導入は避ける\n\nプラットフォームエンジニアリングは開発者向けのアプローチであり、開発者がプラットフォームを問題なくセルフサービスで利用できるという要素が重要になります。\n\nそのため、トップダウンで現場の課題や開発者のニーズを無視して導入を進めてしまうと、新しいやり方に対して開発者から抵抗や反発を受ける可能性があります。\n\nスムーズな導入を実現するためには、経営層と開発者で双方向コミュニケーションをとり、開発者に選択の余地とアイデアを積極的に発信できる場を与える必要があります。\n\n### 6-4. 段階的に導入して小さく始める\n\n最初から全ての要件を満たした完璧なプラットフォームを構築して、運用しようとすると開発者が変化に対応しきれない可能性があります。また、時間をかけてプラットフォームを構築しているとトレンドに乗り遅れ、完成後には搭載した技術やツールが既に古いものになってしまっていたというケースも考えられます。\n\nそのため、まずは優先度の高い課題にフォーカスして、効果が期待できる機能から実装し段階的に運用するなど、アジャイル的な進め方がプラットフォームエンジニアリングの導入に求められると言えます。\n\n## 7. プラットフォームエンジニアリングの基盤構築に役立つツール・サービスの選び方\n\n![プラットフォームエンジニアリングの基盤構築に役立つツール・サービスの選び方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508136/bdq3zpkcrz1ez00md2yr.jpg)\n\nプラットフォームエンジニアリングの導入においては、基盤構築に役立つサービスを積極的に活用すると効率的です。ここでは具体的な選び方を解説します。\n\n* 機能  \n* コスト  \n* サポート体制\n\n### 7-1. 機能\n\nプラットフォームエンジニアリングの導入を成功させるためには、開発者のニーズを満たし、かつ自社の課題を解決できる機能が搭載されたサービスを選ぶことが大切です。\n\n例えば、プラットフォームを構成する重要な要素として挙げられる機能は以下の通りです。\n\n* CI/CD（自動ビルド・テスト・デプロイ）  \n* ソースコード管理  \n* ドキュメント  \n* モニタリング  \n* API連携  \n* セキュリティ・ガバナンス など\n\nこのような機能が搭載されているサービスなら、開発者の生産性向上に貢献できるでしょう。\n\n### 7-2. コスト\n\nプラットフォームエンジニアリングの基盤構築となるサービスを選定する際には、コスト面も考慮することが大切です。\n\n組織の規模や導入形態などによってもコストが異なるため、ベンダーに問い合わせするなどして費用対効果が期待できるかしっかりチェックしておきましょう。\n\n無料トライアルを設けているサービスも多いため、まずは使用感を試してみてから導入を検討するのも良いでしょう。\n\n### 7-3. サポート体制\n\nプラットフォームエンジニアリングをスムーズに導入・運用していくためには、ツールやサービスを提供するベンダーのサポート体制をチェックしておく必要もあります。\n\n充実したサポート体制があれば、万が一トラブルや不明点が発生した場合でも、専任スタッフが迅速に対応してくれるでしょう。また、ベンダーがドキュメントやマニュアルなどを通して積極的にノウハウを公開していれば、トラブル時にも自社で解決しやすくなるでしょう。\n\n## 8. プラットフォームエンジニアリングの基盤構築なら「GitLab」\n\n![プラットフォームエンジニアリングの基盤構築なら「GitLab」](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508135/hy8mmygwnbm0ws0ejtik.png)\n\nプラットフォームエンジニアリングの基盤構築をスムーズに実現するなら「[GitLab](https://about.gitlab.com/ja-jp/)」の活用がおすすめです。ここでは、GitLabのサービス概要や強みについて紹介します。\n\n### 8-1. GitLabとは\n\nGitLabは、DevSecOpsワークフローを支援するAIを搭載したプラットフォームです。AIによるソースコード管理やセキュリティ対策、CI/CD、コンプライアンス管理など豊富な機能を単一のプラットフォームで活用でき、プラットフォームエンジニアリングの基盤構築に役立てられます。\n\n中小企業からエンタープライズまで多くの企業で導入されているプラットフォームで、高品質かつ迅速なソフトウェア開発を実現できます。\n\n### 8-2. GitLabが選ばれる理由\n\nGitLabの強みは、DevSecOpsツールチェーンの構築を単一のプラットフォームで実現できることです。これまで複数のツールを管理していた企業がGitLabを導入すれば、コスト削減や開発者の認知負荷の軽減につなげられ、プラットフォームエンジニアリングの運用をスムーズに行えるようになります。\n\nチーム全員で単一のプラットフォームを通して作業することで、メンバー間の連携や情報共有も容易に実施できます。また、サポート体制も充実しているため、導入と運用においても安心して進められるのも強みの一つです。\n\nGitLabを通してプラットフォームエンジニアリングを実現すれば、ソフトウェア開発のライフサイクル全体を効率化でき、競合との差別化につながる機能開発など本質的な作業に集中できるようになるでしょう。\n\n## 9. GitLabによるプラットフォームエンジニアリング実現のアプローチと活用例\n\n![GitLabによるプラットフォームエンジニアリング実現のアプローチと活用例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758508136/gn4zixnirbsgrk1anwi8.jpg)\n\n実際にGitLabによるプラットフォームエンジニアリング実現のアプローチと活用例を紹介します。\n\n* 再利用可能なCI/CDコンポーネント  \n* セキュリティとコンプライアンス  \n* データ活用と分析  \n* コミュニケーションの効率化\n\n### 9-1. 再利用可能なCI/CDコンポーネント\n\nCI/CDコンポーネントは、再利用可能な単一のパイプライン構成ユニットのことで、この機能を使用すればCI/CDパイプラインの設定が容易になります。\n\nまた、再利用可能なCI/CDコンポーネントをリスト化して、各コンポーネントの情報を確認できる「[CI/CDカタログ](https://gitlab.com/explore/catalog)」も提供しています。コンポーネントが一元管理されているため、必要なものを必要な時に見つけ出して再利用できる仕様となっています。\n\nこれにより、開発者の作業効率向上や、組織全体でのスムーズなナレッジ共有を実現できるでしょう。\n\nCI/CDコンポーネントの詳細については以下のページをご覧下さい。\n\n[GitLab入門：CI/CDについて理解する](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-understanding-ci-cd/)\n\n### 9-2. セキュリティとコンプライアンス\n\nGitLabでは、ソフトウェア開発ライフサイクルの全てのステージに対応したセキュリティやコンプライアンス機能を搭載しています。\n\n開発を進める中で、セキュリティリスクなどの問題を早期に発見して対応できるため、トラブル発生時の対応コストを抑えたり、事態の深刻化を未然に防止したりすることが可能です。\n\n### 9-3. データ活用と分析\n\nGitLabでは、データ活用と分析による開発の効率性向上も実現できます。プロジェクトの運用状況などソフトウェア開発ライフサイクルにおけるさまざまなデータが一元管理されている仕組みとなっているため、関係者全員がスムーズに必要な情報にアクセスできます。\n\nまた、 プラットフォームに蓄積された主要なメトリクスを追跡して問題点を詳細に分析することで、迅速な改善や顧客価値の向上につなげられます。GitLabでは、DevOpsのパフォーマンスや健全性を示す[DORAメトリクス](https://docs.gitlab.com/user/analytics/dora_metrics/)の可視化・分析機能などを提供しています。\n\n### 9-4. コミュニケーションの効率化\n\nGitLabは統合型プラットフォームであり、全員が同じツールにアクセスして利用できるようになるため、開発者間でのコミュニケーションが効率化されます。\n\n誰もがアクセスしやすい共同ドキュメントの作成も可能であるため、別のツールに切り替えて作業する必要がなく、情報の共有や整理が容易になります。\n\nなお、プラットフォームエンジニアリングにおけるGitLab活用の詳細については以下のページをご覧下さい。\n\n> [プラットフォームエンジニアリングにおけるGitLabの活用](https://about.gitlab.com/ja-jp/solutions/platform-engineering/)\n\n[](https://about.gitlab.com/ja-jp/solutions/platform-engineering/)\n\n## まとめ： プラットフォームエンジニアリングの実現により開発品質の向上と効率化を図ろう\n\nプラットフォームエンジニアリングの導入は、ビジネス環境が激化している時代において重要視されているアプローチです。実際の導入においては、適切な専門チームの組成やツール・サービスの選定が大切なポイントとなってきます。\n\nプラットフォームエンジニアリングの基盤構築なら、ぜひ[GitLab](https://about.gitlab.com/ja-jp/)をご活用下さい。GitLabなら単一のプラットフォームで豊富な機能を利用できるため、開発者の認知負荷を軽減し、迅速かつ品質の高いソフトウェア開発を実現できます。\n\nなお、GitLabでは世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧下さい。\n\n> [2024グローバルDevSecOpsレポートはこちら](https://about.gitlab.com/ja-jp/developer-survey/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-platform-engineering)\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)*\n\n*（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*","2025-09-22",[938],"この記事では、プラットフォームエンジニアリングの意味や特徴、導入メリットなどを解説します。",[108,768,1507,769,9,860,678,771],{"featured":6,"template":681,"slug":1604},"what-is-platform-engineering","content:ja-jp:blog:what-is-platform-engineering.yml","What Is Platform Engineering","ja-jp/blog/what-is-platform-engineering.yml","ja-jp/blog/what-is-platform-engineering",{"_path":1610,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1611,"content":1616,"config":1622,"_id":1624,"_type":13,"title":1625,"_source":15,"_file":1626,"_stem":1627,"_extension":18},"/ja-jp/blog/what-is-roadmap",{"config":1612,"title":1613,"description":1614,"ogImage":1615},{"noIndex":6},"ロードマップとは？意味やソフトウェア開発における必要性、作り方","この記事では、ソフトウェア開発におけるロードマップの必要性やメリット、作成方法を解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1758787930/roadmap_hero_e8ngpm.jpg",{"heroImage":1615,"body":1617,"authors":1618,"updatedDate":1619,"date":1620,"title":1613,"tags":1621,"description":1614,"category":812},"ソフトウェア開発のプロジェクト管理を適切に行うためには、ロードマップの作成と活用が大切です。実際にロードマップを作成しようとしているものの、具体的な作り方を理解していない人もいるのではないでしょうか。\n\nこの記事では、ソフトウェア開発におけるロードマップの必要性やメリット、作成方法を解説します。ロードマップの作成に役立つおすすめのツールも紹介するので、ぜひ参考にして下さい。\n\n## 1. ロードマップとは？\n\n![ロードマップとは？](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image3_fqxc8r.jpg)\n\nロードマップとは、プロジェクトや事業戦略において設定した目標やゴールまでの道筋を、時系列で視覚化した工程表のことです。より簡潔に説明すると、目標達成のために「いつまでに具体的に何をするのか？」という情報を表でまとめて関係者全員に共有する形で活用します。\n\nロードマップはビジネスやIT領域において重要な役割を持っており、積極的に活用することで関係者間での連携や課題把握が容易になるため、効率的にプロジェクトを進められます。\n\n## 2. ロードマップの主な種類\n\n![ロードマップの主な種類](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image2_xzzxjl.jpg)\n\nロードマップは大まかに以下の2つの種類に分けられます。ここでは、それぞれの特徴について解説します。\n\n* プロジェクトロードマップ  \n* プロダクトロードマップ\n\n### 2-1. プロジェクトロードマップ\n\nプロジェクトロードマップは、プロジェクトを円滑に進めるために全体像を管理する目的で活用されるロードマップです。具体的には、プロジェクトの目標や実施するタスクの内容などを記載して作成します。\n\nロードマップの基本的なフォーマットであり、多くの場合ロードマップと呼ぶ場合は、このプロジェクトロードマップのことを指しているという認識で問題ないでしょう。\n\n### 2-2. プロダクトロードマップ\n\nプロダクトロードマップとは、特定の製品やサービスに関する目標や戦略、スケジュール計画などが記載されたロードマップのことを指します。具体的にどのようなプロダクトを開発するのかといった方向性や搭載すべき機能、リリース予定日などを整理して活用します。プロダクトロードマップは、製品開発に関係する人間だけでなく、マーケティング部門などにも共有されるツールです。\n\nプロジェクトロードマップは、プロジェクト全体の管理に活用されるのに対して、プロダクトロードマップは製品開発に焦点を絞ったロードマップであるという違いを理解しておくと良いでしょう。\n\n## 3. ロードマップとマイルストーンとの違い\n\n![ロードマップとマイルストーンとの違い](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image5_pozefp.jpg)\n\nロードマップを正しく理解するためには、マイルストーンとの違いも把握しておくことが大切です。マイルストーンとは、プロジェクトにおける重要な中間目標や通過点、イベントを指します。\n\n例えば、ソフトウェア開発においては実装やテスト完了などのタイミングでマイルストーンが設置されます。\n\n対してロードマップはプロジェクトの全体の計画を示すものになります。ロードマップの中にマイルストーンを設置することで、目標に対して作業が順調に進んでいるかどうかをより把握しやすくなります。特にプロジェクト期間が長期に及ぶ場合は進捗把握が難しくなるため、適切なフェーズでマイルストーンを設置しておくことが大切です。\n\n## 4 ロードマップとガントチャートの違いと併用可否について\n\n![ロードマップとガントチャートの違いと併用可否](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image4_rs35we.jpg)\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)とは、プロジェクトにおける細かなタスクや期日を管理して、日々の進捗を確認するためのツールです。一方、ロードマップは、プロジェクトの全体の計画を示すものであり、日々の細かなタスク管理には向いていません。\n\nしかし、ロードマップを作成する際に[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)の要素を取り入れる、つまり[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)をロードマップのフォーマットとして活用することで全体の計画だけでなく、日々の細かなタスク管理もできるようになるため、より綿密に計画を進められるでしょう。\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)については以下の記事で詳しく解説しているので、ぜひあわせてご覧下さい。\n\n[ガントチャートとは？ソフトウェア開発における役割やメリット、作り方](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)\n\n## 5. ソフトウェア開発におけるロードマップの必要性・目的\n\n![ソフトウェア開発におけるロードマップの必要性・目的](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image7_h49pwa.jpg)\n\nソフトウェア開発においては、プロジェクト完了までに要件定義や基本設計、開発、テストなどさまざまな工程を踏む必要があり、開発エンジニアだけなく顧客など、プロジェクトに関与する人間もさまざまです。\n\n問題なくプロダクトをリリース・納品するためには関係者全員で計画を共有し、同じ方向を向いてプロジェクトを進めなければなりません。\n\nロードマップを作成すれば一目で全体の計画を把握できるため、関係者間での情報共有が容易になり、スムーズにプロジェクトを進められます。また、急なトラブルが発生した場合でも事前に計画を立てておけば柔軟に対応することができるため、ロードマップはソフトウェア開発の領域において重要なツールのひとつだと言えます。\n\n## 6. ソフトウェア開発においてロードマップがもたらすメリットと効果\n\n![ソフトウェア開発においてロードマップがもたらすメリットと効果](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857320/roadmap_image6_tbg4pa.jpg)\n\nここでは、ソフトウェア開発においてロードマップがもたらす具体的なメリットと効果について解説します。\n\n* プロジェクト全体を可視化できる  \n* チーム間の共通認識が生まれる  \n* 進捗や課題を把握しやすくなる  \n* 開発関係者のモチベーションの維持につながる\n\n### 6-1. プロジェクト全体を可視化できる\n\nロードマップならプロジェクト全体を可視化できるため、進むべき道のりや目標が明確になり、無駄のないスムーズなスケジュール進行ができます。「◯月◯日までにクライアントにシステムを納品する」というように具体的な期限も設定されるため、それに向けた優先順位や行動計画が立てやすくなり、効率よく開発を進められるでしょう。\n\nまた、ロードマップでプロジェクトの全体を可視化しておくことで、遅延やリソース不足などのリスクが発生する可能性があるフェーズを事前に予測できるため、必要な対策を早期に検討することも可能です。\n\n### 6-2. チーム間の共通認識が生まれる\n\nロードマップを作成すれば、関係者間での情報共有が容易になります。プロジェクトを進行する上で関係者間で認識の違いがあると、失敗を招く場合があります。例えば、本来必要のない作業が計画に含まれていると、納期遅延が発生してしまうでしょう。\n\nロードマップを作成して事前に必要な情報を開発チームや顧客との間で共有しておけば、全員が共通の認識のもとでプロジェクトを進行できるため、方向性がズレることなくタスクを着実に進められるでしょう。また、開発メンバーそれぞれが目標達成のために何をすべきか自分の役割を把握できるでしょう。\n\n### 6-3. 進捗や課題を把握しやすくなる\n\nロードマップによって全体のスケジュール計画を示すことで、プロジェクトの進捗管理もしやすくなります。明確な目標があれば、「現状目標に向かってどのくらい作業が進んでいるか」という達成度合いを把握できるため、その中で課題があれば必要に応じて計画を修正したりなどの対応が可能になります。\n\n[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)風に作成すれば、より細かなタスクの進捗を把握できるため、プロジェクトの遅延防止につながります。\n\n### 6-4. 開発関係者のモチベーションの維持につながる\n\nロードマップによって明確な最終目標やマイルストーンが設定されることで、開発メンバーのモチベーション維持や向上にもつなげられます。\n\nロードマップがない場合、どの方向に向かって何をすべきかが不明瞭であるため、必要のないタスクが発生したりなどのトラブルが生まれる可能性が高まります。その結果、メンバーのモチベーションが低下してしまい、プロジェクト進行に悪影響を及ぼしてしまうでしょう。\n\nロードマップを活用すればメンバー間の認識のズレも防止でき、互いに情報共有しながら協力的にプロジェクトを進められます。\n\n## 7. ロードマップの作成ステップ\n\n![ロードマップの作成ステップ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857325/roadmap_image9_oozjy9.jpg)\n\nここでは、実際のロードマップの作成方法について解説します。\n\n1. 目標設定  \n2. 現状把握  \n3. リスク対策  \n4. マイルストーンの設定  \n5. スケジュール計画表の作成  \n6. 関係者への共有と改善\n\n### 7-1. 目標設定\n\nまずは目標設定を行い、プロジェクトとして進むべき方向性を明確化します。目標設定においては、関係者全員が理解できるよう具体性を持たせることが大切です。また、目標達成のハードルが高い場合、メンバーのモチベーション低下を招いてしまう原因にもなるため、実現可能な目標を設定しましょう。\n\n例えば、ソフトウェア開発において顧客にプロダクトを納品するなら、具体的な納品日を目標として設定すると良いでしょう。\n\n### 7-2. 現状把握\n\n目標設定が完了したら、現状抱えている課題を洗い出します。例えば、顧客にプロダクトを予定通り納品するに当たり、「開発リソースは足りているか？」「メンバー構成に問題はないか？」などの現状の状態をチェックしていきます。開発メンバーや顧客に対してもヒアリングを行い、プロジェクト開始前に懸念点がないか確認しておくと良いでしょう。\n\n現状課題があるのにもかかわらずプロジェクトが開始されると、進行中にトラブルが発生してしまう可能性が高くなるため、現状把握を徹底して行い事前に課題を解消しておきましょう。\n\n### 7-3. リスク対策\n\nプロジェクト開始前には進行中に想定されるリスクについても洗い出し、必要な対策を検討しておく必要があります。例えば、市場の変化や顧客の要望により急な仕様変更が発生したり、タスクの依存関係からスケジュールに影響が出たりする可能性もあります。\n\nそういったリスクが実際に起こった時にどのような対策を講じるのかを事前に検討しておくことで柔軟かつ迅速に対応できるため、プロジェクト進行における安定性を高められるでしょう。\n\n### 7-4. マイルストーンの設定\n\nマイルストーンは先ほど説明した通り、プロジェクトにおける中間目標を指します。最終的な目標だけでなく、中間目標であるマイルストーンを設定することで進捗管理がしやすくなります。また、長期に及ぶプロジェクトであっても、中間目標があることで着実に作業が進んでいることを実感できるため、メンバーのモチベーションも保ちやすくなるでしょう。\n\nなお、マイルストーンを設定する際にも実現可能かどうかという視点を持って検討することが大切です。\n\n### 7-5. スケジュール計画表の作成\n\n最終目標やマイルストーンなどの情報を実際にスケジュールに組み込んでいきます。スケジュールを作成する際には、[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)や計画表、フローチャートなどのフォーマットを利用します。\n\nソフトウェア開発ならタスクの細かな期日や依存関係を把握できる[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)の利用がおすすめです。[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)を作成する際にはWBS（Work Breakdown Structure）についても理解しておく必要があります。\n\nWBSとは、プロジェクトを達成するためにどのようなタスクが必要なのかを整理したリストを指します。WBSによって細分化されたタスクを利用して[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)を作成するため、両者は密接な関係にあります。\n\n### 7-6. 関係者への共有と改善\n\nロードマップが無事完成したらプロジェクトにおける関係者全員に共有します。その際、開発メンバーや顧客から計画や内容の修正案が出た場合は、必要に応じてブラッシュアップします。\n\nまた、プロジェクトは関係者全員が同じ認識を持って進めなければならないため、丁寧に擦り合わせを行いメンバーの意見をきちんと反映する意識を持つことが大切です。\n\n## 8. ロードマップ作成時の注意点\n\n![ロードマップ作成時の注意点](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857324/roadmap_image8_djpztu.jpg)\n\nロードマップは以下のようなポイントを意識して作成しましょう。\n\n* 見やすさを意識して作成する  \n* 計画の実現性を意識する  \n* 定期的な見直しを実施する\n\n### 8-1. 見やすさを意識して作成する\n\nロードマップは関係者全員に共有するものであるため、誰もが見やすいように視認性の高さを意識することが大切です。\n\n例えば、レイアウトを工夫したり、重要なマイルストーンにはアイコンを適宜活用したりすると良いでしょう。\n\nロードマップに情報を詰め込み過ぎるとかえって見づらくなり、重要なポイントを見逃してしまう可能性もあるため記載する情報を絞ってから作成しましょう。\n\n### 8-2. 計画の実現性を意識する\n\nロードマップを作成する際には、設定した目標や計画が実際に実現可能なのかも精査しなければなりません。\n\n例えば、ソフトウェア開発なら設定した納期は現実的であるか？現状のエンジニアのスキルや人数でタスクを完了させられるのか？などの実現性を細かにチェックします。\n\nまた、計画を立てる際に開発メンバーや顧客の要望に答え過ぎると全体の方向性がブレたり、実現不可能な計画になってしまったりする可能性があるため注意が必要です。関係者の声はきちんと拾い上げつつも、その情報を実際に計画に反映するかどうかはきちんと検討しなければなりません。\n\n### 8-3. 定期的な見直しを実施する\n\nロードマップは一度作成して終わりではなく、定期的な見直しが必要です。例えば、アジャイル開発ならスプリント終了時に現状把握と必要に応じてロードマップの修正を行います。\n\nまた、プロジェクト進行中にリソース不足から作業の遅延が発生したり、情勢の変化によって新たなニーズが生まれたりした場合なども、変化に合わせて柔軟に更新する必要があります。\n\n## 9. ロードマップの作成手段\n\n![ロードマップの作成手段](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857640/roadmap_image12_ec6abk.jpg)\n\nロードマップを作成する手段としては、エクセルやパワーポイント、専用ツールが挙げられます。ここでは、それぞれの特徴について解説します。\n\n### 9-1. エクセル・パワーポイント\n\nエクセル・パワーポイントはロードマップの作成に使用することができます。エクセルやパワーポイントはビジネスで日常的に使用されるツールでもあるため、使い慣れていれば手軽にロードマップを作成できるでしょう。また、自社で既にMicrosoft Officeを導入しているのであれば、ツール導入の手間を省略できます。\n\nエクセルならセル・列の自由編集、グラフやチャートの挿入、条件付き書式などを活用して自社のプロジェクトに応じて自由にカスタマイズすることが可能です。\n\nパワーポイントなら図形を使ってより視覚的にロードマップを表現できるため、関係者にわかりやすい形で計画を共有したい場合に役立つでしょう。\n\n### 9-2. 専用ツール\n\nロードマップにおいては、専用のプロジェクト管理ツールなどを活用して作成することも可能です。専用ツールならマイルストーン機能やタスクの依存関係の設定など、豊富な機能が搭載されているため、視認性の高いロードマップを作成できるでしょう。関係者全員がツールにアクセスすれば情報共有もスムーズに行えるため、認識のズレの防止にもつながります。\n\nまた、直感的に作成できるツールであれば専門知識も不要でロードマップ作成に慣れていない人でも簡単に作成することが可能です。プロジェクト管理ツールの導入においてはコストが発生しますが、ロードマップ作成や共有を効率化できることを考えると高い費用対効果が期待できるでしょう。\n\nプロジェクト管理ツールの選び方については次で詳しく解説します。\n\n## 10. プロジェクト管理ツール・サービスの選び方\n\n![プロジェクト管理ツール・サービスの選び方](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857369/roadmap_image10_ysdufn.jpg)\n\nプロジェクト管理ツール・サービスを選ぶ際には以下の観点を意識しましょう。\n\n* 機能  \n* 操作性  \n* 価格  \n* サポート体制\n\n### 10-1. 機能\n\nプロジェクト管理ツールを選ぶ際には、まず目的に応じて自社がほしい機能を洗い出しましょう。例えば、目的別の機能を整理すると以下のようになります。\n\n| 機能            | 目的                                           |\n| ------------- | -------------------------------------------- |\n| 情報共有機能 チャット機能 | ・コミュニケーションや情報共有を円滑に行いたい ・一つのプラットフォームで情報共有したい |\n| マイルストーン       | ・目標管理を適切に行いたい ・プロジェクトの進捗状況を把握したい             |\n| タスク管理機能       | ・タスクを可視化したい ・大量のタスクを整理したい                    |\n| 工数管理機能        | ・タスクの依存関係を整理したい ・タスクの細かな進捗を管理したい             |\n\n自社の目的に応じた機能が搭載されたツールを選ぶことで、スムーズな運用につながるでしょう。\n\n### 10-2. 操作性\n\nプロジェクト管理ツールを導入する際には、操作性もチェックしておきましょう。直感的に操作できる誰でも扱いやすいツールであれば、プロジェクトマネージャーだけでなく、エンジニアにとってもストレスなく利用できるでしょう。\n\nまた、実際の操作において学習コストがかかってしまうと、それだけロードマップ作成にも時間がかかってしまうことになるため、手軽に作成できるようなツールを選ぶことが大切です。無料トライアルを提供しているツールであれば事前に使用感もチェックできます。\n\n### 10-3. 価格\n\nプロジェクト管理ツールの導入においては、自社の予算を考慮してコスト面も確認しておくことが大切です。プロジェクト管理ツールにはクラウド型とオンプレミス型の導入形態があり、それぞれコスト感が異なります。\n\nクラウド型はインターネット経由でサービスを利用する形態のことで、自社でサーバーの設置などが不要であるため初期費用を抑えられます。一方、オンプレミス型は自社でサーバーなどのITインフラを用意して導入する形態です。オンプレミスの場合はクラウド型と比較して初期費用が高くなる傾向があります。\n\nまた、自社が求める機能や利用人数などプランに応じて料金が異なるため、あわせてチェックしておきましょう。\n\n### 10-4. サポート体制\n\nプロジェクト管理ツールをスムーズに導入・運用するためにも、サポート体制が充実しているかどうかも確認しておきましょう。\n\nサポート体制やドキュメントが充実しているツールであれば、トラブルや不明点が発生した場合でも問題なく解決できるでしょう。\n\nサポート窓口への連絡方法や営業時間、応答までの時間などを事前に確認しておくことで不安のない導入を実現できます。\n\n## 11. ロードマップの作成・活用なら「GitLab」がおすすめ\n\n![ロードマップの作成・活用なら「GitLab」がおすすめ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758857639/roadmap_image11_gwcqt7.png)\n\nソフトウェア開発におけるロードマップの作成・活用なら「[GitLab](https://about.gitlab.com/ja-jp/)」がおすすめです。ここでは、GitLabの特徴やロードマップ機能について紹介します。\n\n### 11-1. GitLabとは\n\nGitLabは、AIを搭載した[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)プラットフォームです。計画から開発、セキュリティ、運用までソフトウェア開発のライフサイクル全体を効率化する単一のプラットフォームで、高品質なソフトウェア開発を実現できます。\n\n[CI/CD](https://about.gitlab.com/ja-jp/blog/how-to-keep-up-with-ci-cd-best-practices/)パイプラインの構築や実施も容易に行えるため、ビルドやデプロイの自動化も可能です。近年ビジネス環境の変化が激化しており、開発・セキュリティ・運用の3つの要素を統合した「DevSecOps」のアプローチに注目が集まっている中で、GitLabは中小企業からエンタープライズまで世界中の多くの企業で導入されているプラットフォームです。\n\n### 11-2. GitLabのロードマップ機能の特徴\n\nGitLabではソフトウェア開発における[プロジェクト管理](https://about.gitlab.com/ja-jp/blog/getting-started-with-gitlab-mastering-project-management/)にも適しています。ロードマップ機能では、エピック（プロジェクトの大枠や目標）とマイルストーンをタイムライン形式（[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)風）で視覚的に表示することが可能であるため、最終的な目標を意識しつつマイルストーン達成に向けた進捗を把握できます。\n\nまた、イシュー（タスク）の整理やタスク同士の依存関係の設定、担当者の振り分け、作業時間の測定も行えるため、タスクの見落としの防止や潜在的な障害の回避にもつなげられます。\n\nその他にもスプリントを設定できる機能もあるため、[アジャイル開発](https://about.gitlab.com/ja-jp/blog/what-is-agile-development/)を計画的に進めたいシーンでもGitLabを活用できます。\n\n## 12. ロードマップ作成に関するよくある質問\n\n最後にロードマップ作成に関するよくある質問とその回答を紹介します。\n\n### 12-1. 作成手段は専用ツールとエクセルどちらが良い？\n\nエクセルの場合は操作に慣れていれば手軽に作成できるメリットはありますが、リアルタイムでの情報共有が難しいというデメリットもあります。例えば、何らかの要因によりスケジュールに変更があり、ロードマップを更新した際にはクラウドサービスなどの媒体を使って共有しなければならず手間がかかります。\n\n一方、[GitLab](https://about.gitlab.com/ja-jp/)のような専用のツールなら単一のプラットフォームでロードマップの作成から更新、共有までが可能になるため、正確かつ迅速な情報共有が可能になります。また、プロジェクト管理に役立つさまざまな機能が搭載されており、包括的なサポートを受けられるという観点から考えても専用ツールの導入はプロジェクト開発を円滑に進める上で効果的な手段であると言えます。\n\n### 12-2. 開発においてロードマップには誰が関与する必要がある？\n\nロードマップにおいては、プロジェクトマネージャーやリーダー、開発エンジニア、経営層、顧客などを含めて関係者全員が関与しなければなりません。ロードマップを通して目標やマイルストーンなど必要な情報を全員が把握しておくことで、無駄のないスケジュール進行が可能になり、プロジェクトを成功に導けるでしょう。繰り返しにはなりますが、ロードマップを関係者全体に対して正確に共有するには、専用ツールの導入がおすすめです。\n\n### 12-3. ロードマップの作成が失敗する原因は？\n\nロードマップの作成や活用が失敗してしまう主な原因は以下の通りです。\n\n* プロジェクトマネージャーだけで作成して関係者間で入念な擦り合わせができていない  \n* エクセルで作成しており、更新の際に情報共有に時間がかかっている  \n* 定期的な確認や見直しができておらず、ロードマップ自体が機能しなくなっている  \n* 盛り込む情報が多く、メンバーがわかりづらい など\n\n上記のようなことがあるとロードマップを作成しても有効活用できないため、関係者間での入念な擦り合わせや専用ツールの積極的な活用、定期的なアップデートなどを行うことが大切です。\n\n## まとめ ロードマップはソフトウェア開発に必須！専用ツールの活用で効率よく作成しよう\n\nソフトウェア開発におけるプロジェクトを成功させるためには、ロードマップの作成は必須です。ロードマップ作成においては、[ガントチャート](https://about.gitlab.com/ja-jp/blog/what-is-gantt-chart)の要素を取り入れることで、より綿密なプロジェクト管理を実現できるでしょう。\n\nAIを搭載したDevSecOpsプラットフォーム「[GitLab](https://about.gitlab.com/ja-jp/)」なら、プロジェクト管理やロードマップ作成に役立つ豊富な機能を搭載しています。自社のソフトウェア開発におけるプロジェクト管理を適切に行うなら、ぜひGitLabの導入をご検討下さい。\n\nなお、GitLabでは世界39か国、5,000人を超えるDevSecOps専門家のインサイトが詰まった完全版レポートを無料で公開しているので、ぜひこちらもご覧下さい。\n\n[2024グローバルDevSecOpsレポートはこちら](https://about.gitlab.com/ja-jp/developer-survey/?utm_medium=blog&utm_source=blog&utm_campaign=eg_apac_brand_x_x_ja_gitlabjapanblogseo_what-is-roadmap)",[938],"2025-09-26","2025-09-25",[768,9,678,771],{"featured":6,"template":681,"slug":1623},"what-is-roadmap","content:ja-jp:blog:what-is-roadmap.yml","What Is Roadmap","ja-jp/blog/what-is-roadmap.yml","ja-jp/blog/what-is-roadmap",{"_path":1629,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1630,"content":1634,"config":1642,"_id":1644,"_type":13,"title":1645,"_source":15,"_file":1646,"_stem":1647,"_extension":18},"/ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops",{"config":1631,"title":1632,"description":1633},{"noIndex":6},"DevSecOpsにおける企業の独立性がこれまで以上に重要な理由","開発インフラを誰がコントロールしているのか、リーダーたちが疑問を持つ中、GitLabの独立性と透明性の優位性はかつてないほど注目されています。",{"heroImage":1635,"body":1636,"authors":1637,"updatedDate":1485,"date":1639,"title":1632,"tags":1640,"description":1633,"category":679},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","10年以上にわたり、GitLabは透明性、独立性、そしてデベロッパーファーストの姿勢を大切にしてきました。業界が進化する今日、これらの価値はこれまで以上に重要になっています。「開発インフラを最終的に管理するのは誰なのか？」「AIシステムでコードがどのように使用されているのか？」「ベンダーの優先事項が重要な要件から離れた場合はどうなるのか？」企業のリーダーたちはこのような重要な疑問を投げかけています。\n\n先月、[GitLab 18.3のリリースを発表](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)しました。これは、AIネイティブなDevSecOpsプラットフォームの最新版です。GitLab Duo Agent Platformの一部であるエージェントインサイトは、エージェントの意思決定プロセスを可視化します。AIモデルサポートの拡張により、ベンダーロックインを回避できます。強化されたガバナンス管理により、複数の管轄区域にわたるコンプライアンスの実現を支援します。\n\nこれらは単なる機能ではありません。GitLabを定義する透明性、独立性、デベロッパーファーストのアプローチの実証なのです。この戦略が実際にどう機能するかをご紹介します。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1115249475?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=\"Who is GitLab_Robin_090225_FINAL\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## DevSecOpsライフサイクル全体でのAI透明性\n\n**GitLabでは、10年間にわたる透明性への取り組みが、これらの懸念に直接対処しています。** 人工知能が開発ワークフローにますます統合される中、組織は自社のコードとデータがAI学習にどのように使用されているかを当然懸念しています。\n\n2024年4月に開始されたGitLab [AI Transparency Center](https://about.gitlab.com/ja-jp/ai-transparency-center/)は、データガバナンスの実践、プライバシー保護、倫理的AI原則について明確な文書を提供しています。データ使用ポリシーが不明確なAI機能を運用する可能性のあるプラットフォームとは異なり、GitLabは透明性を優先し、お客様が[自分たちのデータがどのように処理](https://docs.gitlab.com/user/gitlab_duo/data_usage/)、保存、保護されているかを正確に把握できるようにしています。お客様のデータでの学習は一切行いません。\n\n私たちのアプローチは、モデルの柔軟性とベンダーの独立性にも及んでいます。お客様を単一の大規模言語モデル（LLM）プロバイダーに限定し、追加のベンダー依存や潜在的な単一障害点を作り出すプラットフォームがある一方で、GitLabのAI機能は様々なモデルによって強化されています。このアプローチにより、幅広いユースケースをサポートし、お客様の戦略的優先事項に合わせた柔軟性を持ち合わせています。\n\nGitLab Duo Agent Platformの開発をさらに進める中で、データ制御と包括的な人間参加型制御の維持に焦点を当て続けています。また、GitLab Duo Self-Hostedは、エアギャップ環境へのデプロイオプション、ゼロデイデータ保持ポリシー、自社インフラ内ですべてのAIリクエストを処理する機能により、完全なデータ主権を提供します。\n\n2024年5月以降、私たちは業界をリードするコミットメントを含む[AI継続プラン](https://handbook.gitlab.com/handbook/product/ai/continuity-plan/)も維持しています。これは、プロバイダーが顧客データに関する実践を変更した場合、30日以内に新しいモデルを評価して移行する能力です。AIベンダーリスク管理に対するこの積極的なアプローチは、顧客管理への私たちの取り組みを反映しています。\n\n## デプロイの選択、クラウドプロバイダーの選択\n\n**DevSecOps環境をどこにどのようにデプロイするかを選択できるべきです。** GitLabは真のデプロイの柔軟性を実現します。組織は、オンプレミス導入、マルチテナントSaaS、または完全管理型のシングルテナントSaaSソリューションであるGitLab Dedicatedから選択でき、機能を犠牲にしたり、エコシステムロックインを促進する人為的な制限に直面することはありません。GitLabはクラウドニュートラルでもあり、お客様はビジネスニーズと環境に最適なクラウドプロバイダーを使用できます。\n\nこの柔軟性は、複雑な管轄要件や規制上の課題をナビゲートする際に、非常に価値があることが証明されています。欧州連合やその他の地域で見られるような新しいデータローカライゼーション法が登場した場合、GitLabを使用する組織は、エコシステムの依存関係に制約されることなく、デプロイ戦略を迅速に適応させることができます。\n\n調達とリスク管理の観点から、プラットフォームの独立性は契約交渉において重要な影響力も提供します。組織は、顧客のニーズよりもベンダーの利益を優先する制限的なライセンス契約に縛られることがありません。この独立性は、企業がAIスタックの管理者が誰なのかを警戒するようになる中で、特に重要になります。\n\n## セキュリティとコンプライアンス：組み込み型で常に優先事項\n\n**セキュリティとコンプライアンスは現在、開発機能と同様に重要であり、後付けではなく、プラットフォームに組み込まれているべきです。** GitLabの単一プラットフォームアプローチは、基本的なセキュリティとガバナンス機能を実現させるために、サードパーティのアドインに依存する断片化されたプラットフォームよりも大きな優位性を提供します。このアーキテクチャの違いは、潜在的な法的リスク、運用効率、規制コンプライアンスに重要な影響を与えます。チェーン内の追加ツールはそれぞれ、別の潜在的な障害点、交渉すべき別の利用規約セット、そして別のリスクの源となります。\n\nGitLabは、カスタムコンプライアンスフレームワーク、動的アプリケーションセキュリティテスト（DAST）、APIファズテスト、カバレッジガイドファズテスト、Infrastructure-as-Codeテストなど、包括的な組み込みセキュリティとコンプライアンス機能を提供します。これらの機能はプラットフォームにネイティブに統合されており、一貫したポリシー実施を提供し、複数のサードパーティツールの管理に伴うコンプライアンスの複雑さや追加コストを削減します。\n\nGitLabの[コンプライアンスセンター](https://docs.gitlab.com/user/compliance/compliance_center/)は、チームがコンプライアンス基準、遵守レポート、違反レポート、グループのコンプライアンスフレームワークを管理するための中央拠点を提供します。このコンプライアンス管理への統一されたアプローチは、監査証跡とコンプライアンス文書が重要な、高度に規制された業界で事業を行う組織にとって特に価値があります。\n\n## オープンソースコミュニティとの密接な関係の維持\n\n**最高のツールは、それを使用する人々によって形作られます。** オープンソースへの取り組みとコミュニティとの関わりは、GitLabの創設以来の中核となっています。例えば、私たちの[Co-Createプログラム](https://about.gitlab.com/community/co-create/)は、お客様がGitLabエンジニアと直接連携してGitLabプラットフォームへの機能、修正、改良をコントリビュートできる協力的な取り組みです。\n\n透明性という価値観は、私たちのビジネスの根幹であり続けています。この例として、お客様が私たちの開発進捗をフォローし、製品改善についてGitLabチームと直接議論に参加できる[オープンイシュートラッカー](https://gitlab.com/groups/gitlab-org/-/issues)があります。最近立ち上げた、[ヘルシーバックログイニシアチブ](https://about.gitlab.com/blog/inside-gitlabs-healthy-backlog-initiative/)では、私たちの開発計画をさらに詳しくお客様に公開し、いただいたフィードバックをもっとも効果的に活かせる部分に確実に反映させています。\n\n私たちのアプローチにより、組織は規制環境に必要なガバナンス、監査証跡、セキュリティ管理を維持しながら、オープンソースイノベーションに貢献し、その恩恵を受けることができます。\n\n## データガバナンス：自分のデータは自分で守る\n\n**データとその処理方法について、完全な管理権限を保持できます。** データガバナンスは、国や地域ごとの複雑なデータ保護法や、ソースコード、顧客インサイト、戦略的イニシアチブ、競争情報といった機密知的財産に対する管理への懸念の高まりを背景に、企業技術の意思決定においてますます重要な要因となっています。\n\nGitLabでは、プラットフォーム内のAI搭載機能へのアクセス権限を管理でき、単純なアクセス制御を超えて、規制フレームワークに合わせた暗号化基準と監査機能を包括します。また、お客様のコードとデータはAIモデルの学習に使用されることは一切ありません。\n\n## 選択は明確です\n\nGitLabは、AIネイティブなDevSecOpsプラットフォームイノベーションをリードし続けています。私たちの最新の[18.3リリース](https://about.gitlab.com/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering/)がそれを実証していますが、同時に常に私たちを導いてきた独立性と透明性へのコミットメントを堅持しています。\n\nお客様には選択肢があり、その選択は明確です：管理権の保持かベンダーロックインか。透明性か不確実性か。イノベーションへのコントリビュートか、より大きなエコシステムの気まぐれか。\n\nGitLabは、イノベーションと独立性のバランスを取る持続可能なデジタルトランスフォーメーションの基盤を提供し、お客様のビジネス価値の実現を支援します。\n\n[GitLab UltimateとGitLab Duoを今すぐ無料でお試しください。](https://about.gitlab.com/ja-jp/free-trial/)",[1638],"Robin Schulman","2025-09-02",[673,769,676,9,1641],"open source",{"featured":90,"template":681,"slug":1643},"why-enterprise-independence-matters-more-than-ever-in-devsecops","content:ja-jp:blog:why-enterprise-independence-matters-more-than-ever-in-devsecops.yml","Why Enterprise Independence Matters More Than Ever In Devsecops","ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops.yml","ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops",{"_path":1649,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":1650,"content":1656,"config":1662,"_id":1664,"_type":13,"title":1665,"_source":15,"_file":1666,"_stem":1667,"_extension":18},"/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat",{"title":1651,"description":1652,"ogTitle":1651,"ogDescription":1652,"noIndex":6,"ogImage":1653,"ogUrl":1654,"ogSiteName":694,"ogType":695,"canonicalUrls":1654,"schema":1655},"AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】","AI搭載のDevSecOpsワークフローにGitLab Duoチャットを統合するためのヒントとコツをご覧ください。さらに、最高の結果を得るためにチャットプロンプトを絞り込む方法に関する専門家のアドバイスもご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097639/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%281%29_77JeTV9gAmbXM0224acirV_1750097638765.png","https://about.gitlab.com/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-04-02\",\n      }",{"title":1651,"description":1652,"authors":1657,"heroImage":1653,"date":1658,"body":1659,"category":679,"tags":1660,"updatedDate":1661},[879],"2024-04-02","AIと会話を交わすのはチャレンジングかもしれません。どのような質問から始めるべきでしょうか？どのように質問を組み立てますか？どのくらいのコンテキストが必要でしょうか？会話により最高かつ最適な結果を得られるのでしょうか？\n\n\nこのチュートリアルでは、AI搭載のDevSecOpsワークフローにGitLab\nDuoチャットを統合し、最良な結果を得るためにプロンプトを洗練させる上で役立つヒントとベストプラクティス10選をご紹介します。\n\n\n[始める：GitLab\nDuoチャットを開いたままにしておく](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#始める：GitLab-Duoチャットを開いたままにしておく)\n\n\n[GitLab\nDuoチャットを使用するためのベストプラクティス10選](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#GitLab-Duoチャットを使用するためのベストプラクティス10選)\n\n\n1.\n[会話を交わす](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#1.-会話を交わす)\n\n2.\n[効率を上げるためにプロンプトを絞り込む](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#2.-効率を上げるためにプロンプトを絞り込む)\n\n3.\n[プロンプトのパターンに従う](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#3.-プロンプトのパターンに従う)\n\n4.\n[ローコンテキストコミュニケーションを使用する](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#4.-ローコンテキストコミュニケーションを使用する)\n\n5.\n[繰り返す](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#5.-繰り返す)\n\n6.\n[焦らない](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#6.-焦らない)\n\n7.\n[リセットして再起動](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#7.-リセットして再起動)\n\n8.\n[IDEのスラッシュコマンドで効率化](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#8.-IDEのスラッシュコマンドで効率化)\n\n9.\n[スラッシュコマンドのプロンプトを絞り込む](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#9.-スラッシュコマンドのプロンプトを絞り込む)\n\n10.\n[スラッシュコマンドでクリエイティブに](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#10.-スラッシュコマンドでクリエイティブに)\n\n\nボーナスコンテンツ：\n\n-\n[ショートカット](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#ショートカット)\n\n-\n[試してみよう](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#試してみよう)\n\n-\n[詳細](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/#詳細)\n\n\n> AIで進化する最新のGitlab １７とGitLab Duoを、ライブ中継で観てみませんか？\u003Cbr>\n[__＞日本時間6月28日のイベントに今すぐ登録する＜__](https://about.gitlab.com/seventeen/)\n\n\n## 始める：GitLab Duoチャットを開いたままにしておく\n\n\n[GitLab\nDuoチャット](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html)は、GitLab\nUI、Web IDE、およびVS CodeなどのサポートされているプログラミングIDEで利用できます。\n\n\nVS Codeでは、デフォルトの左ペインでGitLab\nDuoチャットを開くことができます。アイコンを右側のペインにドラッグアンドドロップすることもできます。これにより、コードを書いたり、ファイルツリーを移動したり、Gitアクションを実行したりしている間も、チャットを開いたままにしておくことが可能です。チャットの場所をリセットするには、コマンドパレットを開きます。macOSの場合は\n`[Command] + [Shift] + [P]`、Windows/Linuxの場合は `[Ctrl] + [Shift] + [P]`\nキーボードショートカットを押し、`View: Reset View Locations` と入力します。以下の短いビデオで、その方法を説明します。\n\n\n\u003C!-- 空白行 -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/foZpUvWPRJQ\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\n\u003C!-- 空白行 -->\n\n\nWeb IDEとVS Codeは同じフレームワークを共有しています。Web IDEでは同じメソッドを使用でき、より効率的なワークフローを実現できます。\n\n\n![Web\nIDEのチャット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097645344.png)\n\n\n## GitLab Duoチャットを使用するためのベストプラクティス10選\n\n\n### 1. 会話を交わす\n\n\nチャットは会話形式で行うべきであり、検索フォームではありません。\n\n\n会話の始め方としては、ブラウザでの検索と同様の検索用語から始めて、応答と出力を試してみることをおすすめします。この例では、C#プロジェクトとベストプラクティスから始めましょう。\n\n\n> c# start project best practices \n\n> \n\n> （c#プロジェクト スタート時のベストプラクティス）\n\n\n![C#スタートプロジェクトのベストプラクティスのチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097646/Blog/Content%20Images/Blog/Content%20Images/image11_aHR0cHM6_1750097645345.png)\n\n\nこの回答は、C#の幅広いスコープを理解するのには役立ちますが、すぐに実践できるベストプラクティスを提示しているわけではありません。次は、同じコンテキストで、より焦点を絞った質問をしてみましょう。\n\n\n> Please show the project structure for the C# project.\n\n> \n\n> （C#プロジェクトのプロジェクト構造を示してください）\n\n\n![C#プロジェクトの構造のチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image9_aHR0cHM6_1750097645346.png)\n\n\nこの回答は参考になります。次に、同じ質問の構成でGitに関する質問をしてみましょう。何かを表示してほしいと指示します。\n\n\n> Show an example for a .gitignore for C#\n\n> \n\n> （C#の.gitignoreの例を示してください）\n\n\n![C#の.gitignoreのチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image25_aHR0cHM6_1750097645347.png)\n\n\nCI/CDに進み、C#プロジェクトを構築する方法を尋ねます。\n\n\n> Show a GitLab CI/CD configuration for building the C# project\n\n> \n\n> （C#プロジェクトを構築するためのGitLab CI/CD設定を表示してください）\n\n\n![C#プロジェクトを構築するためのGitLab\nCI/CD設定のチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image16_aHR0cHM6_1750097645349.png)\n\n\nこの例では、チャットは、具体的な変更をリクエストするよう促しています。.NET SDK 6.0の代わりに、.NET SDK\n8.0を使用するようリクエストしましょう。\n\n\n> In the above example, please use the .NET SDK 8.0 image\u003Cbr>\n\n> （上記の例では、次を使用してください。.NET SDK 8.0イメージ）\n\n\n![.NET SDK\n8.0を使用するためのチャットプロンプトと回答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image32_aHR0cHM6_1750097645350.png)\n\n\nCI/CD設定で.NETコマンドラインインターフェース（CLI）が使用されます。もしかしたら、プロジェクトやテストの構造を作成するコマンドの効率化にも使えるかもしれません。\n\n\n> Explain how to create projects and test structure on the CL\n\n> \n\n> （CLIでプロジェクトとテスト構造を作成する方法を説明してください）\n\n\n![CLIでプロジェクトとテスト構造を作成する方法を説明するよう指示するチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image14_aHR0cHM6_1750097645351.png)\n\n\nもちろん、これらのコマンドをターミナルで実行することもできますが、引き続きVS\nCodeを使用したい場合はどうすればよいでしょうか。チャットに尋ねましょう。\n\n\n> Explain how to open a new terminal in VS Code\n\n> \n\n> （VS Codeで新しいターミナルを開く方法を説明してください）\n\n\n![VS\nCodeで新しいターミナルを開く方法を説明するよう指示するチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750097645351.png)\n\n\n### 2. 効率を上げるためにプロンプトを絞り込む\n\n\nGitLab Duoチャットを人間と同じように考え、あなたの考えや質問に関してできるだけ多くの文脈を伝えられるよう、文章でやり取りしてください。\n\n\nブラウザで頻繁に検索する方は、クエリに対するこのアプローチをご存知かもしれません。質問を組み立て、さらに用語を追加して範囲を絞り込み、たくさんのタブが表示された上で検索を再開します。 \n\n\nブラウザ検索では、おそらく4つから5つの検索ウィンドウが表示されるでしょう。\n\n\n```マークダウン\n\nc# start project best practices\n\nc# .gitignore\n\nc# gitlab cicd \n\nc# gitlab security scanning \n\nc# solutions and projects, application and tests\n\n``` \n\n\nチャットでの会話でも、同じ戦略を採用できます。より多くの文脈を加え、会話的なアプローチにする必要があります。GitLab\nDuoチャットでは、1回の会話リクエストで複数の質問ができます。例：上記の検索と同様、新しいC#プロジェクトから始めて、ベストプラクティスを適用し、`.gitignore`\nファイルを追加し、CI/CDとセキュリティスキャンを設定する必要があります。チャットでは、質問を1つのリクエストにまとめることができます。\n\n\n> How can I get started creating an empty C# console application in VS Code?\nPlease show a .gitignore and .gitlab-ci.yml configuration with steps for C#,\nand add security scanning for GitLab. Explain how solutions and projects in\nC# work, and how to add a test project on the CLI.\n\n> \n\n> （VS\nCodeで空のC#コンソールアプリケーションを作成するにはどうすればよいですか？.gitignoreと.gitlab-ci.ymlの設定をC#用のステップで表示し、GitLabのセキュリティスキャンを追加してください。C#のソリューションとプロジェクトがどのように動作するのかに加え、CLIでテストプロジェクトを追加する方法を説明してください）\n\n\n![より多くの文脈を加えたチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image37_aHR0cHM6_1750097645352.png)\n\n\nこの応答で、チャットは会話のフォローアップの質問で具体的な設定例を尋ねるよう提案しています。応用：フォローアップの質問を作成しましょう。同じチャットセッションでは、コンテキストとしてC#を省略することができます。\n\n\n> Please show an example for a .gitignore. Please show a CI/CD\nconfiguration. Include the SAST template.\n\n> \n\n>   （gitignoreの例を示してください。CI/CDの設定を示してください。SASTテンプレートを含めてください）\n\n\n### 3. プロンプトのパターンに従う \n\n\n「プロンプト命令文、助けを求めて、追加のリクエストをする」というパターンに従ってください。最初の質問ですべての答えが得られるとは限りません。閉塞感を感じないよう、最初は「プロンプト命令文、助けを求める」を繰り返すことから始めましょう。\n\n\n> I need to fulfill compliance requirements. How can I get started with\nCodeowners and approval rules?\n\n> \n\n> （コンプライアンス要件を満たす必要があります。CODEOWNERSと承認ルールの使い始め方を教えてください）\n\n\n![CODEOWNERSと承認ルールを使い始めるためのチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image19_aHR0cHM6_1750097645352.png)\n\n\n回答は役に立つものの、明らかに一般的な内容です。そこで、チーム用の設定について具体的な内容を教えてもらうこともできます。\n\n\n> Please show an example for Codeowners with different teams: backend,\nfrontend, release managers.\n\n> \n\n> (バックエンド、フロントエンド、リリースマネージャーといった異なるチームのCODEOWNERSの例を示してください)\n\n\n![バックエンド、フロントエンド、リリースマネージャーといった異なるチームのCODEOWNERSの例を示すよう指示するチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image31_aHR0cHM6_1750097645353.png)\n\n\nもう1つの方法は、自分が置かれている状況を説明し、意見を求めることです。STARモデル（状況、タスク、アクション、結果）に従うと、うまく質問ができるでしょう。\n\n\n> I have a\n[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)\ncluster integrated in GitLab. Please generate a Yaml configuration for a\n[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)\nservice deployment. Explain how GitOps works as a second step. How to verify\nthe results?\n\n> \n\n>\n（GitLabに統合されたKubernetesクラスターがあります。[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)サービスをデプロイするためのYAML設定を生成してください。2つ目のステップとしてGitOpsがどのように動作するかを説明してください。結果を検証する方法は？）\n\n\n![複数の質問を含むチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image27_aHR0cHM6_1750097645354.png)\n\n\n### 4. ローコンテキストコミュニケーションを使用する\n\n\n回答するためになるべく多くのコンテキストを提供します。以前の履歴または開かれたソースコードからは、そういった有用なコンテキストが得られない場合もあります。より効率的に質問するために、GitLabのオールリモート環境でのコミュニケーションで使用される[ローコンテキストコミュニケーション](https://handbook.gitlab.com/handbook/company/culture/all-remote/effective-communication/#understanding-low-context-communication)のパターンを適用します。\n\n\n次の質問の場合、C++プロジェクトにおいて十分なコンテキストを提供できていません。\n\n\n> Should I use virtual override instead of just override?\n\n> \n\n> （単にオーバーライドをつかうのではなく、仮想オーバーライドをつかったほうがいいですか？）\n\n\n![ユーザーが上書きの代わりに仮想の上書きを使用する必要があるかどうかを尋ねるチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image34_aHR0cHM6_1750097645354.png)\n\n\n代わりに、より多くのコンテキストを追加してみてください。\n\n\n> When implementing a pure virtual function in an inherited class, should I\nuse virtual function override, or just function override? Context is C++.\n\n> \n\n>\n（継承クラスに純粋な仮想関数を実装する場合、仮想関数の上書きを使用する必要がありますか、それとも単に関数の上書きを使用する必要がありますか？コンテキストはC++です）\n\n\n![詳細情報を含むチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image36_aHR0cHM6_1750097645355.png)\n\n\nこの例は、[GitLab\nDuoコーヒーチャット：抽象的なデータベース処理のためにC++関数をOOPクラスにリファクタリングする](https://youtu.be/Z9EJh0J9358?t=2190)でもご紹介しています。\n\n\n### 5. 繰り返す\n\n\nAIは予測できないものです。想定した結果が返されない場合や、コンテキストが不足しているためソースコードの例や設定スニペットが生成されない場合があります。質問を繰り返し、要件を絞り込んでいくことをおすすめします。\n\n\n以下の例では、C#アプリケーションを作成します。最初の試行では、アプリケーションタイプを指定しませんでした。C#を使用してコンソール/ターミナルだけでなく、UIアプリケーションも作成できます。また、回答結果には、空のサンプルソースコードも表示されませんでした。2つ目に再度入力するプロンプトでは、「コンソール」と「空」の2つの単語を追加します。\n\n\n> How can I get started creating an C# application in VSCode?\n\n> \n\n> （VS CodeでC#アプリケーションを作成するにはどうすればよいですか？）\n\n> \n\n> How can I get started creating an empty C# console application in VSCode?\n\n> \n\n> （VS Codeで空のC#コンソールアプリケーションを作成するにはどうすればよいですか？）\n\n\nプロンプトの結果は異なります。最初の質問への回答内容は、VS\nCodeウィンドウの手順に従って開始するのに役立ちますが、ソースコードの場所と変更方法は示されません。改良したプロンプトを改めて入力することで、回答内容が修正され、デフォルトのテンプレートを\n「hello world」コードで上書きする方法が示されます。\n\n\n![修正したプロンプトを改めて入力したチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image28_aHR0cHM6_1750097645355.png)\n\n\n質問を繰り返したり洗練させることで、アプリケーションコードやテストの例を表示するよう、チャットにリクエストもできます。\n\n\n> How can I get started creating an empty C# console application in VSCode?\nPlease show an example for application and tests.\n\n> \n\n> （VS Codeで空のC#コンソールアプリケーションを作成するにはどうすればよいですか？アプリケーションとテストの例を示してください）\n\n\n![アプリケーションとテストの例を求めるチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097645356.png)\n\n\n#### 一般的な質問を繰り返します \n\n\n一般的な技術的質問を尋ねた場合、GitLab\nDuoチャットでは対応できないことがあります。次のシナリオでは、Javaのビルドツールとフレームワークに関する提案を得ようとしたものの、うまくいきませんでした。この質問への答えは数多く考えられます。ビルドツールとしてはMaven、Gradleなどがあり、テクノロジースタックや要件によっては[100以上のJavaフレームワーク](https://en.wikipedia.org/wiki/List_of_Java_frameworks)があります。\n\n\n![Javaのビルドツールとフレームワークに関するチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097645356.png)\n\n\nでは、[Java Spring\nBoot](https://spring.io/projects/spring-boot)を使った顧客環境に焦点を当てたいと想定してみます。\n\n\n> I want to create a Java Spring Boot application. Please explain the\nproject structure and show a hello world example.\n\n> \n\n> （JavaのSpring Bootアプリケーションを作りたいです。プロジェクトの構造を説明し、Hello Worldの例を示してください）\n\n\n![Hello\nWorldの例を含め、追加情報を求めるチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image26_aHR0cHM6_1750097645357.png)\n\n\nすでに素晴らしい結果が返って来ています。応用として、プロンプトを繰り返し、アプリケーションのデプロイ方法を尋ね、それぞれのステップでさらに改良を加えてください。別の方法として、フォローアップの会話にする方法もあります。\n\n\n> I want to create a Java Spring Boot application. Please explain the\nproject structure and show a hello world example. Show how to build and\ndeploy the application in CI/CD.\n\n> \n\n> （JavaのSpring Bootアプリケーションを作りたいです。プロジェクトの構造を説明し、Hello\nWorldの例を示してください。CI/CDでアプリケーションをビルドおよびデプロイする方法を示してください）\n\n> \n\n> I want to create a Java Spring Boot application. Please explain the\nproject structure and show a hello world example. Show how to build and\ndeploy the application in CI/CD, using container images.\n\n> \n\n> （JavaのSpring Bootアプリケーションを作りたいです。プロジェクトの構造を説明し、Hello\nWorldの例を示してください。コンテナイメージを使用して、CI/CDでアプリケーションをビルドおよびデプロイする方法を示してください）\n\n> \n\n> I want to create a Java Spring Boot application. Please explain the\nproject structure and show a hello world example. Show how to build and\ndeploy the application in CI/CD, using container images. Use Kubernetes and\nGitOps in GitLab.\n\n> \n\n> （JavaのSpring Bootアプリケーションを作りたいです。プロジェクトの構造を説明し、Hello\nWorldの例を示してください。コンテナイメージを使用して、CI/CDでアプリケーションをビルドおよびデプロイする方法を示してください。示します。GitLabで[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)とGitOpsを使用してください）\n\n### 6. 焦らない\n\n\n1つの単語または短い文章すると、[このビデオの例に示すように]（https://youtu.be/JketELxLNEw?t=1220）、望ましい結果が得られない場合があります。GitLab\nDuo Chatは、利用可能なデータから推測を行うことができる場合がありますが、より多くのコンテキストの提供を主張する場合もあります。\n\n\n例：`labels` はGitLabのドキュメントの内容に一致します。\n\n\n![ラベルと応答に関するチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image12_aHR0cHM6_1750097645357.png)\n\n\n指示内容をブラッシュアップしてイシューボードでの使用法についてさらなる改良を行います。\n\n\n> Explain labels in GitLab. Provide an example for efficient usage with\nissue boards.\n\n> \n\n> （GitLabのラベルを説明してください。イシューボードで効率的に使用できる例をください）\n\n\n![例と回答を求めるチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image21_aHR0cHM6_1750097645358.png)\n\n\nまたは、問題を記述し、その後に質問をして、追加の例を尋ねます。\n\n\n> I don't know how to use labels in GitLab. Please provide examples, and how\nto use them for filters in different views. Explain these views with\nexamples.\n\n> \n\n>\n（GitLabでラベルを使用する方法が分かりません。さまざまなビューのフィルターにラベルを使用する方法の例をください。これらのビューを例で説明してください）\n\n\n![問題文と回答を含むチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image10_aHR0cHM6_1750097645358.png)\n\n\nまた、「はい/いいえ」の質問を避け、代わりに特定のコンテキストを追加します。\n\n\n> Can you help me fix performance regressions?\n\n> \n\n> （パフォーマンスのレグレッションを修正するのを手伝ってもらえますか？）\n\n\n![パフォーマンスのリグレッションと応答を修正するための助けを求めるチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image18_aHR0cHM6_1750097645359.png)\n\n\n代わりに、プログラミング言語、フレームワーク、テクノロジースタック、および環境を含む、パフォーマンスレグレッションのコンテキストを提供します。次の例では、数年前の環境を使用していますが、現在でも十分正確です。\n\n\n> My PHP application encounters performance regressions using PHP 5.6 and\nMySQL 5.5. Please explain potential root causes, and how to address them.\nThe app is deployed on Linux VMs.\n\n> \n\n> （私のPHPアプリケーションは、PHP 5.6とMySQL\n5.5を使用してパフォーマンスのリグレッションに遭遇しています。潜在的な根本原因とそれらに対処する方法を説明してください。このアプリはLinux\nVMにデプロイされています）\n\n\n![詳細と回答を含むチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image24_aHR0cHM6_1750097645360.png)\n\n\n### 7. リセットして再起動\n\n\n時々、チャット履歴を見る限り、意図しない学習経路を辿ってしまったが故に、フォローアップの質問のコンテキストが間違っている場合があります。または、GitLab\nDuoチャットが回答を提供できない特定の質問をした可能性があります。生成系AIは予測不可能であり、特定の例を提供することができなかったかもしれませんが、将来の応答でそれらを提供していけるようになるでしょう（チャットベータで観察）。基礎となる大規模言語モデル（LLM）は、時には無限ループに陥ってしまう場合もあります。\n\n\n> How can I get started creating an empty C# console application in VSCode?\nPlease show a .gitignore and .gitlab-ci.yml configuration with steps for C#,\nand add security scanning for GitLab. Explain how solutions and projects in\nC# work, and how to add a test project on the CLI.\n\n> \n\n>\n（VSCodeで空のC#コンソールアプリケーションを作成するにはどうすればよいですか？.gitignoreと.gitlab-ci.ymlの設定をC#用のステップで表示し、GitLabのセキュリティスキャンを追加してください。C#のソリューションとプロジェクトがどのように機能するのか、CLIでテストプロジェクトを追加する方法を説明してください）\n\n\n上記の内容で質問をした後、よりカスタマイズされた応答を得るために、質問の範囲を縮小したいと思いました。チャットはコンテキストでチャット履歴を把握しており、以前の回答を参照しているため、期待どおりに機能しませんでした。\n\n\n> How can I get started creating an empty C# console application in VSCode?\nPlease show a .gitignore and .gitlab-ci.yml configuration with steps for C#.\n\n> \n\n>\n（VSCodeで空のC#コンソールアプリケーションを作成するにはどうすればよいですか？.gitignoreと.gitlab-ci.ymlの設定をC#用のステップで表示してください）\n\n\n![設定例と応答を求めるチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image23_aHR0cHM6_1750097645360.png)\n\n\nチャットを新しいコンテキストに強制的に追加するには、`/reset` をスラッシュ（/）\nコマンドとして使用してセッションをリセットし、質問を繰り返してより良い結果を得ていくことになります。`/clean` または `/clear`\nを使用して、会話内のすべてのメッセージを削除することもできます。\n\n\n### 8. IDEのスラッシュコマンドで効率化\n\n\n#### コードを説明する\n\n\n- 質問：生成されたコードですか？既存のコードですか？従来のコードですか？\n\n- 回答：[IDEの`/explain`スラッシュ（/）\nコマンド](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html#explain-code-in-the-ide)を使用します。\n\n- 回答2：より焦点を当てた応答でプロンプトを絞り込む。例： `/explain focus on potential shortcomings or\nbugs. （/explain 潜在的な欠点やバグに焦点を当てる）`\n\n\n![/explainスラッシュ（/）\nコマンドのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/gitlab_duo_chat_slash_commands_explain_01_aHR0cHM6_1750097645361.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image6_aHR0cHM6_1750097645361.png)\n\n\n#### コードのリファクタリング\n\n\n- 質問：読みづらいコードですか？長いスパゲッティコードですか？テストカバレッジはゼロですか？\n\n- 回答：[IDEの`/refactor`スラッシュ（/）\nコマンド](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html#refactor-code-in-the-ide)を使用します。\n\n- 回答2 ：よりターゲットを絞ったアクションのプロンプトを絞り込む。例：オブジェクト指向パターン：`/refactor into\nobject-oriented classes with methods and attributes`。\n\n\n![/refactor\nslashコマンドのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image35_aHR0cHM6_1750097645362.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image30_aHR0cHM6_1750097645362.png)\n\n\n#### テストを生成\n\n\n- 質問：テスト可能なコードですが、テストの作成に時間がかかりすぎますか？\n\n- 回答：[IDEの`/tests`スラッシュ(/)\nコマンド](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html#write-tests-in-the-ide)を使用します。\n\n-\n回答2：特定のテストフレームワーク、またはテストターゲットのプロンプトを絞り込む。プロンプトにリファクタリングに焦点を当てるように指示し、次にテストを生成することもできます。`/tests`はコードを関数にリファクタリングし、テストを生成することに焦点を当てます。\n\n\n![/testsスラッシュ(/)\nコマンドのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image29_aHR0cHM6_1750097645363.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097645363.png)\n\n\n完全な開発ワークフローのより実用的な例は、[GitLab\nDuoの例](https://docs.gitlab.com/ee/user/gitlab_duo_examples.html)のドキュメンテーションで入手できます。\n\n\n### 9. スラッシュコマンドのプロンプトを絞り込む\n\n\nこのブログ記事には、洗練されたプロンプトのヒントが数多くあったことでしょう。これらは、AIを活用したワークフロー効率を向上させるための要素の1つです。スラッシュ(/)\nコマンドを賢く使うことで、GitLab Duoチャットでより良い結果が得られます。\n\n\nあるお客様は最近、次のように尋ねました。「`/explain` を使用したコードの説明は、コード内にコメントを作成できますか？」\n答えは「いいえ」です。ただし、チャットプロンプトを使用してフォローアップの質問をしたり、コード内に記述できるコメント形式でコードの要約を求めることができます。その場合は、言語の指定が必要でしょう。\n\n\n[curlライブラリを使用したC++\nHTTPクライアントコード](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts/-/blob/5cc9bdd65ee8ee16c548bea0402c18f8209d4d06/chat/slash-commands/c++/cli.cpp)の次の例には、より多くのドキュメント（指示内容）が必要です。コード内のコメントを追加して、より洗練した指示内容を/explainコマンドに渡すことで、よりよい結果が得られ、その結果をエディタ内に貼り付けていく、という方法もよいでしょう。\n\n\n> /explain add documentation, rewrite the code snippet\n\n> （/explain ドキュメントを追加し、コードスニペットを書き換えてください）\n\n\n![ドキュメントを追加し、コードスニペットと応答を書き換えるためのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image13_aHR0cHM6_1750097645363.png)\n\n\nまたは、チャットにソースコードを `/refactor`\nするように依頼し、洗練されたプロンプトを使用して不足しているコードコメントを生成することもできます。\n\n\n> /refactor add code comments and documentation\n\n>\n\n> （/refactor コードのコメントとドキュメントを追加してください）\n\n\n![ソースコードをリファクタリングし、コードコメントを生成するためのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image15_aHR0cHM6_1750097645364.png)\n\n\n### 10. スラッシュコマンドでクリエイティブに\n\n\nチャットプロンプトがソースコードまたはプログラミング言語に関する質問への回答が得られない場合は、スラッシュ(/) コマンド\n`/explain`、`/explain`、`/tests` を試してみて、それらがコンテキスト作りに役に立つかどうかみてみましょう。\n\n\n以下の例では、C++のコード内でSQLクエリ文字列が1行で作成されます。読みやすさを高め、将来的にはより多くのデータベース列を追加できるようにするには、書式を複数行の文字列に変更すると便利です。\n\n\n> std::string sql = \"CREATE TABLE IF NOT EXISTS users （id INTEGER PRIMARY\nKEY AUTOINCREMENT, name TEXT NOT NULL, email TEXT NOT NULL）\";\n\n\nたとえば、次の質問をその後に続けてGitLab Duo Chatに尋ねられます。\n\n\n> How to create a string in C++ using multiple lines?\u003Cbr>\n\n>（複数行を使用してC++で文字列を作成する方法）\n\n\nチャット自体は、説明文とオプションでソースコードの例で回答してくれるでしょう。ただ、この場合は、単にその文字列を\"¥n\"を間に入れて複数行にすればいい、という解釈をするでしょう。でも、私達が求めているのは、そうではなく、ソースコード上で見やすくするために「複数行」にしてほしい、ということですよね。\n\n\nVSCodeとWeb IDEには、追加のコンテキストの代替案があります。問題のソースコードを選択し、右クリックして、[GitLab Duoチャット]>\n[リファクタリング]に移動します。これにより、チャットプロンプトが開き、`/refactor`コードタスクがすぐに開始されます。\n\n\nただし、コードタスクは期待される結果をもたらさない可能性があります。1行のSQL文字列をリファクタリングすることは、読みやすさのために複数行を使用すること、定数を作成することなど、多くを意味するからです。\n\n\nコードタスクには、プロンプトを絞り込むオプションがあります。`/refactor` コマンドの後にテキストを追加し、GitLab\nDuoチャットに特定のコードタイプ、アルゴリズム、またはデザインパターンを使用するように指示できます。\n\n\nもう一度やり直してみましょう。ソースコードを選択し、フォーカスをチャットに変更し、次のプロンプトを入力して、`[Enter]`を押します。\n\n\n> /refactor into a multi-line written string. Show different approaches for\nall C++ standards.\n\n>\n\n>（/refactor 複数行の書き込み文字列に変換します。すべてのC++標準に異なるアプローチを示します）\n\n\n![複数行の文字列と応答にリファクタリングするためのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image17_aHR0cHM6_1750097645364.png)\n\n\n**ヒント：** GitLab Duoのコード提案を使用して、リファクタリング後にソースコードをさらに洗練することも、あるいは、かわりに\n`/refactor` プロンプトの絞り込みを使用することもできます。\n\n\n> /refactor into a multi-line written string, show different approaches\n\n>\n\n> （/refactor 複数行の文字列に変換し、さまざまなC++標準のアプローチを表示してください）\n\n>\n\n> /refactor into multi-line string, not using raw string literals\n\n>\n\n> （/refactor 複数行の文字列に変換し、生の文字列リテラルを使用しないでください）\n\n>\n\n>/refactor into a multi-line written string. Make the table name\nparametrizable\n\n>\n\n>（/refactor 複数行の書き込み文字列に変換してください。テーブル名はパラメータ化してください）\n\n\n`stringstream` タイプの代替アプローチは、[GitLab\nDuoコーヒーチャット：抽象的なデータベース処理のためにC++関数をOOPクラスにリファクタリングする](https://www.youtube.com/watch?v=Z9EJh0J9358)、[MR差分](https://gitlab.com/gitlab-da/use-cases/ai/gitlab-duo-coffee-chat/gitlab-duo-coffee-chat-2024-01-23/-/commit/7ea233138aed46d77e6ce0d930dd8e10560134eb#4ce01e4c84d4b62df8eed159c2db3768ad4ef8bf_33_35)に記載されています。\n\n\n#### 脆弱性の説明\n\n\n常に機能するとは限りませんが、セキュリティの脆弱性の説明については、`/explain` スラッシュ(/)\nコマンドも尋ねることができます。この例では、[Cコード](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts/-/blob/5a5f293dfbfac7222ca4013d8f9ce9b462e4cd3a/chat/slash-commands/c/vuln.c)には、strcpy()バッファオーバーフロー、ワールド書き込み可能なファイルアクセス許可、競合条件攻撃などの複数の脆弱性が含まれています。\n\n\n>/explain why this code has multiple vulnerabilitie\u003Cbr>\n\n>（/explain このコードに複数の脆弱性がある理由を説明してください）\n\n\n![/コードの複数の脆弱性についてのチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image20_aHR0cHM6_1750097645365.png)\n\n\n#### CコードをRustにリファクタリングする\n\n\nRustはメモリの安全性を提供します。`refactor into Rust`\nを使用して、脆弱な[Cコード](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-prompts/-/blob/5a5f293dfbfac7222ca4013d8f9ce9b462e4cd3a/chat/slash-commands/c/vuln.c)をRustにリファクタリングするようにDuo\nChatに依頼できます。より良い結果を得るために、より洗練されたプロンプトで練習してください。\n\n\n> /refactor into Rust and use high level libraries\n\n> \n\n> （/refactor Rustに変換し、高レベルのライブラリを使用してください）\n\n\n![チャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image8_aHR0cHM6_1750097645366.png)\n\n\n### ショートカット\n\n\nこれらのショートカットを読者の環境で試し、GitLab Duoチャットを使用して応用例を試してみてください。\n\n\n1. CVEからの脆弱性に基づいてコードを調べ、`/explain why is this code vulnerable`\nを使用して、それが何をし、どのように修正するかを尋ねます。\n\n**ヒント：** GitLab Duoチャットのコード説明を利用するには、GitLabでオープンソースプロジェクトをインポートしてください。\n\n2. レガシーコードの移行計画を支援するために、コードを新しいプログラミング言語にリファクタリングしてみてください。\n\n3. `/refactor into GitLab CI/CD configuration` を使用して、Jenkins設定をGitLab\nCI/CDにリファクタリングすることもできます。\n\n\n### 試してみよう\n\n\nクリッピーのように振る舞うよう、チャットを説得してみてください。\n\n\n![チャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image22_aHR0cHM6_1750097645366.png)\n\n\nGitLabのミッション、「誰でも貢献できます」について尋ねてください。\n\n\n![チャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097645/Blog/Content%20Images/Blog/Content%20Images/image33_aHR0cHM6_1750097645367.png)\n\n\n### 詳細\n\n\nいろいろなところに情報が記載されています。より実用的な例で[GitLab\nDuoチャットドキュメンテーション](https://docs.gitlab.com/ee/user/gitlab_duo_chat.html)を更新し、チャットを含むAI搭載のDevSecOpsワークフローを深く掘り下げる新しい[GitLab\nDuoの例](https://docs.gitlab.com/ee/user/gitlab_duo_examples.html)セクションを追加しました。\n\n\nGitLab Duoの学習は、遊び心のあるチャレンジと実際の本番環境のコードを通じて最も効果的に機能します。新しい学習シリーズ、GitLab\nDuoコーヒーチャットは、2024年も続きます。本人確認ができるまでは、[このYouTubeプレイリスト](https://www.youtube.com/playlist?list=PL05JrBw4t0Kp5uj_JgQiSvHw1jQu0mSVZ)で録画を見ることができます。GitLabのお客様で、GitLab\nDuoコーヒーチャットに参加して一緒に学ぶことに興味がある場合は、[この計画のエピック](https://gitlab.com/groups/gitlab-com/marketing/developer-relations/-/epics/476)でお知らせください。\n\n\n*監修：小松原 つかさ\u003Cbr>\n\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n\n\n> GitLab\nDuoチャットを試してみませんか？[今すぐ無料トライアルを開始](https://about.gitlab.com/solutions/gitlab-duo-pro/self-managed-and-gitlab-dedicated-trial/)。\n",[673,678,674,9],"2024-05-23",{"slug":1663,"featured":90,"template":681},"10-best-practices-for-using-ai-powered-gitlab-duo-chat","content:ja-jp:blog:10-best-practices-for-using-ai-powered-gitlab-duo-chat.yml","10 Best Practices For Using Ai Powered Gitlab Duo Chat","ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat.yml","ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat",6,[660,687,711,731,754,778,799,824,846],1759347937964]