[{"data":1,"prerenderedAt":1972},["ShallowReactive",2],{"/en-us/blog/tags/ai-ml/":3,"navigation-ja-jp":20,"banner-ja-jp":437,"footer-ja-jp":450,"AI/ML-tag-page-ja-jp":660},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"content":8,"config":11,"_id":13,"_type":14,"title":15,"_source":16,"_file":17,"_stem":18,"_extension":19},"/en-us/blog/tags/ai-ml","tags",false,"",{"tag":9,"tagSlug":10},"AI/ML","ai-ml",{"template":12},"BlogTag","content:en-us:blog:tags:ai-ml.yml","yaml","Ai Ml","content","en-us/blog/tags/ai-ml.yml","en-us/blog/tags/ai-ml","yml",{"_path":21,"_dir":22,"_draft":6,"_partial":6,"_locale":7,"data":23,"_id":433,"_type":14,"title":434,"_source":16,"_file":435,"_stem":436,"_extension":19},"/shared/ja-jp/main-navigation","ja-jp",{"logo":24,"freeTrial":29,"sales":34,"login":39,"items":44,"search":377,"minimal":411,"duo":424},{"config":25},{"href":26,"dataGaName":27,"dataGaLocation":28},"/ja-jp/","gitlab logo","header",{"text":30,"config":31},"無料トライアルを開始",{"href":32,"dataGaName":33,"dataGaLocation":28},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":35,"config":36},"お問い合わせ",{"href":37,"dataGaName":38,"dataGaLocation":28},"/ja-jp/sales/","sales",{"text":40,"config":41},"サインイン",{"href":42,"dataGaName":43,"dataGaLocation":28},"https://gitlab.com/users/sign_in/","sign in",[45,89,188,193,299,359],{"text":46,"config":47,"cards":49,"footer":72},"プラットフォーム",{"dataNavLevelOne":48},"platform",[50,56,64],{"title":46,"description":51,"link":52},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":53,"config":54},"プラットフォームを詳しく見る",{"href":55,"dataGaName":48,"dataGaLocation":28},"/ja-jp/platform/",{"title":57,"description":58,"link":59},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":60,"config":61},"GitLab Duoのご紹介",{"href":62,"dataGaName":63,"dataGaLocation":28},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":65,"description":66,"link":67},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":68,"config":69},"詳細はこちら",{"href":70,"dataGaName":71,"dataGaLocation":28},"/ja-jp/why-gitlab/","why gitlab",{"title":73,"items":74},"利用を開始：",[75,80,85],{"text":76,"config":77},"プラットフォームエンジニアリング",{"href":78,"dataGaName":79,"dataGaLocation":28},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":81,"config":82},"開発者の経験",{"href":83,"dataGaName":84,"dataGaLocation":28},"/ja-jp/developer-experience/","Developer experience",{"text":86,"config":87},"MLOps",{"href":88,"dataGaName":86,"dataGaLocation":28},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":90,"left":91,"config":92,"link":94,"lists":98,"footer":170},"製品",true,{"dataNavLevelOne":93},"solutions",{"text":95,"config":96},"すべてのソリューションを表示",{"href":97,"dataGaName":93,"dataGaLocation":28},"/ja-jp/solutions/",[99,125,148],{"title":100,"description":101,"link":102,"items":107},"自動化","CI/CDと自動化でデプロイを加速",{"config":103},{"icon":104,"href":105,"dataGaName":106,"dataGaLocation":28},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[108,112,116,121],{"text":109,"config":110},"CI/CD",{"href":111,"dataGaLocation":28,"dataGaName":109},"/ja-jp/solutions/continuous-integration/",{"text":113,"config":114},"AIアシストによる開発",{"href":62,"dataGaLocation":28,"dataGaName":115},"AI assisted development",{"text":117,"config":118},"ソースコード管理",{"href":119,"dataGaLocation":28,"dataGaName":120},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":122,"config":123},"自動化されたソフトウェアデリバリー",{"href":105,"dataGaLocation":28,"dataGaName":124},"Automated software delivery",{"title":126,"description":127,"link":128,"items":133},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":129},{"href":130,"dataGaName":131,"dataGaLocation":28,"icon":132},"/ja-jp/solutions/security-compliance/","security and compliance","ShieldCheckLight",[134,139,144],{"text":135,"config":136},"Application Security Testing",{"href":137,"dataGaName":138,"dataGaLocation":28},"/solutions/application-security-testing/","Application security testing",{"text":140,"config":141},"ソフトウェアサプライチェーンの安全性",{"href":142,"dataGaLocation":28,"dataGaName":143},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":145,"config":146},"Software Compliance",{"href":147,"dataGaName":145,"dataGaLocation":28},"/solutions/software-compliance/",{"title":149,"link":150,"items":155},"測定",{"config":151},{"icon":152,"href":153,"dataGaName":154,"dataGaLocation":28},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[156,160,165],{"text":157,"config":158},"可視性と測定",{"href":153,"dataGaLocation":28,"dataGaName":159},"Visibility and Measurement",{"text":161,"config":162},"バリューストリーム管理",{"href":163,"dataGaLocation":28,"dataGaName":164},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":166,"config":167},"分析とインサイト",{"href":168,"dataGaLocation":28,"dataGaName":169},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":171,"items":172},"GitLabが活躍する場所",[173,178,183],{"text":174,"config":175},"Enterprise",{"href":176,"dataGaLocation":28,"dataGaName":177},"/ja-jp/enterprise/","enterprise",{"text":179,"config":180},"スモールビジネス",{"href":181,"dataGaLocation":28,"dataGaName":182},"/ja-jp/small-business/","small business",{"text":184,"config":185},"公共機関",{"href":186,"dataGaLocation":28,"dataGaName":187},"/ja-jp/solutions/public-sector/","public sector",{"text":189,"config":190},"価格",{"href":191,"dataGaName":192,"dataGaLocation":28,"dataNavLevelOne":192},"/ja-jp/pricing/","pricing",{"text":194,"config":195,"link":197,"lists":201,"feature":286},"関連リソース",{"dataNavLevelOne":196},"resources",{"text":198,"config":199},"すべてのリソースを表示",{"href":200,"dataGaName":196,"dataGaLocation":28},"/ja-jp/resources/",[202,235,258],{"title":203,"items":204},"はじめに",[205,210,215,220,225,230],{"text":206,"config":207},"インストール",{"href":208,"dataGaName":209,"dataGaLocation":28},"/ja-jp/install/","install",{"text":211,"config":212},"クイックスタートガイド",{"href":213,"dataGaName":214,"dataGaLocation":28},"/ja-jp/get-started/","quick setup checklists",{"text":216,"config":217},"学ぶ",{"href":218,"dataGaLocation":28,"dataGaName":219},"https://university.gitlab.com/","learn",{"text":221,"config":222},"製品ドキュメント",{"href":223,"dataGaName":224,"dataGaLocation":28},"https://docs.gitlab.com/","product documentation",{"text":226,"config":227},"ベストプラクティスビデオ",{"href":228,"dataGaName":229,"dataGaLocation":28},"/ja-jp/getting-started-videos/","best practice videos",{"text":231,"config":232},"インテグレーション",{"href":233,"dataGaName":234,"dataGaLocation":28},"/ja-jp/integrations/","integrations",{"title":236,"items":237},"検索する",[238,243,248,253],{"text":239,"config":240},"お客様成功事例",{"href":241,"dataGaName":242,"dataGaLocation":28},"/ja-jp/customers/","customer success stories",{"text":244,"config":245},"ブログ",{"href":246,"dataGaName":247,"dataGaLocation":28},"/ja-jp/blog/","blog",{"text":249,"config":250},"リモート",{"href":251,"dataGaName":252,"dataGaLocation":28},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":254,"config":255},"TeamOps",{"href":256,"dataGaName":257,"dataGaLocation":28},"/ja-jp/teamops/","teamops",{"title":259,"items":260},"つなげる",[261,266,271,276,281],{"text":262,"config":263},"GitLabサービス",{"href":264,"dataGaName":265,"dataGaLocation":28},"/ja-jp/services/","services",{"text":267,"config":268},"コミュニティ",{"href":269,"dataGaName":270,"dataGaLocation":28},"/community/","community",{"text":272,"config":273},"フォーラム",{"href":274,"dataGaName":275,"dataGaLocation":28},"https://forum.gitlab.com/","forum",{"text":277,"config":278},"イベント",{"href":279,"dataGaName":280,"dataGaLocation":28},"/events/","events",{"text":282,"config":283},"パートナー",{"href":284,"dataGaName":285,"dataGaLocation":28},"/ja-jp/partners/","partners",{"backgroundColor":287,"textColor":288,"text":289,"image":290,"link":294},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":291,"config":292},"ソースプロモカード",{"src":293},"/images/navigation/the-source-promo-card.svg",{"text":295,"config":296},"最新情報を読む",{"href":297,"dataGaName":298,"dataGaLocation":28},"/ja-jp/the-source/","the source",{"text":300,"config":301,"lists":303},"Company",{"dataNavLevelOne":302},"company",[304],{"items":305},[306,311,317,319,324,329,334,339,344,349,354],{"text":307,"config":308},"GitLabについて",{"href":309,"dataGaName":310,"dataGaLocation":28},"/ja-jp/company/","about",{"text":312,"config":313,"footerGa":316},"採用情報",{"href":314,"dataGaName":315,"dataGaLocation":28},"/jobs/","jobs",{"dataGaName":315},{"text":277,"config":318},{"href":279,"dataGaName":280,"dataGaLocation":28},{"text":320,"config":321},"経営陣",{"href":322,"dataGaName":323,"dataGaLocation":28},"/company/team/e-group/","leadership",{"text":325,"config":326},"チーム",{"href":327,"dataGaName":328,"dataGaLocation":28},"/company/team/","team",{"text":330,"config":331},"ハンドブック",{"href":332,"dataGaName":333,"dataGaLocation":28},"https://handbook.gitlab.com/","handbook",{"text":335,"config":336},"投資家向け情報",{"href":337,"dataGaName":338,"dataGaLocation":28},"https://ir.gitlab.com/","investor relations",{"text":340,"config":341},"トラストセンター",{"href":342,"dataGaName":343,"dataGaLocation":28},"/ja-jp/security/","trust center",{"text":345,"config":346},"AI Transparency Center",{"href":347,"dataGaName":348,"dataGaLocation":28},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":350,"config":351},"ニュースレター",{"href":352,"dataGaName":353,"dataGaLocation":28},"/company/contact/","newsletter",{"text":355,"config":356},"プレス",{"href":357,"dataGaName":358,"dataGaLocation":28},"/press/","press",{"text":35,"config":360,"lists":361},{"dataNavLevelOne":302},[362],{"items":363},[364,367,372],{"text":35,"config":365},{"href":37,"dataGaName":366,"dataGaLocation":28},"talk to sales",{"text":368,"config":369},"サポートを受ける",{"href":370,"dataGaName":371,"dataGaLocation":28},"/support/","get help",{"text":373,"config":374},"カスタマーポータル",{"href":375,"dataGaName":376,"dataGaLocation":28},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":378,"login":379,"suggestions":386},"閉じる",{"text":380,"link":381},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":382,"config":383},"GitLab.com",{"href":42,"dataGaName":384,"dataGaLocation":385},"search login","search",{"text":387,"default":388},"提案",[389,392,397,399,403,407],{"text":57,"config":390},{"href":62,"dataGaName":391,"dataGaLocation":385},"GitLab Duo (AI)",{"text":393,"config":394},"コード提案（AI）",{"href":395,"dataGaName":396,"dataGaLocation":385},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":109,"config":398},{"href":111,"dataGaName":109,"dataGaLocation":385},{"text":400,"config":401},"GitLab on AWS",{"href":402,"dataGaName":400,"dataGaLocation":385},"/ja-jp/partners/technology-partners/aws/",{"text":404,"config":405},"GitLab on Google Cloud",{"href":406,"dataGaName":404,"dataGaLocation":385},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":408,"config":409},"GitLabを選ぶ理由",{"href":70,"dataGaName":410,"dataGaLocation":385},"Why GitLab?",{"freeTrial":412,"mobileIcon":416,"desktopIcon":421},{"text":30,"config":413},{"href":414,"dataGaName":33,"dataGaLocation":415},"https://gitlab.com/-/trials/new/","nav",{"altText":417,"config":418},"GitLabアイコン",{"src":419,"dataGaName":420,"dataGaLocation":415},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":417,"config":422},{"src":423,"dataGaName":420,"dataGaLocation":415},"/images/brand/gitlab-logo-type.svg",{"freeTrial":425,"mobileIcon":429,"desktopIcon":431},{"text":426,"config":427},"GitLab Duoの詳細について",{"href":62,"dataGaName":428,"dataGaLocation":415},"gitlab duo",{"altText":417,"config":430},{"src":419,"dataGaName":420,"dataGaLocation":415},{"altText":417,"config":432},{"src":423,"dataGaName":420,"dataGaLocation":415},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":438,"_dir":22,"_draft":6,"_partial":6,"_locale":7,"title":439,"button":440,"config":445,"_id":447,"_type":14,"_source":16,"_file":448,"_stem":449,"_extension":19},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":441,"config":442},"ベータ版を試す",{"href":443,"dataGaName":444,"dataGaLocation":28},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":446},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":451,"_dir":22,"_draft":6,"_partial":6,"_locale":7,"data":452,"_id":656,"_type":14,"title":657,"_source":16,"_file":658,"_stem":659,"_extension":19},"/shared/ja-jp/main-footer",{"text":453,"source":454,"edit":460,"contribute":465,"config":470,"items":475,"minimal":648},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":455,"config":456},"ページのソースを表示",{"href":457,"dataGaName":458,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":461,"config":462},"このページを編集",{"href":463,"dataGaName":464,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":466,"config":467},"ご協力をお願いします",{"href":468,"dataGaName":469,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":471,"facebook":472,"youtube":473,"linkedin":474},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[476,499,553,586,620],{"title":46,"links":477,"subMenu":482},[478],{"text":479,"config":480},"DevSecOpsプラットフォーム",{"href":55,"dataGaName":481,"dataGaLocation":459},"devsecops platform",[483],{"title":189,"links":484},[485,489,494],{"text":486,"config":487},"プランの表示",{"href":191,"dataGaName":488,"dataGaLocation":459},"view plans",{"text":490,"config":491},"Premiumを選ぶ理由",{"href":492,"dataGaName":493,"dataGaLocation":459},"/ja-jp/pricing/premium/","why premium",{"text":495,"config":496},"Ultimateを選ぶ理由",{"href":497,"dataGaName":498,"dataGaLocation":459},"/ja-jp/pricing/ultimate/","why ultimate",{"title":500,"links":501},"ソリューション",[502,507,510,512,517,522,526,529,532,537,539,541,543,548],{"text":503,"config":504},"デジタルトランスフォーメーション",{"href":505,"dataGaName":506,"dataGaLocation":459},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":508,"config":509},"セキュリティとコンプライアンス",{"href":137,"dataGaName":138,"dataGaLocation":459},{"text":122,"config":511},{"href":105,"dataGaName":106,"dataGaLocation":459},{"text":513,"config":514},"アジャイル開発",{"href":515,"dataGaName":516,"dataGaLocation":459},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":518,"config":519},"クラウドトランスフォーメーション",{"href":520,"dataGaName":521,"dataGaLocation":459},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":523,"config":524},"SCM",{"href":119,"dataGaName":525,"dataGaLocation":459},"source code management",{"text":109,"config":527},{"href":111,"dataGaName":528,"dataGaLocation":459},"continuous integration & delivery",{"text":161,"config":530},{"href":163,"dataGaName":531,"dataGaLocation":459},"value stream management",{"text":533,"config":534},"GitOps",{"href":535,"dataGaName":536,"dataGaLocation":459},"/ja-jp/solutions/gitops/","gitops",{"text":174,"config":538},{"href":176,"dataGaName":177,"dataGaLocation":459},{"text":179,"config":540},{"href":181,"dataGaName":182,"dataGaLocation":459},{"text":184,"config":542},{"href":186,"dataGaName":187,"dataGaLocation":459},{"text":544,"config":545},"教育",{"href":546,"dataGaName":547,"dataGaLocation":459},"/ja-jp/solutions/education/","education",{"text":549,"config":550},"金融サービス",{"href":551,"dataGaName":552,"dataGaLocation":459},"/ja-jp/solutions/finance/","financial services",{"title":194,"links":554},[555,557,559,561,564,566,570,572,574,576,578,580,582,584],{"text":206,"config":556},{"href":208,"dataGaName":209,"dataGaLocation":459},{"text":211,"config":558},{"href":213,"dataGaName":214,"dataGaLocation":459},{"text":216,"config":560},{"href":218,"dataGaName":219,"dataGaLocation":459},{"text":221,"config":562},{"href":223,"dataGaName":563,"dataGaLocation":459},"docs",{"text":244,"config":565},{"href":246,"dataGaName":247},{"text":567,"config":568},"お客様の成功事例",{"href":569,"dataGaLocation":459},"/customers/",{"text":239,"config":571},{"href":241,"dataGaName":242,"dataGaLocation":459},{"text":249,"config":573},{"href":251,"dataGaName":252,"dataGaLocation":459},{"text":262,"config":575},{"href":264,"dataGaName":265,"dataGaLocation":459},{"text":254,"config":577},{"href":256,"dataGaName":257,"dataGaLocation":459},{"text":267,"config":579},{"href":269,"dataGaName":270,"dataGaLocation":459},{"text":272,"config":581},{"href":274,"dataGaName":275,"dataGaLocation":459},{"text":277,"config":583},{"href":279,"dataGaName":280,"dataGaLocation":459},{"text":282,"config":585},{"href":284,"dataGaName":285,"dataGaLocation":459},{"title":300,"links":587},[588,590,592,594,596,598,600,604,609,611,613,615],{"text":307,"config":589},{"href":309,"dataGaName":302,"dataGaLocation":459},{"text":312,"config":591},{"href":314,"dataGaName":315,"dataGaLocation":459},{"text":320,"config":593},{"href":322,"dataGaName":323,"dataGaLocation":459},{"text":325,"config":595},{"href":327,"dataGaName":328,"dataGaLocation":459},{"text":330,"config":597},{"href":332,"dataGaName":333,"dataGaLocation":459},{"text":335,"config":599},{"href":337,"dataGaName":338,"dataGaLocation":459},{"text":601,"config":602},"Sustainability",{"href":603,"dataGaName":601,"dataGaLocation":459},"/sustainability/",{"text":605,"config":606},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":607,"dataGaName":608,"dataGaLocation":459},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":340,"config":610},{"href":342,"dataGaName":343,"dataGaLocation":459},{"text":350,"config":612},{"href":352,"dataGaName":353,"dataGaLocation":459},{"text":355,"config":614},{"href":357,"dataGaName":358,"dataGaLocation":459},{"text":616,"config":617},"現代奴隷制の透明性に関する声明",{"href":618,"dataGaName":619,"dataGaLocation":459},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":35,"links":621},[622,624,626,628,633,638,643],{"text":35,"config":623},{"href":37,"dataGaName":38,"dataGaLocation":459},{"text":368,"config":625},{"href":370,"dataGaName":371,"dataGaLocation":459},{"text":373,"config":627},{"href":375,"dataGaName":376,"dataGaLocation":459},{"text":629,"config":630},"ステータス",{"href":631,"dataGaName":632,"dataGaLocation":459},"https://status.gitlab.com/","status",{"text":634,"config":635},"利用規約",{"href":636,"dataGaName":637,"dataGaLocation":459},"/terms/","terms of use",{"text":639,"config":640},"プライバシーに関する声明",{"href":641,"dataGaName":642,"dataGaLocation":459},"/ja-jp/privacy/","privacy statement",{"text":644,"config":645},"Cookieの設定",{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":91},"cookie preferences","ot-sdk-btn",{"items":649},[650,652,654],{"text":634,"config":651},{"href":636,"dataGaName":637,"dataGaLocation":459},{"text":639,"config":653},{"href":641,"dataGaName":642,"dataGaLocation":459},{"text":644,"config":655},{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":91},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",{"allPosts":661,"featuredPost":1951,"totalPagesCount":1970,"initialPosts":1971},[662,690,715,737,759,779,799,821,843,864,886,908,930,949,969,989,1009,1031,1051,1069,1089,1109,1129,1149,1169,1189,1209,1229,1249,1268,1288,1308,1326,1346,1366,1385,1405,1423,1442,1463,1484,1505,1524,1542,1562,1582,1602,1620,1640,1661,1682,1700,1719,1738,1754,1773,1792,1812,1832,1852,1876,1896,1913,1932],{"_path":663,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":664,"content":672,"config":683,"_id":686,"_type":14,"title":687,"_source":16,"_file":688,"_stem":689,"_extension":19},"/ja-jp/blog/3-surprising-findings-from-our-2024-global-devsecops-survey",{"title":665,"description":666,"ogTitle":665,"ogDescription":666,"noIndex":6,"ogImage":667,"ogUrl":668,"ogSiteName":669,"ogType":670,"canonicalUrls":668,"schema":671},"2024年グローバルDevSecOps調査で明らかになった、3つの注目すべき結果","今年の調査では、AIが台頭する中、組織における投資の優先分野が変化し、AIによりチームの働き方にどのような影響が生じているかが明らかになりました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1751993603/Blog/Hero%20Images/fy25-global-devsecops-report-blog-image.png","https://about.gitlab.com/blog/3-surprising-findings-from-our-2024-global-devsecops-survey","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"2024年グローバルDevSecOps調査で明らかになった、3つの注目すべき結果\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2024-06-25\",\n      }",{"title":665,"description":666,"authors":673,"heroImage":667,"date":675,"body":676,"category":677,"tags":678},[674],"Dave Steer","2024-06-25","[世界各地のDevSecOpsの専門家5,000名を対象に行われた今年の調査](https://about.gitlab.com/ja-jp/developer-survey/)は、組織がAIなどの新しい技術を導入する中、投資の優先分野を見直していること、またデベロッパーエクスペリエンスを向上させる方法をより入念に検討していることが示唆される結果となりました。この記事では、今年の調査で明らかになったさらに驚くべき3つの結果を紹介し、それらが2024年以降、ソフトウェアの開発、オペレーション、セキュリティを担当するチームにとって何を意味するのかを見ていきます。\n\n## 1. AIにより煩雑なツールチェーンの欠点が浮き彫りに\n\n今年の調査では、AIが既存のツールチェーンに対するDevSecOpsチームの意識にどのような影響を与える可能性があるかについて、特に注目しました。その結果、やや意外な事実が判明しました。AIによりソフトウェア開発を簡素化できることはご存知のとおりですが、調査の結果、現在AIを使用している回答者は、AIを使用していない回答者よりもツールチェーンに不満を感じている可能性があることが判明しました。\n\n現在AIをソフトウェア開発に使用している組織の回答者の4分の3近く（74%）が、またAIを使用していない組織の回答者の57%がツールチェーンを統合したいと回答しています。ただし、2つのグループ間で回答者が使用していると報告したツールの数に大きな差はありませんでした。つまり、現在AIを使用している回答者は、より多くのツールを使用しているわけではないものの、ツールチェーンを統合する必要性を強く感じていました。\n\nAIの使用が統合への欲求を加速させるのは一体なぜでしょうか？1つ考えられる理由として、さまざまなポイントソリューションで異なるAIモデルが実行されたために、ソフトウェア開発ライフサイクルにおいて手に負えない（かつ測定不能な）無秩序の状態が生じ、組織の煩雑で非生産的な既存のツールチェーンの欠点が浮き彫りになったことが挙げられます。組織がAIへの投資を増やすにつれ、乱立するツールチェーンの統合・簡素化することで効率性を向上させる必要性が高まります。ツールチェーンの規模が小さいほどチームがAIから得られる価値は大きくなり、ソフトウェア開発ライフサイクル全体でAIの統合が容易になります。\n\n今年のソフトウェア開発における最大の課題は、「（AIツールを含む）ツールの数とコンテキストスイッチ（頭の切り替え）が多すぎる」ことだと答えた回答者がいる一方、別の回答者は「全社的にさまざまなツールが断片化されていて複雑な状況」 であることだと述べています。\n\nさらに、別の回答者は次のように述べ、AIによってツールチェーンの課題を解決できる可能性を強調しました。「AIは急成長しており、AIを統合することによって既存のツールチェーンは大幅に改善できます。チームメンバーをさらにトレーニングし、日々の業務で効果的にAIを活用する方法を学んでもらう必要があります」\n\n## 2. AIによりデベロッパーのオンボーディング時間は短縮されるものの、依然として懸念を抱く組織\n\n今年の調査では、チームで使用されるツール数の増加に伴い、デベロッパーのオンボーディング（新しく組織やチームに加入したメンバーが活躍できるように体制を整えること）にかかる時間も大幅に増加していることがわかりました。今年は70%の回答者が自社のデベロッパーのオンボーディングと生産性向上には1か月以上かかると述べており、2023年の66%から増加しました。\n\nAIを活用した[チャットアシスタント](https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available/)や[コード提案](https://about.gitlab.com/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo/)を使用すれば、デベロッパーのオンボーディング時間を短縮できることは当然ですが、今回の調査では驚くべき効果が明らかになりました。ソフトウェア開発にAIを使用していると答えた回答者は、デベロッパーのオンボーディングには通常1か月未満しかかからないと答える傾向がより強く見られました。\n\nAIがデベロッパーエクスペリエンスにもたらすメリットは明白であるものの、回答者はAIの急速な採用に関して、いくつか懸念を表明しました。回答者の半数以上（55%）が、ソフトウェア開発ライフサイクルへのAIの導入にはリスクが伴うと述べており、49%は今後5年以内に現在の職務をAIに取られることを危惧していると答えています。\n\n業界リサーチ会社であるRedMonk社のシニアアナリスト、Rachel Stephens氏は、これらの調査結果について次のような見解を述べています。「AIをどのように感じるかには、心理的安全性とチームの文化といった要素が影響を及ぼします。人々はセキュリティやAIによるプライバシーへの影響を心配している可能性がある一方、準備できていないという意識は、AIにより自分の生業に個人的なリスクが生じるという考えが根底にあるのかもしれません」\n\nGitLabでは、AIの価値は、繰り返しの作業を自動化し、外からは見えない部分を最適化することで、チームメンバーが高度な問題解決、イノベーション、価値創造に集中できるようになることだと考えています。AIは、ソフトウェア開発における人的要素を置き換えるわけでなく、補完するものです。ある回答者は、このことを次のように簡潔に言い表しました。「私たちは、AIに頼りながら創造力を育み維持していくという課題に直面しています。あくまでAIは、クリエイティブな人たちが生産性の妨げとなる不要なものを排除するために使用するツールの1つであることを忘れてはなりません。人間の創造力に取って代わるものではないのです」\n\n## 3. クラウドはあって当たり前の存在に\n\nGitLabが実施した調査では、クラウドコンピューティングは過去数年間一貫してIT投資分野の上位にランクインしています。2022年には、クラウドコンピューティングはセキュリティに次いで2位にランクインし、2023年は1位という結果になりました。これは、組織に対する[デジタルトランスフォーメーション](https://about.gitlab.com/blog/lockheed-martin-aws-gitlab/)へのプレッシャーが高まっている現状を考えると、当然のことです。\n\nしかしながら、2024年にはクラウドコンピューティングは大幅に順位を落とし、IT投資分野で5位という結果となりました。その一方で、クラウドが引き続き重要な要素であることは明らかです。実際に、アプリケーションの50%以上をクラウドで実行していると答えた回答者数は大幅に増加しました。これは、クラウドが多くの企業にとって依然として業務や使命の達成において不可欠である一方、その存在は「あって当たり前」のものとして、技術チームとITリーダーの優先事項にその他の新しい要素が追加され続けていることを示唆しています。\n\nRedMonk社のStephens氏は、次のように述べています。「通常、資金面で制約のある財務環境にあることから、テクノロジーに投資する際には優先順位を決める必要があります。そのため、組織はデジタルトランスフォーメーションに関する予算の一部をAIなどのテクノロジーに再配分することがあっても、そのすべてが使われるわけではないのです。」\n\n## 今年のレポートを確認しよう\n\nAIやセキュリティ、デベロッパーエクスペリエンスなど、さまざまなインサイトを得られる[2024年グローバルDevSecOps調査](https://about.gitlab.com/ja-jp/developer-survey/)の全文をぜひご覧ください。","insights",[679,680,9,681,682],"developer survey","DevSecOps","security","news",{"slug":684,"featured":6,"template":685},"3-surprising-findings-from-our-2024-global-devsecops-survey","BlogPost","content:ja-jp:blog:3-surprising-findings-from-our-2024-global-devsecops-survey.yml","3 Surprising Findings From Our 2024 Global Devsecops Survey","ja-jp/blog/3-surprising-findings-from-our-2024-global-devsecops-survey.yml","ja-jp/blog/3-surprising-findings-from-our-2024-global-devsecops-survey",{"_path":691,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":692,"content":695,"config":709,"_id":711,"_type":14,"title":712,"_source":16,"_file":713,"_stem":714,"_extension":19},"/ja-jp/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q",{"noIndex":6,"title":693,"description":694},"GitLab DuoとAmazon Qでコードレビューを加速","AI搭載エージェントを使用して、コードレビューを最適化しましょう。自動的にマージリクエストを分析し、バグや可読性、コーディング標準に関する包括的なフィードバックを得られます。",{"heroImage":696,"body":697,"authors":698,"updatedDate":700,"date":701,"title":693,"tags":702,"description":694,"category":10},"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/)",[699],"Cesar Saavedra","2025-06-24","2025-06-02",[9,703,704,705,706,285,707,708],"DevSecOps platform","code review","product","features","AWS","tutorial",{"featured":91,"template":685,"slug":710},"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":716,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":717,"content":723,"config":731,"_id":733,"_type":14,"title":734,"_source":16,"_file":735,"_stem":736,"_extension":19},"/ja-jp/blog/agentic-ai-guides-and-resources",{"ogTitle":718,"schema":719,"ogImage":720,"ogDescription":721,"ogSiteName":669,"noIndex":6,"ogType":670,"ogUrl":722,"title":718,"canonicalUrls":722,"description":721},"エージェント型AIに関するガイドとリソース","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"自律型AIに関するガイドとリソース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab\"}],\n        \"datePublished\": \"2025-05-07\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658912/Blog/Hero%20Images/blog-image-template-1800x945__20_.png","エージェント型AIの概要・仕組みからDevSecOps環境向上の理由、導入ベストプラクティスまで解説します。","https://about.gitlab.com/blog/agentic-ai-guides-and-resources",{"heroImage":720,"body":724,"authors":725,"updatedDate":727,"date":728,"title":718,"tags":729,"description":730,"category":10},"## エージェント型AIの定義\n\nエージェント型AIは、高度な言語モデルや自然言語処理を活用して、自律的に行動できる人工知能です。従来の生成AIツールが常に人間からの指示を必要とするのに対し、エージェント型AIはリクエストを理解して意思決定を行い、目標達成に向けて複数の段階から成る計画を実行できます。複雑なタスクを管理可能な手順に分解し、課題に直面した際には適応学習を通じてアプローチを柔軟に変えることができます。\n\n[エージェント型AIの詳細はこちら](https://about.gitlab.com/ja-jp/topics/agentic-ai/)\n\n## エージェントAIに関するインサイト\n\n* [GitLab Duo Agent Platform パブリックベータ版：次世代AI統合機能とその他](https://about.gitlab.com/the-source/ai/emerging-agentic-ai-trends-reshaping-software-development/)：デベロッパーとAIエージェント間の非同期コラボレーションを実現するために設計されたDevSecOps統合プラットフォームをご紹介します。\n* [GitLab Duo Agent Platform：次世代DevSecOpsプラットフォームの可能性](https://about.gitlab.com/ja-jp/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/)：GitLab Duo Agent Platformは、人間とAIエージェントによる共同作業を実現するDevSecOps統合プラットフォームです。ソフトウェア開発の各段階でエージェント型AIを活用し、効果的な連携を促進します。\n* [感覚的コーディングからエージェント型AIへ：技術リーダー向けロードマップ](https://about.gitlab.com/ja-jp/the-source/ai/ai-trends-for-2025-agentic-ai-self-hosted-models-and-more/)：感覚的コーディングとエージェント型AIを開発プロセスに取り入れ、コード品質とセキュリティを確保しながら生産性を向上させる実践的な方法を紹介します。\n* [エージェント型AIが切り拓くソフトウェア開発の新潮流](https://about.gitlab.com/the-source/ai/how-agentic-ai-unlocks-platform-engineering-potential/)：エージェント型AIによって、従来の個人作業中心のコーディングが、セキュリティを維持しながら生産性を飛躍的に高めるスマートなワークフローへと進化する過程を探ります。\n* [エージェント型AIで開発者の力を最大限に引き出す](https://about.gitlab.com/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/)：エージェント型AIがソフトウェア開発を変革する様子を解説します。コード補完の枠を超えて、複雑なタスクに自ら取り組むAIパートナーの実現について探ります。\n* [エージェント型AI、オンプレミス型モデルなど：2025年のAI動向](https://about.gitlab.com/the-source/ai/ai-trends-for-2025-agentic-ai-self-hosted-models-and-more/)：ソフトウェア開発分野における重要なAI動向をご紹介。オンプレミス環境でのモデル運用から、学習・適応機能を持つAIエージェントまで、最新トレンドを網羅します。\n* [エージェント型AIでプラットフォームエンジニアリングを飛躍させる](https://about.gitlab.com/the-source/ai/how-agentic-ai-unlocks-platform-engineering-potential/)：複雑なワークフローの自動化と標準化の拡張により、エージェント型AIがプラットフォームエンジニアリングの可能性をどのように広げるかを解説します。\n\n## エージェント型AIエコシステム\n\n* [AI駆動型コード解析：コードセキュリティの新領域](https://about.gitlab.com/topics/agentic-ai/ai-code-analysis/)\n* [DevOps自動化とAIエージェント](https://about.gitlab.com/topics/agentic-ai/devops-automation-ai-agents/)\n* [AI強化型ソフトウェア開発：DevOps向けエージェント型AI](https://about.gitlab.com/topics/agentic-ai/ai-augmented-software-development/)\n\n## エージェント型AIを導入するためのベストプラクティス\n\n* [AIエージェント向けに効果的なガードレールを実装する](https://about.gitlab.com/the-source/ai/implementing-effective-guardrails-for-ai-agents/)：コンプライアンス制御からインフラ保護、ユーザーアクセス管理まで、DevSecOps環境においてAIエージェント向けに実装すべきセキュリティガードレールをご紹介します。\n\n## GitLabが提供するエージェント型AI機能\n\n### GitLab Duo with Amazon Q\n\n* [GitLab Duo with Amazon Q：AWS向けに最適化されたエージェント型AIの一般提供を開始](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)：AIを搭載した包括的なDevSecOpsプラットフォームと業界最高水準のクラウドコンピューティング機能の組み合わせにより、開発サイクルの高速化、自動化の推進、そしてコード品質の向上を可能にします。\n* [DevSecOps + エージェント型AI：AWS上のGitLab Self-Managed Ultimateで利用可能に](https://about.gitlab.com/blog/devsecops-agentic-ai-now-on-gitlab-self-managed-ultimate-on-aws/)：AWS上のGitLab Self-Managed Ultimateインスタンスで、DevSecOps向けに強化されたAI搭載エージェントを使い始めましょう。GitLab DuoとAmazon Qの両方のメリットを得られます。\n* [GitLab Duo with Amazon Qパートナーページ](https://about.gitlab.com/ja-jp/partners/technology-partners/aws/)\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#### ガイド付きツアー\n\n以下の画像をクリックすると、GitLab Duo with Amazon Qのツアーが開始されます。\n\n[![GitLab Duo with Amazon Qのインタラクティブなツアー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673568/Blog/Content%20Images/Screenshot_2025-05-07_at_7.24.45_AM.png)](https://gitlab.navattic.com/duo-with-q)\n\n#### GitLab Duo with Amazon Qのチュートリアル\n\n* [AI駆動のテスト生成でアプリケーション品質を向上](https://about.gitlab.com/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/)：GitLab Duo with Amazon Q が包括的な単体テストを自動生成してQAプロセスをどのように改善するかをご紹介します。\n* [GitLab Duo + Amazon Q：アイデアを数分でコードに変換](https://about.gitlab.com/ja-jp/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/)：新しいGitLab Duo with Amazon Qの統合機能がイシューの説明を分析し、実装可能なコードソリューションを自動生成して、開発ワークフローを加速します。\n* [GitLab Duo and Amazon Qでコードレビューを加速](https://about.gitlab.com/ja-jp/blog/accelerate-code-reviews-with-gitlab-duo-and-amazon-q/)：AI駆動のエージェントを使用してマージリクエストを自動分析し、バグ、可読性、コーディング標準について包括的なフィードバックを提供し、コードレビューを最適化します。\n* [コードレビューを高速化：AIにフィードバックの実装を任せる](https://about.gitlab.com/ja-jp/blog/speed-up-code-reviews-let-ai-handle-the-feedback-implementation/)： GitLab Duo with Amazon QがAIを通じてコードレビューフィードバックの実装をどのように自動化し、時間のかかる手動プロセスを効率的なワークフローに変革するかをご紹介します。\n\n[](https://about.gitlab.com/ja-jp/gitlab-duo/)\n\n### GitLab Duo Agent Platform\n\n* [GitLab Duo Chatがエージェント型AIで生まれ変わる](https://about.gitlab.com/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover/)：現在実験的リリース段階にある新しいDuo Chat機能は、デベロッパーのプロジェクトへのオンボーディング、割り当ての理解、変更の実装などをサポートします。GitLab Duo Agent Platformの実際の動作をご覧ください。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1095679084?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\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Agent Platform Demo Clip\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n#### GitLab Agent Platform（およびDuo Workflow）のチュートリアルとユースケース\n\n* [GitLab Duo Agent Platformで学習を加速する](https://about.gitlab.com/blog/accelerate-learning-with-gitlab-duo-agent-platform/)：エージェント型AIがわずか数時間ではなく数分で包括的なgRPCドキュメントの生成をどのように支援したかを学びましょう。\n* [GitLabでGoogle Cloudへ高速かつ安全なAIエージェントをデプロイする](https://about.gitlab.com/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab/)\n* [GitLab Duo Workflowを使ってJavaScriptコードをTypeScriptにリファクタリングする](https://about.gitlab.com/blog/refactoring-javascript-to-typescript-with-gitlab-duo-workflow/)\n* [面倒なコーディング作業をGitLab Duo Workflowで自動化](https://about.gitlab.com/blog/automate-tedious-coding-tasks-with-gitlab-duo-workflow/)：エージェント型AIを導入すると、これまで反復作業に費やしていた時間が削減されるため、革新的なソリューションの開発や次の重要な製品のリリースに注力できるようになります。\n* [GitLab Duo Workflowを使用してアプリケーションの品質保証を強化](https://about.gitlab.com/ja-jp/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance/)：エージェント型AIを使用してJavaアプリケーションに単体テストを追加する方法をステップ別にご説明します（チュートリアル動画あり）。\n* [GitLab Duo Workflowを使って複雑な課題を解決](https://about.gitlab.com/blog/solving-complex-challenges-with-gitlab-duo-workflow/)：GitLabカスタマーサクセスマネジメントチームが、パッケージレジストリにおけるHelmチャート制限への対処など、実際の問題解決においてどのようにエージェント型AIを活用しているかをご紹介します。\n* [Web UIでGitLab Duo Agentic Chatを始める](https://about.gitlab.com/blog/get-started-with-gitlab-duo-agentic-chat-in-the-web-ui/)：複雑な問題を分解し、複数のソースにわたって操作を実行することでタスクを自動化する新しいGitLab Duo AI機能について学びます。\n* [デベロッパーのより高い効率を実現するGitLab Duo Agentic Chatのカスタムルール](https://about.gitlab.com/blog/custom-rules-duo-agentic-chat-deep-dive/)：AIがコードベースを理解し、規約に従い、最小限のレビューサイクルで本番環境対応のコードを生成する方法をご紹介します。\n\n## **GitLab Universityでさらに詳しく学ぶ**\n\n* [GitLab Duo入門コース](https://university.gitlab.com/pages/ai)\n* [GitLab Duo Enterpriseを体系的に学ぶコース](https://university.gitlab.com/learning-paths/gitlab-duo-enterprise-learning-path)\n\n## その他のAI関連リソース\n\n* [2024 Global DevSecOps Survey: Navigating AI maturity in DevSecOps](https://about.gitlab.com/ja-jp/developer-survey/2024/ai/)\n* [DevOpsにおけるAIの役割](https://about.gitlab.com/ja-jp/topics/devops/the-role-of-ai-in-devops/)\n* [GitLabによるAIと機械学習関連の最新記事\n  ](https://about.gitlab.com/ja-jp/blog/categories/ai-ml/)\n* [GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)",[726],"GitLab","2025-09-01","2025-05-07",[9,703,708],"概要から仕組み、DevSecOps環境をレベルアップする理由、導入時のベストプラクティスまで、エージェント型AIについて押さえておくべきポイントをご紹介します。",{"slug":732,"featured":91,"template":685},"agentic-ai-guides-and-resources","content:ja-jp:blog:agentic-ai-guides-and-resources.yml","Agentic Ai Guides And Resources","ja-jp/blog/agentic-ai-guides-and-resources.yml","ja-jp/blog/agentic-ai-guides-and-resources",{"_path":738,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":739,"content":745,"config":753,"_id":755,"_type":14,"title":756,"_source":16,"_file":757,"_stem":758,"_extension":19},"/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests",{"title":740,"description":741,"ogTitle":740,"ogDescription":741,"noIndex":6,"ogImage":742,"ogUrl":743,"ogSiteName":669,"ogType":670,"canonicalUrls":743,"schema":744},"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","\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":740,"description":741,"authors":746,"heroImage":742,"date":748,"body":749,"category":10,"tags":750,"updatedDate":752},[747],"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",[9,708,751,703,706],"testing","2025-04-02",{"slug":754,"featured":6,"template":685},"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":760,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":761,"content":767,"config":773,"_id":775,"_type":14,"title":776,"_source":16,"_file":777,"_stem":778,"_extension":19},"/ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing",{"title":762,"description":763,"ogTitle":762,"ogDescription":763,"noIndex":6,"ogImage":764,"ogUrl":765,"ogSiteName":669,"ogType":670,"canonicalUrls":765,"schema":766},"GitLab Duoを使用した自動化シリーズパート2：複雑なテスト","コードテストが標準に準拠していることを確認するなど、GitLabチームが、GitLab DuoのAI機能を使用して、通常より複雑なテスト状況にどのように対処したかをご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099243/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%284%29_3LZkiDjHLjhqEkvOvBsVKp_1750099243011.png","https://about.gitlab.com/blog/automating-with-gitlab-duo-part-2-complex-testing","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duoを使用した自動化シリーズパート2：複雑なテスト\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Byron Boots\"}],\n        \"datePublished\": \"2024-12-10\",\n      }",{"title":762,"description":763,"authors":768,"heroImage":764,"date":769,"body":770,"category":10,"tags":771,"updatedDate":772},[747],"2024-12-10","[GitLab Duoを使用したテスト生成](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-1-generating-tests/)に関する3部構成シリーズの最初の記事では、コードテストを自動化する方法に焦点を当てました。この記事では、テスト生成にAIを使用する中で学んだ教訓をご紹介します。\n\n## 直面した状況とその対処方法\n\n全体的に見て、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を使用してコードテストを生成した結果には満足しています。他の言語生成の場合と同様に、インポートパスを修正したり、データセット内の内容を編集したりするなど、微調整が必要な場合もありました。より複雑なケースでは、AIが提示したソリューションでは、多くの場合、コンテキストが欠けていることを念頭に置いておく必要がありました。それでは、GitLab Duoを使用して、より複雑なテスト状況にどのように対処したかを説明します。\n\n### 既存のテストケースの更新\n\nソフトウェア製品の開発時にソフトウェア製品の開発時にはよくあることですが、既存のテストの更新が必要になる状況が発生しました。私たちは、一般的な問題に対してテスト機能全体を手動で調整するのではなく、VS CodeのGitLab Duo Chatウィンドウを最大限に活用しました。たとえば、テストをリファクタリングするために、「Please update the provided tests to use unittest rather than pytest. （日本語：提供されたテストをpytestではなくunittestを使用するように更新してください。）」とChatプロンプトを入力してから、GitLab Duoに更新してもらいたいテストを貼り付けました。\n\n![テスト生成の自動化](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image5_aHR0cHM6_1750099252303.png)\n\n\u003Cbr>\u003C/br>\n\n![pytestではなくunittestの使用をリクエストするChatプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099252/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750099252304.png)\n\n**注**：GitLab Duoの推奨事項をコードにコピー＆ペーストしています。\n\n### レガシーコードのテスト作成\n\n正常に動作しているとわかっていたレガシーコードのテストを作成するのも、困難な問題でした。こういった状況では、失敗したテストと一緒にエラースニペットを提供し、GitLab Duoに新しいテストを作成するようリクエストすると非常に便利でした。ターミナルウィンドウから記録された失敗とエラーをすべてコピーしてChatに貼り付け、「Please explain and fix this failing test.（日本語：この失敗しているテストを説明して修正してください。）」といったプロンプトを入力してリクエストしたところ、テストで発生した問題の概要と、問題に対処した新しいテストが生成されました。新しいテストでも失敗が何度か特定されたため、その後、複数回のリファクタリングが必要となる場合がありました。しかし、そういった場合でも、GitLab Duoのおかげで、さまざまなリファクタリングされたソリューションを迅速かつ効率的に得られたため、チーム全体とデベロッパーの効率性が向上する結果となりました。\n\n### 複雑なコードや抽象化されたコードの処理\n\nその他の例では、コードのモジュール化や複雑さにより、GitLab Duoの結果にばらつきが生じました。たとえば、GitLab Duoは、テストアプローチの違い（モックの使い方や、どのオブジェクトをモッキングするかなど）によって、成功するテストと失敗するテストを次々と生成することがありました。これに対処するため、GitLab Duoに成功したテストの例を提供し、一貫性を維持するために成功したテストのスタイルに合わせて個々のテストを1つずつ変更するようリクエストしました。また、同様のオブジェクトやタスクのテストがうまく行っているファイルをGitLab Duoに提供して、構造をミラーリングできるようにしました。\n\n### 生成されたコードが当社の基準に準拠していることを確認\n\nPythonモジュールの開発中、GitLab Duoを活用して、モックを用いた多くのテストを生成しましたが、多くの場合、特に命名標準化に関するリファクタリングが必要となりました。こうしたケースでは、GitLab Duo Chatを活用し、どの特定のテストコンポーネントを更新するかといった手順を指示すれば、テストをリファクタリングできました。GitLab Duoにこれらの変更を行うよう指示するほうが、今まで行っていたように、テストを個別にリファクタリングするよりもはるかに高速でした。\n\n### 対象外のテストケースへの対処\n\nGitLab Duoを使用することで、当社チームが今までは検討していなかった他のテストケースのテストを生成できたため、カバレッジが向上しました。幸いなことに、GitLab Duoを使用して、これらのエッジケースに迅速かつ効率的に対処し、テストカバレッジを拡大できました。これは、当社チームにとって、開発速度の向上、および堅牢な製品開発につながる重要な付加価値となりました。\n\n## 学んだ教訓\n\nGitLab Duoをうまく活用して成功を収める中で学んだ、重要な教訓をいくつかご紹介します。\n\n* **迅速で効率的な開発とイテレーション** - 自動テストの生成作業におけるGitLab Duoの役割は、チームの開発プロセス内での重要なアクセラレーターとなり、変更をより迅速かつ自信を持って行うことができました。\n* **適切なプロンプトを使用することの重要性** - GitLab Duoを当社のユースケースで使用する際には、機械学習の最適化における重要なトピックであるプロンプトエンジニアリングに触れました。理想的な回答を得るためには、いくつかのキーワードを使用して質問を修正する必要があることもわかりました。\n* **基盤となるフレームワークとコードを理解する必要性** - テストとして使用される場合であっても、製品に組み込まれるAI生成コードに関しては、どのように機能するかを理解して、適切にデバッグし、情報に基づいた変更をリクエストできるようにすることが重要です。\n* **望ましい最終的な状態と標準を把握しておく必要性** - AIを使用せずに開発する際に、フォーマットやライブラリの使用に関するコーディング標準に従うのと同様、AIを使用する際も意図する結果がどのようなものであるか、どのような標準に準拠すべきであるかというビジョンを持つことが重要です。GitLab Duoは、コード標準を理解するためにコンテキストを必要とします。そのため、GitLab Duoを使用するチームメンバーは、品質やその他の期待が確実に満たされるように、出力を適切に監視することが重要です。\n* **GitLab Duoはすべてのテストの代わりとなるものではない** - 自動化されたテストを生成する際は、GitLab Duoを多用していますが、他のテストや人間による監視に代わるものではありません。機能テスト、統合テストなどは、QAプロセスとソフトウェア開発ライフサイクル全体において以前として重要な役割を果たします。\n\nこのシリーズの次回の記事では、[チームの自動テストプロセスにおけるGitLab Duoの影響を検証するために実行したテスト](https://about.gitlab.com/ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing/)と、これまでに達成した素晴らしい結果について説明します。\n\n\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n",[9,751,703],"2025-05-02",{"slug":774,"featured":6,"template":685},"automating-with-gitlab-duo-part-2-complex-testing","content:ja-jp:blog:automating-with-gitlab-duo-part-2-complex-testing.yml","Automating With Gitlab Duo Part 2 Complex Testing","ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing.yml","ja-jp/blog/automating-with-gitlab-duo-part-2-complex-testing",{"_path":780,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":781,"content":787,"config":793,"_id":795,"_type":14,"title":796,"_source":16,"_file":797,"_stem":798,"_extension":19},"/ja-jp/blog/automating-with-gitlab-duo-part-3-validating-testing",{"title":782,"description":783,"ogTitle":782,"ogDescription":783,"noIndex":6,"ogImage":784,"ogUrl":785,"ogSiteName":669,"ogType":670,"canonicalUrls":785,"schema":786},"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":782,"description":783,"authors":788,"heroImage":784,"date":789,"body":790,"category":10,"tags":791,"updatedDate":792},[747],"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",[9,751,703,706],"2025-05-13",{"slug":794,"featured":6,"template":685},"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":800,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":801,"content":805,"config":815,"_id":817,"_type":14,"title":818,"_source":16,"_file":819,"_stem":820,"_extension":19},"/ja-jp/blog/claude-code-gitlab-ai-development-workflow",{"noIndex":6,"title":802,"description":803,"ogImage":804},"エージェンティックAI Claude CodeとGitLab CLIの開発フロー","Claude CodeとGLabを組み合わせてローカル環境から効率的にIssue作成・MR操作・レビュー依頼などを自動化し、生成AIのコード補助を活かした開発フローを構築する方法を紹介","https://res.cloudinary.com/about-gitlab-com/image/upload/v1751953181/rtejicnkhd9oslaxsoo5.jpg",{"heroImage":804,"category":10,"body":806,"date":807,"authors":808,"description":810,"title":811,"tags":812},"## 目次\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",[809],"Naoharu Sasaki","エージェント型AIであるClaude CodeとGitLab CLIツール「GLab」を組み合わせて、ローカル環境から効率的にIssue作成・MR操作・レビュー依頼などを自動化し、生成AIによるコード補助を活かした実践的な開発フローを構築する方法をご紹介します。","Claude Code × GitLab：AI活用を加速する、エージェンティックAIとGitLab CLIによる効率的なソフトウェア開発フロー",[9,109,704,813,680,706,533,234,681,708,814],"collaboration","workflow",{"featured":91,"template":685,"slug":816},"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":822,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":823,"content":829,"config":837,"_id":839,"_type":14,"title":840,"_source":16,"_file":841,"_stem":842,"_extension":19},"/ja-jp/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci",{"title":824,"description":825,"ogTitle":824,"ogDescription":825,"noIndex":6,"ogImage":826,"ogUrl":827,"ogSiteName":669,"ogType":670,"canonicalUrls":827,"schema":828},"AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】 (1)","AI搭載のDevSecOpsワークフローにGitLab Duoチャットを統合するためのヒントとコツをご覧ください。さらに、最高の結果を得るためにチャットプロンプトを絞り込む方法に関する専門家のアドバイスもご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659684/Blog/Hero%20Images/AdobeStock_479904468__1_.jpg","https://about.gitlab.com/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】 (1)\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Fatima Sarah Khalid\"}],\n        \"datePublished\": \"2024-07-02\",\n      }",{"title":824,"description":825,"authors":830,"heroImage":826,"date":832,"body":833,"category":834,"tags":835},[831],"Fatima Sarah Khalid","2024-07-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/v1749676997/Blog/Content%20Images/1.duo-chat-installing-catch2.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/v1749676998/Blog/Content%20Images/2.running-catch2-tests.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/v1749676998/Blog/Content%20Images/2.0-passed-tests-UI.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/v1749676998/Blog/Content%20Images/2.1-failed-test-simulation.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/v1749676998/Blog/Content%20Images/2.2-failed-test-simulation-details.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/v1749676998/Blog/Content%20Images/3.get-current-weather-function-completion.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/v1749687965/Blog/Content%20Images/image14.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/v1749687965/Blog/Content%20Images/image5.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/v1749674351/Blog/Content%20Images/image37.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/v1749687469/Blog/Content%20Images/image19.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/v1749674351/Blog/Content%20Images/image31.png)\n\n\nもう1つの方法は、自分が置かれている状況を説明し、意見を求めることです。STARモデル（状況、タスク、アクション、結果）に従うと、うまく質問ができるでしょう。\n\n\n> I have a Kubernetes cluster integrated in GitLab. Please generate a Yaml\nconfiguration for a Kubernetes service deployment. Explain how GitOps works\nas a second step. How to verify the results?\n\n> \n\n>\n（GitLabに統合されたKubernetesクラスターがあります。KubernetesサービスをデプロイするためのYAML設定を生成してください。2つ目のステップとしてGitOpsがどのように動作するかを説明してください。結果を検証する方法は？）\n\n\n![複数の質問を含むチャットプロンプトと応答](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687469/Blog/Content%20Images/image27.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/v1749674351/Blog/Content%20Images/image34.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/v1749674351/Blog/Content%20Images/image36.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/v1749674351/Blog/Content%20Images/image28.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/v1749687965/Blog/Content%20Images/image3.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/v1749687965/Blog/Content%20Images/image2.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/v1749687469/Blog/Content%20Images/image26.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と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/v1749687965/Blog/Content%20Images/image12.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/v1749687469/Blog/Content%20Images/image21.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/v1749687965/Blog/Content%20Images/image10.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/v1749687469/Blog/Content%20Images/image18.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/v1749687469/Blog/Content%20Images/image24.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/v1749687469/Blog/Content%20Images/image23.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/v1749674351/Blog/Content%20Images/gitlab_duo_chat_slash_commands_explain_01.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687965/Blog/Content%20Images/image6.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/v1749674351/Blog/Content%20Images/image35.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674351/Blog/Content%20Images/image30.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/v1749674351/Blog/Content%20Images/image29.png)\n\n\n![洗練されたプロンプトでチャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687965/Blog/Content%20Images/image4.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/v1749687965/Blog/Content%20Images/image13.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/v1749687469/Blog/Content%20Images/image15.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/v1749687469/Blog/Content%20Images/image17.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/v1749687469/Blog/Content%20Images/image20.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/v1749687965/Blog/Content%20Images/image8.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/v1749687469/Blog/Content%20Images/image22.png)\n\n\nGitLabのミッション、「誰でも貢献できます」について尋ねてください。\n\n\n![チャットプロンプト](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687469/Blog/Content%20Images/image33.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","devsecops",[708,751,836,9,680],"CI",{"slug":838,"featured":91,"template":685},"develop-c-unit-testing-with-catch2-junit-and-gitlab-ci","content:ja-jp:blog:develop-c-unit-testing-with-catch2-junit-and-gitlab-ci.yml","Develop C Unit Testing With Catch2 Junit And Gitlab Ci","ja-jp/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci.yml","ja-jp/blog/develop-c-unit-testing-with-catch2-junit-and-gitlab-ci",{"_path":844,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":845,"content":851,"config":858,"_id":860,"_type":14,"title":861,"_source":16,"_file":862,"_stem":863,"_extension":19},"/ja-jp/blog/developers-summit-2025-spring-event-report",{"title":846,"description":847,"ogTitle":846,"ogDescription":847,"noIndex":6,"ogImage":848,"ogUrl":849,"ogSiteName":669,"ogType":670,"canonicalUrls":849,"schema":850},"AI活用の鍵はGitLabの一貫したコンテクスト 【Developers Summit 2025 イベントレポート】","2025年2月、GitLabは「Developers Summit 2025」に出展しました。本イベントにてシニアソリューションアーキテクト 佐々木直晴が講演をおこないましたので、本記事にてその模様をレポートします。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663625/Blog/Hero%20Images/3508_resized.jpg","https://about.gitlab.com/blog/developers-summit-2025-spring-event-report","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI活用の鍵はGitLabの一貫したコンテクスト 【Developers Summit 2025 イベントレポート】\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-03-13\",\n      }",{"title":846,"description":847,"authors":852,"heroImage":848,"date":854,"body":855,"category":834,"tags":856},[853],"GitLab Japan Team","2025-03-13","本講演のテーマは、ソフトウェア開発の現場が抱えているAI活用の課題とその解決策です。シニアソリューションアーキテクト[佐々木直晴](https://gitlab.com/naosasaki)は「ソフトウェア開発の現場で、AI時代の新しいサイロが発生している」と考えています。本講演でその解決策として紹介しているのが、GitLabのAI機能群「[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)」です。\n\n## コードがどういう背景のもとで書かれたかといった情報までAIに与えるべき\n\n### 組織全体でコンテクストを共有することができているGitLabだからこそ持てたコンセプト\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/_DSC1989_resized.jpg)\n*Developers Summit 2025での講演の様子*\n\n本講演における最初のブロックにて佐々木は、コードが書かれた背景に関する情報までAIに与えることが大切なのでは、と語りかけました。\n\nソフトウェア開発の現場でAIを使う際は、断片的なエラーコードのみ渡してその理由を探らせるなどします。しかしAIの可能性を引き出すには、そのコードがどういう背景のもとで書かれ、なぜそう決まったかという情報まで与えるべきです。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/_TOH3572_resized.jpg)\n*GitLab合同会社 シニアソリューションアーキテクト 佐々木直晴*\n\n佐々木はGitLabのAI機能群「[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)」は、こういったコンセプトを持っていると話しました。そうして、このコンセプトは「我々の会社だからもてたもの」と言います。\n\nGitLabはご存知のとおり、オフィスを持たずオールリモートの働き方を実践している企業です。オールリモートを実現するには、ドキュメントによるコミュニケーションが重要になります。\n\n経緯や議論をドキュメントとして残し、「なぜそう決まったか」も含め組織全体でコンテクストを共有する必要があるのです。オールリモートではメンバー間の誤解が生まれないように、記録に残るコミュニケーション技術が必要になります。\n\nそのうえで佐々木は「[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)のコンセプトは、コンテクストを組織全体で共有できているGitLabだからこそ持てたものと思っている」と話しました。\n\n## AI時代の新しいサイロが発生した\n### 現在のソフトウェア開発において、AIの活用レベルは3段階に分類される\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit.jpg)\n次のブロックで佐々木は、現在のソフトウェア開発現場におけるAI活用の課題について説明しました。\n\nAIをソフトウェア開発に利用しているという会社は、2023年には64％だったところ、2024年には78％に上がっている* 状況です。今年の調査であれば、100％に近い数字になっていると想定されます。\n\nこのようにソフトウェア開発においてAIはデフォルトになっているものの、現場によって「段階がありレベル感が違う」と佐々木は話しました。活用レベルは大きく分けて3つにわけられ、各レベルで別々の課題が生じているのです。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__1_.jpg)\n\nまず、ソースコードの生成にAIを活用するのが、活用レベル1です。「ここはかなりコモディティ化している」と佐々木は話しました。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__2_.jpg)\n\nソフトウェア開発の様々な局面で、AIを活用するのが活用レベル2です。たとえば以下のような利用があげられます。\n\n- 議論の内容をAIに要約させる\n- 会議の文字起こしをさせる\n- トラブルが起きたらAIにコードを渡して原因を解析させる\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__3_.jpg)\n活用レベル3は、局面に応じて優れたLLMを採用して使い分けている状態です。たとえばチケット管理はこのLLMを利用し、ソースコードの推奨はこのLLMにさせるといった使い分けをします。\n\n### AIの活用レベルごとに異なる課題が生じている\n\n佐々木は「我々はマーケットを見て、それぞれの活用レベルで課題があると思っている」と指摘しました。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__4_.jpg)\n「活用レベル1：ソースコードの生成にAIを活用」での課題は、AIが局所的な利用にとどまってしまっていることだと佐々木は指摘しました。\n\nソフトウェア開発のなかでも、ソースコードを記述している時間は21％に過ぎない* という調査結果があります。仕事場所がオフィスでも自宅でも、誰にも邪魔されず集中してコードを書ける日はなかなかありません。打ち合わせが入ったりメンバーのタスク管理をしたり、トラブルで呼び出されたりします。\n\nソースコードの記述にAIを使うこと自体はよいことです。しかしAI活用がソースコードの記述にとどまっているということは、AI活用が局所的な効率化に限定されているとも言えます。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__5_.jpg)\n「活用レベル2：ソフトウェア開発の様々な局面でAIを活用」は、AIをいろいろなシーンで使えていて一見素晴らしいように見えます。しかし、「いろいろなところに様々な機能のAIがあり過ぎて統一したいという意見が多い」と佐々木は指摘しました。\n\nソフトウェア開発にAIを使用する全世界の組織のうち、約74％は「ツールチェーンを統合したい」と答えたという調査結果があります。AIのライセンス費用や使い勝手の違いなどがあり、1つにまとめたいという課題が生じているのです。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__12_.jpg)\n\n「活用レベル3：各局面に応じて優れたLLMを採用」は、一見良い状態にみえます。チケット管理やコーディングなど、それぞれのシーンで優れたAIを利用できているためです。\n\nしかし「それぞれのシーンで共有されたAIとのコンテクストが、コーディングのときに失われている」と佐々木は指摘しました。AIがそれぞれのツールに特化して閉じており、経緯や議論が個別のツールに取り残されてしまっているのです。\n\nAI間でのコンテクスト共有が不十分なので、コーディング段階でAIがいろいろな推奨をしてくれるものの、その内容には違和感が生じます。佐々木は「これはAI時代の新たなサイロだと我々は定義している」と話しました。\n\n## GitLabだからこそ提案できる、AI利用の課題に対する解決策 \n### GitLabにはソフトウェア開発用のプラットフォームとして必要な機能が一通りそろっている\n\n前項で紹介したAI利用の課題に対して、GitLabが提案するのがGitLabにおけるAI機能群「[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)」です。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は「オールリモートでコンテクストを共有しながら会社運営をする我々だからこそできる提案」と、佐々木は強調しています。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__6_.jpg)\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)の紹介をする前に、「そもそもGitLabとは何か」について佐々木が説明しました。\n\nGitLabではソフトウェア開発において、以下のような機能が必要と考えています。\n\nチケット管理をする機能、チケット管理のなかで詳細な議論ができる機能\nソースコードリポジトリ機能\nコミットしたら、自動的に何かをしてくれるCIの仕組み\nセキュリティスキャンなど\n\n「これら機能をばらばらに提供するのでなく、ひとつのプラットフォームとして提供するのがGitLab製品のコンセプト」と佐々木は説明しました。GitLabはソフトウェア開発に必要な機能を集約したDevSecOpsプラットフォームです。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__7_.jpg)\n\nこうした製品コンセプトが評価され、[2024  Gartner®  Magic  Quadrant™for  DevOps Platformsにおいて、GitLabが高く（画像の一番右上）に評価された](https://about.gitlab.com/ja-jp/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops/)ことを、佐々木は紹介しました。\n\n### 今までのAIはスポットで来てもらう助っ人、GitLab Duoは「勝手を知っているチームの一員」として働く\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__8_.jpg)\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__9_.jpg)\n\n前項で紹介したように、ソフトウェア開発にはいろいろな機能が必要になります。GitLabのAI「[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)」は、それら機能においてAIが同じコンテクストをもってサポートすると佐々木は解説しました。\n\nイシュー割り当てや議論要約、ソースコード生成、テストコードやテストケースの生成、また実装から詳細な説明用の資料を生成するなどの工程を、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は一貫してサポートします。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)はインターネットだけでなく、自社内のAIのゲートウェイを向けることにより自社のネットワークから出ずにAIを使えるのも強いと佐々木は強調しました。\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を使えば、以下のような\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__10_.jpg)\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/2025-02-14_Developers_Summit__11_.jpg)\nDevSecOpsのループ全ての局面にAIの力をまぶすことができます。\n\n- 計画・議論\n- ロードマップ・スケジュール構築\n- イシューの作成・アサイン\n- 開発・検証\n- デプロイ\n- パフォーマンスのモニタリングとカイゼン\n\n佐々木は、「たとえて言うなら、今までのAIはスポットでちょっと来てもらう助っ人のようなものだった」と指摘しました。スポットの助っ人は、タスクの背景などは分かりません。限定的な情報のなかで、サポートをしなければならないのです。\n\nたとえば断片的なエラーだけ渡され「これは何か」と聞かれても、AIは与えられた情報のなかで提案を返すしかありません。佐々木は「AIは本当ならもっとできるはず、というのが我々の思いだ」と強調しました。\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/_TOH3594_resized.jpg)\n一方GitLab Duoは、「勝手の知っているチームの一員として働く」と佐々木は指摘しています。GitLabを使えば、ソフトウェア開発におけるものづくりの全ての作業を同じプラットフォーム内で実行することが可能です。\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、これらGitLabにおける活動を多く把握しています。たとえば、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、ソースコードの内容を変更した背景や流れを理解しているわけです。そのため、そのソースコードをプッシュしてCIで失敗したら、GitLab Duoはより深く原因の分析をおこなえます。\n\nまたソフトウェア運用中に、深刻な脆弱性が見つかったとしましょう。このとき[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は「脆弱性に対応するには、リポジトリのこのファイルとこのファイルをこう直したらいいですよ」と提案してくれるのです。\n\nこのように局面をまたいだAIの使い方は、単一のデータストアがないとできないと佐々木は強調しました。リポジトリ・チケット管理・CI・セキュリティスキャンなどソフトウェア開発に必要な機能を、GitLabは全て有しています。\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、GitLabのなかでこれら機能と同一プラットフォームに存在し、その全ての活動を把握しているわけです。それゆえに、スポットの助っ人でなくチームの一員として活躍することができます。\n\n最後に佐々木は、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を使ったデモを紹介しました。\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/_DSC2007_resized.jpg)\n本デモでは、CIが失敗した理由を[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)に調べさせています。そうするとGitLab Duoは、エラーログだけからは推察することが難しい関数や引数の型を使った修正例を提案しました。本デモでGitLab Duoは、デプロイが失敗した原因を、ソースコードの変更内容まで鑑みて分析しているのです。\n\nChatGPTにエラーログだけを渡して解析させるように、AIをスポットの助っ人として使うやり方であれば、コンテクストは共有されません。そのため、この修正例は出ないのではないかと佐々木は強調しました。\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)はトラブル発生時に、断片的なログから推奨を返すのでなく、過去の計画まで遡りなぜ失敗が起こったかというところまで助けてくれます。本講演の最後で佐々木は、開発者がより創造的な作業に集中できる環境を作りたいという思いでGitLabを提供させていただいていると語りました。\n\n＊参考元：[GitLab「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_developers-summit-2025-spring-event-report) \n\n## 会場で配布したお土産について\n\n\u003Cimg src=\"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752174658/Blog/a8q0fxpkysdomfbarvfj.jpg\">\n会場にて本講演のアンケートに答えて下さった参加者の方には、バレンタインデーのチョコとナノブロックをお渡ししました。このナノブロックは、GitLabのロゴがモチーフとなっています。かわいらしいこのロゴの形は、狸をイメージしていることはご存知でしたでしょうか？\n\n![デブサミ2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687627/Blog/Content%20Images/image5_resized.jpg)\n",[280,857,680,703,9],"inside GitLab",{"slug":859,"featured":91,"template":685},"developers-summit-2025-spring-event-report","content:ja-jp:blog:developers-summit-2025-spring-event-report.yml","Developers Summit 2025 Spring Event Report","ja-jp/blog/developers-summit-2025-spring-event-report.yml","ja-jp/blog/developers-summit-2025-spring-event-report",{"_path":865,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":866,"content":872,"config":880,"_id":882,"_type":14,"title":883,"_source":16,"_file":884,"_stem":885,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-a-roundup-of-recent-chat-enhancements",{"title":867,"description":868,"ogTitle":867,"ogDescription":868,"noIndex":6,"ogImage":869,"ogUrl":870,"ogSiteName":669,"ogType":670,"canonicalUrls":870,"schema":871},"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":867,"description":868,"authors":873,"heroImage":869,"date":876,"body":877,"category":10,"tags":878,"updatedDate":879},[874,875],"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",[9,706,705],"2024-11-12",{"slug":881,"featured":91,"template":685},"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":887,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":888,"content":894,"config":902,"_id":904,"_type":14,"title":905,"_source":16,"_file":906,"_stem":907,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai",{"title":889,"description":890,"ogTitle":889,"ogDescription":890,"noIndex":6,"ogImage":891,"ogUrl":892,"ogSiteName":669,"ogType":670,"canonicalUrls":892,"schema":893},"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":889,"description":890,"authors":895,"heroImage":891,"date":897,"body":898,"category":10,"tags":899,"updatedDate":901},[896],"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",[9,900,706],"performance","2024-06-13",{"slug":903,"featured":91,"template":685},"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":909,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":910,"content":916,"config":924,"_id":926,"_type":14,"title":927,"_source":16,"_file":928,"_stem":929,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd",{"title":911,"description":912,"ogTitle":911,"ogDescription":912,"noIndex":6,"ogImage":913,"ogUrl":914,"ogSiteName":669,"ogType":670,"canonicalUrls":914,"schema":915},"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":911,"description":912,"authors":917,"heroImage":913,"date":920,"body":921,"category":10,"tags":922,"updatedDate":923},[918,919],"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/)",[9,708,680,703,706],"2024-11-15",{"slug":925,"featured":91,"template":685},"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":931,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":932,"content":938,"config":943,"_id":945,"_type":14,"title":946,"_source":16,"_file":947,"_stem":948,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features",{"title":933,"description":934,"ogTitle":933,"ogDescription":934,"noIndex":6,"ogImage":935,"ogUrl":936,"ogSiteName":669,"ogType":670,"canonicalUrls":936,"schema":937},"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":933,"description":934,"authors":939,"heroImage":935,"date":940,"body":941,"category":10,"tags":942,"updatedDate":876},[875],"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",[9,704,706,703,814],{"slug":944,"featured":91,"template":685},"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":950,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":951,"content":957,"config":963,"_id":965,"_type":14,"title":966,"_source":16,"_file":967,"_stem":968,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",{"title":952,"description":953,"ogTitle":952,"ogDescription":953,"noIndex":6,"ogImage":954,"ogUrl":955,"ogSiteName":669,"ogType":670,"canonicalUrls":955,"schema":956},"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":952,"description":953,"authors":958,"heroImage":954,"date":960,"body":961,"category":10,"tags":962,"updatedDate":920},[959],"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",[9,680,703,706,857],{"slug":964,"featured":91,"template":685},"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":970,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":971,"content":976,"config":983,"_id":985,"_type":14,"title":986,"_source":16,"_file":987,"_stem":988,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-series",{"title":972,"description":973,"ogTitle":972,"ogDescription":973,"noIndex":6,"ogImage":954,"ogUrl":974,"ogSiteName":669,"ogType":670,"canonicalUrls":974,"schema":975},"「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":972,"description":973,"authors":977,"heroImage":954,"date":979,"body":980,"category":10,"tags":981,"updatedDate":982},[978],"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機能が、いかに迅速に脆弱性に対応するかを解説します。",[9,706,680,703],"2025-01-21",{"slug":984,"featured":6,"template":685},"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":990,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":991,"content":997,"config":1003,"_id":1005,"_type":14,"title":1006,"_source":16,"_file":1007,"_stem":1008,"_extension":19},"/ja-jp/blog/developing-gitlab-duo-use-ai-to-remediate-security-vulnerabilities",{"title":992,"description":993,"ogTitle":992,"ogDescription":993,"noIndex":6,"ogImage":994,"ogUrl":995,"ogSiteName":669,"ogType":670,"canonicalUrls":995,"schema":996},"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":992,"description":993,"authors":998,"heroImage":994,"date":1000,"body":1001,"category":10,"tags":1002,"updatedDate":982},[919,999],"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",[9,681,705,706,708],{"slug":1004,"featured":91,"template":685},"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":1010,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1011,"content":1016,"config":1025,"_id":1027,"_type":14,"title":1028,"_source":16,"_file":1029,"_stem":1030,"_extension":19},"/ja-jp/blog/event-report-aws-summit-2025",{"config":1012,"ogImage":1013,"title":1014,"description":1015},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353906/qet5wxyn7k3dllq1jbq1.jpg","【イベントレポート】AWS Summit Japan 2025","GitLab with Amazon Qの実用レビュー。AWS Summit Japan 2025セッション報告",{"title":1017,"description":1018,"authors":1019,"date":1020,"body":1021,"category":834,"heroImage":1013,"tags":1022},"GitLab with Amazon Qで開発スピードを高め、AI生成コードの品質を担保する【イベントレポート】","この記事ではAWS Summit Japan 2025に出展した際に「GitLab with Amazon Q」について語ったセッションの模様をお伝えします。",[853],"2025-08-05","GitLabは2025年6月25～26日、千葉・幕張メッセで開催された「AWS Summit Japan 2025」に出展しました。今回の目玉となるソリューションは、発表したばかりの「[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)」。ブースにご来場いただいた皆様には直接ご説明でき、デモをご覧いただくなど、大きな注目を集めることができました。このブログでは、会場内のセッションで[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を紹介した模様をお届けします。ゲストはソニービズネットワークス株式会社（以下、SBN） 開発本部 グループマネージャー 濱田 一成氏です。\n\n![AWS Summit会場の様子](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754372455/azhcpftapneluoxyvgi9.jpg)\n\nこの日のセッションでは、GitLab シニア ソリューション アーキテクト 小松原 つかさが登壇。金色のジャケットを着た濱田氏を壇上にお招きした小松原は、「**金ピカのジャケット！　これは、AWSの全12資格を持っているという意味です。そして、濱田さんはAWSアンバサダーを務めていらっしゃいます。セッション終了後にはぜひみなさん一緒に写真をどうぞ**」と会場を盛り上げます。実は、濱田氏は日本で初めて[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を使った人物でもあります。講演の後半で、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)についてリアルな使用感を含めて、さらに詳しく解説してくれます。\n\n## 面白くない仕事をぜんぶAIにやってもらおうという考え方で\n\n![GitLab合同会社 ソリューションアーキテクト本部  シニアパートナーソリューションアーキテクト 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353570/bql6ekk9nfrql7ttlam7.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部*\\\n*シニアパートナーソリューションアーキテクト 小松原 つかさ*\\\n\\\n[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)は2025年4月17日に正式リリースしたばかりの最新ソリューションです。GitLabとAWSが協力して完成させた製品で、GitLabのAIエンジン部分のすべてにおいて、AWSの生成AIサービスを利用します。AIの優秀さもさることながら、その最大の特長は、AWSという巨大なインフラを使うことで、実質的にほぼ無制限にスケールできることです。\n\nパワーユーザーに最適なソリューションで、GitLab側は最上位プランである「[Ultimate](https://about.gitlab.com/ja-jp/pricing/ultimate/)」契約が必要になります。かつ、AWSの生成AIサービスと密連携したソリューションになっているため、AWS上で稼働させる必要があります。この2点をクリアできれば、すぐにでも[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)を利用することができます。\n\n「Amazon Q Developer Pro」がバンドルされていることも朗報です。無料版の「Amazon Q Developer」を、たとえばVS Codeを拡張機能を使って[IDE](https://about.gitlab.com/ja-jp/blog/what-is-ide/)（統合開発環境）のように利用しようとする場合、月間使用量が制限されるケースがあります。その点、Proは無料版に比べて大幅に制限が緩和されているため、多くのプロジェクトでは実質的に制限なしで利用できそうです。\n\n小松原は、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)について、「**クリエイティブなタスク以外のものをAmazon Qにやってもらえるようになります**」と話します。「**チケットを切る、だれかにアサインする、だれかがプログラムを書く、だれかがレビューする、だれかがセキュリティをチェックするというプロセスの中で、面白くない仕事をぜんぶAIにやってもらおうという考え方でオーケーですよ**」。\n\nAIに配慮したエンタープライズセキュリティも備えています。小松原は、「**AIは、結構気をつけておかないと、脆弱性がしれっと入り込んだりします**」と指摘します。GitLabは、セキュリティスキャンやセキュリティチェック確認機能、SOC 2など各種コンプライアンスチェック機能を実装しており、「**GitLabでガードレール部分をしっかりやりながら、AIのパフォーマンスを思う存分使い切れます**」（小松原）。\n\n## サービス維持・発展のプロセスを最適化\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/ejdmlahcggiyctg7wnwv.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部* \\\n*シニアパートナーソリューションアーキテクト 小松原 つかさ*\\\n\\\n小松原はさらに踏み込み、「ものづくりの後工程に来る“苦痛”を和らげてくれる」ソリューションであるとも語ります。多くのエンジニアにとって、サービス開発で最も楽しい時期は、バージョン1を作る時ではないでしょうか。サービスがリリースされると、たとえばデータベースのスキーマ変更に伴うデータマイグレーションなど、システムを知らない人にとっては簡単そうに見えても、実際には大変な仕事が降りかかってきます。とはいえ、サービスを維持し、利益を支えていくことは極めて重要です。そして、その部分に最大のフォーカスを置いているのがGitLabなのです。\n\n「**ディスカッションの要約機能などは当然として、サービスを維持し、発展させていくプロセスで生まれる大変さを生成AIが和らげてくれる機能がてんこ盛りです**」（小松原）\n\n中でも、セキュリティと脆弱性対策は、「**頑張らなきゃいけないんだけども、だれも評価してくれない仕事（笑）**」（小松原）かもしれません。たとえば、生成AIに、「ユーザー入力から製品を検索するときに、データベースから製品を検索するNode.jsとExpressの関数を書いてください。できるだけシンプルに、最小限のコードで実装してください。パフォーマンスを重視してください」と命令すると、「**データベース検索ですから、当然ながらパフォーマンス重視になります。ただ、AIは肝心のサニティチェックなどをスキップする傾向があるのです。肌感覚では、10回中4回はスキップします**」（小松原）。\n\nこうした問題に対し、[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)では、AIを使って脆弱性の修正提案をできるようにしています。Amazon Qのサービスを使って、脆弱性の分析と修正コードを作成。「なぜこの修正アプローチを取ったのか」まで記述させることで、修正理由が説明可能になります。同様のAI機能は、CI/CDのエラートラブルシュートでも使えます。「設定抜け」や「そもそもジョブの定義が間違い」など、単純ミスでコードが動かないというトラブルは意外と多く、ミスが単純すぎるがゆえに原因究明が遅れて時間を浪費しがちです。一方、AIには予断がないため、単純ミスの発見は得意です。小松原は、「**このように、つまらない仕事はどんどんAIにやってもらいましょう！**」と会場に呼びかけました。\n\n## ひとりの開発者がGitLabの中にいるというイメージ\n\n![ソニービズネットワークス株式会社  開発本部 グループマネージャー 濱田 一成氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/d3jtivqwdwqi18cobf2d.jpg)\n\n*ソニービズネットワークス株式会社*\\\n*開発本部 グループマネージャー 濱田 一成氏*\n\n後半は、濱田氏による[GitLab with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)レビューです。SBNの最大の業務課題は、「人手が足りない」ことです。メンバーはインフラエンジニアの集団で、アプリ開発にかかわれる人が少なく、インフラ業務との兼務が大半。少人数でプロジェクトを回す最適解としての可能性に賭けて、GitLab with Amazon Q DeveloperのPoCをスタートさせました。PoCで得られたメリットは「開発スピード」と「コード品質」の強化です。\n\n開発スピード面では、GitLab上で開発をして、エンジニアが手直しをするライフサイクルに変更したことで、開発工数を削減できました。濱田氏は、「**実際に使ってみてすごく驚いたのが、従来のワークフローに組み込みやすい点。ここが最も良かったと感じた部分です**」と話します。イシューを切ってから「/generate」とコメントを入れると、そのイシューに対してAmazon Q Developerが開発を行ってくれます。修正点があれば、インラインでコメントしてAIエージェントに指示すると結果を返してくれます。「**つまり、人間に対してやってるフローと全く一緒なのです。GitLab with Amazon Q Developerは、ひとりの開発者がGitLabの中にいるというイメージで使えます**」（濱田氏）\n\nコード品質面では、AIが生成したコードをさまざまな手法でレビュー&テストできるようになります。「/review」とコメントしてAIにレビューさせる機能とマージリクエストによる人間のレビューを適切に組み合わせることが可能。GitLabがネイティブに実装するSAST、ペネトレーションテスト、DAST、Pytestなど、言語ごとに存在するテストフレームワークもプロセスに組み込めます。\n\n「**マージリクエストで返却されたものに対して/reviewを実行すると、既存のコードのどこにアップデートがかかったか、どこが悪いのか、といったことを一覧にして戻してくれる。さらに、それをAIに修正してもらうことも可能です。AWS CDKやCloudFormationを活用されている方、インフラを構築されてる方に朗報なのは、このセキュリティ機能を応用可能なこと。インフラエンジニアにとっても親和性の高い機能です**」（濱田氏）\n\n## 「AIとのコラボレーションにおけるクオリティゲート」としての役割に期待\n\n![ソニービズネットワークス株式会社 開発本部 グループマネージャー 濱田 一成氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353572/fah13b0oz7sqzdhy9ew6.jpg)\n\n*ソニービズネットワークス株式会社*\n*開発本部 グループマネージャー 濱田 一成氏*\n\n濱田氏は、「**今後は、AIの生成したコードをレビューすることが人間の仕事になってくるでしょう**」と話し、AIの70%問題についても触れます。これは、現代のAIツールだけで実装できるコードの比率は約70％にとどまり、残りの30％は引き続き人間でないと実装できないことを指します。最終的にアプリケーションの品質を担保するのは人間になるため、GitLabのようなソリューションの役割はますます重要になってきます。\n\nより品質向上を目指す活用スタイルについて濱田氏は、[IDE](https://about.gitlab.com/ja-jp/blog/what-is-ide/)の拡張機能やCLIを通してAmazon Q Developerを使うやり方をシェアしてくれました。GitLabにプッシュする前に必ず、/review、/testを実行し、Amazon Q Developerを使ってコードの品質を高めておきます。その後、GitLab上ですべてのコミットに対してコードレビュー／セキュリティスキャンを追加で実行します。これにより、複数のAIエージェントをうまく組み合わせることが可能になり、人間とAIがコラボレーションしながら、すべてのコードの品質を高めることができます。\n\n濱田氏は、「**GitLab with Amazon Q Developerは、人間とAIのコラボレーションを自然に実現する次世代ツールだと感じました。従来の、人と人とのコミュニケーションのような感覚で、AIをワークフローに取り込めるところが極めて優秀です。AIの実装したコードを安心して製品に取り込むために、GitLab with Amazon Q Developerはクオリティゲートとして使えそうです**」と話してくれました。\n\n![左よりソニービズネットワークス株式会社 濱田 一成氏、GitLab合同会社 小松原 つかさ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353571/mhpaahskofpxfogp0v8c.jpg)\n\n*左よりソニービズネットワークス株式会社 濱田 一成氏、GitLab合同会社 小松原 つかさ*\n\n## GitLabに関する書籍とノベルティ\n\nこの日のセッションでは、小松原より書籍の紹介もありました。\\\nこれら3冊を紹介しています。\n\n> 1. **『[GitLab実践ガイド 第2版](https://amzn.asia/d/fV5hX2w)』**（北山 晋吾・棚井 俊、インプレス）\n>    「GitLabには無償版もあります。無償版のユーザーの方は、ぜひこちらから。この本、超おすすめです。これで勉強していただければ、GitLabの機能を全部マスターすることができます」（小松原）\n> 2. 『**[GitLabに学ぶ 世界最先端のリモート組織のつくりかた ドキュメントの活用でオフィスなしでも最大の成果を出すグローバル企業のしくみ](https://www.amazon.co.jp/GitLab%E3%81%AB%E5%AD%A6%E3%81%B6-%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%9C%80%E5%A4%A7%E5%8C%96%E3%81%95%E3%81%9B%E3%82%8B%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%8A%80%E8%A1%93-%E6%95%B0%E5%8D%83%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%82%E3%82%8F%E3%81%9F%E3%82%8B%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%9F%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%B3%95-%E5%8D%83%E7%94%B0-%E5%92%8C%E5%A4%AE/dp/4798185701?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2C7VGZ8WMSM1R&dib=eyJ2IjoiMSJ9.vu1WyOMIaee-VDEnzTYCKLpDWeM6PXcF93TbTU5onKPmwTGR2lghKwtz5UKmdAYpwSgcp_-k0qcLOo3Eb7vsGbyIJ1aMhpoW5DPRpJbE_itQSi10WeIg9I7IiPcAup52od7bjxOriVzrl2N8OQ3E-BB5uHwgpo5aVUzOhkHqO1Rnf6HEfZTu1o_vqMpCTqlko24v4ImB7owRe5PeuwNnHsft5zVLng_Wx5I0IVe845f6Mmg1ywH6R45FGCuibkkr0ZeR31ivRg-B8C4QcRxtM9si0A2c7FzPI0VM4-Q4E0w.ItEuqYBuhjEf-AelOcP6fB1j-5Q9SkxDzyHV2uNcXeM&dib_tag=se&keywords=GitLab&qid=1752106423&sprefix=gitlab,aps,166&sr=8-4&linkCode=sl1&tag=68a7j959-22&linkId=affef2c28d1c88a622eef0031c12e747&language=ja_JP&ref_=as_li_ss_tl)**』（千田 和央、翔泳社**）**\n> 3. 『**[GitLabに学ぶ パフォーマンスを最大化させるドキュメンテーション技術 数千ページにもわたるハンドブックを活用したテキストコミュニケーションの作法](https://www.amazon.co.jp/GitLab%E3%81%AB%E5%AD%A6%E3%81%B6-%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%82%92%E6%9C%80%E5%A4%A7%E5%8C%96%E3%81%95%E3%81%9B%E3%82%8B%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E6%8A%80%E8%A1%93-%E6%95%B0%E5%8D%83%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E3%82%82%E3%82%8F%E3%81%9F%E3%82%8B%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF%E3%82%92%E6%B4%BB%E7%94%A8%E3%81%97%E3%81%9F%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E6%B3%95-%E5%8D%83%E7%94%B0-%E5%92%8C%E5%A4%AE/dp/4798185701?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=2C7VGZ8WMSM1R&dib=eyJ2IjoiMSJ9.vu1WyOMIaee-VDEnzTYCKLpDWeM6PXcF93TbTU5onKPmwTGR2lghKwtz5UKmdAYpwSgcp_-k0qcLOo3Eb7vsGbyIJ1aMhpoW5DPRpJbE_itQSi10WeIg9I7IiPcAup52od7bjxOriVzrl2N8OQ3E-BB5uHwgpo5aVUzOhkHqO1Rnf6HEfZTu1o_vqMpCTqlko24v4ImB7owRe5PeuwNnHsft5zVLng_Wx5I0IVe845f6Mmg1ywH6R45FGCuibkkr0ZeR31ivRg-B8C4QcRxtM9si0A2c7FzPI0VM4-Q4E0w.ItEuqYBuhjEf-AelOcP6fB1j-5Q9SkxDzyHV2uNcXeM&dib_tag=se&keywords=GitLab&qid=1752106423&sprefix=gitlab,aps,166&sr=8-4&linkCode=sl1&tag=68a7j959-22&linkId=affef2c28d1c88a622eef0031c12e747&language=ja_JP&ref_=as_li_ss_tl)**』（千田 和央、翔泳社**）**\n>    「アジャイル開発やチケット駆動開発ではドキュメンテーションはすごく大切。基本的なことから、普段の業務を劇的に改善するにあたって直接的なインパクトがあることまでが書かれています。これらの2冊、ぜひご活用ください」（小松原）\n\n![GitLabのTシャツ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353571/gtcbk8awj6sjzgjoubx9.jpg)\n\n*抽選の景品：GitLabのTシャツ*\n\n![GitLabのキーホルダー](https://res.cloudinary.com/about-gitlab-com/image/upload/v1754353589/qilxnjgc84h7ugh5rpfi.jpg)\n\n*抽選の景品：GitLab Tanukiのキーホルダー*",[707,9,704,813,1023,680,280,681,1024],"customers","user stories",{"featured":91,"template":685,"slug":1026},"event-report-aws-summit-2025","content:ja-jp:blog:event-report-aws-summit-2025.yml","Event Report Aws Summit 2025","ja-jp/blog/event-report-aws-summit-2025.yml","ja-jp/blog/event-report-aws-summit-2025",{"_path":1032,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1033,"content":1039,"config":1045,"_id":1047,"_type":14,"title":1048,"_source":16,"_file":1049,"_stem":1050,"_extension":19},"/ja-jp/blog/event-report-gartner-application-innovation-2025",{"config":1034,"ogImage":1035,"title":1036,"description":1037,"ogDescription":1038},{"noIndex":6},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1756178708/bcuxu1pffexqdzy4ebxf.jpg","みんなの銀行の内製化戦略とAIへの取り組み【イベントレポート】","2025年6月開催「Gartner Application Innovation & Business Solutions Summit 2025」の当社セッションにおいて、株式会社みんなの銀行取締役常務執行役員CIO宮本 昌明氏にご講演いただいた模様をご紹介。","Gartner Summit 2025でみんなの銀行取締役常務執行役員CIO宮本昌明氏が講演した内容を紹介。",{"title":1036,"description":1040,"heroImage":1035,"date":1041,"body":1042,"category":834,"tags":1043,"authors":1044},"2025年6月に開催された「Gartner Application Innovation & Business Solutions Summit 2025」の当社セッションにおいて、株式会社みんなの銀行 取締役常務執行役員CIO宮本 昌明氏にご講演いただいた模様をお伝えします。","2025-08-27","GitLabは2025年6月、都内ホテルで開催された「Gartner Application Innovation & Business Solutions Summit 2025」に出展しました。開催したセッションは約170人の参加者を集め、株式会社みんなの銀行（以下、みんなの銀行） 取締役常務執行役員CIO宮本 昌明氏をお招きし、当社Japan Country Manager小澤 正治と対談形式で実施しました。本記事では、その模様をお伝えします。\n\n## BaaS事業を支えるプラットフォーム\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/ven7v5yf2xhbio51itqm.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、2021年5月に事業を開始したデジタルバンクです。日本で初めてフルクラウドで銀行システムを構築・運用することでも注目を集めており、B2Cのスマホアプリ事業に加え、APIを主軸としたBaaS（Banking as a Service）事業や、バンキングシステムの外販も行っています。\n\n現在、立ち上げから約4年が経過。すでに130万口座を獲得し、ユーザーの70%は40歳未満の若年層です。ふくおかフィナンシャルグループの傘下で、福岡市に本社を置いていますが、SNSなどを活用したマーケティングが奏功し、顧客層は全国に広がっています。\n\n個人向けのデジタルバンクとして話題をさらう中、ビジネスの1つの柱に育ちつつあるのがBaaS（Banking as a Service）事業です。同事業では、みんなの銀行が自社のシステムを[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api/)を通して外部へと公開。ユーザーは、提携事業者のアプリなどを経由して「自分がみんなの銀行のサービスを使っている」ことを意識せず、銀行機能を利用できるようになります。\n\n公開中のAPIは多彩です。振込・決済だけでなく、認証・同意、本人確認済み情報提供、振込キャンセルなどをラインアップ。この日の時点で公開されている提携先は24社に及び、すでに非金融業界を含む15社が自社サービスに組み込んだ機能をリリースしています。\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/eeqee2fynr7zhhzixhhf.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、銀行業務の心臓部となる勘定系システムを、Google Cloud上にフルスクラッチで開発しています。宮本氏は、「BaaS基盤は勘定系の横に置くイメージ」と勘定系と密に連携させたBaaS基盤について説明します。このBaaS基盤の開発に、GitLabは大きな役割を果たしました。BaaS部分の開発にあたり同行は、マイクロサービスおよびイベント駆動型アーキテクチャを採用し、TDD（テスト駆動開発）を導入。その開発プラットフォームになったのがGitLabなのです。\n\n導入当時は、組織もシステムもゼロからのスタートでした。構想の初期段階からの必須要件は、セキュリティを高めるだけでなく、ログ取得や権限管理などのコンプライアンスも備えたDevSecOps環境を作ること。宮本氏は、「セキュリティとコンプライアンスは絶対条件でした。そして、その上で効率化を追求します。これらは並び立たないように聞こえますが、並び立たせるのがわれわれの基本スタンスです」と話します。\n\nソフトウェアライフサイクル全体をカバーできる一気通貫のソリューションとしてGitLabを採用し、テスト自動化、セキュリティスキャン、ディペンデンシースキャン、[SBOM](https://about.gitlab.com/ja-jp/blog/what-is-sbom/)など幅広い機能を活用するに至りました。\n\nまた、コンプライアンスパイプラインとして[GitOps](https://about.gitlab.com/ja-jp/topics/gitops/)の考え方も導入しました。Gitリポジトリを唯一絶対の存在（SVoT）と位置づけ、本番環境がGitリポジトリと異なる場合は自動修正します。ただし、リリース承認プロセスを維持することでガバナンスを確保するなど、実際に運用するにあたってさまざまな工夫も取り入れています。\n\nテストの民主化についても独自のアプローチで取り組んでいます。開発側だけがテストを実行するのでなく、ビジネス側もテストに関与することで責任を分担するなどの施策は、テストの自動化が進むとともに社内に根付いてきました。\n\n## 優秀なエンジニアたちに挑戦の場を提供\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/r2slryft1yl2ouuqfnmk.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nみんなの銀行は、GitLabをプラットフォームとして実施する開発業務の大半を内製化しています。宮本氏は、内製化のメリットについて、大きく4つのポイントを挙げます。まずは、自社プロダクトの将来を真剣に考え、社員であるエンジニアが主体的に関与できること。次に、設計・開発・リリース・保守・運用といったすべてのプロセスで得られるナレッジを社内に蓄積できること。そして、効果的な設計や省力化された運用負荷を実現できる製品選定・設計を行えること。最後に、保守・運用まで自前で行うことで、自動化や不要な作業削減を開発設計段階から意識できることです。\n\n![スライド：内製化への道筋](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179503/nigm4xsduozdfpgwymtg.jpg)\n\n*内製化への道筋*\n\n宮本氏は、内製化成功のカギは人財にあるとし、優秀なエンジニアの「採用」を大切にしながら、それ以上にエンジニアが働きたいと思える環境を「維持」していくことに力を注いでいると語ります。多くのエンジニアにヒアリングした結果、彼らは「やりたいことができる仕事環境」や「新しい技術への挑戦」を求めていることに気づきました。ルーチンワークになりがちな保守・運用やテストをGitLabを使って可能な限り自動化しているのは、エンジニアに新たな挑戦の場を提供するためでもあります。\n\n宮本氏は、「自分たちで考えて、自分たちで現状をより良く変えられるのが、優秀なエンジニアです。彼らが学習できる環境を用意し、実際に挑戦もしてもらいます。失敗することもあるでしょうけれど、上手に小さく失敗してもらってきちんと軌道修正できるような文化を作っています」と話します。\n\n長く使ってきたGitLabは、組織に根を張りました。エンジニア同士がGitLab上で議論を深め、コラボレーションする基盤へと育っています。\n\n![スライド：内製化推進においてGitLabが果たす役割](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179504/tdrxoes8irx7j4nwbnly.jpg)\n\n*内製化推進においてGitLabが果たす役割*\n\n「エンジニアは下請けではありません。ただものづくりをする人でもありません。ものを作ってサービスを提供する人なのです。組織には、エンジニアやビジネス企画など、さまざまな役割を持つ人が居ますが、その役割の壁を超えて、1つのサービスをみんなで作るという文化を大切にしています」（宮本氏）\n\n## 多様なAgentic AIをオーケストレーションする製品へ\n\n![GitLab合同会社 Japan Country Manager 小澤 正治](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/itvbnaxh1aqrgbbmfos2.jpg)\n\n*GitLab合同会社 Japan Country Manager 小澤 正治*\n\n小澤からは、GitLabの紹介とAI活用の取り組みについてお話させていただきました。GitLabは、ソフトウェア開発のライフサイクル全体を一元的に統合管理するプラットフォーム。この日のイベントを主催する[ガートナーのMagic Quadrant™において、製品の方向性と機能実装の両面から、リーダーという評価を受けて](https://about.gitlab.com/ja-jp/blog/gitlab-named-a-leader-in-the-2024-gartner-magic-quadrant-for-devops/)います。\n\n今回のセッションで、テーマのひとつであるAIでは、統合されたシームレスな開発環境にAIをアドオンし、個々の開発工程の部分最適ではなく、AIを活用した全体最適を目指すことが特長。AIコーディングによる生産性向上だけにとどまらず、レビュー、脆弱性対策、安全なコードリリースなどソフトウェア開発の全工程にAIを活用するという方向性で製品を進化させています。\n\nソフトウェア・サプライチェーン全体のガバナンスも、AIを搭載するGitLabで管理する対象です。GitLabを導入した組織単体を見るのではなく、ソフトウェア・サプライチェーン全体のセキュリティリスク対応や組織体制の強化もプラットフォーム上で実現。SaaSに加え、Self-Managed、クラウドセルフホステッドでも利用できるため、機密性の高い情報を扱うユーザー向けに、ローカルLLMの活用を支援するなど、その活用スタイルに応じた導入が可能になっています。\n\n小澤は、GitLabの進化の方向性も披露しました。GitLabは今後、[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)プラットフォームの概念を維持しつつ、多様な[Agentic AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)（自律的に行動し、目標達成のために自ら判断や行動を行うAI）の登場を前提に、それらをオーケストレーションする製品という立ち位置へと飛躍しようとしています。\n\n## 全工程・全業務へのAI適用を目指す\n\n![GitLab合同会社 Japan Country Manager 小澤 正治と株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179499/lir7wayd1qyqg71yg6e4.jpg)\n\n*左からGitLab合同会社 Japan Country Manager 小澤 正治、株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\nAI活用について宮本氏は、「われわれは、他社より遅れていると認識しています」と現状を厳しく評価します。約1年前からGemini Code Assistの検証をはじめ、現在は「ゼロからのコード生成」を目指し、エディタ、エージェント、プロバイダー、LLMの組み合わせを検討中。AI活用の範囲は、GitLabのコンセプトと一致しており、コード生成だけでなく、設計、ドキュメント作成、テストコード作成・実行など、全工程・全業務へのAI適用を目指しています。\n\n宮本氏は、AI導入の留意点について、「AIガバナンスが大切になります。どこにAIを導入し、だれに使わせ、どこまでの権限を与えるべきかを規定しなければなりません」と話します。AIでフルに自動化し、AIの出した結果を盲目的に信じてしまうと、脆弱性のあるコードが生成され、セキュリティリスクが発生する可能性があります。また、著作権侵害にも注意を払う必要があります。それらの対応策として、前者にはSASTなど、後者には侵害防止機能を持つAIやスキャンツールなどがありますが、ツールの挙動の確実性を含めた精査が必要になりそうです。\n\n![株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179498/odfxcgp4ojscykixhenc.jpg)\n\n*株式会社みんなの銀行 取締役常務執行役員CIO 宮本 昌明氏*\n\n機密データやソースコードの外部流出を阻止する開発体制も課題になります。ただ、宮本氏は現時点でローカルLLMの導入に否定的な立場です。「エンジニアは最新技術を求めています。ローカルLLMを導入すると、クラウドで提供されるAIほどの進化スピードを得られないことが問題で、エンジニアは最新の技術を使えない環境を喜びません。インプットは社内で保持し、ロジックのみを外部利用するなどの工夫が必要かもしれません」。\n\nこのように、さまざまな示唆を与えてくれた宮本氏の講演を受けて小澤は、「私たちの行動は、デジタルのタッチポイントが整備されたことで変わってきました。みんなの銀行のBaaSは、どんどん広がっていて、APIの種類も豊富ですから、知らず知らずのうちに使っている機会が増えてきそうです。GitLabは、これからもこのすばらしいサービスを、黒子として支えていきたいと考えています」とセッションを締めくくりました。\n\n![イベントのノベルティ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1756179493/dzobx7yicnj3kk6rzfyx.jpg)\n\n*イベントで配られたノベルティ*",[1023,9,813,680,280,552,681,1024],[853],{"featured":91,"template":685,"slug":1046},"event-report-gartner-application-innovation-2025","content:ja-jp:blog:event-report-gartner-application-innovation-2025.yml","Event Report Gartner Application Innovation 2025","ja-jp/blog/event-report-gartner-application-innovation-2025.yml","ja-jp/blog/event-report-gartner-application-innovation-2025",{"_path":1052,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1053,"content":1057,"config":1063,"_id":1065,"_type":14,"title":1066,"_source":16,"_file":1067,"_stem":1068,"_extension":19},"/ja-jp/blog/event-report-gartner-security-risk-management-2025",{"noIndex":6,"title":1054,"ogTitle":1054,"description":1055,"ogImage":1056},"コード生成AIのリスク管理とポテンシャル最大化【レポート】","ガートナー セキュリティ＆リスク・マネジメントサミット2025で登壇したGitLab吉瀬 淳一のセッション内容をレポート。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480526/wk05yajf5e4bmwuygve7.jpg",{"date":1058,"authors":1059,"title":1060,"description":1055,"heroImage":1056,"category":834,"tags":1061,"body":1062},"2025-09-10",[853],"コード生成AIのリスクを管理し、ポテンシャルを最大限に引き出す【イベントレポート】",[9,704,680,280,681],"GitLabは2025年7月23～25日の3日間、都内ホテルで開催された「ガートナー セキュリティ ＆ リスク・マネジメント サミット2025」に出展しました。本記事では、GitLabシニア・ソリューション・アーキテクト 吉瀬 淳一が登壇したセッションの模様についてレポートします。\n\n![ガートナー セキュリティ ＆ リスク・マネジメント サミット2025](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480502/dy6lgmfb1oihyvrjcxqx.jpg)\n\n*会場の様子*\n\nこの日の講演は、コード生成AIの話が中心です。まずは会社の話から入ったのですが、吉瀬は比較的社歴の浅いエンジニアで、働き方の紹介もユニークでした。GitLabは、全世界の全従業員がリモートで働いていることで知られています。実際に、GitLab社員の多くは、お客様やパートナー様から「よく聞くけれど、本当にそうなの？」と尋ねられた経験をしています。\n\n吉瀬は、「GitLabには本社がありません。世界中のどこを探しても、オフィスすらありません。私の場合も、入社が決まると会社のPCが送られてきて、GitLabでの生活が始まりました。入社した当日から、いきなり1人ぼっちです」と話して、会場の空気を和ませました。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/glglfhj8thtnkdsgqn8j.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\n## セキュリティ対策の全体像とシフトレフトの重要性\n\nソフトウェア開発においてコード生成AIを活用する前に、プロジェクトにおいてセキュリティをどう担保するかについて決めていく必要があります。その際に、セキュリティ対策の全体像を分解し、企画、開発、運用という大きく3つのくくりで詳細を決めることが必要です。\n\n![企業が取り組むべきセキュリティ対策の全体像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386735/vqy6xhnubpvwjnsfcxvc.png)\n\n*スライド：企業が取り組むべきセキュリティ対策の全体像*\\\n\\\n企画は、いわゆる統制やガバナンスのようなもの。企業全体、もしくはプロジェクト全体としてのルールを、ここで決めます。開発は、コードを生み出す段階での対策です。脆弱性検査の自動化やセキュアコーディングの標準化などがこれに当たります。運用におけるセキュリティ対策は、実行環境を守る手段を指します。エンドポイントセキュリティやネットワーク監視、ID管理、ログ管理などです。\n\nそして、これらの中で、最も課題が多いのは開発の部分になります。吉瀬は、「開発課題が大きい理由のひとつは、実際の開発を外部委託していることでしょう。委託先が何をやってるのか見えにくいのです。ただ、この部分の改革に取り組んでいかなければ、本当の意味でのセキュリティを守ることはできません」と話します。\n\n![](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/eskdwrakqm2n7t2bsocq.jpg)\n\n*スライド：デジタル庁が提示する「セキュリティ・バイ・デザイン」の原則*\\\n\\\nそのためにも、シフトレフトが重要になります。開発の上流工程で対策を講じることで、デプロイ後に脆弱性が見つかって対応するなどの手戻りは大幅に低減します。さらに、品質の向上につながることも期待できます。実際に、デジタル庁が公開した『政府情報システムのためのセキュリティ・バイ・デザインガイドライン』でも、開発のなるべく早い段階にセキュリティを担保するプロセスを組み込み、問題点を潰していくことの重要性がうたわれています。\n\n「現在、多くの日本企業は“事故が起きてからどうするかを考える”というセキュリティ対策を重視する傾向があるようです。それももちろん大切なのですが、偏りすぎると問題です。開発から運用に至るプロセスは左から右へと図示されますが、左側の開発段階でもやれることは数多くあります。きちんとシフトレフトして、開発の上流工程も最適化する方向で考えるべきです」（吉瀬）\n\n## 生成AIを活用するエンジニアはすでに100%！？\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480501/ns3x4ai53zkqjkbrcn5z.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nその最適化すべき“左側”で、生成AIは大きなムーブメントになっています。吉瀬は、「生成AIを活用しているエンジニアは、ほぼ100%と言ってもいいくらい」と話します。「ソフトウェア開発にAIを使っていると答えた組織の割合が78%という調査結果がありますが、よく見てください。 “組織”ですよ。個人のレベルになるとどうでしょう。組織としては、人が書いていると思っているけれど、実はその人がAIを使っているケースは多いでしょう。なにしろ、生産性が桁違いですから」。\n\n一方、GitLabの調査をまとめた『[2024グローバルDevSecOpsレポート](https://about.gitlab.com/ja-jp/developer-survey/)』によると、ソフトウェアエンジニアがコードを書く時間は、全就業時間の21%にとどまっています。残りの79%は脆弱性の対応やテスト、トラブルシューティング、打ち合わせなど。ここに、生成AIを導入してる企業の開発生産性が2割程度しか上がらない原因があります。全体の21%を占める部分の生産性が10倍になっても、残りの79%がボトルネックになり、全体的な生産性は上がらないのです。\n\n![スライド：AI生成コードの脆弱性とセキュリティリスクの急増](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386736/syfahxrakeeqlpyurjlv.png)\n\n*スライド：AI生成コードの脆弱性とセキュリティリスクの急増*\\\n\\\nさらに、生成AIのはらむセキュリティリスクに注意が必要です。上図に示したように、懸念点は大きく3つ。まず、AIが生成するコードには脆弱性が含まれがちです。次に、エンジニアは脆弱性が含まれていることは認識できるものの、その発見や対処法に自信を持っていません。最後に、マネジメントは、社内でAIがどういう扱われ方をしていて、どんなリスクが発生しているかをつかみきれていません。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480496/zs5kufi2hwvlvchjhiws.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nさらに問題を大きくしているのが、AIのサイロ化です。ソフトウェア開発プロセスでは、さまざまなツールが使用されます。そしていま、各ツールの裏でAIが動くようになりました。これらのAIが、IssueやEpic、マージリクエストの議論、過去の変更履歴といった開発の全体的なコンテキストを把握できないことが問題なのです。プロセスの中には、特定の脆弱性を修正する目的のIssueがあります。しかし、コード生成AIはその背景を知りません。[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)のAIは単にテストの成否だけを見ます。この状況では、「脆弱性を修正する」という本来の修正意図が反映されているかどうかを判断できません。“開発の文脈”を理解しないまま、各ツール上だけで動くAIが部分的な判断を下すことで、本質的な問題が見過ごされてしまうリスクが高まってしまうのです。\n\n## 単一のプラットフォームでソフトウェア開発ライフサイクル全体を管理する\n\nこうした状況を抜本的に解決するために、 GitLabは単一のプラットフォームでソフトウェア開発ライフサイクル全体を管理するというアプローチを採ります。企画、開発、運用にまたがるセキュリティ対策全体を鳥瞰する包括的な解決策であり、コードの脆弱性、開発者の信頼性、ガバナンスという3つの懸念点もクリアできます。\n\n![スライド：セキュアなAI活用を実現するDevSecOpsプラットフォーム](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757386735/rhpuem4bdeja6c2hr7iv.png)\n\n*スライド：セキュアなAI活用を実現するDevSecOpsプラットフォーム*\\\n\\\nGitLabのソリューションにおいて、生成AIを活用した開発プロジェクトのシフトレフトを支える中心になるのが、[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)の[コードレビュー&修正支援機能](https://player.vimeo.com/video/929891003?badge=0&autopause=0&player_id=0&app_id=58479/)です。[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)では、人間がレビューする前にAIがコードを自動チェックし、脆弱性を指摘します。さらに、脆弱性が生まれた原因と具体的な修正方法までAIが提案することで、脆弱性発生リスクを極小化することができます。開発段階において[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)を利用することで、セキュアなコード開発を促進する体制が自然に生まれることになります。\n\nGitLab上でプロセスを整え、ルール化を徹底すれば、シフトレフトは自然に推進されます。たとえば、パイプラインポリシーを整備すれば、開発者のスキルや意識に依存しない一貫したセキュリティレベルを担保できます。コードのコミットをトリガーに多様なセキュリティスキャンを自動実行するなど、適切なタイミングでセキュリティスキャンするプロセスを組織に根付かせることもできます。開発プロセスを最適化し続けることで、問題を早期に発見し、対処できる強固な体制が生まれます。\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/ocag236gff9qw5bvaoxx.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nGitLabのAIはプラットフォームとしての強みを生かし、一貫したコンテキストにもとづいて全体に対する有益な示唆を与えてくれます。GitLabを単一データストアとして、開発の全工程のデータを一元管理しておけば、AIが“全体の文脈”を理解できます。コードの関連性を把握し、変更の影響範囲もスピーディに指摘してくれます。サイロ化されたツールでは不可能な、一貫性のある高度な支援が可能になるのです。\n\nさらに、GitLabのAIポリシーは、極めて透明性の高いものです。[GitLabのAIは、「顧客のデータを学習データとして利用しない」など、企業の知的財産を守る明確なポリシーを設けています](https://about.gitlab.com/ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops/#%E3%83%87%E3%83%BC%E3%82%BF%E3%82%AC%E3%83%90%E3%83%8A%E3%83%B3%E3%82%B9%EF%BC%9A%E8%87%AA%E5%88%86%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AF%E8%87%AA%E5%88%86%E3%81%A7%E5%AE%88%E3%82%8B)。ユーザーは、安心して最先端のAI技術を活用することも可能ですし、よりセキュアな環境を求める場合は、オンプレミス環境におけるローカルLLM運用にも対応しています。\n\n## 一貫したコンテキストの中でAIの力を最大限に生かす\n\n![GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/nlqrw5sadygg4blh3ln3.jpg)\n\n*GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト 吉瀬 淳一*\n\nコード生成AIは、開発を加速させる強力な武器です。ただし、正しく活用すれば、であることに注意が必要です。コード生成AIのポテンシャルを最大限に引き出し、同時にリスクを管理するために必要な要素は、ここまで述べてきたとおりです。つまり、開発ライフサイクル全体を俯瞰し、一貫したルールとコンテキストのもとでAIを機能させる、GitLabのような統合プラットフォームが不可欠なのです。\n\n吉瀬は、「生成AIの時代は始まったばかりで、これからどんどん広まっていくでしょう。ひとりの開発者が生み出すコードの量は、これまでに比べると凄まじく増えます。生産性はどんどん高まります。すばらしいことです」と話します。\n\n「確かに、生成AIの書いたコードに脆弱性が大量に含まれているというリスクはありますが、生産性とリスクのバランスを考えると、AIを使わないという選択肢はありえません。だからこそ、コードのレビューや脆弱性の修正にもAIを使い、パイプラインポリシーのシフトレフトをきちんとやる必要があるのです。プラットフォームを統合して、一貫したコンテキストの中でAIの力を最大限に生かしていきましょう。これがGitLabからのメッセージです」（吉瀬）\n\n![イベントで配られたノベルティ（水筒）](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/yibqr6h9osxu0nqyxxdu.jpg)\n\n*イベントで配られたノベルティ（水筒）*\n\n![イベントで配られたノベルティ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1757480495/kx2htmmgdnrwqsdctif5.jpg)\n\n*イベントで配られたノベルティ（スニーカー）*",{"featured":91,"template":685,"slug":1064},"event-report-gartner-security-risk-management-2025","content:ja-jp:blog:event-report-gartner-security-risk-management-2025.yml","Event Report Gartner Security Risk Management 2025","ja-jp/blog/event-report-gartner-security-risk-management-2025.yml","ja-jp/blog/event-report-gartner-security-risk-management-2025",{"_path":1070,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1071,"content":1077,"config":1083,"_id":1085,"_type":14,"title":1086,"_source":16,"_file":1087,"_stem":1088,"_extension":19},"/ja-jp/blog/gitlab-17-1-released",{"title":1072,"description":1073,"ogTitle":1072,"ogDescription":1073,"noIndex":6,"ogImage":1074,"ogUrl":1075,"ogSiteName":669,"ogType":670,"canonicalUrls":1075,"schema":1076},"GitLab 17.1リリース","GitLab 17.1でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662125/Blog/Hero%20Images/17_1-cover-image.png","https://about.gitlab.com/blog/gitlab-17-1-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.1リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-08-08\",\n      }",{"title":1072,"description":1073,"authors":1078,"heroImage":1074,"date":1079,"body":1080,"category":705,"tags":1081},[853],"2024-08-08","__GitLab 17.1のリリースでモデルレジストリがベータ版で提供開始、さらにVS Codeで複数のGitLab Duoコード提案が利用可能に__\n\nこのたび、[ベータ版のモデルレジストリ](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#model-registry-available-in-beta)、[VS Codeでの複数のGitLab Duoコード提案](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#see-multiple-gitlab-duo-code-suggestions-in-vs-code)、[ベータ版のシークレットプッシュ保護](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#secret-push-protection-available-in-beta)、[GitLab Runner Autoscalerなどの機能](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#gitlab-runner-autoscaler-is-generally-available)を備えたGitLab17.1のリリースを発表しました。\u003Cbr>\n\nこれらの機能は、今回のリリースに含まれる45件以上の改善点のほんの一部です。この記事では、役に立つ最新情報をすべてご紹介していますので、ぜひ最後までお読みください。\u003Cbr>\n\nGitLab 17.1には、GitLabコミュニティのユーザーから340件以上ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\u003Cbr>\n\n来月のリリースで予定されている内容を先取りするには、17.2リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。\u003Cbr>\n\n## 今月のMost Valuable Person（[MVP](https://about.gitlab.com/community/mvp/)）は[Shubham Kumar](https://gitlab.com/imskr)さんと[Joe Snyder](https://gitlab.com/joe-snyder)さんの2名が同時受賞\n\nMVPには、[誰もがGitLabコミュニティのコントリビューターを推薦できます](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)。現在の候補者を応援したり、他の誰かをノミネートしてみませんか。🙌\u003Cbr>\nShubham Kumarさんは[17.1で7つのイシューを完了するなど](https://gitlab.com/dashboard/issues?sort=due_date_desc&state=closed&assignee_username%5B%5D=imskr&milestone_title=17.1)、2021年以来一貫してGitLabにコントリビュートしてきました。 今では、そのコントリビューションのうち50以上がマージされるまでになりました。Shubhamさんは[GitLab Hero](https://about.gitlab.com/community/heroes/)であり、Google Summer of Codeの前コントリビューターでもあります。\u003Cbr>\n\nShubhamさんを推薦したのは、GitLabのシニアプロダクトマネージャー、[Christina Lohr](https://gitlab.com/lohrc)です。「Shubhamさんは、過去数週間～数か月にわたって特に[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)製品の問題を解決するために力を貸してくれました。Shubhamさんがコントリビュートしてくれた機能の数は膨大で、その内容も書ききれないほどです！」とChristinaは述べています。\u003Cbr>\n\nShubhamさんは「GitLabのオープンソースコミュニティは最高です。この機会をいただけたこと、そして高く評価していただいたことにとても感謝しています。今後もGitLabプラットフォームへのコントリビュートを続けていきたいです」とコメントしています。\u003Cbr>\n\nJoe Snyderさんは、GitLabのプリンシパルプロダクトマネージャーである[Kai Armstrong](https://gitlab.com/phikai)により、 [差分をメールに含まれないよう制限](https://gitlab.com/gitlab-org/gitlab/-/issues/24733)するという待望の機能のビルドで推薦されました。 このコントリビュートには、GitLab 15.3以来10件以上ものマージリクエストがありました。「この機能は大規模なもので、多くの努力、複雑な移行作業、製品への変更作業を経て提供が可能になりました。Joeさんはこの作業を完了のために努力を重ね、多くの管理者やコラボレーターと協力しながらマイルストーンに到達できました」とKaiは語っています。\u003Cbr>\n\nGitLabのプロジェクトマネージャーである[Jocelyn Eillis](https://gitlab.com/jocelynjane)は、 `[build:resource_group](https://gitlab.com/gitlab-org/gitlab/-/issues/361438)` の[ネストされた変数](https://gitlab.com/gitlab-org/gitlab/-/issues/361438)が[展開されない](https://gitlab.com/gitlab-org/gitlab/-/issues/361438)というバグを修正した功績を称えJoeさんを推薦しました。 Jocelynは「このバグ修正に関するお客様からの要望が多かったことに加え、さらに23の同意票が寄せられていました。レビュアーのフィードバックへの迅速な対応により、修正をGitLab 17.1に含めることができました」と述べています。\u003Cbr>\n\nこれは[GitLab 16.6](https://about.gitlab.com/releases/2023/11/16/gitlab-16-6-released/#mvp)以来、Joeさんが受け取る2つ目のGitLab MVPとなります。 Joeさんは[Kitware](https://www.kitware.com/)社のシニア調査開発エンジニアであり、2021年からGitLabへのコントリビュートを続けています。\n\n## GitLab 17.1でリリースされた主な改善点 \n\n### ベータ版のモデルレジストリ\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLabでは、ベータ版のモデルレジストリを非常に重要な機能として位置付け、正式なサポートを開始しました。これにより、UIを介してモデルを直接追加、編集できるほか、MLflow統合機能を利用してGitLabをモデルレジストリのバックエンドとして利用できるようになりました。\u003Cbr>\n\nモデルレジストリは、データサイエンスチームが機械学習（ML）モデルとその関連するメタデータを管理するのに役立つハブであり、トレーニングを受けた機械学習（ML）モデルを組織が保存、バージョン管理、文書化、検出するための一元化された場所として機能します。これにより、モデルのライフサイクル全体にわたるコラボレーション、再現性、ガバナンスが向上します。\u003Cbr>\n\nGitLabはモデルレジストリをチームのコラボレーション、デプロイ、モニタリング、継続的なモデルのトレーニングの基礎となるコンセプトと考えており、ユーザーのみなさまの声をぜひ聞きたいと思っています。[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/465405)からお気軽に意見をお寄せください。こちらから折り返しご連絡いたします。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/ml/model_registry/) \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/9423)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/8uyxk0vhifE?si=-fan7BaDKgqj8ZSe\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### VS Codeで複数のGitLab Duoコード提案を表示\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\nVS CodeのGitLab Duoコード提案に、利用可能な複数の提案の有無が表示されるようになりました。操作は簡単で、提案にカーソルを合わせ、矢印またはキーボードショートカットを使用して候補を切り替えられます。\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#view-multiple-code-suggestions)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1325)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/multiple-code-suggestions-vs-code.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### ベータ版シークレットプッシュの保護\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: -\u003Cbr>\n\nキーや[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)トークンなどのシークレット情報が誤ってGitリポジトリにコミットされた場合、リポジトリにアクセスできる人なら誰でも、悪意のある目的でそのシークレットのユーザーになりすますことができます。このリスクの対処として、ほとんどの組織では漏洩したシークレット情報を失効させて置き換える必要がありますが、そもそも情報がプッシュされなければ、修復にかける時間も必要なく、リスクを軽減できます。\u003Cbr>\n\nシークレットプッシュの保護は、GitLabにプッシュされた各コミットの内容をチェックします。[シークレット情報が検出されると](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/detected_secrets.html)プッシュはブロックされ、次の事項を含むコミットに関する情報が表示されます。\u003Cbr>\n\n- シークレット情報を含むコミットID\n- シークレット情報を含むファイル名と行番号\n- シークレット情報のタイプ\u003Cbr>\n\nテストのためにシークレットプッシュ保護を回避する必要がある場合は、シークレットプッシュ検出をスキップすると、GitLabは監査イベントをログに記録して調査できるようにします。\u003Cbr>\n\nシークレットプッシュ保護は[ベータ](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#beta)機能としてGitLab.comおよびDedicatedのユーザーに提供されており、[プロジェクトごとに](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/index.html#enable-secret-push-protection-in-a-project)有効にできます。 [イシュー467408](https://gitlab.com/gitlab-org/gitlab/-/issues/467408)からフィードバックを投稿し、シークレットプッシュ保護の改善にご協力ください。\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection)\u003Cbr>\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/12729)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/2jBC3uBUlyU?si=hW3nu57X5yJVQr7r\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Runner Autoscalerの一般提供開始\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n旧バージョンのGitLabでは、一部のユーザーはパブリッククラウドプラットフォームの仮想マシンインスタンスでGitLab Runnerの自動スケーリングソリューションが必要でした。その場合、レガシーな[Docker Machine executor](https://docs.gitlab.com/runner/configuration/autoscale.html)や、クラウドプロバイダのテクノロジーを使ってつなぎ合わせたカスタムソリューションに依存しなければなりませんでした。\u003Cbr>\n\n本リリースで、GitLab Runner Autoscalerが一般公開されます。GitLab Runner Autoscalerは、GitLabが開発したtaskscalerと[fleeting](https://docs.gitlab.com/runner/fleet_scaling/fleeting.html)テクノロジー、そしてGoogle Compute Engine用のクラウドプロバイダプラグインで構成されています。\n[ドキュメント](https://docs.gitlab.com/runner/runner_autoscale/)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29221)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/runner_fleeting_ga.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### Snowflake MarketplaceでGitLabコネクタアプリケーションが利用可能に\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\n監査イベントが作成され、GitLabに保存されるようになります。今回のリリース以前は、監査イベントはGitLabからのアクセスのみで、GitLab UIを使用して結果を確認するか、すべての監査イベントを構造化されたJSONとして受信するようにストリーミング先を設定する必要がありました。\u003Cbr>\n\n一方でユーザーはSnowflakeといったSIEMソリューションなどのサードパーティの宛先に監査イベントを持つ機能も求めていました。それは次を可能にするからです：\u003Cbr>\n\n- GitLabを含む、組織の複数のシステムからのすべての監査イベントデータを簡単に表示、結合、操作、レポートすること\n- 特定の監査イベントのみを表示し、関心のある質問に迅速に回答\n- GitLab内で起きていることの全体像を把握し、事後確認できる\u003Cbr>\n\nユーザーがこうしたタスクを実行できるよう、Snowflake Marketplace用のGitLabコネクタアプリケーションを作成しました。このアプリケーションは監査イベント[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)を使用します。 この機能を使用するには、[Snowflake Marketplace](https://app.snowflake.com/marketplace/listing/GZTYZXESENG/gitlab-gitlab-data-connector)を使用してアプリケーションをデプロイ・管理する必要があります。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/integration/snowflake.html)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13004)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/gitlab-snowflake-connector.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### Wikiユーザーエクスペリエンスの改善\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab 17.1のWiki機能はより統一され、ワークフローの効率が改善されました。\u003Cbr>\n\n- 新しいリポジトリのクローンボタンを使用すると、さらに[簡単かつ迅速にクローンを作成](https://gitlab.com/gitlab-org/gitlab/-/issues/281830)できます。 これによりコラボレーションが改善され、編集や表示の際のWikiコンテンツへのアクセスが高速化されます。\n- [削除オプションをわかりやすいデザイン](https://gitlab.com/gitlab-org/gitlab/-/issues/335169)に変更し、見つけやすい場所に移動しました。これによりWikiページの検索にかかる時間が短縮され、Wikiページの管理時に発生する可能性のあるエラーや混乱が最小限に抑えられます。\n- [空白のページが許可](https://gitlab.com/gitlab-org/gitlab/-/issues/221061)されることで、柔軟性が向上します。 必要に応じて空白のプレースホルダーを作成して、Wikiコンテンツの計画と整理に集中し、後で空白のページを埋めることもできます。\u003Cbr>\n\n今回の機能強化により、Wikiワークフローの利便性、発見性、コンテンツ管理機能が向上しました。GitLabでは、Wikiを効率的で使いやすいものにしたいと考えています。 クローンリポジトリへのアクセスを容易にし、主要なオプションを再配置して表示レベルを高め、空白のプレースホルダーを作成できるようにするなど、よりユーザーが利用しやすいプラットフォームになりました。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/wiki/)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/452225)\u003Cbr>\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/t2z7sZoJ6oE?si=Xu22Y7ZIzLP2ByRd\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### 新しいバリューストリーム管理レポート生成ツール\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nバリューストリーム管理用の新しいレポート生成ツールの追加により、意思決定者がソフトウェア開発ライフサイクル（SDLC）の最適化をより効率的かつ効果的に行うことができるようになりました。\u003Cbr>\n[DevSecOps比較メトリクスレポート](https://gitlab.com/components/vsd-reports-generator#example-for-monthly-executive-value-streams-report)または[AIインパクト分析](https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/#ai-impact-analytics-in-the-value-streams-dashboard)レポートを、GitLabイシューの関連情報とともに自動的かつ主体的に配信するよう設定できるようになりました。 スケジュールされたレポートを活用することで、マネージャーは必要なデータを求めて適切なダッシュボードを手動で検索するなどして時間を浪費することなく、インサイトを分析し、情報に基づいた意思決定に集中できます。\u003Cbr>\n[CI/CDカタログ](https://gitlab.com/explore/catalog)を使用するとスケジュールレポートツールにアクセスできます。\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#schedule-value-streams-dashboard-reports) \u003Cbr>\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/10880)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/17.1_vsm_reports2.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### 署名にコンテナイメージを関連付け\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: -\u003Cbr>\n\nGitLabコンテナレジストリは、署名されたコンテナイメージとその署名を関連付けるようになりました。この改善により、ユーザーは次をより簡単に実行できます：\u003Cbr>\n\n- 署名されているイメージとそうでないイメージの特定\n- コンテナイメージに関連付けられている署名を見つけて検証\u003Cbr>\n\nこの機能はGitLab.comでのみ一般提供されています。 Self-Managedサポートはベータ版であり、ユーザーはベータ版の[次世代コンテナレジストリ](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html)を有効にする必要があります。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/container_registry/#container-image-signatures)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/7856)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/container-registry-signatures.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### マニュアルジョブの確認の必須化設定\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nマニュアルジョブは、本番環境へのデプロイといったCIパイプラインで非常に重要な操作をトリガーするために使用できます。今回のリリースでは、マニュアルジョブが実行される前に確認を必須にするよう設定できるようになりました。 `manual_confirmation` と `when: manual` を使用すると、マニュアルジョブが実行された際にUIに確認ダイアログが表示されます。 マニュアルジョブの確認を必須化すると、セキュリティと操作に新たな保護レイヤーが追加されます。\u003Cbr>\nこの場を借りて、コミュニティにコントリビュートしてくれた[Phawin](https://gitlab.com/lifez)さんに感謝します！\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/ci/jobs/job_control.html#add-a-confirmation-dialog-for-manual-jobs)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/18906)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/ask-confirmation-on-manual-job.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### グループ用Runnerフリートダッシュボード\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nグループレベルでSelf-ManagedされたRunnerフリートのオペレーターは、観測性に加え、Runnerフリートインフラストラクチャに関する重要な質問にすぐに回答できる能力が必要です。グループ用のRunnerフリートダッシュボードを使用すると、GitLab UIでRunnerフリートの観測性や実行可能なインサイトを直接得られるようになります。 これによりRunnerの健全性をすばやく判断できるほか、組織のターゲットサービスレベル目標におけるRunnerの使用状況メトリクスとCI/CDジョブキューサービス機能に関するインサイトを得られます。\u003Cbr>\nGitLab.comユーザーは、現在グループ向けに提供されているすべてのフリートダッシュボードメトリクスを利用できます。Self-Managedのユーザーはフリートダッシュボードメトリクスのほとんどの機能を使用できますが、__Runnerの使用状況__ と__ジョブが選択されるまでの待機時間__メトリクスを使用するには、ClickHouse分析データベースを構成する 必要があります。\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/ci/runners/runner_fleet_dashboard_groups.html)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/424789)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/runners-fleet-dashboard-groups-beta.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n## GitLab 17.1のその他の改善 \n\n### Webhook作成時の監査イベント\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\n監査イベントは、GitLabで実行される重要なアクションを記録します。 これまで、システム、グループ、プロジェクトのWebhookがユーザーによって追加される際に監査イベントは作成されませんでした。\u003Cbr>\nこのリリースでは、ユーザーがシステム、グループ、プロジェクトのWebhookを作成する際の監査イベントが追加されました。\u003Cbr>\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#webhooks) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/8068) \u003Cbr>\n\n### APIを使用して選択したプロジェクトリレーションを再インポート\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n同じ種類の多くのアイテム（マージリクエストやパイプラインなど）を含むエクスポートファイルからプロジェクトをインポートする場合、アイテムの一部がインポートされないことがあります。\u003Cbr>\n\n本リリースでは、名前が付けられているリレーションを再インポートし、すでにインポートされているアイテムをスキップする[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)エンドポイントが追加されました。APIには以下の両方が必要です：\u003Cbr>\n- プロジェクトエクスポートアーカイブ\n- イシュー、マージリクエスト、パイプライン、マイルストーンのいずれかのタイプ\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/project_import_export#import-a-single-relation) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/455889)\u003Cbr>\n\n### REST APIを使用して実行中の直接転送移行をキャンセル\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nこれまで、実行中の直接転送移行をキャンセル[するにはRailsコンソールへのアクセスが必要](https://docs.gitlab.com/ee/user/group/import/direct_transfer_migrations.html#cancel-a-running-import)でした。\u003Cbr>\n\n今回のリリースでは、REST APIを使用して管理者が移行をキャンセルできる機能が追加されました。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/bulk_imports.html#cancel-a-migration) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/438281)\u003Cbr>\n\n### イメージアップロード時に貼り付けるイメージの縮小\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab 17.1では高解像度画像の処理性能が強化され、アップロード中にイメージが縮小できるようになりました。以前、イメージは元のサイズで表示されていたため、表示のされかたが最適ではありませんでした。これにより、大きなイメージが含まれているページでもレイアウトが崩れないよう改善されました。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/markdown.html#change-the-image-or-video-dimensions) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/419913)\u003Cbr>\n\n### GitLab APIコールでの相互TLSのPagesサポート\nSaaS: -\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLabは[SSL証明書を使用してクライアント認証を実施](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#:~:text=enforce%20client%20authentication%20with%20SSL%20certificates)するよう設定できますが、GitLab Pagesサービスはクライアント証明書を使うよう設定できないため、この機能と互換性がなく、内部[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)コールは却下されていました。\u003Cbr>\n\nGitLab 17.1以降GitLab Pagesのクライアント証明書の設定が可能となり、GitLab APIでクライアント認証を有効にしてGitLabインスタンスのセキュリティを強化できるようになりました。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/pages/#support-mutual-tls-when-calling-the-gitlab-api) \u003Cbr>[イシュー](https://docs.gitlab.com/ee/administration/pages/#support-mutual-tls-when-calling-the-gitlab-api)\u003Cbr>\n\n### 名前の変更時にWikiページを新しいURLにリダイレクト\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab 17.1では、Wikiページのリダイレクト機能が大幅に強化されました。Wikiページの名前を変更後に誰かが以前のページにアクセスしようとすると自動的に新しいページにリダイレクトされ、既存のすべてのリンクが確実に機能するようになりました。この改善によってページ名の変更管理のワークフローが合理化され、全体的なナレッジマネジメントの作業体験が向上します。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/wiki/) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/257892)\u003Cbr>\n\n### エピックの進行率の把握\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\n子アイテムのウェイトの完了度合いから、エピック全体の進行状況を簡単に確認できるようになりました。階層ウィジェットに新しく追加された進行状況のロールアップにより、エピックの全作業範囲を簡単に把握し、進行状況を確認しながら作業を進められます。\u003Cbr>\n\nドキュメント\u003Ca href=\"https://https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#view-epic-progress\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">Embedded content: https://https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#view-epic-progress\u003C/a> \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/5163)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/weight_and_progress_information_in_epic.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### コードレビューメールでの差分プレビューの無効化\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nマージリクエストでコードをレビューしてその行にコメントした場合、GitLabではその差分の数行を参加者への通知メールに含めるよう設定されています。一部の組織のポリシーではメールが安全性の低いシステムとして扱われていたり、メール用の独自のインフラストラクチャが管理されていない場合があり、IPやソースコードのアクセス制御にリスクが発生するおそれがあります。\u003Cbr>\n\nグループとプロジェクトに新しい設定が追加され、組織はマージリクエストメールから差分プレビューを削除できるようになりました。これにより、機密情報がGitLab以外に流出しないよう保護することができます。\u003Cbr>\nこの場を借りて、コミュニティにコントリビュートしてくれた[Joe Snyder](https://gitlab.com/joe-snyder)さんに感謝します！\n\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/manage#disable-diff-previews-in-email-notifications) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/24733)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/create-restrict-diffs-email.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### GitLab Runner 17.1がリリース\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab Runner 17.1がリリースされます！ GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、軽量で拡張性の高いエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\u003Cbr>\n新機能：\u003Cbr>\n\n- GCP Compute Engine用GitLab Runnerフリートプラグイン\u003Cbr>\n\nバグの修正：\u003Cbr>\n- Runnerヘルパーイメージのエントリポイントの欠如\u003Cbr>\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-1-stable/CHANGELOG.md)で確認できます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/runner) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36942)\u003Cbr>\n\n### コンテナレジストリタグの公開日順でソート\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: -\u003Cbr>\n\nソースコードやパイプラインと一緒にDockerイメージまたはOCIイメージを表示、プッシュ、プルするには、GitLabコンテナレジストリを使用しますが、多くの場合、コンテナイメージのビルド後に正しい状態かどうかを確認する必要があります。ユーザーの多くが、ユーザーインターフェースを使用して正しいコンテナイメージを見つけることを難しく感じています。\u003Cbr>\n\nそんな問題を解決するため、コンテナレジストリのタグリストを公開日順にソートできるようになりました。この機能を使用すると、新しく公開されたコンテナイメージをすばやく検索して検証できます。\u003Cbr>\n\nこの機能はGitLab.comでのみ一般提供されています。次世代型コンテナレジストリはベータ版のため、Self-Managedサポートもベータ版となります。詳細については[コンテナレジストリメタデータデータベースのドキュメント](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html)を参照してください。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/container_registry/#view-the-container-registry) \u003Cbr>[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/7856)\u003Cbr>\n\n### APIセキュリティテストアナライザーの更新\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nGitLab 17.1は、[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)セキュリティテスト用に次の構成変数を追加しました：\u003Cbr>\n1.  `APISEC_SUCCESS_STATUS_CODES` は、APIセキュリティテストのスキャンジョブがパスしたかを定義するHTTP成功ステータスコードのリストを、カンマ区切りで作成します。\n2.  `APISEC_TARGET_CHECK_DISABLED` は、スキャン開始前にターゲットAPIが利用可能になるまでの待機を無効にします。\n3.  `APISEC_TARGET_CHECK_STATUS_CODE` は、APIターゲットの可用性チェックで想定されるステータスコードを指定します。 指定されていない場合、500以外のステータスコードをスキャナーに使用できます。\u003Cbr>\n4.  \nこうした新しい変数によりカスタマイズ性や自由度が向上し、スキャンを確実に成功させられるようになります。\u003Cbr>\n\nDAST APIは、16.10でAPIセキュリティテストに名前が変更されました。今後、変数名のプレフィックスは `APISEC` となります。 以前のプレフィックスは `DAST_API` でした。 `DAST_API` がプレフィックスとなっている変数は、18.0（2025年5月）までサポートされます。設定が期待通りに動作するように、できるだけ早く変数名を更新するようにしてください。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/api_security_testing/configuration/variables.html) \u003Cbr>[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14170)\u003Cbr>\n\n### ファジングアナライザーの更新\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nGitLab 17.1は、ファジング用に次の構成変数を追加しました：\u003Cbr>\n\n1.  `FUZZAPI_SUCCESS_STATUS_CODES` は、ファジングのジョブがパスしたかを定義するHTTP成功ステータスコードのリストをカンマ区切りで作成します。\n2.  `FUZZAPI_TARGET_CHECK_SKIP` は、スキャン開始前にターゲットAPIが利用可能になるまでの待機を無効にします。\n3.  `FUZZAPI_TARGET_CHECK_STATUS_CODE` は、APIターゲットの可用性チェックで想定されるステータスコードを指定します。指定されていない場合、500以外のステータスコードをスキャナーに使用できます。\u003Cbr>\n\nこうした新しい変数によりカスタマイズ性や自由度が向上し、スキャンを確実に実行させられるようになります。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/api_fuzzing/configuration/variables.html) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/442699)\u003Cbr>\n\n### マージリクエスト認証ポリシーのフェールオープン/クローズ（ポリシーエディター）\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\n前回の[イテレーション](https://gitlab.com/groups/gitlab-org/-/epics/10816)に基づいてポリシーエディター内に新しいオプションを導入し、ユーザーがセキュリティポリシーをフェールオープンまたはフェールクローズに切り替えられるようになりました。 この拡張機能では、ポリシーエディタービュー内でより設定が簡単にできるようYAMLサポートを拡張します。\u003Cbr>\n\n例えばフェールオープンで設定されたマージリクエストポリシーは、基準を評価するのに十分なエビデンスがない場合に、マージリクエストをマージできます。エビデンスの欠如の理由として、アナライザーがプロジェクトで有効になっていないか、アナライザーがポリシーの評価結果を生成できなかったことが考えられます。このアプローチでは、チームが適切なスキャンの実行と実施を確実にできるよう、ポリシーを段階的にロールアウトできます。\n\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#fallback_behavior) \u003Cbr>[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13227)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/fail-open.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### プロジェクトオーナーに有効期限間近のアクセストークン通知を送信\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nプロジェクトオーナーと、ダイレクトメンバーシップを持つメンテナーの両方に、プロジェクトアクセストークンの有効期限が近づくとメール通知が送信されるようになりました。以前、この通知が送信されていたのはプロジェクトのメンテナーのみでした。この更新により、多くのユーザーがトークンの有効期限が近づいていることを通知で知れるようになります。\u003Cbr>\n\nこの場を借りて、コントリビュートしてくれた[Jacob Henner](https://gitlab.com/arcesium-henner)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/security/token_overview.html#project-access-tokens) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/460818)\u003Cbr>\n\n### Omnibusの改善\nSaaS: -\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitlab 17.1には[Ubuntu Noble 24.04](https://docs.gitlab.com/ee/administration/package_information/supported_os.html)をサポートするパッケージが含まれています。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\u003Cbr>\n\n### グループAPIを使用して `marked_for_deletion_on` の日付でグループをフィルタリング\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\nグループ[API](https://about.gitlab.com/ja-jp/blog/what-is-an-api)で `marked_for_deletion_on` 属性を使用して応答をフィルタリングできるようになりました。これを実行すると、特定の日付で削除するようマークされたグループが返されます。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@imskr](https://gitlab.com/imskr)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/groups.html#list-groups) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/429315)\u003Cbr>\n\n### 表示レベル選択の改善\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n以前、グループやプロジェクトの一般的な設定で表示されるのは許可された表示レベルの項目のみでした。そのため、特定のオプションが利用できないユーザーを混乱させたり、情報が正しく表示されないなどの状況が発生していました。新しいビューではすべての表示レベルを確認でき、選択できない項目はグレーで表示されます。さらに、ポップオーバーで項目が利用できない理由の詳細情報を確認できます。表示レベルが利用できない理由として、管理者による制限やプロジェクトまたは親グループの表示レベルとの競合などがあります。\u003Cbr>\n\n今回の変更で、希望する表示レベル選択時の競合の問題が解決できることを願っています。この場を借りて、コミュニティにコントリビュートしてくれた[@gerardo-navarro](https://gitlab.com/gerardo-navarro)さんに感謝します！\n\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/public_access.html#change-group-visibility) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/455668)\u003Cbr>\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/improved-visibility-selection.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n### グループとプロジェクト用の新しいGraphQL API引数 `markedForDeletionOn`\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\n新しいGraphQL API引数 `markedForDeletionOn` を使用し、特定の日付で削除するようマークされたグループまたはプロジェクトを一覧表示できるようになりました。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@imskr](https://gitlab.com/imskr)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/index.html#querygroups) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/463809)\u003Cbr>\n### グループバッジとプロジェクトバッジ用の新しいプレースホルダー\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n4つの新しいプレースホルダーを使用し、バッジリンクと画像URLを作成できるようになりました。\u003Cbr>\n\n-  `%{project_namespace}` -プロジェクト名前空間の完全なパスを参照\n-  `%{group_name} ` - グループ名を参照\n-  `%{gitlab_server} ` - グループまたはプロジェクトのサーバー名を参照\n-  `%{gitlab_pages_domain} ` - グループまたはプロジェクトのドメイン名を参照\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@TamsilAmani](https://gitlab.com/TamsilAmani)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/badges.html#placeholders) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/22278)\u003Cbr>\n\n### 直接転送でインポートする際に、継承されたメンバーシップ構造を維持\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nこれまでは、直接転送での移行の場合は[継承されたメンバーシップ](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#:~:text=Until%20now%2C-,inherited%20memberships,-were%20not%20imported)を確実にインポートすることはできませんでした。そのため、プロジェクトの継承メンバーは直接メンバーとしてインポートされていました。\u003Cbr>\n\n今回のリリースで、GitLabはプロジェクトのメンバーシップを移行する前に、まずグループメンバーシップを移行するよう変更されました。これにより、ソースのGitLabインスタンスで継承されたメンバーシップが複製されます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/import/#memberships) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/458834)\u003Cbr>\n### REST APIによるグループフックのテスト\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\nこれまで、REST APIでテストできるのはプロジェクトフックのみでした。今回のリリースでは、指定されたグループのテストフックをトリガーできるようになりました。\u003Cbr>\n\nこのエンドポイントには、グループフックごとに毎分最大3つのリクエストという特別なレート制限があります。管理者は `web_hook_test_api_endpoint_rate_limit` 機能フラグを無効にすることで、Self-Managed GitLabとGitLab Dedicatedでこの制限を無効化できます。\u003Cbr>\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150486)してくれた[Phawin](https://gitlab.com/lifez)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/groups.html#trigger-a-test-group-hook) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/455589)\u003Cbr>\n\n### REST APIを使用してカスタムWebhookヘッダーを設定\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab 16.11では、[Webhookを作成または編集する際のカスタムヘッダーを追加する機能](https://about.gitlab.com/releases/2024/04/18/gitlab-16-11-released/#custom-webhook-headers)を導入しました。\u003Cbr>\n\n今回のリリースでは、GitLab REST APIを使用してカスタムWebhookヘッダーを設定できるようになりました。\u003Cbr>\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153768)してくれた[Niklas](https://gitlab.com/Taucher2003)さんに感謝します！\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/projects.html#set-a-custom-header) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/455528)\u003Cbr>\n\n### リッチテキストエディターでドラッグ可能なメディア\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n以前は、リッチテキストエディターでメディアを移動するには、各アイテムを手動でコピー＆ペーストする必要がありました。そのため、イシュー、エピック、Wikiにメディアを含める際によく遅延が発生していました。GitLab 17.1では、リッチテキストエディターでメディアをドラッグ＆ドロップできるようになり、編集時の効率が大幅に向上しました。\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/rich_text_editor.html) \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/452233)\u003Cbr>\n\n### よりスムーズなワークフローを実現するリアルタイムのボード最新情報\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n[ボード](https://docs.gitlab.com/ee/user/project/issue_board.html)上のイシューを更新する際のエクスペリエンスがよりスムーズになります！サイドバーで行った変更はボードに即座に反映され、再度更新する必要はありません。 この即時反映機能によってワークフローが合理化され、リアルタイムで内容を確認しながら更新をすばやく行うことができます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/issue_board.html) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/468187)\u003Cbr>\n### タスクの所要時間を追跡\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nこのリリースでは推定時間を設定し、クイックアクションやタスクのサイドバーのタイムトラッキングウィジェットでタスクに費やした時間を記録できるようになりました。 タスクに費やした時間は、タスクのタイムトラッキングレポートで確認できます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/time_tracking.html) \u003Cbr>[イシュー](https://docs.gitlab.com/ee/user/project/time_tracking.html)\u003Cbr>\n\n### Pages UIの更新\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nGitLab 17.1ではPagesユーザーインターフェイスが改善され、たとえば画面スペースをより効率的に使用することができるようになりました。今回のUIの改善は、Pagesを管理する際のユーザーエクスペリエンスと効率性の改善に焦点を当てたものです。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153250)\u003Cbr>\n### ユーザー定義変数を上書きできるユーザー権限管理の強化\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nユーザー定義の変数を上書きできるユーザーをより適切に管理できるよう、 `ci_pipeline_variables_minimum_role` プロジェクト設定が導入されました。 この新設定では既存の [`restrict_user_defined_variables`](https://docs.gitlab.com/ee/ci/variables/#restrict-who-can-override-variables) 設定よりもさらに自由度が向上し、上書きの権限をどのユーザーにも許可しない、もしくはデベロッパー、メンテナ、オーナー以上のロールを持つユーザーのみに制限できるようになりました。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/variables/#restrict-who-can-override-variables-by-user-minimum-role) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/440338)\u003Cbr>\n### コンテナイメージの最終公開日を表示\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: -\u003Cbr>\n\nこれまでは、公開されたタイムスタンプがコンテナレジストリユーザーインターフェースで正しく表示されない状況がよく発生しており、コンテナイメージを見つけて検証する際にタイムスタンプ内の重要なデータを確認することができませんでした。\u003Cbr>\n\nGitLab 17.1では、正確な `last_published_at` タイムスタンプを含めるようUIが更新されました。タイムスタンプは、__デプロイ > コンテナレジストリ__ に移動してタグを選択すると表示されます。 最終公開日はページ上部に表示されます。\u003Cbr>\n\nこの機能はGitLab.comでのみ一般提供されています。Self-Managedサポートはベータ版であり、ベータ版[次世代コンテナレジストリ](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html)を有効にしたインスタンスでのみ利用できます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/container_registry/#view-the-container-registry) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/290949)\u003Cbr>\n\n### リリースページにリリースRSSアイコンを表示する\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n新しいリリースが投稿されたときに通知でのお知らせを希望しますか？GitLabでは、リリースをお知らせするRSSフィードの提供を開始しました。プロジェクトのリリースページにあるRSSアイコンから、リリースフィードにサブスクライブできます。\u003Cbr>\n\nこの場を借りて、コントリビュートしてくれた[Martin Schurz](https://gitlab.com/schurzi)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/releases/#track-releases-with-an-rss-feed) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/30988)\u003Cbr>\n\n### レジストリのコンテナスキャン\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nGitLabのコンポジション解析が、レジストリのコンテナスキャンのサポートを開始しました。\u003Cbr>\n\nレジストリのコンテナのスキャンがプロジェクトで有効になっており、コンテナイメージがプロジェクトのコンテナレジストリにプッシュされている場合、GitLabはタグとスキャン制限を確認します。\u003Cbr>\n\nタグが `latest` でスキャン回数が制限（1日50回）に到達していない場合、GitLabはイメージ上で `container_scanning` ジョブを実行する新規パイプラインを作成します。 パイプラインはイメージをレジストリにプッシュしたユーザーに関連付けられます。\u003Cbr>\n\nスキャンジョブは、GitLabにアップロードされるCycloneDX SBOMを生成します。継続的な脆弱性スキャン機能が有効になり、SBOMで検出されたパッケージがスキャンされます。\n注：脆弱性スキャンは新しいアドバイザリが公開され、[パッケージメタデータが同期](https://docs.gitlab.com/ee/administration/settings/security_and_compliance.html)されている場合に実行されます。\u003Cbr>\n\n今回も新しくリリースされた機能に関するフィードバックをお寄せください。この[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466117)にコメントすると、フィードバックを送信できます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/container_scanning/) \u003Cbr>[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/2340)\u003Cbr>\n\n### 管理者がメールアドレスの一部分の入力でユーザー検索が可能に\nSaaS: -\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n管理者は、管理者エリアのユーザー概要ページからメールアドレスの一部を入力することでユーザーを検索できるようになりました。たとえば、特定のメールドメインでユーザーをフィルタリングすると、特定の機関に所属する全ユーザーを見つけることができます。権限のないユーザーが他のアカウントのメールアドレスを閲覧できないよう、この機能は管理者向けに制限されています。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@zzaakiirr](https://gitlab.com/zzaakiirr)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/admin_area.html#administering-users) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/20381)\u003Cbr>\n\n### カスタムロールの新しい権限\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\u003Cbr>\n\nGitLab 17.1では、次の新しい権限でカスタムロールを作成できるようになりました。\u003Cbr>\n\n- [マージリクエスト設定の管理](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#code-review-workflow)\n- [インテグレーションの管理](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#integrations)\n- [デプロイトークンの管理](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#continuous-delivery)\n- [CRMコンタクトを読む](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#team-planning)\u003Cbr>\n\nカスタムロールでは同等の権限を持つユーザーを作成し、オーナーロールを持つユーザーの数を減らすことができます。これによってグループで必要なロールに特化し、不必要な権限の昇格を防げます。\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/custom_roles.html) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/391760)\u003Cbr>\n\n++++++++++++\n\n### メンバーAPIを使用してユーザー名でメンバーを追加\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nこれまでは、メンバーAPIを使用する場合、メンバーのグループとプロジェクトへの追加には必ずユーザーIDを使用する必要がありました。今回のリリースで、ユーザー名でメンバーを追加できるようになりました。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@imskr](https://gitlab.com/imskr)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/members.html#add-a-member-to-a-group-or-project)\u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/28208)\u003Cbr>\n\n### プロジェクトAPIを使用して `marked_for_deletion_on` の日付でプロジェクトを絞り込む\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\u003Cbr>\n\nプロジェクトAPIで `marked_for_deletion_on` 属性を使用した応答の絞り込みができるようになりました。これを実行すると、特定の日付で削除するようマークされたプロジェクトが返されます。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@imskr](https://gitlab.com/imskr)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/projects.html#list-all-projects) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/463939)\u003Cbr>\n\n### GraphQL APIを使用したユーザーがコントリビュートしたプロジェクトを一覧表示\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n新しいGraphQL APIフィールド `User.contributedProjects` を使用し、ユーザーがコントリビュートしたプロジェクトを一覧表示できるようになりました。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@yasuk](https://gitlab.com/yasuk)さんに感謝します！\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/index.html#usercontributedprojects) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/450191)\u003Cbr>\n\n### バッジの新しい `%{latest_tag}` のプレースホルダー\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\n `%{latest_tag}` プレースホルダーを使用してバッジリンクと画像URLを作成できるようになりました。 このプレースホルダーは、リポジトリに対して公開された最新のタグを参照します。\u003Cbr>\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@TamsilAmani](https://gitlab.com/TamsilAmani)さんに感謝します！\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/badges.html#placeholders) \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/26420)\u003Cbr>\n\n### Exploreのソートとフィルター機能を更新\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\u003Cbr>\n\nグループとプロジェクトのExploreページのソートとフィルター機能が更新され、フィルターバーが大きくなって読みやすくなりました。\u003Cbr>\n\nプロジェクトのExploreページでは __名前、作成日、更新日、スター__ などの標準化されたソートオプションを使用できるようになりました。また、ナビゲーション要素を使用すると昇順または降順で並べ替えることができます。 言語フィルターはフィルターメニューに移動しました。新しい __非アクティブ__ タブでは、より焦点を絞った検索ができるようアーカイブされたプロジェクトが表示されます。 さらに __ロール__ フィルターを使用すると  、オーナーとなっているプロジェクトを検索できます。\u003Cbr>\n\nグループのExploreページでは__名前、作成日、更新日__などの標準化されたソートオプションを使用できるようになりました。また、ナビゲーション要素を使用すると昇順または降順で並べ替えることができます。 \u003Cbr>\n\nこの変更についてのフィードバックは[イシュー438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322)で投稿できます。\n\n\u003Cbr>\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/working_with_projects.html#search-in-projects) \u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/434473)\u003Cbr>[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/434469)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_1/updated-explore-filtering.png\" class=\"embedly-card\" data-card-width=\"100%\" data-card-controls=\"0\">\n\n---\n## 実験的な機能\n\n### GitLab CLIでスタックされた差分の作成および管理\n\nスタックされた差分ワークフローでは、相互にビルドされた小規模な変更を作成し、最終的な機能を提供できます。以前は、スタックの変更はフィードバックに基づいてレビュー・更新されていましたが、このワークフローでは変更を継続してビルドすることで開発時間を短縮できます。\u003Cbr>\n\n[GitLab CLIの1.42.0リリース](https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/#:~:text=1.42.0%20release%20of%20the%20GitLab%20CLI)では、変更のスタックの作成・管理ができる新しい `stack` コマンドが導入されています。 スタックの作成後も、引き続き変更を加えたり、変更を同期したり、スタック内のさまざまな変更に移動したり、以前の変更を修正したりできます。\u003Cbr>\n\nスタックされた差分はGitLab CLIで完全に管理されるため、最新バージョンのCLIをインストール後すぐに使用を開始できます。新しい `stack` コマンドの動作を確認し、機能の仕組みについて詳しく見るにはこの[動画](https://www.youtube.com/watch?v=TOQOV8PWYic)をご覧ください。\u003Cbr>\n\nGitLab CLIを使用したスタックされた差分に関するフィードバックは、[イシュー7473](https://gitlab.com/gitlab-org/cli/-/issues/7473)で投稿できます。\n\n---\n## バグの修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用する全ての人にスムーズでシームレスな体験を届けることを約束します。\u003Cbr>\n\n以下のリンクをクリックして17.1のバグ修正、パフォーマンス向上、UI改善についてすべてご覧ください。\n- [バグの修正\n](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=16.11)\n- [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=16.11)\n- [UIの改善\n](https://nicolasdular.gitlab.io/gitlab-polish-gallery/?milestone=16.11)\n\n---\n\n## 非推奨事項\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受けるには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\u003Cbr>\n\n-  [OpenTofu CI/CDテンプレート](https://docs.gitlab.com/ee/update/deprecations.html#opentofu-cicd-template)\n-  [コンテナレジストリ通知の「threshold」が「maxretries」に置き換えられます](https://docs.gitlab.com/ee/update/deprecations.html#replace-threshold-with-maxretries-for-container-registry-notifications)\n\n---\n## 削除された機能と変更点 \n\n消去されたすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。 今後の破壊的な変更について通知を受けるには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n---\n\n### 変更履歴\n変更内容をすべて表示するには、以下のページから変更履歴を確認してください。\n\n- [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n- [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n- [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/install/)をご覧ください。\n### 更新\n[更新ページ](https://about.gitlab.com/update/)を確認してください。\n### ご不明な点がある場合\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスし質問を投稿してください。\u003Cbr>\u003Cbr>\n\n*監修：佐々木 直晴 [@naosasaki](https://gitlab.com/naosasaki) （GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,705,1082],"releases",{"slug":1084,"featured":91,"template":685},"gitlab-17-1-released","content:ja-jp:blog:gitlab-17-1-released.yml","Gitlab 17 1 Released","ja-jp/blog/gitlab-17-1-released.yml","ja-jp/blog/gitlab-17-1-released",{"_path":1090,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1091,"content":1097,"config":1103,"_id":1105,"_type":14,"title":1106,"_source":16,"_file":1107,"_stem":1108,"_extension":19},"/ja-jp/blog/gitlab-17-10-release",{"title":1092,"description":1093,"ogTitle":1092,"ogDescription":1093,"noIndex":6,"ogImage":1094,"ogUrl":1095,"ogSiteName":669,"ogType":670,"canonicalUrls":1095,"schema":1096},"GitLab 17.10リリース","GitLab 17.10でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662230/Blog/Hero%20Images/product-gl17-blog-release-cover-17-10-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-10-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.10リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-03-20\",\n      }",{"title":1092,"description":1093,"authors":1098,"heroImage":1094,"date":1099,"body":1100,"category":705,"tags":1101,"updatedDate":1102},[853],"2025-03-20","## GitLab Duoコードレビューと根本原因分析を備えたGitLab 17.10をリリース\n\nこのたび、GitLab 17.10のリリースを発表しました。このリリースでは、GitLab Duoコードレビュー（ベータ版）、GitLab DuoSelf-Hostedの根本原因分析、GitLabクエリ言語（GLQL）ビュー（ベータ版）、DORAメトリクスを活用したDevOpsパフォーマンスの新しい可視化機能など、さまざまな機能が追加されました！\n\nこれらの機能は、今回のリリースに含まれる115件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.10には、GitLabコミュニティのユーザーから205件ものコントリビュートがありました。ありがとうございました！\n\nGitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n> [GitLab 17.10では、GitLab-Duoコードレビューと根本原因分析が追加されました。\nクリックしてSNSで共有しましょう！](https://x.com/intent/post?text=GitLab+17.10%E3%81%A7%E3%81%AF%E3%80%81GitLab%C2%B7Duo%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%A8%E6%A0%B9%E6%9C%AC%E5%8E%9F%E5%9B%A0%E5%88%86%E6%9E%90%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6SNS%E3%81%A7%E5%85%B1%E6%9C%89%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%EF%BC%81%0D%0A&url=https%3A%2F%2Fabout.gitlab.com%2Fja-jp%2Fblog%2F2025%2F03%2F20%2Fgitlab-17-10-release%2F)\n\n## 今月の[MVP](https://about.gitlab.com/community/mvp/)は[Alexey Butkeev](https://gitlab.com/abutkeev)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。現在の候補者を応援したり、他の誰かをノミネートしてみませんか？🙌\n\n[Alexey Butkeev](https://gitlab.com/abutkeev)さんは、GitLabのグローバルな展開とユーザーエクスペリエンスの向上に貢献する、貴重なコミュニティメンバーです。Alexeyさんの影響力のあるローカライゼーションと翻訳を通じた貢献は、当コミュニティの多様性、インクルージョン、帰属意識の価値観を体現しています。\n\n「GitLab 17.10のMVPに選ばれ、とても光栄です。GitLabをより使いやすく、包括的なものにするために貢献できることを嬉しく思います」とAlexeyさんは話します。「ローカライズはチームワークで成り立つものであり、支え合いの文化が深く根付いたコミュニティの一員であることに感謝しています。」\n\nコードへの貢献に加えて、AlexeyさんはGitLabとCrowdinを活用し、翻訳の誤りを発見・記録・修正する取り組みにも率先して取り組みました。その綿密なリサーチと問題解決能力が評価され、GitLab 17.10のMVPに選ばれました。\n\nAlexeyさんは、GitLabのグローバリゼーションテクノロジーのシニアマネージャーである[Oleksandr Pysaryuk](https://gitlab.com/opysaryuk)によって推薦され、GitLabのグローバリゼーション＆ローカライゼーションのディレクターである[Daniel Sullivan](https://gitlab.com/djsulliv)からも支持を受けました。「GitLabでのあなたの貢献とサポートに心から感謝しています」とDanielは言います。「GitLabが世界中でより多くの人に支持される企業となるために、ご尽力いただき本当にありがとうございます！」\n\nGitLabをより包括的で透明性の高いものにしてくれたAlexeyさん、ありがとうございます！\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n## GitLab 17.10でリリースされた主な改善点\n\n### GitLab Duoコードレビュー（ベータ版）\n\nSaaS: Ultimate、Duo Enterprise\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nコードレビューは、ソフトウェア開発において不可欠な作業です。コードレビューを行うことで、プロジェクトへの新たなコントリビュートが確実にコード品質とセキュリティの保証と強化につながります。また、エンジニアに指導やフィードバックの場を提供できます。しかし、ソフトウェア開発プロセスにおいて特に時間がかかる作業でもあります。\n\nGitLab Duoコードレビューは、コードレビュープロセスの次世代の姿です。\n\nGitLab Duoコードレビューを使用すれば、開発プロセスを高速化できます。GitLab Duoコードレビューを使用してマージリクエストで最初のレビューを実行すると、潜在的なバグを特定し、改善点を提案してくれます。提案内容の一部はブラウザから直接適用できます。それをもとにイテレーションを行い、レビュープロセスに別の担当者を追加する前に、変更内容を改善します。\n\n__試してみましょう。__\n\n- すぐにコードレビューを開始するには、マージリクエストにレビュアーとして`@GitLabDuo`を追加してください。  \n- 変更内容に関するフィードバックを改良するには、コメントで`@GitLabDuo`をメンションしてください。\n\n今後の進捗状況に関しては、エピック[13008](https://gitlab.com/groups/gitlab-org/-/epics/13008)と関連する子エピックで追跡できます。フィードバックは、イシュー[517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386)で投稿できます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16298)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/FlHqfMMfbzQ?si=k5-Vl_w3zIJDSx9u\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Duo Self-Hostedで根本原因分析が利用可能に\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedで[GitLab Duo根本原因分析](https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/)を利用できるようになりました。この機能は、GitLab Duo Self-Hostedを使用しているGitLab Self-Managedインスタンス向けのベータ版です。Mistral、Anthropic、OpenAI GPTモデルファミリーをサポートしています。\n\nGitLab Duo Self-Hostedで根本原因分析を使用すると、データ主権を損なうことなく、CI/CDパイプラインで失敗したジョブのトラブルシューティングをより迅速に行えます。根本原因分析は、失敗したジョブのログを分析してその根本原因を素早く特定し、修正方法を提案します。\n\nGitLab Duo Self-Hostedの根本原因分析機能に関するフィードバックは、[イシュー523912](https://gitlab.com/gitlab-org/gitlab/-/issues/523912)からお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#supported-gitlab-duo-features)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13759)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/RCA_beta_17.10_min.png\">\n\n### GitLab Dedicatedフェイルオーバーインスタンスのホスティング先として利用可能なAWSリージョンを追加\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: -\n\nAWSリージョンのリストが拡大され、GitLab Dedicatedをご利用のお客様は、[ディザスタリカバリ](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#disaster-recovery)用にフェイルオーバーインスタンスをホストする場所として、より多くのリージョンを選択できるようになりました。\n\nフェイルオーバー対応リージョンの拡大により、GitLab Dedicatedのユーザーは、データレジデンシーのニーズを満たすために選択するAWSリージョンに関係なく、GitLab Dedicatedのディザスタリカバリ機能を最大限に活用できるようになりました。\n\n今回新たに追加されたリージョンは、GitLab Dedicatedが必要とする一部のAWS機能を完全にはサポートしていないため、フェイルオーバーインスタンスのホスティング先としてのみ利用可能です。\n\n[ドキュメント](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/)   \n[イシュー](https://about.gitlab.com/direction/saas-platforms/dedicated/#theme-global-availability)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/switchboard-secondary-region.png\">\n\n### GitLabクエリ言語ビュー（ベータ版）\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、GitLab全体で進行中の作業を追跡して理解するには、複数箇所にアクセスする必要がありました。そのため、チームの効率が下がり、貴重な時間が費やされていました。\n\n本リリースでは、GitLabクエリ言語（GLQL）ビューのベータ版が導入され、現在のワークフロー内で直接、リアルタイムで動的な作業追跡ディレクトリを作成できるようになりました。\n\nGLQLビューは、あらゆるWikiページ、エピックの説明、イシューのコメント、マージリクエスト内のMarkdownコードブロックにライブデータクエリを埋め込みます。\n\nこれまでGLQLビューは実験的機能として提供されていました、本リリースから、担当者、作成者、ラベル、マイルストーンなどの主要なフィールドで論理式と演算子を使用した高度なフィルタリングをサポートし、ベータ版として提供されます。ビューの表示方法を表形式またはリスト形式にカスタマイズしたり、表示されるフィールドの制御や結果の制限の設定を行ったりできるため、チーム向けに焦点を絞った実用的なインサイトを得られます。\n\nチームは現在のワークフローから離れずに、コンテキストを維持しながら、必要な情報にアクセスできます。また、メンバー間で共通認識を持ち、コラボレーションを改善できるようになりました。\n\n今後もこの機能を改善していく予定ですので、ぜひ[フィードバックをお寄せください](https://gitlab.com/gitlab-org/gitlab/-/issues/509791)。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/#glql-views)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14938)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/CML0hefVwSA?si=y8loas4VYVx1KDFT\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### Markdownの利用体験の向上\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab Flavored Markdownに以下の改善点が加えられ、大幅に強化されました。\n\n__- 数式と画像処理の機能向上：__\n  -  より複雑な数式を扱えるように、グループやセルフホストインスタンスの[数式レンダリング](https://docs.gitlab.com/user/markdown/#math-equations)の制限を無効化 \n  -  コンテンツのレイアウトをより適切に管理できるように、ピクセル値またはパーセンテージを使用して[画像の寸法](https://docs.gitlab.com/user/markdown/#change-image-or-video-dimensions)を正確に制御\n\n__- エディタの利用体験の向上：__\n  -  Enter/Returnキーが押された際に、自動的にリストを続行\n  -  キーボードショートカットを使用して、テキストを左右にシフト\n  -  説明リストの構文を使用して、明確な用語と定義のペアを作成\n  -  動画の幅を柔軟に調整\n\n__- より効果的なコンテンツ整理：__\n  - 自動展開される[サマリークイックビュー](https://docs.gitlab.com/user/markdown/#show-item-summary)を用いて、より簡単にコンテンツにアクセス（URLに`+s`を追加）  \n  * 参照先の[イシュータイトル](https://docs.gitlab.com/user/markdown/#show-item-title)を自動的にレンダリング（URLに`+`を追加）  \n  * [include構文](https://docs.gitlab.com/user/markdown/#includes)を使用して、コンテンツをモジュール化して整理  \n  * [アラートボックス](https://docs.gitlab.com/user/markdown/#alerts)を使用して、視覚的にわかりやすい吹き出しや警告を作成\n\nGitLab Flavored Markdownのこれらの機能強化により、ドキュメントを作成・メンテナンスするチームは、より柔軟にコンテンツの表示・整理を行えます。\n\n[ドキュメント](https://docs.gitlab.com/user/markdown/)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/7654)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/enhanced_markdown_experience.png\">\n\n### DORAメトリクスを用いてプロジェクト全体のDevOpsパフォーマンスを新たに視覚化\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n[バリューストリームダッシュボード](https://www.youtube.com/watch?v=EA9Sbks27g4)に新たに「**DORAメトリクスによるプロジェクト**」パネルが追加されました。この表形式のパネルには、トップレベルグループの全プロジェクトが[4つのDORAメトリクス](https://about.gitlab.com/solutions/value-stream-management/dora/#overview)の詳細とともに一覧表示されます。マネージャーはこの表を使用して、パフォーマンスが高、中、低レベルのプロジェクトを識別できます。また、この情報を参考にして、データドリブンの意思決定や、リソースの効果的な割り当てを行えるほか、ソフトウェアデリバリーのスピード、安定性、信頼性を向上させる取り組みに注力できます。\n\n[DORAメトリクス](https://docs.gitlab.com/ee/user/analytics/dora_metrics.html)はGitLabですぐに利用可能であり、[DORAパフォーマースコアパネル](https://about.gitlab.com/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard/)と一緒に使用することで、経営陣は組織のDevOpsの健全性を包括的かつ完全に把握できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#projects-by-dora-categories) \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/408516)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/17.7_vsd_dora_table2.png\">\n\n### 新しいイシューの外観（ベータ版）\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースから、イシューはエピックやタスクと共通のフレームワークを使用するようになり、リアルタイムで更新されるとともに、ワークフローが改善されました。\n\n- **ドロワー表示：** リストやボードのアイテムをドロワーで開いて、現在のコンテキストを保持したまま、素早く閲覧できます。上部のボタンを使用すると、全ページ表示に切り替わります。  \n* **タイプの変更：** 「タイプを変更」アクションを使用して、エピック、イシュー、タスク間でタイプを変換（「エピックへのプロモート」の後継となるアクション）できます。  \n* **開始日：** イシューで開始日がサポートされるようになり、エピックやタスクと機能が統一されました。  \n* **祖先：** タイトルとサイドバーの親フィールドの上に完全な階層が表示されます。関係を管理するには、新しい[クイックアクション](https://docs.gitlab.com/user/project/quick_actions/) コマンド`/set_parent（親を設定）`、`/remove_parent（親を削除）`、`/set_child（子を設定）`、および`/remove_child（子を削除）`を使用してください。  \n* **コントロール：** すべてのアクションに上部のメニュー（縦方向の省略記号）からアクセスできるようになりました。スクロールした場合でも消えずにヘッダーに表示されます。  \n* **開発：** イシューやタスクに関連するすべての開発アイテム（マージリクエスト、ブランチ、機能フラグ）が1つの便利なリストに統合されました。  \n* **レイアウト：** UIが改善され、イシューやエピック、タスク、マージリクエスト間でよりシームレスな体験ができるようになり、ワークフローをより効率的に進められるようになりました。  \n* **リンクされたアイテム：** 改善されたリンクオプションを使用して、タスク、イシュー、エピックの関係を作成できるようになりました。ドラッグ＆ドロップでリンクのタイプを変更したり、ラベルや完了したアイテムの表示を切り替えたりできます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/issues/issue_work_items/)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523713)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/focused-drawer-new-issues.png\">\n\n### エピック、イシュー、タスク、目標、主な結果用の説明テンプレート\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n作業アイテム（エピック、タスク、目標、主な結果）用の説明テンプレートを使用して、ワークフローを効率化し、プロジェクト全体で一貫性を確保できるようになりました。\n\nこの強力な機能の実装により、標準化されたテンプレートを作成できるため、作業時間を削減するとともに、新たな作業アイテムの作成時に重要な情報を漏れなく含められます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/description_templates.html)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16088)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/description_template.png\">\n\n### 脆弱性の重大度の変更\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n脆弱性をトリアージする際は、組織固有のセキュリティコンテキストとリスク許容度に基づいて、柔軟に重大度を調整できなければなりません。これまでは、セキュリティスキャナーによって割り当てられるデフォルトの重大度レベルを使用せざるを得ませんでしたが、これでは特定の環境のリスクレベルを正確に反映できないことがあります。\n\n本リリースでは、組織のセキュリティニーズに合わせて、個別の脆弱性の重大度を手動で変更できるようになりました。具体的には、以下を行えるようになります。\n\n* 脆弱性の重大度レベルを **「致命的」、「高」、「中」、「低」、「情報」、「不明」** のいずれかに調整  \n* 脆弱性レポートから複数の脆弱性の重大度を一括で変更  \n* 視覚的なインジケーターにより、重大度レベルがカスタマイズされている脆弱性を簡単に特定\n\nすべての重大度の変更は、脆弱性情報の履歴および監査イベントで追跡され、プロジェクトのメンテナーロール以上、または`admin_vulnerability`権限を持つカスタムロールのチームメンバーのみが上書きできます。この機能により、セキュリティチームは脆弱性の優先順位付けをより柔軟に制御できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#change-or-override-vulnerability-severity)  \u003Cbr>\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/16157)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/severity-override.png\">\n\n## GitLab 17.10のリリースに含まれるその他の改善点\n\n### To-Doアイテムの一括編集\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n改善された一括編集機能を使用して、To-Doリストをより効率的に管理できるようになりました。複数のTo-Doアイテムを選択して、一度に「完了」または「スヌーズ済み」に設定できるため、タスクをより細かく管理できるようになり、少ない手間で整理できます。\n\n[ドキュメント](https://docs.gitlab.com/user/todos#bulk-edit-to-do-items)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/16564)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/bulk_edit_todos.png\">\n\n### To-Doアイテムのスヌーズ機能\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nTo-Doリストの通知をスヌーズできるようになりました。重要なタスクに集中したいときに、一時的にアイテムを非表示にできます。作業に集中するために1時間後まで通知を受けたくない場合でも、翌日にタスクを再度確認したい場合でも、通知の再表示タイミングを細かく設定できるため、ワークフローをより効果的に管理できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/todos.html#snooze-to-do-items)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/17712)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/snooze-todo.png\">\n\n### アクセストークンを使用した非公開のPagesサイトでの認証\n\nSaaS: Free、Premium、Ultimate    \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nアクセストークンを使用することで、プログラム経由で非公開のGitLab Pagesサイトで認証を受けられるようになりました。これにより、Pagesコンテンツとのやり取りを自動化しやすくなります。これまでは、制限付きのPagesサイトにアクセスするには、GitLab UIを通じた対話型認証が必要でした。\n\nこの機能強化により、セキュリティを維持しつつ生産性を向上させ、デベロッパーがより柔軟に非公開Pagesコンテンツを管理・配信できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/project/pages/pages_access_control/#authenticate-with-an-access-token)    \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/388)\n\n### ブランチルールでのスカッシュ設定の適用\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nGitのワークフローによって、ブランチ間のマージ時に適用すべきコミットの処理方法は異なります。以前のバージョンのGitLabでは、マージ時にコミットをスカッシュするかどうかの設定と、その設定をどの程度強制的に適用するかについて、ひとつの方法しか設定できませんでした。この方法では、エラーが発生しやすいほか、プロジェクトの規則に従うために、デベロッパーがそれぞれのブランチターゲットに対して個別に判断を下す必要があるといった問題がありました。\n\n今回のアップデートにより、ブランチルールを使用して、保護ブランチごとにスカッシュ設定を適用できるようになりました。たとえば、以下のような設定が可能です。\n\n* `feature`ブランチから`develop`ブランチへのマージ時にスカッシュを必須にすることで、履歴を整理しやすくする。  \n* `develop`ブランチから`main`ブランチへのマージ時にスカッシュを無効にすることで、詳細なコミット履歴を保持する。\n\nこれにより、デベロッパーが手動で調整する必要もなく、プロジェクト全体のコミット履歴を一貫性を保ちながら管理でき、ワークフローにおける各ブランチの固有のニーズにも柔軟に対応できます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/branches/branch_rules/#edit-squash-commits-option)    \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15526)\n\n### CODEOWNERSのパス除外設定\n\nSaaS: Premium、Ultimate    \u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n`CODEOWNERS`ファイルを設定する際は、パスやファイルタイプに対する広範な一致パターンを含めることが一般的です。しかし、一部のドキュメントや自動ビルドファイル、その他のパターンでは、指定されたコードオーナーを必要としない場合があり、このような広範な設定が問題となる可能性があります。\n\n今回のアップデートで、`CODEOWNERS`ファイルにパス除外設定を追加することで、特定のパスを無視できるようになりました。これは、特定のファイルやパスをコードオーナーの承認対象から除外する場合に便利です。\n\n[ドキュメント](https://docs.gitlab.com/user/project/codeowners/reference/#exclusion-patterns)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/41914)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/create-codeowners-exclusions.png\">\n\n### 依存プロキシでのDocker Hub認証\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nコンテナイメージのGitLab依存プロキシで、Docker Hubでの認証をサポートするようになりました。これにより、レート制限によるパイプラインの失敗を防ぎ、プライベートイメージへのアクセスが可能になります。\n\n2025年4月1日から、Docker Hubは未認証ユーザーに対してより厳しいプル制限（IPアドレスごとに10回のプル）を適用します。この制限に達すると、認証なしでのパイプライン実行が失敗する可能性があります。\n\n本リリースから、Docker Hubの認証情報や[パーソナルアクセストークン](https://docs.docker.com/security/for-developers/access-tokens/)、[組織アクセストークン](https://docs.docker.com/security/for-admins/access-tokens/)を使って、GraphQL APIを介してDocker Hub認証を設定できるようになりました。UI設定のサポートはGitLab 17.11で提供予定です。\n\n[ドキュメント](https://docs.gitlab.com/user/packages/dependency_proxy/#authenticate-with-docker-hub)   \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/331741)\n\n### 依存関係スキャンでのpub（Dart）パッケージマネージャーのサポート\n\nSaaS: Ultimate   \u003Cbr>\nSelf-Managed: Ultimate\n\n依存関係スキャンに、Dartの公式パッケージマネージャーであるpubのサポートが追加されました。このサポートは、依存関係スキャンの[最新テンプレート](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.latest.gitlab-ci.yml)および[CI/CDコンポーネント](https://gitlab.com/explore/catalog/components/dependency-scanning)に組み込まれています。\n\nこの追加は、ユーザーのAlexandre Larocheさんがコミュニティにコントリビュートしてくれたために実現しました。GitLabコンポジション解析チームは、製品向上へのコントリビュートに大変感謝しています。Alexandreさん、ありがとうございます。GitLabへのコントリビュート方法について、詳しくは[コミュニティコントリビュートプログラム](https://about.gitlab.com/community/contribute/)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_scanning/#supported-languages-and-package-managers)   \u003Cbr>\n[エピック](https://gitlab.com/gitlab-org/security-products/analyzers/dependency-scanning/-/merge_requests/141)\n\n### GitLab OIDCプロバイダーによるトークン有効期限の設定\n\nSaaS: - \u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\nGitLabをOpenID Connect（OIDC）プロバイダーとして使用する際、`id_token_expiration`属性を使って、IDトークンの有効期限を設定できるようになりました。これまで、IDトークンの有効期限は120秒と決められていました。\n\nこの場を借りて、コントリビュートしてくれた[Henry Sachs](https://gitlab.com/DerAstronaut)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/auth/oidc.html#configure-a-custom-duration-for-id-tokens)   \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/377654)\n\n### トークン情報APIを使用したトークンの識別と失効\nSaaS: - \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabの管理者は、統一されたAPIを使用してトークンを識別し、失効できるようになりました。これまで、管理者は特定のトークンタイプに関連するエンドポイントを使用する必要がありましたが、新たに追加されたAPIを使用すれば、トークンタイプに関係なく失効が可能です。サポートされているトークンタイプのリストについては、「[トークン情報API](https://docs.gitlab.com/ee/api/admin/token.html)」を参照してください。\n\nこの場を借りて、コントリビュートしてくれた[Nicholas Wittstruck](https://gitlab.com/nwittstruck)さんを始め、シーメンス社チームに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/api/admin/token.html)  \u003Cbr>\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/15777)\n\n### ドロップダウンリストからデフォルトのコンプライアンスフレームワークを選択可能に\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nユーザーは、GitLabコンプライアンスセンターでデフォルトのコンプライアンスフレームワークを設定でき、この設定はそのグループで作成される新しいプロジェクトやインポートされたプロジェクトに適用されます。デフォルトのコンプライアンスフレームワークには、ユーザーが識別しやすいように **デフォルト** というラベルが付いています。\n\nデフォルトのコンプライアンスフレームワークを設定しやすくするために、トップレベルグループのコンプライアンスセンター内のフレームワーク一覧ページで、ドロップダウンリストからフレームワークをデフォルトとして設定できる機能を追加しました。この機能は、サブグループやプロジェクトのコンプライアンスセンターでは利用できません。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_frameworks_report/#set-and-remove-a-compliance-framework-as-default)\u003Cbr>\n[エピック](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/181500)\n\n### トークンの有効期限通知の送信範囲を拡大\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、アクセストークンの有効期限通知メールは、トークンが期限切れになるグループやプロジェクトのダイレクトメンバーにのみ送信されていました。本リリースでは、設定を有効にすると、継承されたグループやプロジェクトのメンバーにも通知が送信されるようになりました。これにより、トークンの有効期限が切れる前に管理しやすくなります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/manage.html#expiry-emails-for-group-and-project-access-tokens)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/463016)\n\n### GitLab Duo Chatのサイズが変更可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\u003Cbr>\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab UIで、GitLab Duo Chatのドロワーメニューの大きさを変更できるようになりました。これにより、コード出力の表示や、Chatを開いたままバックグラウンドでGitLabを操作することが容易になります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#use-gitlab-duo-chat-in-the-gitlab-ui)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/499849)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/ai-powered-resizable-duo-chat-in-the-web-app.gif\">\n\n### GitLab Duo Chatで複数のチャットを管理\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\u003Cbr>\nSelf-Managed: - \n\nGitLab Duo Chatでは、複数のチャットを並行して管理できるようになり、異なるトピック間でもコンテキストを把握しやすくなりました。新しいチャットの作成、チャット履歴の閲覧、およびチャット間の切り替えを行えます。\n\nこれまでは、新しいチャットを開始すると、既存のチャットの内容が消えてしまっていましたが、今回のアップデートで、別々のトピックに関する複数のチャットを管理できるようになりました。それぞれのチャットで個々の内容が維持されるため、たとえば、あるチャットでコードの説明について補足質問をする一方で、別のチャットで作業計画を準備することができます。\n\n過去のチャットを確認したい場合は、新しいチャット履歴アイコンを選択すれば、最近のチャットをすべて確認できます。チャットは最新のアクティビティ順に自動的に並べ替えられるので、前回の続きからスムーズに再開できます。\n\nプライバシーを保護するために、アクティビティが30日間ないチャットは自動的に削除されます。また、いつでもチャットを手動で削除することが可能です。\n\n現在、この機能はGitLab.comのWeb UIでのみ利用可能で、GitLab Self-ManagedインスタンスやIDE統合では利用できません。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/#have-multiple-conversations-with-chat)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16108)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/h9ooN05cNbw?si=xNp7Ruzk57l9Kg5y\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### 「マイワーク」内のプロジェクトの新しいナビゲーション体験\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabでは、「**マイワーク**」内のプロジェクト概要に大きな改善を加え、プロジェクトの検索とアクセス方法を効率化しました。このアップデートでは、ユーザーがプロジェクトを操作する方法に合わせて、より直感的なタブ形式のナビゲーションシステムが導入されました。\n\n- 新しい「**コントリビュート済み**」タブ（旧「**あなたの**」）では、自分がコントリビュートしたすべてのプロジェクトが表示されます。個人プロジェクトも含まれるため、開発活動の追跡が容易になります。  \n- 「**個人**」タブを使って、個人で取り組んでいるプロジェクトをすばやく見つけられるようになりました。このタブは、メインナビゲーションにわかりやすく表示されています。  \n- 「**メンバー**」タブ（旧「**すべて**」）では、自分がメンバーであるすべてのチームプロジェクトを確認できます。 \n- 「**無効**」タブ（旧「**削除予定**」）では、アーカイブ済みまたは削除予定のプロジェクトを一目で把握できます。\n\nさらに、適切な権限を持つユーザーは、「**マイワーク**」のプロジェクトの概要から直接プロジェクトを編集または削除できるようになりました。この変更は、より効率的で使いやすいGitLabの提供を目指す取り組みの一環です。新しいレイアウトにより、もっとも重要なプロジェクトに集中しやすくなり、異なるプロジェクトカテゴリ間を行き来する時間を短縮できます。\n\nこのアップデートに関するご意見をお待ちしています。新しいナビゲーションシステムに関するフィードバックを[エピック16662](https://gitlab.com/groups/gitlab-org/-/epics/16662)でぜひお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/project/working_with_projects/)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/465889)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/your_work_new_project_layout.png\">\n\n### CSVファイルを使用した再アサインのリクエスト\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースでは、ユーザーコントリビュートマッピング時に、CSVファイルを使用して一括で再アサインを行えるようになりました。多数のプレースホルダーユーザーを含む大規模なユーザーベースを管理している場合、オーナーロールのグループメンバーは以下の操作を実行できます。\n\n1. あらかじめ項目が設定されたCSVテンプレートをダウンロード  \n2. 移行先インスタンスのGitLabユーザー名または公開メールアドレスを追加  \n3. 入力済みのファイルをアップロードし、一括ですべてのコントリビュートを再アサイン\n\nこの新機能により、UIを使った手動での再アサイン作業の手間を削減できます。さらに、本リリースでは、大規模な移行プロセスを効率化するため、API経由でもCSVを使用した再アサインが可能になりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#request-reassignment-by-using-a-csv-file)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16765)\n\n### プレースホルダーユーザーの作成日時を示すタイムスタンプの追加\n\nSaaS: Free、Premium、Ultimate  \u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、グループやプロジェクトをインポートしても、[プレースホルダーユーザー](https://docs.gitlab.com/user/project/import/#placeholder-users)がいつ作成されたかを確認できませんでした。本リリースでタイムスタンプを追加し、移行の進捗を追跡したり、発生した問題を迅速に特定・対応したりできるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#placeholder-user-attributes)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/507297)\n\n### GitLab Duoコード提案およびGitLab Duo Chatの傾向に関する新たなインサイト\n\nSaaS: Ultimate、Duo Enterprise  \u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nAIインパクトダッシュボードのAI比較メトリクスパネルに、GitLab Duoコード提案の採用率とGitLab Duo Chatの使用率（月ごとの比較、パーセント表示）の月次推移を追跡する機能が追加されました。この新しい分析は、既存のGitLab Duoコード提案とGitLab Duo Chatタイルの機能を補完するもので、これまで提供していた30日間のスナップショットに加えて利用できます。新しく追加されたこれらのメトリクスを使用することで、マネージャーはソフトウェア開発プロセスにおけるAIの影響をより正確に測定できるほか、コード提案の採用率とDuo Chatの使用率を他のSDLCメトリクスと長期的に比較することで、パターンを特定できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/analytics/ai_impact_analytics.html) \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/477246)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/17.9_ai_cs_mom.png\">\n\n### Git blameで特定のリビジョンを無視\n\nSaaS: Free、Premium、Ultimate  \u003Cbr> \nSelf-Managed: Free、Premium、Ultimate\n\nリポジトリの履歴を閲覧していると、プロジェクトにおける実質的な変更とは関係のないコミットがある場合があります。これは、次のような場合に発生する可能性があります。\n\n* リファクタリングを行って、機能を変更せずに、あるライブラリから別のライブラリに変更する場合  \n* コードフォーマッターやLinterを実行して、コードベース全体を標準化する場合\n\nこのようなコミットがあると、`blame`を使用してプロジェクト履歴を確認する際に、変更点を把握しにくくなります。Gitでは、プロジェクト内で`.git-blame-ignore-revs`ファイルを使用して、こうしたコミットを特定できます。GitLabでは、blame表示を切り替えて、これらの特定のリビジョンを「Blame環境設定」ドロップダウンリストから表示または非表示にすることができるようになりました。これにより、プロジェクトの履歴を把握しやすくなります。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/files/git_blame/#ignore-specific-revisions)  \u003Cbr> \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15751)\n\n### GitLab Runner 17.10\n\nSaaS: Free、Premium、Ultimate  \u003Cbr> \nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.10もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n新機能：\n\n* [インスタンス使用前にAutoscaler Executorのヘルスチェックを実施](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38271)  \n* [Docker Executorのボリュームを拡張](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38249)  \n* [サービス用のデバイス追加のためのDocker Executor設定を追加](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6208)\n\nバグ修正：\n\n* [Windows `gitlab-runner-helper`イメージが\\`/opt/step-runner’パスの無効なボリューム指定により失敗する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38632)  \n* [GitLab Runner 17.7.0以降のバージョンでRPMパッケージのリポジトリのミラーリングが正常に機能しない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38409)  \n* [GitLab CI/CDで`git submodule update --remote`の実行時にエラーが発生する](https://gitlab.com/gitlab-org/gitlab/-/issues/359825)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-10-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### パッケージレジストリに監査イベントを追加\n\nSaaS: Free、Premium、Ultimate  \u003Cbr> \nSelf-Managed: Free、Premium、Ultimate\n\nパッケージレジストリでの操作が、監査イベントとして記録されるようになりました。これにより、チームはパッケージの公開や削除の履歴を追跡し、コンプライアンス要件を満たすことができるようになります。\n\nこのリリース以前は、パッケージを公開・変更したユーザーを追跡するビルトイン機能はなく、チームは独自に追跡システムを作成したり、パッケージの変更内容を手動で記録したりする必要がありました。今後は、監査イベントが記録され、変更を行ったユーザー、変更の日時、認証方法、パッケージの変更内容を確認できます。\n\nプロジェクトの監査イベントは、グループのネームスペースまたは各プロジェクトオーナーのプロジェクト自体に保存されます。また、グループはストレージ管理のために監査イベントを無効化することもできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/329588)\n\n### コンプライアンスを守るためのパイプライン実行ポリシーにおける`needs`ステートメントの処理方法\n\nSaaS: Ultimate  \u003Cbr> \nSelf-Managed: Ultimate\n\n本リリースから、パイプライン実行の制御を強化するために、`.pipeline-policy-pre`事前ステージで実施されるジョブは、後続のステージのジョブが開始される前に完了することが必須となりました。これは、ジョブに`needs`ステートメントが定義されているかどうかを問わず適用されます。これまでは、`.pipeline-policy-pre`ステージで定義されたジョブと、`needs`ステートメントを持つ後続のパイプラインのジョブは、パイプラインが実行されるとすぐに開始されていました。今回の改善により、後続のステージのジョブは、依存関係がないジョブの開始前に`.pipeline-policy-pre`ステージが完了するのを待つ必要があります。これにより、順序どおりの実行を強制し、セキュリティポリシーに基づくコンプライアンスを確保します。\n\nGitLabをご利用のお客様は、デベロッパーのジョブが実行される前にセキュリティやコンプライアンスチェックを強制するために事前ステージを活用しています。一般的なユースケースは、セキュリティチェックやコンプライアンスチェックを実施し、そのチェックに合格しなければパイプライン全体を失敗させるという方法です。ジョブが順不同で実行されると、この強制が回避され、ポリシーの意図が弱まる可能性があります。この改善により、コンプライアンスの適用に対するより一貫したアプローチが提供されます。\n\nパイプラインの開始時に、`needs`の動作を上書きせずにジョブを挿入するには、17.9で新たに導入されたカスタムステージ機能を使用して、ジョブを設定してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#pipeline-execution-policy-schema)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/469256)\n\n### 期限切れトークン向けのWebhookトリガーの拡張\n\nSaaS: Free、Premium、Ultimate  \u003Cbr> \nSelf-Managed: Free、Premium、Ultimate\n\nプロジェクトやグループのアクセストークンが期限切れになる60日および30日前に、Webhookイベントをトリガーできるようになりました。これまで、これらのWebhookイベントは有効期限が切れる7日前にのみトリガーされていました。この機能は任意で設定可能です。有効期限が近づくトークンに関する既存のメール通知スケジュールと同じタイミングでWebhook通知を受け取ることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/manage.html#add-additional-webhook-triggers-for-group-access-token-expiration)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/499732)\n\n### OmniAuthプロファイル属性をユーザーへマッピング可能に\nSaaS: -\u003Cbr> \nSelf-Managed: Premium、Ultimate\n\nOmniAuthアイデンティティプロバイダー（IdP）からGitLabユーザーのプロフィールに、「組織」と「役職」の属性をマッピングできるようになりました。これにより、IdPをこれらの属性に関する信頼できる唯一の情報源として管理でき、ユーザー側での変更ができなくなります。\n\n[ドキュメント](https://docs.gitlab.com/ee/integration/omniauth.html#keep-omniauth-user-profiles-up-to-date)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/505575)\n\n### 認証情報インベントリ内でのアクセストークンの並べ替え\n\nSaaS: Ultimate  \u003Cbr> \nSelf-Managed: Ultimate\n\n認証情報インベントリで、個人、プロジェクト、およびグループのアクセストークンを、所有者、作成日、および最終使用日で並べ替えられるようになりました。これにより、アクセストークンの特定および管理をより素早く行えるようになります。この場を借りて、コントリビュートしてくれた[Chaitanya Sonwane](https://gitlab.com/chaitanyason9)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/administration/credentials_inventory/)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/513181)\n\n### GitLab Duo Self-Hostedのコード提案でAIインパクトダッシュボードが利用可能に\n\nSaaS: -\u003Cbr> \nSelf-Managed: Ultimate\n\nSelf-Managedインスタンスで、GitLab Duo Self-Hostedのコード提案と合わせてAIインパクトダッシュボードを利用できるようになりました。これにより、GitLab Duoが生産性に及ぼす影響を把握できます。GitLab Duo Self-HostedのAIインパクトダッシュボードはベータ版であり、Visual Studio Code、Microsoft Visual Studio、JetBrains、NeovimのIDEとともにSelf-Managedインスタンスで利用できます。\n\nAIインパクトダッシュボードを使用すると、リードタイム、サイクルタイム、DORA、脆弱性などのメトリクスとAI使用傾向を比較できます。これにより、GitLab Duo Self-Hostedを使用してエンドツーエンドのワークストリームで節約される時間を測定できるため、デベロッパーの活動ではなく、ビジネスの成果に焦点を当てられます。\n\nAIインパクトダッシュボードに関するフィードバックは、[イシュー456105](https://gitlab.com/gitlab-org/gitlab/-/issues/456105)からお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/analytics/ai_impact_analytics/)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523807)\n\n### プロジェクトの作成権限の設定の改善\n\nSaaS: Free、Premium、Ultimate  \u003Cbr> \nSelf-Managed: Free、Premium、Ultimate\n\nプロジェクトの作成権限の設定がさらにわかりやすく、直感的に、そしてセキュリティ原則に沿ったものに改善されました。改善された設定には次のものが含まれます。\n\n* 「プロジェクトの作成に対するデフォルトの保護」というドロップダウンオプションを「プロジェクトの作成に必要なデフォルトの最小ロール」に変更し、目的をより明確にしました。  \n* プラットフォーム全体で一貫性を保つために、ドロップダウンオプションの「デベロッパー \\+ メンテナー」を「デベロッパー」に変更しました。  \n* ドロップダウンオプションを最も制限が厳しいアクセスレベルから最も制限の少ないアクセスレベルへ並べ替えました。\n\nこれにより、グループ内でプロジェクト作成が可能なロールの把握・設定を行いやすくなり、管理者がより確実に適切なアクセス制御を実施できます。  \nこの場を借りて、コミュニティにコントリビュートしてくれた[@yasuk](https://gitlab.com/yasuk)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#define-which-roles-can-create-projects)  \u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/507410)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/updated_project_creation_protection.png\">\n\n### Meta Llama 3モデルがGitLab Duo Self-Hostedのコード提案とChatで利用可能に\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedで、一部のMetaLlama 3モデルを利用できるようになりました。このモデルは、GitLab Duo Self-Hostedのベータ版で提供され、GitLab Duo Chatとコード提案をサポートします。\n\nこれらのモデルをGitLab Duo Self-Hostedで使用した際のフィードバックについて、ぜひ[イシュー523912](https://gitlab.com/gitlab-org/gitlab/-/issues/523917)にお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523917)\n\n### GitLab Duo Self-HostedでのAI搭載機能用モデルの選択\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedで、GitLab Duo Chatの各サブ機能に対して個別にサポートされているモデルを選択できるようになりました。Chatのサブ機能でのモデルの選択と設定は、現在ベータ版です。\n\nフィードバックは、[イシュー524175](https://gitlab.com/gitlab-org/gitlab/-/issues/524175)にお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-the-feature-to-use-a-self-hosted-model)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524174)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_10/Expanded_Chat_17.10_v2.png\">\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。  \n17.10で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%255B%255D=type::bug&or%255Blabel_name%255D%255B%255D=workflow::complete&or%255Blabel_name%255D%255B%255D=workflow::verification&or%255Blabel_name%255D%255B%255D=workflow::production&milestone_title=17.10)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%255B%255D=bug::performance&or%255Blabel_name%255D%255B%255D=workflow::complete&or%255Blabel_name%255D%255B%255D=workflow::verification&or%255Blabel_name%255D%255B%255D=workflow::production&milestone_title=17.10)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.10)\n\n\u003Cbr>\n\u003Cbr>\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [コンテナレジストリ用S3ストレージドライバー（AWS SDK v1）](https://docs.gitlab.com/update/deprecations/#s3-storage-driver-aws-sdk-v1-for-the-container-registry)  \n* [コンテナレジストリ用Azureストレージドライバー](https://docs.gitlab.com/update/deprecations/#azure-storage-driver-for-the-container-registry)\n\n\u003Cbr>\n\u003Cbr>\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n### 変更履歴\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)  \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)  \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)  \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新たにインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご参照ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご確認ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/ja-jp/pricing/)  \n  ユーザー向けの永久無料機能を提供  \n* [Premium](https://about.gitlab.com/pricing/premium/)  \n  チームの生産性と調整を強化  \n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)  \n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/)でお試しいただけます。  \n\n\u003Cbr>\n\u003Cbr>\n\n*監修：小松原 つかさ  [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\u003Cbr>\n\n*ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n\u003Cbr>\n\u003Cbr>\n\n### 過去の日本語リリース情報\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-03-25",{"slug":1104,"featured":91,"template":685},"gitlab-17-10-release","content:ja-jp:blog:gitlab-17-10-release.yml","Gitlab 17 10 Release","ja-jp/blog/gitlab-17-10-release.yml","ja-jp/blog/gitlab-17-10-release",{"_path":1110,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1111,"content":1117,"config":1123,"_id":1125,"_type":14,"title":1126,"_source":16,"_file":1127,"_stem":1128,"_extension":19},"/ja-jp/blog/gitlab-17-11-release",{"title":1112,"description":1113,"ogTitle":1112,"ogDescription":1113,"noIndex":6,"ogImage":1114,"ogUrl":1115,"ogSiteName":669,"ogType":670,"canonicalUrls":1115,"schema":1116},"GitLab 17.11リリース","GitLab 17.11でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662237/Blog/Hero%20Images/product-gl17-blog-release-cover-17-11-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-11-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.11リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-04-17\",\n      }",{"title":1112,"description":1113,"authors":1118,"heroImage":1114,"date":1119,"body":1120,"category":705,"tags":1121,"updatedDate":1122},[853],"2025-04-17","## カスタムコンプライアンスフレームワークを搭載したGitLab 17.11をリリース\n\nこのたび、GitLab 17.11をリリースしました。このリリースでは、GitLab Duo Self-Hostedに複数のDuo機能が追加されたほか、カスタムコンプライアンスフレームワーク、サービスアカウントUI、CI/CDパイプライン入力など、さまざまな機能が追加されました！\n\nこれらの機能は、今回のリリースに含まれる60件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.11には、GitLabコミュニティのユーザーから284件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n[GitLab 17.11では、カスタムコンプライアンスフレームワークが搭載されました。 クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+17.11%E3%81%A7%E3%81%AF%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%82%B3%E3%83%B3%E3%83%97%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%82%B9%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%81%8C%E6%90%AD%E8%BC%89%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/&hashtags=)\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[Heidi Berry](https://gitlab.com/heidi.berry)さんです\n\nGitLab 17.11の注目コントリビューターは、[Heidi Berry](https://gitlab.com/heidi.berry)さんに決まりました！\n\nHeidiさんは、[GitLab Terraformプロバイダー](https://gitlab.com/gitlab-org/terraform-provider-gitlab)や[client-go](https://gitlab.com/gitlab-org/api/client-go)プロジェクトのコントリビューターとして活躍してきました。ここ数回のリリースにわたり、[グループSAMLリンクでカスタムロールを使用する機能](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/1949)、[グループ単位でのブランチ保護のデフォルト設定](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/2113)、[サービスアカウントトークンの自動ローテーション](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/2206)など、要望の多かった機能を継続的に実装してきました。\n\n機能開発にとどまらず、Heidiさんはメンテナンス活動にも積極的に取り組んでおり、[イシューバックログの整理](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/issues/1035#note_2305643918)、[古いテストの可読性向上](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/2298)、[よりわかりやすい例を用いたドキュメントの改善](https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/merge_requests/2201)など、多岐にわたる活動を行っています。特にclient-goはTerraformプロバイダーやglabを含む多くのプロジェクトでGitLabとの連携に使われているため、このライブラリへのコントリビュートは非常に価値の高いものです。\n\nHeidiさんはこう語っています。「オープンソースへのコントリビュートに興味のある方には、client-goやterraform-provider-gitlabがおすすめです。スタートにぴったりの優れたドキュメントが用意されていますし、助けてくれるメンテナーもいます。私はこれらのプロジェクトを通して、Go言語を実践的に学ぶことができました。」\n\nHeidiさんは、GitLabコミュニティのコアチームメンバーであり、Kingland社のエンタープライズアーキテクトである、同じくコミュニティコントリビューターの[Patrick Rice](https://gitlab.com/PatrickRice)さんにより推薦されました。Patrickさんは次のように語っています。「17のリリースサイクルを通して100件を超えるマージ済みのコントリビュートと、多くのイシューへのコメントを行ってきたHeidiさんは、GitLabおよびTerraformにとって非常に大きな力となっています。本当にありがとうございます！」\n\nGitLabのDeploy::Environmentsチームのシニアバックエンドエンジニア、[Timo Furrer](https://gitlab.com/timofurrer)も次のように話しています。「Heidiさんの仕事は本当に素晴らしいです。常に一歩先を行き、client-goに必要なSDKコードを実装してくれています。コードのコントリビュートだけでなく、イシューのトリアージにも関わってくれています。これは本当に大きな助けになっていて、こうした支えがあるからこそ、コミュニティ主導のプロジェクトは成り立っていると感じます。」\n\nHeidiさんは、The Co-operative Group社のリードソフトウェアエンジニアとして、デベロッパーエクスペリエンスをより効率的かつ安全に、そして可能な限りスムーズにするために取り組んでいます。\n\nこの場を借りて、GitLabに多大なるコントリビュートをしてくださったHeidiさんに心より感謝します！\n\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n## GitLab 17.11でリリースされた主な改善点\n\n### 要件やコンプライアンスコントロールでコンプライアンスフレームワークのカスタマイズが可能に\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nこれまで、GitLabのコンプライアンスフレームワークは、特定のコンプライアンス要件や追加の監査が必要なプロジェクトを識別するラベルとして作成されていました。このラベルは、スコープ指定として利用でき、グループ内のすべてのプロジェクトに対してセキュリティポリシーを適用することができました。\n\n今回のリリースでは、コンプライアンスマネージャーがGitLab上でより詳細なコンプライアンスのモニタリングを行えるようにする「要件」を新機能として導入しました。\n\n「要件」は、カスタムコンプライアンスフレームワークの一部として、組織が準拠すべきさまざまなコンプライアンス基準、法律、規制などから、具体的な要件を定義できる機能です。\n\nさらに、コンプライアンスコントロール（従来の「コンプライアンスチェック」）の数を、5種類から50種類以上へと大幅に増やしました！標準搭載された約50種類のコントロールは、定義したコンプライアンス要件に対応付けることができます。\n\nこれらのコントロールは、プロジェクト、セキュリティ、マージリクエストの設定をGitLabインスタンス全体で確認し、SOC2、NIST、ISO 27001、GitLab CISベンチマークといった、さまざまなコンプライアンス基準や法規制への準拠をサポートします。\n\nこうしたコントロールへの準拠状況は、基準遵守レポートに反映されます。このレポートは、要件と、それに対してマッピングされたコントロールの関係を考慮して新たに設計し直されています。\n\nまた、標準搭載のコントロールを増やしただけでなく、GitLabの外部に存在する項目、プログラム、システムなどに対して、要件を外部コントロールとしてマッピングできるようになりました。これにより、GitLabのコンプライアンスセンターを信頼できる唯一の情報源として使用して、より包括的なコンプライアンス管理が可能となります。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13295)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13658)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16620)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/custom_compliance_frameworks.png\">\n\n### GitLab Eclipseプラグインがベータ版として利用可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Eclipseプラグインのベータ版をリリースしました。このプラグインは現在[Eclipse マーケットプレース](https://marketplace.eclipse.org/content/gitlab-eclipse)で入手可能です。この強力な新プラグインにより、GitLabのDuo機能をEclipse IDEに直接統合でき、Duo ChatやAIによるコード提案をスムーズに利用できるようになります。\n\n現在ベータ版のため、認証オプションの拡充やユーザーエクスペリエンスの最終調整など、機能改善を積極的に進めています。皆様のフィードバックは非常に貴重です。ぜひ、[イシュー162](https://gitlab.com/gitlab-org/editor-extensions/gitlab-eclipse-plugin/-/issues/162)にコメントを追加して、GitLab Eclipseプラグインをより良いものにするためのフィードバックをお聞かせください。\n\n[ドキュメント](https://docs.gitlab.com/editor_extensions/eclipse/setup/)\n[エピック](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/89)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/eclipse-beta.png\">\n\n### GitLab Duo Self-Hostedで、さらに多くのGitLab Duo機能が利用可能に\n\nSaaS: -\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Self-Managedインスタンスで、GitLab Duo Self-Hostedを使用してさらに多くの[GitLab Duo](https://about.gitlab.com/gitlab-duo/)機能を利用できるようになりました。以下の機能がベータ版として利用できます。\n\n* [根本原因分析](https://docs.gitlab.com/user/gitlab_duo_chat/examples/#troubleshoot-failed-cicd-jobs-with-root-cause-analysis)\n* [脆弱性の説明](https://docs.gitlab.com/user/application_security/vulnerabilities/#explaining-a-vulnerability)\n* [脆弱性の修正](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-resolution)\n* [AIインパクトダッシュボード](https://docs.gitlab.com/user/analytics/ai_impact_analytics/)\n* [ディスカッションサマリー](https://docs.gitlab.com/user/discussions/#summarize-issue-discussions-with-duo-chat)\n* [マージリクエストのコミットメッセージ](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#generate-a-merge-commit-message)\n* [マージリクエストサマリー](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#generate-a-description-by-summarizing-code-changes)\n* [CLI用GitLab Duo](https://docs.gitlab.com/editor_extensions/gitlab_cli/#gitlab-duo-for-the-cli)\n\n[コードレビューサマリー](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#summarize-a-code-review)も、実験的にGitLab Duo Self-Hostedで利用可能です。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#supported-gitlab-duo-features)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17072)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/ResizedExpandedDuoFeaturesImage.jpg\">\n\n### Self-Managedインスタンス向けWeb IDEで拡張機能マーケットプレイスが利用可能に\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nSelf-Managedユーザー向けのWeb IDEに拡張機能マーケットプレースが登場しました。拡張機能マーケットプレースでは、サードパーティの拡張機能を検索、インストール、管理できるため、快適な開発環境で効率的に作業できるようになります。\n\nデフォルトでは、GitLabインスタンスはOpen VSX拡張機能レジストリを使用するように構成されています。この機能を有効化するには、[デフォルトの拡張機能レジストリを使って有効にする](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/#enable-with-default-extension-registry)手順を参照してください。\n\nまた、独自のレジストリやカスタムレジストリを使用したい場合は、[カスタム拡張レジストリを接続することも可能です](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/#customize-extension-registry)。これにより、利用可能な拡張機能の管理にさらなる柔軟性が生まれます。\n\n拡張機能マーケットプレースを有効にした後でも、各ユーザーは個別に利用を有効化する必要があります。有効化は、[環境設定](https://gitlab.com/-/profile/preferences)の「インテグレーション」セクションで行えます。\n\nなお、一部の拡張機能はローカルの実行環境を必要とし、Web専用バージョンでは使用できないものがあります。それでも、数千種類の中から自由に拡張機能を選び、生産性向上やワークフローのカスタマイズに活用できます。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11770)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/extension-marketplace-sm.png\">\n\n### GitLab Duo with Amazon Qの一般提供を開始\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate\n\nGitLab Duo with Amazon Qの一般提供を開始しました。GitLab Duo with Amazon Qは、AIを搭載したGitLabの包括的なDevSecOpsプラットフォームと自律型Amazon Q AIアシスタントを一つの統合ソリューションとして提供する共同サービスです。GitLab Duo with Amazon Qは開発ワークフローに直接AIアシスタントを組み込むことで、デベロッパーが作業環境を行き来する必要がなくなり、結果として主要タスクのスピードアップを実現します。これらのAIアシスタントはGitLab DevSecOpsプラットフォーム内で高度な知能を持つパートナーとして機能し、コード生成、テスト、レビュー、Javaモダナイゼーションなどの時間のかかる作業を自動化します。これにより、チームはセキュリティと品質基準を維持しながら、より革新的な業務に集中できるようになります。\n\nGitLab Duo with Amazon Qは開発チームに次のような大きなメリットをもたらします：\n\n* アイデアからコードまでの機能開発を効率化：`/q dev`コマンドを使えば、イシューの説明文から数分でマージ可能なコードを直接生成できます。\n* 手間なくレガシーコードを最新化：`/q transform`コマンドでJavaコードの最新化プロセス全体を自動化します。\n* 品質を落とさずコードレビューを迅速化：`/q review`コマンドを使用すれば、マージリクエスト内で即座にコード品質とセキュリティに関する的確なフィードバックが得られます。\n* 安心してリリースするためのテスト自動化：`/q test`コマンドで、アプリケーションのロジックを理解した包括的な単体テストを生成します。\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/Duo_Q1.png\">\n\n[ドキュメント](https://docs.gitlab.com/user/duo_amazon_q/)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16879)\n\n### 保護されたコンテナタグによるセキュリティ強化\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nコンテナレジストリは、現代のDevSecOpsチームにとって重要なインフラストラクチャです。これまで、GitLabのデベロッパー権限以上のユーザーであれば、どのコンテナタグにもプッシュおよび削除が可能であり、本番環境で使用される重要なコンテナイメージが誤って変更されたり、不正に変更されたりするリスクがありました。\n今回導入された、保護されたコンテナタグにより、特定のコンテナタグをプッシュまたは削除できるユーザーを細かく制御できるようになりました。具体的には、以下のことが可能です。\n\n* プロジェクトごとに最大5件の保護ルールを作成\n* `latest`、セマンティックバージョン（例：`v1.0.0`）、安定版タグ（例：`main-stable`）のようなタグを、RE2正規表現パターンで保護\n* プッシュ操作と削除操作をメンテナー、オーナー、または管理者に制限\n* クリーンアップポリシーによる保護タグの削除防止\n\nこの機能を利用するには、次世代コンテナレジストリが必要です。このレジストリはGitLab.comではすでにデフォルトで有効になっていますが、GitLab Self-Managedインスタンスで保護されたコンテナタグを使用するには、[メタデータデータベース](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/user/packages/container_registry/protected_container_tags/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523893)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Xo5n-lZSSRg?si=_JP6dL_s04fwp60V\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### 保護されたMavenパッケージでレジストリを安全に\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースでは、Mavenの保護パッケージが新たにサポートされました。この機能は、GitLabパッケージレジストリのセキュリティと安定性を強化することを目的として設計されました。パッケージの誤った変更は、開発プロセス全体に大きな影響を及ぼす可能性があります。保護パッケージ機能を使うことで、意図せぬ変更を防いで重要な依存関係を守ることができます。\n\nGitLab 17.11では、保護ルールを作成してMavenパッケージを保護できるようになりました。保護ルールの条件に合致したパッケージは、許可された特定のユーザーのみが新しいバージョンをプッシュできます。パッケージ保護ルールによって、意図しない上書きの防止、規制要件へのコンプライアンス強化、手動モニタリングの必要性の軽減を実現できます。\n\nこのMavenパッケージの[保護機能](https://gitlab.com/groups/gitlab-org/-/epics/5574)やその他のパッケージフォーマットへの対応は、`gerardo-navarro`さんとSiemens社チームによるコミュニティからのコントリビュートによって実現しました。この場を借りて、GitLabに多大なるコントリビュートをしてくださったGerardoさんをはじめ、Siemens社のみなさまに感謝します！この変更に対するGerardoさんとSiemens社の方々のコントリビュートについて、詳しくはこちらの[動画](https://www.youtube.com/watch?v=5-nQ1_Mi7zg)をご覧ください。Gerardoさんが、外部のコントリビューターとしてGitLabにコントリビュートした経験から得た洞察やベストプラクティスを紹介してくださっています。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/323969)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/GeCXDespqeM?si=44JAVztwQr5UQ5bW\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### エピック、イシュー、タスク用のカスタムフィールド\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nこのリリースから、イシュー、エピック、タスク、目標、および主な結果に対して、テキスト、数値、単一選択、および複数選択のカスタムフィールドを設定できるようになりました。これまでは、ラベルが作業アイテムを分類する主な方法でしたが、カスタムフィールドを使うことで、よりユーザーフレンドリーな形で、計画アーティファクトに構造化されたメタデータを追加できます。\n\nカスタムフィールドは、トップレベルグループで設定され、すべてのサブグループおよびプロジェクトに反映されます。また、フィールドは1つ以上の作業アイテムタイプにマッピング可能で、カスタムフィールドの値を使ってイシューやエピックの一覧を絞り込むこともできます。\n\n[ドキュメント](https://docs.gitlab.com/user/work_items/custom_fields/)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14904)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/work-items-custom-fields.png\">\n\n### 新しいイシュー画面の一般提供を開始\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこのリリースより、新しいイシュー画面の一般提供が開始され、従来のイシュー画面に取って代わります。イシューはエピックやタスクと共通のフレームワークを使用するようになり、リアルタイムで更新されるとともに、ワークフローが改善されました。\n\n* **ドロワー表示：**\n\n  リストやボードのアイテムをドロワーで開いて、現在の画面から離れることなく素早く内容を閲覧できます。上部のボタンで全ページ表示に切り替わります。\n\n* **タイプの変更：**\n\n  「種類の変更」アクション（従来の「エピックへの昇格」）を使用して、エピック、イシュー、タスク間でタイプを変換できるようになりました。\n\n* **開始日：**\n\n  イシューで開始日がサポートされるようになり、エピックやタスクと機能が統一されました。\n\n* **祖先：**\n\n  タイトルの上とサイドバーの親フィールドに完全な階層が表示されます。関係の管理には、新しいクイックアクションコマンド`/set_parent`、`/remove_parent`、`/add_child`、`/remove_child`を使用できます。\n\n* **操作メニュー：**\n\n  すべてのアクションに上部のメニュー（縦方向の3点ドット）からアクセスできるようになりました。スクロールした場合でも消えずにヘッダーに表示されます。\n\n* **開発：**\n\n  イシューやタスクに関連するすべての開発アイテム（マージリクエスト、ブランチ、機能フラグ）が1つの便利なリストに統合されました。\n\n* **レイアウト：**\n\n  UIが改善され、イシュー、エピック、タスク、マージリクエスト間の移動がスムーズになり、より効率的にワークフローを進められるようになりました。\n\n* **リンクされたアイテム：**\n\n  改善されたリンクオプション機能で、タスク、イシュー、エピック間の関連付けが簡単になりました。ドラッグ＆ドロップでリンクのタイプを変更したり、ラベルや完了したアイテムの表示/非表示を切り替えたりできます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/issues/issue_work_items/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/525547)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/_jrnkD69KGw?si=nZojuQeVuJwvO5S0\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### サービスアカウントのUI\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nGitLabのUI上に、サービスアカウントの作成と管理に特化した専用画面が追加されました。このインターフェースを使用すると、GitLabリソースへの自動アクセスを作成、モニタリング、制御できます。これまでは、この機能はAPI経由でしか利用できませんでした。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/service_accounts.html)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/9965)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ujX_yzmOMCQ?si=CBpg2LdWLEgWHf-E\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### Duo ProとDuo Enterpriseシートの自動割り当て\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSAMLグループ同期を使用して、GitLab Duo ProやGitLab Duo Enterpriseのシートを自動的にユーザーに割り当てられるようになりました。GitLabグループに利用可能なDuo ProまたはDuo Enterpriseのシートが残っている限り、IDプロバイダ（IdP）からマッピングされたユーザーに自動的にシートが割り当てられます。これにより、シートの割り当てを管理する手間を抑えられます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/saml_sso/group_sync.html#gitlab-duo-seat-assignment)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502496)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/govern_duo_saml.png\">\n\n### CI/CDパイプライン入力\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nCI/CD変数は動的なCI/CDワークフローには欠かせない要素で、環境変数、コンテキスト変数、ツールの設定、マトリックス変数など、さまざまな用途で使用されています。しかし、デベロッパーはCI/CD変数を使って[パイプライン変数](https://docs.gitlab.com/ci/variables/#use-pipeline-variables)をパイプラインに注入し、パイプラインの動作を手動で変更することがあります。これは、パイプライン変数の優先度が他の変数よりも高いため、予期しない影響を及ぼすリスクがあります。\n\nGitLab 17.11から、パイプライン変数の代わりに`inputs`機能を使って、安全にパイプラインの挙動を変更できるようになりました。この機能は、スケジュールされたパイプライン、ダウンストリームパイプライン、トリガーされたパイプラインなど、さまざまなケースで利用可能です。inputsを使うことで、デベロッパーがCI/CDジョブの実行中に動的な内容（状況に応じて変化する情報）を組み込む作業が、より構造化され柔軟に行えるようになります。inputsに切り替えた後、[パイプライン変数へのアクセスを完全に無効化する](https://docs.gitlab.com/ci/variables/#restrict-pipeline-variables)ことも可能です。\n\nぜひお試しの上、専用の[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/533802)からフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ci/inputs/#for-a-pipeline)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16321)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/run_new_pipeline_spec_input.png\">\n\n## GitLab 17.11のリリースに含まれるその他の改善点\n\n### 自動で無効化されたすべてのWebhookを自動で再有効化\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこのリリースでは、`4xx`エラーを返すWebhookが自動的に再有効化されるようになりました。すべてのエラー（`4xx`、`5xx`、またはサーバーエラー）が同じように処理されるため、動作がより予測可能になり、トラブルシューティングが容易になります。この変更については、[こちらブログ投稿](https://about.gitlab.com/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities/)で詳しく解説しています。\n\n失敗したWebhookは、一時的に1分間無効になり、最大24時間まで延長されます。Webhookが40回連続して失敗すると、永久に無効になります。\n\nGitLab 17.10以前で永久に無効にされたWebhookは、データの移行が行われました。\n\n* GitLab.comの場合、これらの変更は自動的に適用されます。\n* GitLab Self-ManagedおよびGitLab Dedicatedの場合、これらの変更は、`auto_disabling_webhooks`の`ops`フラグが有効になっているインスタンスにのみ影響します。\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166329)してくれた[Phawin](https://gitlab.com/lifez)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/user/project/integrations/webhooks/#auto-disabled-webhooks)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/396577)\n\n### インポート時にGhostユーザーのコントリビュートを自動マッピング\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、Ghostユーザーのコントリビュートはプレースホルダー参照として作成され、手動での再アサインを必要とし、移行作業に余分な手間がかかっていました。今回の改善により、[新しいコントリビュートおよびメンバーシップのマッピング機能](https://docs.gitlab.com/user/project/import/#user-contribution-and-membership-mapping)を使用するインポーター（たとえば、直接転送による移行や、GitHub、Bitbucket Server、Giteaのインポーター）では、Ghostユーザーのコントリビュートをより効率的に処理できるようになりました。コンテンツをGitLabにインポートする際、移行元インスタンスでGhostユーザーが行ったコントリビュートが、移行先インスタンスのGhostユーザーに自動的にマッピングされます。\n\nこの機能強化により、Ghostユーザーのコントリビュートに対して不要なプレースホルダーユーザーが作成されなくなり、ユーザーマッピング画面の煩雑さが減り、移行プロセス全体が簡素化されました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#user-contribution-and-membership-mapping)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/514014)\n\n### GitLab.comへのインポート時におけるコントリビュートの再アサインにSAML認証が追加\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nこのマイルストーンでは、GitLab.comにインポートする際、コントリビュートの再アサインプロセスにSAML認証チェックを追加しました。これらのチェックにより、SAML SSOが有効なグループで発生していた再アサインエラーを防止できるようになりました。\n\nGitLab.comにインポートし、GitLab.comグループでSAML SSOを使用する場合、すべてのユーザーは、コントリビュートとメンバーシップを再アサインする前に、SAML IDをGitLab.comアカウントにリンクする必要があります。SAML IDが認証されていないユーザーにコントリビュートを再アサインすると、エラーメッセージが表示されます。これらのメッセージでは、グループメンバーシップを正しく割り当てるための手順が説明されています。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#requirements)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/513686)\n\n### Wikiサイドバーのスタイルを改善\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nカスタムWikiサイドバーのスタイルが改善され、見出しサイズが小さくなり、リストの左側の余白も調整されました。こうした視認性を高める改善により、`_sidebar wiki`ページで作成されたカスタムナビゲーションの読みやすさが向上しました。\n\nカスタムサイドバーは、チームが独自のナレッジベース構造に合わせてWikiコンテンツを整理するのに役立ちます。このスタイルの更新により、サイドバーが見やすくなり、視覚的な階層構造がより明確になり、チームメンバーが必要な情報を見つけやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/wiki/#customize-sidebar)\n[マージリクエスト](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/185678)\n\n### 作業中の上限をウェイトで設定\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nイシューの数に加えて、作業中の上限をウェイトで設定できるようになりました。これにより、チームのワークロードをより柔軟に管理できます。\n\nイシューの数だけでなく、各タスクの複雑さや作業量に基づいて作業の流れをコントロールできます。作業量をイシューのウェイトで表しているチームは、特定のボードリスト内のイシューの合計ウェイトを制限することで、チームに負担がかかりすぎるのを防げます。\n\nこの機能を活用することで、チームの生産性を最適化し、さまざまなタスクの複雑さを考慮した、よりバランスの取れたワークフローを実現できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/issue_board.html#work-in-progress-limits)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/119208)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/allow_users_to_set_work_in_progress_limits_by_weight.png\">\n\n### キャンセル状態でスタックしたCI/CDジョブを強制キャンセル\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nCI/CDジョブが「キャンセル中」状態でスタックし、デプロイや共有リソースへのアクセスをブロックすることがあります。\n\nメンテナーの[ロール](https://docs.gitlab.com/user/permissions/)を持つユーザーは、ジョブログページから直接これらの停止したジョブを強制キャンセルできるようになりました。これにより、問題のあるジョブを適切に終了できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/ci/jobs/#force-cancel-a-job)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467107)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/force-cancel-stuck-jobs.png\">\n\n### 失敗したジョブが一目でわかるパイプラインビュー\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n新しい表示機能により、パイプライングラフで失敗したジョブをすばやく識別できるようになりました。失敗したジョブグループはパイプライングラフで強調表示され、失敗したジョブは各ステージの上部にグループ化されます。複雑なパイプライン構造を隅々まで調べなくても、問題のあるジョブを素早く特定してトラブルシューティングができるようになりました。\n[ドキュメント](https://docs.gitlab.com/ci/pipelines/#view-pipelines)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/512300)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/failed-jobs-pipeline-graph.png\">\n\n### 依存プロキシのDocker Hub認証UIが登場\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab依存プロキシにおいて、Docker Hub認証をUIから設定できるようになりました。この機能はもともとGitLab 17.10でGraphQL APIを通じてのみ利用可能でしたが、今回のリリースで、より簡単に設定できるユーザーインターフェースが追加されました。\n\nこの機能強化により、グループ設定ページから直接Docker Hub認証を設定できるようになり、以下のことが可能になりました。\n\n* レート制限によるパイプラインの失敗を回避\n* プライベートなDocker Hubイメージへのアクセス\n* Docker Hubの認証情報、[パーソナルアクセストークン](https://docs.docker.com/security/for-developers/access-tokens/)、または[組織アクセストークン](https://docs.docker.com/security/for-admins/access-tokens/)を安全に保存\n\nこの効率化されたアプローチにより、GraphQL APIを使用せずに、CI/CDパイプラインでDocker Hubイメージに安定してアクセスできるようになりました。\n\n### Kubernetes 1.32のサポートを追加\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこのリリースでは、2024年12月にリリースされたKubernetesバージョン1.32に対するフルサポートが追加されました。アプリケーションをKubernetesにデプロイしている場合は、接続中クラスターを最新バージョンにアップグレードすることで、Kubernetes 1.32が提供する機能をすべて活用できるようになります。\n\n[Kubernetesサポートポリシーとその他のサポートされているKubernetesバージョン](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)の詳細については、ドキュメントをご覧ください。\n\n###  反射型XSSチェックのための動的解析機能を追加\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nGitLabの動的解析チームが、[CWE-79](https://cwe.mitre.org/data/definitions/79.html)に対応する新しいチェック機能を導入しました。これにより、DASTスキャナーは反射型XSS（クロスサイトスクリプティング）攻撃を検出できるようになりました。\n\n反射型XSSのチェック機能はデフォルトで有効になっています。このチェックを無効にするには、設定ファイルに`DAST_FF_XSS_ATTACK: false`を追加してください。ご質問やフィードバックがある場合は、[イシュー525861](https://gitlab.com/gitlab-org/gitlab/-/issues/525861)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/checks/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/525861)\n\n### Python対応の静的到達性解析のベータ版を提供開始\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nコンポジション解析チームは、Python向け静的到達性解析のベータ版をリリースしました。このベータ版では、安定性、可観測性の向上に焦点を当て、より簡単な設定で優れたユーザーエクスペリエンスを提供します。\n\n静的到達性解析は、ソフトウェアコンポジション解析（SCA）で得られる結果をより充実させてくれる機能です。静的到達性解析では、GitLabの高度なSASTを活用し、プロジェクトのソースコードをスキャンして使用中のオープンソースの依存関係を特定します。\n\nトリアージや修正に関する意思決定を行う上で、静的到達性機能によって生成されたデータを活用できます。また、静的到達可能性データを共通脆弱性評価システム（CVSS）スコアや悪用予測スコアリングシステム （EPSS)、悪用されている既知の脆弱性（KEV）と併用することで、より焦点を絞って脆弱性を確認することも可能です。\n\nこの機能に関するフィードバックをお待ちしています。ご質問やご意見のある方、またはGitLabチームとのやり取りをご希望の場合は、こちらの[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/535498)をご覧ください。\n\n### 依存関係リストと脆弱性レポートのエクスポートに関するメール配信\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nこれまで、依存関係リストや脆弱性レポートをエクスポートする場合、レポートをダウンロードするにはエクスポートが完了するまでページを開いたままにする必要がありました。\n\n今回の改善により、依存関係リストまたは脆弱性レポートのエクスポートが完了すると、ダウンロードリンクが記載されたメールで通知が届くようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_list/#download-the-dependency-list)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/513149)\n\n### CI/CDジョブの`source` 値を保存してフィルタリングする\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.11では、CI/CDジョブのソース属性を追跡することで、ユーザーがビルドアーティファクトのソースを確認できる新機能が導入されました。この機能は特に、セキュリティ対策やコンプライアンス対応を求められるワークフローで役立ちます。たとえば、組織はソフトウェアサプライチェーンのセキュリティ対策を実装したり、コンプライアンス目的でセキュリティスキャンの検証可能な証拠を要求したりできます。\n\nGitLabのジョブは、発生源を識別する以下の`source`値を保存して表示するようになりました。\n\n* スキャン実行ポリシー\n* パイプライン実行ポリシー\n* 通常のパイプライン\n\n`source`属性には、ビルド   \\> ジョブページの新しいフィルターオプション、ジョブAPI、またはアーティファクト検証用のIDトークンクレームを通じて確認できます。\n\nこの新機能により、次のことができるようになりました。\n\n* セキュリティスキャン結果の信頼性を検証\n* ソースの種類でジョブを絞り込むことで、ポリシーによって実行されたスキャンをすばやく特定\n* 新しいIDトークンクレームを使用した、アーティファクトの暗号化検証を実装\n* 適切な監査証跡により、コンプライアンス要件が満たされていることを確認\n\nセキュリティチームやコンプライアンスチームは、この機能を活用して以下を行えます。\n\n* ジョブページの新しいフィルターを使用して、ポリシーによって実行されたジョブのみを表示\n* ジョブAPIの`source`フィールドにアクセスしてタスクを自動化\n* 新しいIDトークンクレームを使用して、アーティファクトの検証を実装\n  * `job_source`：ジョブの発生源を識別します\n  * `job_policy_ref_uri`：ポリシーファイルを指します（ポリシー定義のジョブの場合）\n  * `job_policy_ref_sha`：ポリシーのgitコミットSHAを含みます\n\n[ドキュメント](https://docs.gitlab.com/api/jobs/#view-the-source-of-a-job)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11796)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/scan_execution_policy_job_source_filter.png\">\n\n### コンプライアンスフレームワークの作成時にプロジェクトを割り当て可能に\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nこれまでは、コンプライアンスフレームワークを作成した後、コンプライアンスセンターのプロジェクトタブに移動しないと、新しいコンプライアンスフレームワークをプロジェクトに割り当てることができませんでした。このプロセスは、グループで新しいフレームワークを作成する際に余計な混乱を生む原因となっていました。\n\nGitLab 17.11では、コンプライアンスフレームワークを作成するプロセスに新しい手順が追加され、作成前に複数のプロジェクトをコンプライアンスフレームワークに割り当てられるようになりました。\n\nこの新機能により以下が実現します。\n\n* コンプライアンスフレームワークのスムーズな作成\n* コンプライアンスフレームワークがグループ内のプロジェクトと連携し、グループ全体のコンプライアンス遵守状況を監視・管理する仕組みについての理解を深めるガイダンスを提供\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_frameworks/#apply-a-compliance-framework-to-a-project)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/500520)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/provide_option_to_add_projects_in_compliance_creation_workflow.png\">\n\n### サービスアカウント管理画面でのトークン統計表示\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nサービスアカウントのトークン管理インターフェイスに、トークンの状況を一目で把握できる便利な統計ダッシュボードが追加されました。この機能は、トークンの状態を評価し、注意が必要なトークンを特定するのに役立ちます。統計ダッシュボードには、次の4つの主要なメトリクスが含まれます。\n\n\\- 有効なトークン：現在使用中のトークンの総数を表示します\n\\- 2週間以内に期限が切れるトークン：今後2週間で期限切れとなるトークンを特定します\n\\- 取り消したトークン：手動で取り消されたトークンを追跡します\n\\- 期限切れトークン：以前に期限切れとなったトークンを監視します\n\nこの場を借りて、コントリビュートしてくれた[Chaitanya Sonwane](https://gitlab.com/chaitanyason9)さんに感謝します！![Token statistics for service account management][image6]\n\n[ドキュメント](https://docs.gitlab.com/user/profile/service_accounts/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/520472)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/expiring_token_cards.png\">\n\n### GitLab Duo Chatとコード提案でLlama 3モデルが一般提供開始\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nLlama 3モデルがGitlab Duo Self-Hostedで一般提供され、GitLab Duo Chatとコード提案をサポートできるようになりました。\n\nこれらのモデルをGitLab Duo Self-Hostedで使用する際のフィードバックについては、[イシュー523918](https://gitlab.com/gitlab-org/gitlab/-/issues/523918)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15678)\n\n### 管理者エリアでプレースホルダーユーザーをフィルタリング可能に\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、インポート中に作成されたプレースホルダーユーザーは、管理者エリアのユーザーページで明確に区別されず、通常のユーザーと混在して表示されていました。\n\n本リリースから、管理者は管理者エリアのユーザーページの検索ボックスからプレースホルダーアカウントを絞り込めるようになりました。これを行うには、ドロップダウンリストで`タイプ`を選択し、`プレースホルダー`を選択します。\n\n[ドキュメント](https://docs.gitlab.com/administration/admin_area/#administering-users)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/521974)\n\n###  グループの使用量割り当てにプレースホルダーユーザー制限を表示\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab.comへのインポートの場合、プレースホルダーユーザーはトップレベルグループごとに制限されています。これらの制限は、GitLabライセンスとシート数によって異なります。 本リリースから、トップレベルグループのプレースホルダーユーザーの使用状況と制限をUIで確認できるようになりました。\n以下の手順で現在の使用状況と制限を表示できます。\n\n1. 左側のサイドバーで、「Search or go to...」を選択してグループを検索します。このグループはトップレベルである必要があります。\n2. 設定 \\> 使用量割り当てを選択します。\n\n3. 「インポート」タブを選択します。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#placeholder-user-limits)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/486691)\n\n### GLQLビューで最後のコメントを列として表示可能に\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGLQLビューで、イシューまたはマージリクエストの最後のコメントを列として表示できるようになりました。GLQLクエリにlastCommentをフィールドとして含めることで、作業中の画面から移動せずに最新の更新を確認できます。\n\nこれまでは、最後のコメントを確認するために各イシューまたはマージリクエストを個別に開く必要があり、時間がかかる上に、進捗状況の全体像をすばやく把握することが困難でした。この改善により、進行中の会話やステータス更新が一目でわかるようになり、チームの作業効率向上に役立ちます。\n\nこの機能強化ならびにGLQLビュー全般に関するフィードバックは、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509791)からお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/fields/#last-comment)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/512154)\n\n### GitLab Pages用のNuxtプロジェクトテンプレートが登場\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabは、最も人気のある静的サイトジェネレーター（SSG）のテンプレートを提供していますが、この度、Vue.js上に構築された強力なフレームワークであるNuxtを使用したGitLab Pagesサイトを作成できるようになりました。Nuxtは、設定の手間を減らしながらモダンで高性能なWebアプリケーションをビルドしたいチームにとって特に有用です。\n\nこの新機能により、初期のセットアップと設定に時間をかけることなく、CI/CDパイプラインと最新の開発体験を組み込んだPagesサイトをすばやく起動するオプションが増えました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/pages/getting_started/pages_new_project_template/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/461603)\n\n### インポートされたファイルをコード提案のコンテキストとして使用可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duoコード提案で、IDEにインポートされたファイルをコンテキストとして活用できるようになり、コード提案の品質が進化しました。インポートされたファイルはプロジェクトに関する追加のコンテキストを提供し、より適切な提案を可能にします。現在、インポートファイルのコンテキストは、JavaScriptファイルとTypeScriptファイルに対応しています。\n\n### GitLab Runner 17.11\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこのたび、GitLab Runner 17.11もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n新機能：\n\n* [GitLab RunnerのWindows実行可能ファイルにコード署名を追加](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2483)\n\nバグ修正：\n\n* [GitLab Runner 17.10.0でGit設定をクリーニングするとエラーが発生する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38681)\n* [`FF_DISABLE_UMASK_FOR_KUBERNETES_EXECUTOR`フラグが`umask`コマンドを無効にしない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38382)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-11-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner/)\n\n### プロジェクトにおけるRunner管理の改善\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nプロジェクトでRunnerをより効率的に管理できるようになりました。Runnerは、従来の2列のビューではなく、1列のレイアウトで表示され、それぞれが独自のリストとして整理されるようになりました。\n\nこの構成の改善により、Runnerの検索と管理が簡素化され、割り当てられたプロジェクトの一覧、Runnerマネージャー、およびRunnerが実行したジョブなどの新機能が追加されました。GitLab 18.0で計画されているその他のRunner管理の改善については、[イシュー33803](https://gitlab.com/gitlab-org/gitlab/-/issues/33803)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/ci/runners/runners_scope/#project-runners)\n[マージリクエスト](https://release-17-11.about.gitlab-review.app/releases/2025/04/17/gitlab-17-11-released/%5B%22https://gitlab.com/gitlab-org/gitlab/-/merge_requests/185232%22,%20%22https://gitlab.com/gitlab-org/gitlab/-/merge_requests/186963%22%5D)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/runner-project-redesign.png\">\n\n### スイッチボードで複数のIDプロバイダ（IdP）を使用したSAMLシングルサインオンに対応\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: -\n\nGitLab Dedicatedインスタンスにおいて、最大10個のIDプロバイダ（IdP）を使ったSAMLシングルサインオン（SSO）の設定が可能に\nなりました。\n\nGitLab Dedicatedインスタンスで利用可能なすべてのSAML設定オプションは、個々のIdPごとに設定できます。\n\n以前に複数のIdPを設定していた場合も、すべての既存SAML設定をスイッチボードで直接表示および編集できるようになりました。\n\n![Configure SAML single sign-on with multiple identity providers in Switchboard][image8]\n\n[ドキュメント](https://docs.gitlab.com/administration/dedicated/configure_instance/saml/)\n[Webページ](https://release-17-11.about.gitlab-review.app/releases/2025/04/17/gitlab-17-11-released/%5B%22https://about.gitlab.com/direction/platforms/dedicated/#theme-feature-parity%22%5D)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/switchboard-multiple-idp.png\">\n\n### イベントデータの共有をデプロイ前に無効にできる機能を追加\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 18.0では、GitLab Self-ManagedおよびGitLab Dedicatedインスタンスからイベントレベルの製品使用状況データの収集を有効にする予定です。集計データとは異なり、イベントレベルのデータを収集することでより詳細な利用状況を把握できるようになります。こうしたデータは、GitLabがプラットフォーム上のユーザーエクスペリエンスを向上させ、機能活用を促進させるのに役立ちます。\n\nGitLab 17.11から、上記のイベントデータ収集が始まる前に、あらかじめその機能を無効に設定することが可能になりました。オプトアウト方法の詳細については、ドキュメントを参照してください。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/event_data/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/510333)\n\n### シークレットプッシュ保護とパイプラインシークレット検出のルールカバレッジを拡大\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nGitLabシークレット検出機能が大幅に更新され、17件の新しいシークレットプッシュ保護ルールと12件の新しいパイプラインシークレット検出ルールが追加されました。また、既存のルールの一部も更新され、検出精度の向上と誤検知の削減が図られています。詳細については、[変更履歴](https://gitlab.com/gitlab-org/security-products/secret-detection/secret-detection-rules/-/blob/main/CHANGELOG.md#v090)のv0.9.0を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/secret_detection/detected_secrets)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/534106)\n\n### プロジェクト依存関係リストをCycloneDX形式でエクスポート可能に\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\n多くの組織は現在、規制要件を満たし、ソフトウェアサプライチェーンのセキュリティをさらに強化するために、ソフトウェア部品表（SBOM）が求められるようになりました。以前は、GitLabでは依存関係リストのエクスポート形式がJSONもしくはCSVに限られていましたが、今回から業界標準のCycloneDX形式でエクスポートできるようなり、SBOMの生成が可能になりました。\nSBOMをCycloneDX形式で依存関係リストから直接ダウンロードするには、**エクスポート** \\> **CycloneDX（JSON）としてエクスポートする**を選択します。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_list/#download-the-dependency-list)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524733)\n\n### 依存関係リストをCSV形式でエクスポート可能に\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nこれまで、GitLabから依存関係リストをCSVファイルとしてエクスポートすることはできませんでした。本リリースから新機能として、依存関係リストをダウンロードする際にCSVオプションを選択して、CSV形式でリストをエクスポートできるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dependency_list/#download-the-dependency-list)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/435843)\n\n### 「ツールフィルター」が「スキャナーフィルター」と「レポートタイプフィルター」に置き換え\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nこれまで、脆弱性レポートの**ツール**検索フィルタでは、スキャナーのタイプ（ESLintやGemnasiumなど）とレポートのタイプ（SASTやコンテナスキャンなど）が単一のグループとして扱われ、個別に指定することができませんでした。\n\n今回、より効率的に適切なツールを検索できるよう、**ツール**フィルターを**スキャナー**フィルターと**レポートタイプ**フィルターに分けました。これにより、スキャナーとレポートタイプを別々に指定できるようになり、より細かく検索条件を設定できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#report-type-filter)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/503371)\n\n### アクセストークンの並べ替えオプションを強化\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nUIとAPIにアクセストークンの並べ替えオプションが追加されました。これらの並べ替えオプションは、GitLabの既存のトークン管理機能を補完し、アクセストークン管理の自由度を高めるとともに、アクセストークンのセキュリティ維持にも役立ちます。新しい並べ替えオプションには次のものがあります。\n\n* 有効期限順（昇順）：最も早く期限が切れるトークンから表示\n* 有効期限順（降順）：有効期限までの期間が最も長いトークンから表示\n* 最終使用日順（昇順）：最近使用されていないトークンから表示\n* 最終使用日順（降順）：最近使用されたトークンから表示\n\n[ドキュメント](https://docs.gitlab.com/user/profile/personal_access_tokens/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/519716)\n\n### Geo - 新しいレプリケーションビューの導入\n\nSaaS: -\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nGeoのレプリケーションビューが、新しい見た目と使いやすさに生まれ変わりました。新しいデザインは、GitLab全体と統一感を持たせつつ、Geoセカンダリサイトの同期と検証ステータスを確認しやすい、より効率化されたインターフェイスを実現しています。さらに新機能として、各レプリケーション項目をクリックすると詳細画面が表示されるようになり、プライマリおよびセカンダリのチェックサム、エラーの詳細など、多くの情報が確認できるようになりました。これにより、Geoの同期に関する問題のトラブルシューティングがはるかに簡単になります。\n\n[ドキュメント](https://docs.gitlab.com/administration/geo/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509349)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/410401)\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/geo_new_replicables_view.png\">\n\n### GitLab Duo ChatがAnthropicのClaude Sonnet 3.7を採用\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duo Chatのベースモデルが、AnthropicのClaude 3.5 SonnetからClaude Sonnet 3.7に更新されました。これにより、ほとんどの質問は新モデルで処理されます。\n\nClaude 3.7 Sonnetは、コーディングと推論機能が大幅に強化されており、コードの説明、コードの生成、テキストデータの処理、複雑なDevSecOps関連の質問に対して、より精度の高い回答が可能になりました。これらの分野では、より詳細で正確な応答が得られます。\n\nこのアップグレードはChat機能全体に適用され、すべてのChat機能で一貫した品質向上が図られています。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/examples/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/521034)\n\n### Linuxパッケージの改善\nSaaS: -\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 18.0では、PostgreSQLの最小サポートバージョンはバージョン16になります。この変更に備えて、[PostgreSQLクラスター](https://docs.gitlab.com/administration/postgresql/replication_and_failover/)を使用していないインスタンスでは、GitLab 17.11へのアップグレード時にPostgreSQLをバージョン16に自動的にアップグレードする仕組みが導入されます。\n\n[PostgreSQLクラスター](https://docs.gitlab.com/administration/postgresql/replication_and_failover/)を使用している場合、または[この自動アップグレードを希望しない](https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades)場合は、[手動でPostgreSQL 16にアップグレード](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server)してからGitLab 18.0にアップグレードする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\n[イシュー](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/8504)\n\n### GitLab Duo Chatで複数のチャットを管理可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duo Chatを使用した複数のチャットが、GitLab Self-ManagedインスタンスのWeb UIで利用できるようになりました。新しいチャットの作成、履歴の閲覧、およびチャット間の切り替えをコンテキストを失うことなく行えます。\n\nプライバシー保護のために、30日間アクティビティのないチャットは自動的に削除されます。また、チャットはいつでも手動で削除できます。GitLab Self-Managedをご利用の場合、管理者は会話の保持時間をさらに短縮することも可能です。\n\n[イシュー526013](https://gitlab.com/gitlab-org/gitlab/-/issues/526013)で、ご意見をお聞かせください。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo_chat/#have-multiple-conversations-with-chat)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16108)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/h9ooN05cNbw?si=J6UGE_T5YIc6HL_P\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Duo Self-Hostedで開いているファイルをコード提案のコンテキストとして使用可能に\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitlab Duo Self-Hostedでは、コード提案を使用するときに、[IDEのタブで開いているファイル](https://docs.gitlab.com/user/project/repository/code_suggestions/#using-open-files-as-context)をコンテキストとして使用できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/code_suggestions/#using-open-files-as-context)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16611)\n\n### GitLab Duo Self-HostedでAI搭載機能ごとに個別のモデルを選択可能に\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedで、GitLab Self-Managedインスタンスの各GitLab Duo機能とサブ機能に対して、サポートされている個々のモデルを選択して設定できるようになりました。\n\nフィードバックは、[イシュー524175](https://gitlab.com/gitlab-org/gitlab/-/issues/524175)にお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-the-feature-to-use-a-self-hosted-model)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17099)\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n17.11で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.11)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.11)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.11)\n\n\u003Cbr>\n\u003Cbr>\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* パイプライン実行ポリシーの「inject\\_ci」戦略が「inject\\_policy」に変更\n* コンプライアンス基準適合ダッシュボードがコンプライアンス状況ダッシュボードに刷新\n* クライアント認証情報を使用しないOAuth ROPCグラント方式を非推奨化\n\n\u003Cbr>\n\u003Cbr>\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n### GitLab 17.11へのアップグレードに関する重要なお知らせ\n\nGitLab 17.8では、新しい暗号化フレームワーク（GitLab 17.9から導入）に対応するため、3つの新しいシークレットが追加されました。\n\nマルチノード構成をご利用の場合は、[こちらのドキュメントページ（GitLab 17.11.0 changes）](https://docs.gitlab.com/update/versions/gitlab_17_changes/#17110)に記載されている、お使いの環境に適した手順に従ってください。\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\n  ユーザー向けの永久無料機能を提供\n* [Premium](https://about.gitlab.com/pricing/premium/)\n  チームの生産性と調整を強化\n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/)でお試しいただけます。\n\n\u003Cbr>\n\u003Cbr>\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705,109],"2025-04-22",{"slug":1124,"featured":91,"template":685},"gitlab-17-11-release","content:ja-jp:blog:gitlab-17-11-release.yml","Gitlab 17 11 Release","ja-jp/blog/gitlab-17-11-release.yml","ja-jp/blog/gitlab-17-11-release",{"_path":1130,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1131,"content":1137,"config":1143,"_id":1145,"_type":14,"title":1146,"_source":16,"_file":1147,"_stem":1148,"_extension":19},"/ja-jp/blog/gitlab-17-2-released",{"title":1132,"description":1133,"ogTitle":1132,"ogDescription":1133,"noIndex":6,"ogImage":1134,"ogUrl":1135,"ogSiteName":669,"ogType":670,"canonicalUrls":1135,"schema":1136},"GitLab 17.2リリース","GitLab 17.2でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662130/Blog/Hero%20Images/17-2-cover.jpg","https://about.gitlab.com/blog/gitlab-17-2-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.2リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-07-18\",\n      }",{"title":1132,"description":1133,"authors":1138,"heroImage":1134,"date":1139,"body":1140,"category":705,"tags":1141,"updatedDate":1142},[853],"2024-07-18","**GitLab 17.2のリリースで、ログストリーミング、新しいパイプライン実行セキュリティポリシー、脆弱性の説明機能の一般提供を開始**\n\nこのたび、GitLab 17.2のリリースを発表しました。このリリースでは、[脆弱性の説明機能の一般提供が開始され、さらにGitLab Duoと統合されることで](\\#bookmark=id.gjdgxs)、SASTの脆弱性を把握できるようになりました。また、[Kubernetesのログストリーミングのサポート](\\#bookmark=id.30j0zll)により、GitLab上でワークロードの問題を解決できるようになったほか、CI/CDジョブの実行を強制する新たな[タイプのパイプライン実行セキュリティポリシー](\\#bookmark=id.1fob9te)、リモート開発環境での生産性の向上に役立つ[GitLabワークスペースでのDuoチャットとコード提案のサポート](\\#bookmark=id.3znysh7)など、さまざまな機能が追加されました。これらの機能は、今回のリリースで追加された30を超える改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。  \n\nGitLab 17.2には、GitLabコミュニティのメンバーのみなさまから160件以上ものコントリビュートがありました。GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはみなさまのご協力なしには実現できませんでした。ご協力いただき誠にありがとうございました！  \n\n来月のリリースに向けたプレビューは、[今後のリリースページ](about:blank)をご覧ください。17.3リリースのキックオフビデオもご視聴いただけます。  \n\n## **今月のMost Valuable Person（[MVP](about:blank)）は[Phawin Khongkhasawan](https://gitlab.com/lifez)さんが受賞**\n\n[誰もがGitLabコミュニティのコントリビューターをMVPに推薦できます](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)。積極的に活動している候補者を応援したり、他の誰かをノミネートしてみませんか。🙌  \n\n[Jitta社](https://www.jitta.com/)のテクニカルリードであるPhawin Khongkhasawanさんは、2024年2月からGitLabにコントリビュートしてくださっています。わずか数か月のうちに、Phawinさんは20件を超えるコントリビュートをマージしました。それらのコントリビュートは、リリース[16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)、[17.0](https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/\\#customize-avatars-for-users)、[17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)に含まれています。  \n\nPhawinさんは、[API経由でのプロジェクトテストWebhookのトリガーを許可する](https://gitlab.com/gitlab-org/gitlab/-/issues/455589)リクエストなど、Webhook関連の機能を改善したことが評価され、GitLabのプロダクトマネージャーである[Magdalena Frankiewicz](https://gitlab.com/m\\_frankiewicz)に初めて推薦されました。GitLabのエンジニア[Marc Shaw](https://gitlab.com/marc\\_shaw)と[Jose Ivan Vargas](https://gitlab.com/jivanvl)、またGitLabのプロダクトマネージャー[Rutvik Shah](https://gitlab.com/rutshah)は、[GitLabのコアバリュー](https://handbook.gitlab.com/handbook/values/)であるコラボレーションとイテレーションに対するPhawinさんの忍耐強い取り組みに注目しました。  \n\nGitLabのスタッフバックエンドエンジニアである[Patrick Bajao](https://gitlab.com/patrickbajao)は、「”[Add order by merged\\_at](https://gitlab.com/gitlab-org/gitlab/-/merge\\_requests/147052)機能”を完成まで導いたPhawinさんの仕事ぶり、忍耐強さ、そして粘り強さには本当に感謝しています」と述べています。「マージされデプロイされるまでには、いくつかのマイルストーンを要しましたが、Phawinさんが手を止めることはなく、一緒に取り組んでくださいました」  \n\n新たに加わったコントリビューターでも、すぐに影響をもたらし、GitLabの共同開発に貢献できることを示してくださったPhawinさんに心から感謝申し上げます。\n\n## **GitLab 17.2でリリースされた主な改善点**\n\n### [**Kubernetesのポッドとコンテナのログストリーミング**](\\#bookmark=id.30j0zll)\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 16.1でKubernetesポッドのリストと詳細ビューを導入したものの、ワークロードを詳しく分析するには、引き続きサードパーティのツールを使用する必要がありました。本リリースでGitLabにポッドとコンテナのログストリーミングビューが追加されたため、直接アプリケーション配信ツール上で環境全体の問題をすばやく確認して、問題を解決できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes\\_dashboard.html)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13793)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/k8s-logs-view.png\">\n\n### **変更のリクエストによるマージリクエストのブロック**\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nレビューを行う際は、最後に`承認`、`コメント`、`変更のリクエスト`のいずれかを選択できます（[GitLab 16.9でリリース](https://about.gitlab.com/releases/2024/02/15/gitlab-16-9-released/\\#request-changes-on-merge-requests)）。レビューの最中に、解決されるまでマージリクエストを実行できないような変更が見つかる可能性があります。その場合、`変更のリクエスト`を行って、レビューを完了します。  \n\nこの度、変更がリクエストされると、そのリクエストが解決されるまでマージを防止するマージチェックがGitLabに追加されました。変更のリクエストを解決するには、最初に変更をリクエストしたユーザーがマージリクエストを再度レビューしてから、承認する必要があります。最初に変更をリクエストしたユーザーが承認できない場合、マージ権限を持つユーザーであれば誰でも変更リクエストを**バイパス**できるため、開発を続行できます。  \n\n[イシュー455339](https://gitlab.com/gitlab-org/gitlab/-/issues/455339)でこの新機能に関するフィードバックをぜひお寄せください。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge\\_requests/reviews/index.html\\#prevent-merge-when-you-request-changes)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/761)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11719) \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/create-block-mr-request-changes.png\">\n\n### **脆弱性の説明**\n\nSaaS: Ultimate、Duo Enterprise  \nSelf-Managed: Ultimate、Duo Enterprise\n\n脆弱性の説明がGitLab Duoチャットの一部として、一般提供されました。脆弱性の説明機能を使用すれば、SASTの脆弱性が見つかった場合に、チャットを開いて脆弱性についてより深く理解し、どのように悪用される可能性があるかを確認し、適用可能な修正方法を検討できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/vulnerabilities/\\#explaining-a-vulnerability)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10642)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/vulnerability_explanation_duo_chat.png\">\n\n### **OAuth 2.0デバイスの認証付与サポート**\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n[OAuth 2.0デバイスの認証付与フロー](https://datatracker.ietf.org/doc/html/rfc8628)がGitLabでサポートされるようになりました。このフローを使用すれば、入力制限によりブラウザを使用できないデバイスからでも、GitLabのユーザー認証を安全に行えます。これにより、ヘッドレスサーバーやUIがない、またはUIが制限されている他のデバイスからGitLabサービスを利用する際に、デバイスの認証付与プロセスが最適です。この場を借りて、コントリビュートしてくれた[John Parent](https://kitware.com/)さんに感謝します！  \n\n[ドキュメント](https://docs.gitlab.com/ee/api/oauth2.html\\#device-authorization-grant-flow)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/332682)\n\n\u003Ciframe width=\"898\" height=\"505\" src=\"https://www.youtube.com/embed/jwocmqtKpJs\" title=\"GitLab OAuth2 Device Auth Demo\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **パイプライン実行ポリシーのタイプ**\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nパイプライン実行ポリシーは、汎用的なCIジョブやスクリプト、命令の実行を強制できる新しいタイプのセキュリティポリシーです。\n\nセキュリティチームやコンプライアンスチームは、このパイプライン実行ポリシータイプを使用することで、カスタマイズした[GitLabセキュリティスキャンテンプレート](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates/Jobs)や、[GitLabまたはパートナーがサポートするCIテンプレート](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates)、サードパーティのセキュリティスキャンテンプレートを適用できるほか、CIジョブ経由でカスタムレポートルール、またGitLab CI経由でカスタムスクリプトやルールを実施できます。\n\nパイプライン実行ポリシーには、「インジェクション」と「上書き」の2種類のモードがあります。*インジェクション*モードでは、プロジェクトのCI/CDパイプラインにジョブが挿入されます。*上書き*モードでは、プロジェクトのCI/CDパイプライン設定が置き換えられます。  \n\nその他すべてのGitLabポリシーと同様、ポリシーの作成・管理担当として指定されたセキュリティおよびコンプライアンスチームのメンバーが一元的に実施を管理できます。最初の[スキャン実行ポリシーを作成して、始め方を学びましょう！](https://docs.gitlab.com/ee/tutorials/scan\\_execution\\_policy/)！  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/policies/pipeline\\_execution\\_policies.html)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13266)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/pipeline-execution-policy-rp.png\">\n\n### **パイプラインのシークレット検出におけるカスタムルールセットのサポートの拡張**\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nパイプラインのシークレット検出におけるカスタムルールセットのサポートを拡張しました。  \nリモートルールセットを設定する際に、新しいタイプのパススルーとして `git` と `url` を使用できます。これにより、複数のプロジェクト間でルールセットの設定を共有するなど、ワークフローの管理を簡単に行えます。\n\nまた、これらの新しいタイプのパススルーを使用して、リモートルールセットでデフォルト設定を拡張することもできます。\n\nまた、アナライザーでは次の機能もサポートされるようになりました。\n\n* 最大20のパススルーを 単一の設定に連結し、事前定義されたルールを置き換える  \n* パススルーに環境変数を含める  \n* パススルーの読み込み時にタイムアウトを設定する  \n* ルールセット設定でTOML構文を検証する\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/secret\\_detection/pipeline/\\#custom-rulesets)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/336395)\u003Cbr>\n[マージリクエスト](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/merge\\_requests/310) \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/secrets-expanded-custom-rulesets-support.png\">\n\n### **ワークスペースでGitLab Duoチャットとコード提案が利用可能に**\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise  \nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nワークスペースで[GitLab Duoチャット](https://docs.gitlab.com/ee/user/gitlab\\_duo\\_chat/)と[コード提案](https://docs.gitlab.com/ee/user/project/repository/code\\_suggestions/)を利用できるようになりました！すぐに回答が必要な場合や、コードを効率的に改善したい場合に、生産性を向上させ、ワークフローを効率化するように設計されたDuoチャットとコード提案を使用すれば、これまで以上に効率的かつ効果的にワークスペースでのリモート開発を進められます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab\\_duo/)   \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/12780)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/workspaces_duo.png\">\n\n## **GitLab 17.2のその他の改善**\n\n### **削除されたブランチがJira開発パネルで消去**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは[Jira Cloudアプリ向けGitLab](https://docs.gitlab.com/ee/integration/jira/connect-app.html)の使用時に、GitLabでブランチを削除した場合でも、Jira開発パネルにはそのブランチが表示されていました。また、削除したブランチを選択すると、GitLabで`404`エラーが発生していました。  \n\n本リリースから、GitLabでブランチを削除した場合、Jira開発パネルから消去されます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/integration/jira/development\\_panel.html\\#feature-availability)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/351625)\n\n### **UIにインポート済みのアイテムであることが表示**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabに、[他のSCMソリューション](https://docs.gitlab.com/ee/user/project/import/\\#supported-import-sources)からプロジェクトをインポートできます。ただし、プロジェクトアイテムがインポートされたものか、またはGitLabインスタンスで作成されたものかを判断するのは困難でした。  \n\n本リリースでは、作成者が特定のユーザーであることが明らかになっているGitHub、Gitea、Bitbucket Server、Bitbucket Cloudからインポートされたアイテムに表示インジケーターを追加しました。対象となるアイテムは、マージリクエスト、イシュー、メモなどです。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/import/\\#supported-import-sources)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13825)\n\n### **イシューイベントのWebhookにタイプ属性を追加**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nイシュー、タスク、インシデント、要求事項、目標、主要な成果はすべて、**イシューイベント**のWebhookカテゴリで、ペイロードをトリガーします。これまでは、イベントペイロード内でWebhookをトリガーしたオブジェクトのタイプをすばやく特定する方法がありませんでした。本リリースでは、**イシューイベント**、**コメント**、**非公開のイシューイベント**、**絵文字イベント**トリガー内のペイロードで利用可能な `object_attributes.type` 属性が導入されました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/integrations/webhook\\_events.html\\#issue-events)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467415)\n\n### **Wikiページのタイトルとパスフィールドを分離**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.2では、Wikiページのタイトルはパスと切り離されています。以前のリリースでは、ページタイトルが変更された場合、パスも変更され、ページへのリンクが破損してしまう可能性がありました。本リリースではWikiページのタイトルが変更されても、パスは変わりません。Wikiページのパスが変更された場合でも、自動リダイレクトが設定されるため、リンクが壊れることはありません。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/wiki/)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/30758)\n\n### **マージコミットメッセージ生成の一般提供を開始**\nSaaS: Ultimate、Duo Enterprise  \nSelf-Managed: Ultimate、Duo Enterprise\n\nコミットメッセージの作成は、コードベースのどの部分がどのような理由で変更されたのかを、その後他のユーザーが確実に把握できるようにするために不可欠です。変更した可能性のあるすべての内容を考慮した上で、変更点を効果的に伝えられるメッセージを作成するのは大変です。  \n\n本リリースでは、GitLab Duoによるマージコミットの生成の一般提供が開始され、すべてのマージリクエストで質の高いコミットメッセージを作成できるようになりました。マージする前に、マージウィジェットの「**コミットメッセージを編集**」選択し、「**コミットメッセージを生成**」オプションを使用してコミットメッセージのドラフトを生成します。  \n\nこの新しいGitLab Duo機能は、デベロッパーがプロジェクトのコミット履歴を貴重なリソースとしてその後活用できるようにする上で最適です。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab\\_duo/index.html\\#merge-commit-message-generation)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13661)\n\n### **Pure SSH転送プロトコルによるLFS**  \nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n2021年9月に、[`git-lfs` 3.0.0](https://github.com/git-lfs/git-lfs/blob/main/CHANGELOG.md\\#300-24-sep-2021)がリリースされ、HTTPの代わりにSSHを転送プロトコルとして使用できるようになりました。それ以前のバージョンでは、転送プロトコルとしてHTTPのみがサポートされていました。そのため、一部のユーザーは、GitLabで `git-lfs` を使用できませんでした。本リリースでは、 `git-lfs` の転送プロトコルとして、HTTPの代わりにSSHを使用できるようになりました。  \n\nこの場を借りて、コントリビュートしてくれた[Kyle Edwards](https://gitlab.com/KyleFromKitware)さんと[Joe Snyder](https://gitlab.com/joe-snyder)さんに感謝します！  \n\n[ドキュメント](https://docs.gitlab.com/ee/administration/lfs/\\#pure-ssh-transfer-protocol)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11872)\n\n### **パイプラインスケジュールのソートオプション**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nパイプラインスケジュールリストを説明、参照、次回の実行、作成日、更新日の順でソートできるようになりました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/ci/pipelines/schedules.html)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/37246)\n\n### **保護環境へのデプロイと承認がトリガーとなり、監査イベントを生成** \nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nデプロイの承認など、デプロイイベントの記録にアクセスできるようにしておくことは、コンプライアンス管理を行う上で不可欠です。これまで、GitLabではデプロイ関連の監査イベントが提供されていなかったため、コンプライアンスマネージャーはカスタムツールを使用するか、GitLab上で該当するデータを直接検索する必要がありました。本リリースによりGitLabは、次の3種類の監査イベントの提供を開始しました。\n\n* `deployment_started` デプロイジョブを開始したユーザーと開始日時を記録  \n* `deployment_approved` デプロイジョブを承認したユーザーと承認日時を記録  \n* `deployment_rejected` デプロイジョブを却下したユーザーとその日時を記録\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit\\_event\\_types.html\\#continuous-delivery)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/456687)\n\n### **APIセキュリティテストで署名付き認証リクエストをサポート**\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nAPIセキュリティには、スキャナーから送信されたリクエストを変更できる「上書き」機能がすでにサポートされていますが、事前に上書きを設定する必要があり、リクエストに応じて変更することはできません。GitLab 17.2では、「リクエストに基づくスクリプト」として`APISEC_PER_REQUEST_SCRIPT`が追加され、各リクエストを送信する前に呼び出されるC\\#スクリプトをユーザーが提供できるようになりました。これにより、認証の一環としてシークレットを使用したリクエストへの「署名」をサポートします。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/api\\_security\\_testing/configuration/variables.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/458825)\n\n### **DASTアナライザーの改善**\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n17.2リリースのマイルストーンでは、以下の改善を行いました。\n\n1. 3種類のチェックを新たに追加しました。\n\n* チェック506.1は、Polyfill.io CDNの乗っ取りによって侵害された可能性の高いリクエストURLを特定するパッシブチェックです。  \n* チェック384.1は、有効なセッション識別子が悪意のある人物によって再利用される可能性をもたらすセッション固定の弱点を特定するパッシブチェックです。  \n* チェック16.11は、HTTPのTRACEデバッグメソッドが本番サーバーでいつ有効になっているかを特定するアクティブチェックです。有効になっている場合、誤って機密情報が公開される恐れがあります。\n\n2. 誤検出を減らすため、以下のバグ修正を行いました。\n\n* DASTチェック614.1（Secure属性なしの機密性の高いCookie）と1004.1（HttpOnly属性なしの機密性の高いCookie）では、サイトで以前に設定された有効期限によりCookieが消去された場合、検出結果が生成されなくなりました  \n* DASTチェック1336.1 （サーバーサイドテンプレートインジェクション）では、攻撃の成功を判定するために、HTTPレスポンスステータスコード「500」に依存しなくなりました\n\n3. 以下の機能強化を行いました。\n\n* DASTの脆弱性検出で、すべてのレスポンスヘッダーが証拠として提示されるようになりました。この追加情報の提供により、調査結果のトリアージに費やす時間が短縮されます  \n* Sitemap.xmlファイルをクロールして追加のURLを取得できるようになりました。これにより、ターゲットWebサイトのカバレッジが向上します\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/dast/browser/checks/)   \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/13411)\n\n### **Self-Managedでシークレットプッシュ保護が利用可能に。また、漏えいの可能性に関する警告を改善**\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n17.2リリースのマイルストーンでは、以下の改善を行いました。\n\n* Self-Managedをご利用のお客様を対象に、シークレットプッシュ保護（ベータ）がご利用いただけるようになりました。管理者により[インスタンス全体で本機能が有効化](https://docs.gitlab.com/ee/user/application\\_security/secret\\_detection/secret\\_push\\_protection/\\#allow-the-use-of-secret-push-protection-in-your-gitlab-instance)されたら、ドキュメントを参照の上、プロジェクトで[プッシュ保護を有効](https://docs.gitlab.com/ee/user/application\\_security/secret\\_detection/secret\\_push\\_protection/\\#enable-secret-push-protection-in-a-project)にしてください  \n* [テキストコンテンツにおける漏えいの可能性に関する警告](https://docs.gitlab.com/ee/user/application\\_security/secret\\_detection/client/)の内容がより詳しくなりました。これにより、イシュー、エピック、MRのいずれかの説明やコメントにおいて、どのような種類の機密情報が漏えいしようとしているのかを理解しやすくなりました\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/secret\\_detection/)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/412229)  \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13107) \n\n### **GitLabアナライザーごとに`latest`テンプレートを実行できるよう「スキャン実行ポリシー」を拡張**\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n[スキャン実行ポリシー](https://docs.gitlab.com/ee/user/application\\_security/policies/scan-execution-policies.html)が拡張され、ポリシールールを定義する際に、`default` と `latest` のGitLabテンプレートのどちらかを選べるようになりました。`default` では現在の動作が反映されている一方、ポリシーを `latest` に更新することで、 指定されたセキュリティアナライザーの最新テンプレートでのみ利用可能な機能を使用できます。\n\n`latest` テンプレートの活用により、`latest` テンプレートで有効になっている他のルールと一緒に、マージリクエストパイプラインで確実にスキャンを実行できるようになりました。これまでは、ブランチパイプライン、または指定されたスケジュールに限定されていました。\n\n注：ポリシーを変更する前に、`default` と `latest` テンプレートの相違点をすべてチェックして、ニーズに合っているかどうかを確認してください！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/policies/scan-execution-policies.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/415427)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/latest-template-image.png\">\n\n### **OAuth認証画面の改善**\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nOAuth認証画面で、許可する認証がより明確に説明されるようになりました。また、GitLabが提供するアプリケーションに関しては「erified by GitLab」セクションも表示されます。これまでは、GitLabによって提供されたアプリケーションであってもそうでない場合でも、ユーザーエクスペリエンスは同じでしたが、この新機能により、信頼性がさらに向上します。\n\n[ドキュメント](https://docs.gitlab.com/ee/integration/oauth\\_provider.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/462655)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/govern_oauth_improvements.png\">\n\n### **インスタンス管理者の設定プロセスを効率化**\nSaaS: \\-  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabの新規インストール時の管理者による設定プロセスが効率化され、より安全になりました。デフォルトの管理者用rootメールアドレスがランダムに設定されるようになったため、管理者はアクセス可能なメールアドレスに変更する必要があります。以前は、この手順を行うのが遅くなり、管理者がメールアドレスの変更を忘れてしまう恐れがありました。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/458985)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/govern_admin_setup.png\">\n\n### ** `rules:changes:compare_to` でのCI/CD変数の使用をサポート**  \nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 15.3では、`rules:change`に[`compare_to`キーワード](https://docs.gitlab.com/ee/ci/yaml/\\#ruleschangescompare\\_to)を導入しました。これにより、比較対象として正確な参照先を定義できるようになりました。GitLab 17.2からは、このキーワードでCI/CD変数を使えるようになっため、より簡単に`compare_to`値を定義して、複数のジョブで再利用できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/ci/yaml/\\#ruleschangescompare\\_to)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/369916)\n\n### **グループAPIを使用して、グループの招待先のグループを一覧表示できるように**  \nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nグループAPIに、グループが招待された他のグループを一覧表示するエンドポイントが追加されました。この機能は、[グループが招待されたプロジェクトを一覧表示するエンドポイント](https://docs.gitlab.com/ee/api/groups.html\\#list-a-groups-shared-projects)を補完するもので、グループが追加されたすべてのグループとプロジェクトの概要を包括的に確認できるようになりました。このエンドポイントには、ユーザーあたり毎分60件のリクエストのレート制限が設定されています。\n\nこの場を借りて、コミュニティにコントリビュートしてくれた[@imskr](https://gitlab.com/imskr)さんに感謝します！  \n\n[ドキュメント](https://docs.gitlab.com/ee/api/groups.html\\#list-a-groups-shared-groups)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/424959)\n\n### **コマンドパレットを使用したプロジェクト設定の検索**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabでは、プロジェクト、グループ、インスタンス、そしてユーザー向けに多種多様な設定が用意されています。そのため、多くの場合、必要な設定を見つけるにはUIのさまざまなエリアをクリックする必要があり、時間がかかっていました。\n\n今回のリリースでは、コマンドパレットからプロジェクト設定を検索できるようになりました。プロジェクトを開き、「**検索または移動先...**」を選択し、「`>`」キーでコマンドモードに入り、設定セクション名（例：「**保護タグ**」）を入力してみてください。表示された結果をクリックすると、その設定に直接移動できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/search/command\\_palette.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/448637) \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_2/project_settings_search.png\">\n\n### **一度に1つのディスカッションのTo-Doアイテムが完了できるように**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabのイシューでのディスカッションが活発になることがあります。GitLabは、ご自身に関連するコメントに対してTo-Doアイテムを表示することでやり取りを管理しやすくします。またイシューに対してアクションを起こすと、自動的にそのアイテムを完了します。\n\nこれまでは、イシュー内のスレッドでアクションを起こすと、複数の異なるスレッドで自分がメンションされていた場合であっても、すべてのTo-Doアイテムが完了として処理されていました。今回のリリースから、自分がアクションを起こしたスレッドのTo-Doアイテムのみが完了されるようになりました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/todos.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/461111)  \n\n### **Wikiのサイドバーの改善**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.2では、Wikiでのサイドバーの表示方法にいくつかの機能拡張が追加されました。今回の機能拡張により、Wikiのサイドバーにすべてのページ（最大5,000ページ）と目次（TOC）が表示されるようになり、さらにページを迅速に探せるよう検索バーが追加されました。\n\nこれまではサイドバーに目次が表示されていなかったため、ページのセクションへの移動が大変でした。新しい目次機能を使用すると、ページ構造がわかりやすくなるとともに、さまざまなセクションに迅速に移動できるため、使いやすさが大幅に向上します。\n\n検索バーが追加されることで、より簡単にコンテンツを見つけられるようになります。また、サイドバーにすべてのページが表示されるようになったため、Wiki全体をスムーズに閲覧できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/wiki/)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/281570)  \n\n### **CLI用GitLab Duoの一般提供を開始**\nSaaS: Ultimate、Duo Enterprise  \nSelf-Managed: Ultimate、Duo Enterprise\n\n全ユーザーを対象に、CLI用のGitLab Duoの一般提供が開始されました。今後は、ニーズに合った `git` コマンドを見つける手助けをGitLab Duoに`依頼`できます。\n\n`glab duo ask \u003Cgit question>` を使うと、GitLab Duoが目的達成のためにフォーマットされた `git` コマンドを提供します。次にGitLab CLIが、渡されるフラグの情報など、コマンドやその実行内容に関する追加情報を提供します。その後、コマンドを実行して、ワークフローで直接出力結果を得られます。\n\nGitLab CLIの `ask` コマンドは、覚えづらい `git` コマンドを利用してワークフローを高速化する上で最適な方法です。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab\\_duo/index.html\\#gitlab-duo-for-the-cli)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10402)  \n\n\u003Ciframe width=\"868\" height=\"489\" src=\"https://www.youtube.com/embed/1DG_xN1tg1U\" title=\"GitLab Duo for the CLI is now GA\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **ワークスペース向けの新しいエージェント認証方法**\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nこのリリースでは、ワークスペース向けに新しい認証方法を導入しました。これにより、従来の認証方法における制限に対処し、グループのオーナーや管理者に対してより柔軟かつ詳細な管理の実現を可能にしました。新しい認証方法を使用すれば、グループのオーナーと管理者はワークスペースのホスティングに使用するクラスターエージェントを制御できます。\n\nスムーズに移行できるようにするために、ユーザーが従来の認証方法を利用している場合、自動的に新しい認証方法に変更されます。また、ワークスペースをサポートする既存のエージェントは、自動的にそのエージェントが存在するルートグループで許可されます。この移行は、エージェントがルートグループ内の異なるグループで許可されている場合でも行われます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/gitlab\\_agent\\_configuration.html)   \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14025)  \n\n### **GitLab Runner 17.2** \nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.2がリリースされます！GitLab Runnerは、CI/CDジョブを実行し、その結果をGitLabインスタンスに送信する、軽量で拡張性の高いエージェントです。GitLab Runnerは、GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。  \n\n**新機能：**\n\n* [AWS EC2インスタンス用GitLab Runnerフリートプラグイン（一般公開）](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29222)  \n* [Runnerの`livenessProbe`と`readinessProbe`設定の許可](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/545)  \n* [Kubernetes Executorの`umask 0000`コマンドの有効化と無効化機能](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28867)  \n* [GitLab Runnerオペレータ向けRed Hat OpenShift 4.16のサポート](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/203)\n\n**バグ修正：**\n\n* [Gitlab Runnerをアップグレードすると、すべてのキャッシュボリュームが削除される](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30876)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-2-stable/CHANGELOG.md)で確認できます。  \n\n[ドキュメント](https://docs.gitlab.com/runner)  \n\n### **Terraformモジュールレジストリのドキュメントモジュール**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nTerraformモジュールレジストリにReadmeファイルが表示されるようになりました！ご要望の多かったこの機能を使用すると、各モジュールの目的、構成、要件を透過的に文書化できます。  \nこれまでは、これらの重要な情報を他のソースから探す必要があったため、モジュールを適切に評価し使用することが困難でした。このリリースから、モジュールのドキュメントをすぐに確認できるようになり、モジュールの機能をすばやく理解できるようになりました。Readmeファイルを閲覧できるようになったことで、組織全体でTerraformコードを安心して共有し、再利用できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/terraform\\_module\\_registry/index.html\\#view-terraform-modules)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/451054)  \n\n\u003Ciframe width=\"868\" height=\"489\" src=\"https://www.youtube.com/embed/SWRwW4pS7Gk\" title=\"Package speed-run: View Terraform module documentation\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **APIファジングテストで署名付き認証リクエストをサポート**\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nAPIファジングには、スキャナーから送信されたリクエストを変更できる「上書き」機能がすでにサポートされていますが、事前に上書きを設定する必要があり、リクエスト自体に応じて変更することはできません。GitLab 17.2では、「リクエストに基づくスクリプト」として `FUZZAPI_PER_REQUEST_SCRIPT` が追加され、各リクエストを送信する前に呼び出されるC\\#スクリプトをユーザーが提供できるようになりました。これにより、認証の一環としてシークレットを使用したリクエストへの「署名」をサポートします。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/api\\_fuzzing/configuration/variables.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/458825)  \n\n### **コンテナスキャン：継続的な脆弱性スキャンの対象OSの拡張**\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n17.2では、コンテナスキャンMVCの継続的な脆弱性スキャンを強化するために、APKとRPMオペレーティングシステムのパッケージバージョンのサポートを追加しました。\n\nこの機能強化により、[APK](https://gitlab.com/gitlab-org/gitlab/-/issues/428703)と[RPM](https://gitlab.com/gitlab-org/gitlab/-/issues/428941)オペレーティングシステムのPURLタイプのパッケージバージョンを比較することで、コンテナスキャンの継続的な脆弱性警告を完全にサポートできるようになりました。  \n\nなお、キャレット（`^`）が含まれるRPMバージョンはサポートされていません。キャレットを含むバージョンのサポートに関する作業は、[こちらのイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/459969)で追跡されています。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/continuous\\_vulnerability\\_scanning/\\#supported-package-types)\u003Cbr>\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/10174)  \n\n### **Go、Java、Pythonで高度なSAST（ベータ）が利用可能に** \nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n高度なSASTが[ベータ機能として](https://docs.gitlab.com/ee/policy/experiment-beta-support.html\\#beta)、Ultimateをお使いのお客様にご利用いただけるようになりました。高度なSASTは、ファイルや機能をまたがる分析により、より品の高い結果を提供します。現在、Go、Java、Pythonをサポートしています。 \n\nベータフェーズでは、既存のSASTアナライザーを置き換えずに、テストプロジェクトで高度なSASTを実行することをお勧めします。高度なSASTを有効にするには、こちらの[手順](https://docs.gitlab.com/ee/user/application\\_security/sast/gitlab\\_advanced\\_sast/\\#enabling-the-analyzer)を参照してください。GitLab 17.2から、高度なSASTは[`SAST.latest` CI/CDテンプレート](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.latest.gitlab-ci.yml)に含まれています。\n\nこれは、[Oxeyeテクノロジーの統合](https://about.gitlab.com/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities/)プロセスの一環です。今後のリリースでは、高度なSASTを一般公開し、[他の言語](https://gitlab.com/groups/gitlab-org/-/epics/14312)をサポートし、脆弱性の流れを追跡できる新たなUI要素を導入する予定です。ぜひテストして、フィードバックを[イシュー466322](https://gitlab.com/gitlab-org/gitlab/-/issues/466322)にお寄せください。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/application\\_security/sast/gitlab\\_advanced\\_sast/)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466322)  \n\n### **サブグループのコンプライアンスセンターでのフレームワークの割り当て** \nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nコンプライアンスセンターは、コンプライアンスチームがコンプライアンス基準の遵守状況や違反についての報告、グループのコンプライアンスフレームワークの管理などを一括して行える場所です。\n\nこれまではコンプライアンスセンターの関連機能はすべて、トップレベルグループでのみ利用できました。そのため、サブグループのオーナーは、トップレベルグループのコンプライアンスセンターで提供される機能を利用できませんでした。  \n\nこういった重要な課題を解決するために、サブグループへのコンプライアンスフレームワークの割り当てと割り当ての解除機能を追加しました。これにより、グループオーナーは、すでに利用可能なトップグループレベルのコンプライアンスセンターダッシュボードに加え、サブグループレベルでもコンプライアンス状況を可視化できるようになりました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance\\_center/compliance\\_projects\\_report.html)   \n[エピック](https://gitlab.com/gitlab-org/gitlab/-/issues/469004)  \n\n### **複数のアクセストークンの有効期限の特定**\nSaaS: \\-  \nSelf-Managed: Free、Premium、Ultimate\n\n管理者は、複数のアクセストークンの有効期限を特定するスクリプトを実行できるようになりました。このスクリプトを[トークンのトラブルシューティングページ](https://docs.gitlab.com/ee/security/token\\_overview.html\\#troubleshooting)に記載されている他のスクリプトと組み合わせて使用することができます。トークンのローテーション準備がまだ整っていない場合、有効期限が間近に迫っているトークンを特定して、期限を延長できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/security/token\\_overview.html\\#identify-dates-when-many-tokens-expire)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467313)  \n\n### **Google Cloudインテグレーションの設定プロセスの簡素化**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: \\-\n\nGoogle Cloud IAMインテグレーションのワークロードアイデンティティフェデレーションを設定する際に、Google Cloud CLIコマンドをネイティブで利用できるようになりました。これまではガイド付き設定で、cURLコマンドでダウンロードしたスクリプトを使用していました。また、設定プロセスをよりわかりやすく説明するヘルプテキストが追加されました。これらの改善により、グループオーナーはGoogle Cloud IAMインテグレーションの設定をより迅速に行えるようになりました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/tutorials/set\\_up\\_gitlab\\_google\\_integration/\\#secure-your-usage-with-google-cloud-identity-and-access-management-iam)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/454343)  \n\n### **SnowflakeデータコネクターへのユーザーAPIの追加**\nSaaS: \\-  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.2では、[GitLabデータコネクター](https://app.snowflake.com/marketplace/listing/GZTYZXESENG/gitlab-gitlab-data-connector)で[ユーザーAPI](https://docs.gitlab.com/ee/api/users.html\\#list-users)が新たにサポートされました。このAPIは、Snowflake Marketplaceアプリで利用できます。ユーザーAPIを使用して、Self-ManagedのGitLab インスタンスからSnowflakeにユーザーデータをストリーミングできるようになりました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/integration/snowflake.html)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13004)  \n\n### **グループの概要のソートとフィルタリングの改善**\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nグループの概要ページのソートとフィルタリング機能を更新しました。検索要素がページ全体に広がり、検索文字列が見やすくなりました。また、`名前`、`作成日`、`更新日`、`お気に入り`といった標準化されたソートオプションを使用できるようになりました。  \n\nこの変更についてのフィードバックは[イシュー438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322)で投稿できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/\\#view-a-group)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/437013)  \n\n## **バグ修正、パフォーマンスの改善、UIの改善**\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けすることに専心しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験を届けることを約束します。  \n\n以下のリンクをクリックして、17.2のバグ修正、パフォーマンス向上、UI改善についてすべてご覧ください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated\\_desc\\&state=closed\\&label\\_name%5B%5D=type%3A%3Abug\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Acomplete\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Averification\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Aproduction\\&milestone\\_title=17.2)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated\\_desc\\&state=closed\\&label\\_name%5B%5D=bug%3A%3Aperformance\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Acomplete\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Averification\\&or%5Blabel\\_name%5D%5B%5D=workflow%3A%3Aproduction\\&milestone\\_title=17.2)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.2)\n\n## **非推奨事項**\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更RSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n## **削除された機能と破壊的な変更**\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更RSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n### **GitLab 17.2 へのアップグレードに関する重要な注意事項**\n\nGitLab 17.2から、Geoインストールは `gitlab-ctl set-geo-primary-node` コマンドを使ってプライマリサイトを定義した時にプライマリサイトのチェックサムプロセスを開始します。これまでは、セカンダリサイトが設定された後にチェックサム処理が開始されていました。つまり、`gitlab-ctl set-geo-primary-node` コマンドの実行後にプライマリサイトがデータのチェックサムを生成し始めるので、Geoのセットアップの少し早い段階でプライマリサイトのリソース使用量が増えることになります。\n\n### **変更履歴**\n\n変更内容をすべて表示するには、以下のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)   \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)   \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)   \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/install/)をご覧ください。\n\n### 更新\n[更新ページ](https://about.gitlab.com/update/)を確認してください。\n\n### ご不明な点がある場合\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスし質問を投稿してください。\u003Cbr>\u003Cbr>\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2024-08-30",{"slug":1144,"featured":91,"template":685},"gitlab-17-2-released","content:ja-jp:blog:gitlab-17-2-released.yml","Gitlab 17 2 Released","ja-jp/blog/gitlab-17-2-released.yml","ja-jp/blog/gitlab-17-2-released",{"_path":1150,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1151,"content":1157,"config":1163,"_id":1165,"_type":14,"title":1166,"_source":16,"_file":1167,"_stem":1168,"_extension":19},"/ja-jp/blog/gitlab-17-3-released",{"title":1152,"description":1153,"ogTitle":1152,"ogDescription":1153,"noIndex":6,"ogImage":1154,"ogUrl":1155,"ogSiteName":669,"ogType":670,"canonicalUrls":1155,"schema":1156},"GitLab 17.3リリース","GitLab 17.3でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662141/Blog/Hero%20Images/17-3-cover.png","https://about.gitlab.com/blog/gitlab-17-3-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.3リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-08-15\",\n      }",{"title":1152,"description":1153,"authors":1158,"heroImage":1154,"date":1159,"body":1160,"category":705,"tags":1161,"updatedDate":1162},[853],"2024-08-15","**GitLab Duo の根本原因分析機能を含むGitLab 17.3をリリース**\n\nこのたび、GitLab 17.3がリリースされたことを嬉しく思います。このリリースでは、GitLab Duoによる失敗したパイプラインジョブの根本原因分析、AIアシストによる脆弱性の修正、AIインパクト分析でのコード提案の採用率とGitLab Duoシートの使用率の表示、単一プロジェクトへの複数のコンプライアンスフレームワークの追加などの機能をご利用いただけるようになりました。\n\n本日、GitLab Duoによる失敗したパイプラインジョブの根本原因分析、AIアシストによる脆弱性の修正、コード提案の採用率とGitLab Duoアクティブユーザーの使用率に関するAIインパクト分析、単一プロジェクトへの複数のコンプライアンスフレームワークの追加などの機能を備えたGitLab 17.3のリリースを発表します！\n\nこれらの機能は、今回のリリースに含まれる160件以上の改善点のほんの一部です。役に立つ最新情報をすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.3には、GitLabコミュニティのユーザーから130件以上ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、17.4リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/) をご覧ください。\n\n## **今月のMost Valuable Person（[MVP](https://about.gitlab.com/community/mvp/)）は[Anton Kalmykov](https://gitlab.com/antonkalmykov)さんが受賞**\n\nMVPには、誰でも[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。積極的に活動している候補者を応援したり、他の誰かをノミネートしてみませんか。🙌\n\nAnton Kalmykovさんは、今年特に活躍しているGitLabのコントリビューターの1人で、2月以降、37もの[コントリビューションがマージ](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&state=merged&author_username=antonkalmykov)されており、現在進行中のその他のイシューにもコントリビュートしてくれています。Antonさんは[Yolo Group（Bombay Games）](https://yolo.com/)のシニアフロントエンドエンジニアです。\n\nAntonさんは次のようにコメントしています。「GitLabへのコントリビューションは、もっとも挑戦しがいがあり、やりがいがあって楽しい取り組みです。このような素晴らしい製品の開発と改善に携わる機会を持てたことに感謝しています。この機会を通じて新たに多くのことを学びましたが、やるべきことがまだたくさんあります。GitLabチーム、中でも私のMRをレビューし、正しい方向に導いてくれた方々にとても感謝しています」\nAntonさんは、[テナントスケール](https://about.gitlab.com/direction/runtime/)グループに関するフロントエンドのイシューの解決を支援したことが評価され、GitLabのシニアプロダクトマネージャーである[Christina Lohr](https://gitlab.com/lohrc)により推薦されました。\n\n「基本的なワークフローに取り組む中で、ユーザーエクスペリエンスに関する小規模な改善を多数行う必要があります。コミュニティユーザーの力を借りて、このような取り組みをより迅速に完了できるのはありがたいことです」とChristinaは述べています。「このようなあらゆる改善を通じて、グループやプロジェクト間でより一貫したユーザーエクスペリエンスを実現できています。Antonさん、ありがとうございます」\n\nこの場を借りて、GitLabを共同開発してくださっているAntonさん、そしてGitLabのオープンソースコントリビューターの方々に心から感謝します！\n\n## **GitLab 17.3でリリースされた主な改善点**\n\n### **根本原因分析による失敗したジョブのトラブルシューティング**\n\nSaaS: Ultimate、Duo Enterprise\nSelf-Managed: Ultimate、Duo Enterprise\n\n根本原因分析の一般提供を開始しました。根本原因分析を使用すると、CI/CDパイプラインで失敗したジョブの問題を迅速に解決できます。AI搭載のこの機能は、失敗したジョブのログを分析し、ジョブの失敗に繋がった根本原因をすばやく特定し、修正方法を提案します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo/#root-cause-analysis)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13080)\n\n\u003Ciframe width=\"1046\" height=\"588\" src=\"https://www.youtube.com/embed/Yf7Iidf2GW8\" title=\"Troubleshoot pipeline job failures with AI\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **GitLab Duoのヘルスチェック（ベータ）**\n\nSaaS: \\-\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSelf-ManagedインスタンスでGitLab Duoのセットアップのトラブルシューティングができるようになりました。GitLab Duoページの**管理者**エリアで、「**ヘルスチェックを実行**」を選択します。このヘルスチェックでは、一連の検証を実行し、GitLab Duoを確実に利用可能な状態にするために適切な是正措置を提案します。\nGitLab Duoのヘルスチェックは、Self-ManagedおよびGitLab Dedicatedでベータ機能として利用可能です。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo/turn_on_off.html#run-a-health-check-for-gitlab-duo)\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14518)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/Failed_GitLab_Duo_health_check.png\">\n\n### **GitLab UIからポッドを削除**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nKubernetesで失敗したポッドを再起動または削除せざるを得なかったことはありますか。その場合、これまではGitLabを離れて別のツールを使用してクラスターに接続し、ポッドを停止し、新しいポッドが起動されるのを待つ必要がありました。今回、ポッドの削除機能がGitLabに組み込まれたため、Kubernetesクラスターに関する問題をスムーズに解決できるようになりました。\n\nクラスターまたはネームスペース全体のすべてのポッドが一覧表示される[Kubernetes用ダッシュボード](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)から、ポッドを停止できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#delete-a-pod)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467653)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/delete-pod.png\">\n\n### **ローカルターミナルからクラスターに簡単に接続**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nローカルターミナル、またはデスクトップ用のKubernetes GUIツールのいずれかを使用して、Kubernetesクラスターに接続したい場合、[Kubernetes用のエージェントのユーザーアクセス機能](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html)を使用してターミナルに接続することが可能になりました。これまでコマンドを見つけるには、GitLabを離れてドキュメントを閲覧する必要がありましたが、今回のリリースでGitLab UIから接続コマンドを利用できるようになりました。さらにユーザーアクセスの設定にも対応します！\n\n接続コマンドを取得するには、[Kubernetesダッシュボード](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)または[エージェントリスト](https://docs.gitlab.com/ee/user/clusters/agent/work_with_agent.html#view-your-agents)にアクセスしてください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/463769)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/17-3-connect-agent.png\">\n\n### **AIによる脆弱性の修正**\n\nSaaS: Ultimate、Duo Enterprise\nSelf-Managed: Ultimate、Duo Enterprise\n\n脆弱性の修正にAIが活用され、ユーザーが脆弱性を修正できるよう、具体的なコード修正案が提示されるようになりました。ボタンをクリックすると、[SASTがサポートしているCWE識別子リスト](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#availability)から脆弱性の解決作業を開始できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10783)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/vulnerability_resolution.png\">\n\n### **単一のプロジェクトへの複数のコンプライアンスフレームワークの追加**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nコンプライアンスフレームワークを作成して、プロジェクトに特定のコンプライアンス要件があるか、もしくは追加の監督が必要であるかを特定できます。コンプライアンスフレームワークをプロジェクトに適用すると、任意でコンプライアンスパイプライン設定を実施できます。\n\nこれまでユーザーは、プロジェクトごとに1つのコンプライアンスフレームワークしか適用できなかったため、プロジェクトに設定できるコンプライアンス要件の数が限られていました。今回、プロジェクトごとに複数のコンプライアンスフレームワークを適用できるようになりました。これにより、特定の時点において複数の異なるコンプライアンスフレームワークを単一のプロジェクトに適用できます。適用後、プロジェクトには各フレームワークのコンプライアンス要件が設定されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html#add-a-compliance-framework-to-a-project)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13294)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/multiple-compliance-frameworks.png\">\n\n### **AIインパクト分析：コード提案の採用率とGitLab Duoのシートの使用率**\n\nSaaS: Ultimate、Duo Enterprise\nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab Duoの有効性と使用率を示す2つの新しいメトリックが、[バリューストリームダッシュボードのAIインパクト分析](https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)に追加され、GitLab Duoがビジネス価値の提供にもたらす影響を把握できるようになりました。\n\n**コード提案の採用率**メトリックは、デベロッパーがGitLab Duoによるコード提案を採用する頻度を示します。このメトリックは、コード提案の有効性と、コントリビューターのAI機能に対する信頼度の両方を反映します。具体的には、このメトリックは過去30日間にコードコントリビューターが採用したGitLab Duoによるコード提案の割合を示します。\n\n**アサイン済みおよび使用済みのGitLab Duoシート**メトリックは、使用されているライセンスシートの割合を示します。組織はこのメトリックを参考にして、ライセンスの使用状況やリソースの割り当て、使用パターンを把握する計画を効果的に立てられます。このメトリックは、過去30日間に1つ以上のAI機能を使用したアサイン済みのシートの割合を追跡します。\n\nこれらの新しいメトリックの追加に伴い、新しい概要タイルも導入されました。メトリックのサマリーがわかりやすく視覚的に表示されるため、AI機能の現状を迅速に評価できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#ai-impact-analytics)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/471168)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/173_ai_tiles.png\">\n\n## **GitLab 17.3のその他の改善**\n\n### **コマンドパレットを使用したグループ設定の検索**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n17.2では、[コマンドパレットを使用してプロジェクトを検索する](https://about.gitlab.com/releases/2024/07/18/gitlab-17-2-released/#find-project-settings-by-using-the-command-palette)機能を追加しました。この変更により、必要な設定をすばやく見つけやすくなりました。\n\n17.3では、コマンドパレットからグループ設定も検索できるようになりました。グループを開き、「**検索または移動先…**」を選択し、コマンドモードで「`>`」を入力してから設定セクションの名前（**マージリクエストの承認**）を入力してみてください。表示された結果をクリックすると、その設定に移動できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/search/command_palette.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/448646)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/manage-search-for-group-settings.png\">\n\n### **APIを使用した継承設定の切り替え**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nこれまではUIからのみ、プロジェクトにインテグレーション設定を継承するか、独自の設定を使用するかを制御できました。\n\n本リリースでは、すべてのインテグレーションのREST APIパラメータに`use_inherited_settings`が追加されるようになります。このパラメータを使用すると、APIを用いてプロジェクトにインテグレーション設定を継承するかどうかを設定できます。パラメータを設定していない場合、デフォルトの動作は`false` であり、プロジェクト独自の設定を使用します。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/integrations.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467089)\n\n### **タスクへのマージリクエストの追加**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nタスクは、イシューをエンジニアリング実装ステップに分割する際によく使用されます。このリリース以前は、実装されているマージリクエストにタスクを結びつける方法はありませんでしたが、今回のリリースで、マージリクエストの説明からイシューを参照するときと同様に[クロージングパターン](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)を使用することが可能になりました。タスクビューでは、関連するマージリクエストがサイドバーに表示されます。プロジェクトの[自動完了設定が有効](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#disable-automatic-issue-closing)になっている場合、関連するマージリクエストがデフォルトのブランチにマージされると、タスクが自動的にクローズされます。\n[ドキュメント](https://docs.gitlab.com/ee/user/tasks.html#add-a-merge-request-and-automatically-close-tasks)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/440851)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/task-merge-requests.png\">\n\n### **タスクやOKR（Objective and Key Results）アイテムの不正利用の報告**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n従来のイシューと同様、「**アクション**」メニューから直接、作業アイテムの不正利用を簡単に報告できるようになりました。この新機能を使用すると、不適切なコンテンツにすばやくフラグを立てられるため、ワークスペースがクリーンかつ安全に保たれて、チームのコラボレーション環境が向上します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/report_abuse.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/461848)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/report_abuse_for_task_objective_and_key_result_items.png\">\n\n### **OKRとタスクの親アイテムの設定**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n[OKR](https://docs.gitlab.com/ee/user/okrs.html#set-an-objective-as-a-parent)と[タスク](https://docs.gitlab.com/ee/user/tasks.html#set-an-issue-as-a-parent)の親の割り当てを子レコードから直接、簡単に更新できるようになりました。もういろいろな画面を行ったり来たりする必要はありません。これは、当社の目標である[ワークフローの効率性の向上](https://gitlab.com/groups/gitlab-org/-/epics/10501)に向けた大きな一歩です。\n参考：[OKRとは](https://about.gitlab.com/ja-jp/blog/what-is-an-okr/)？\n\n[ドキュメント](https://docs.gitlab.com/ee/user/okrs.html#set-an-objective-as-a-parent)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11198)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/parent_widget_for_work_items.png\">\n\n### **JetBrains IDEでのTLSサポートの向上**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n機密性の高い環境でセキュリティを強化するために、JetBrains IDEの設定で、クライアント証明書や公開認証局（CA）などのカスタムHTTPエージェントオプションを直接設定できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/#add-a-custom-certificate-for-code-suggestions)\n[イシュー](https://gitlab.com/gitlab-org/editor-extensions/gitlab-jetbrains-plugin/-/issues/371)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/certificate-settings.png\">\n\n### **CI/CDカタログコンポーネントの入力の詳細に説明とタイプを追加**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nカタログのCI/CDコンポーネントの詳細ページには、コンポーネントに関する有用な情報が表示されます。本リリースでは、利用可能な入力に関する情報を示す表に2つの列を追加しました。新たに追加された「**説明**」および「**タイプ**」列を使用すると、入力が何に使用され、どのようなタイプの値が想定されるかが非常にわかりやすくなります。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/components/#cicd-catalog)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/426870)\n\n### **GitLab Runner 17.3**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.3がリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、軽量で拡張性の高いエージェントです。GitLab Runnerは、GitLabに組み込まれているオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n**バグの修正：**\n\n* [Kubernetes Runnerでキャンセルすると、ジョブがハングアップする模様](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37780)\n* [指定されていない場合、ログレベルが更新されない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37490)\n* [Runner Kubernetes executorを使用すると、ジョブログにより余計な改行が追加される](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27099)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-3-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### **マージトレインの可視化**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nマージトレインを可視化して、パイプラインのマージリクエストのステータスと順序を、より的確に理解できるようになりました。マージトレインの可視化により、コンフリクトを早めに特定し、マージトレイン内で直接マージリクエストに対してアクションを実行し、デフォルトブランチを破損するリスクを最小限に抑えられます。(補足：マージトレインの可視化は、複数のマージリクエストを並列で管理し、マージ前の競合を事前に解決する機能です)\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/pipelines/merge_trains.html)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13705)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/merge-train-visualization.png\">\n\n### **Kubernetes 1.30のサポート**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースでは、2024年4月にリリースされたKubernetesバージョン1.30のフルサポートが追加されました。Kubernetesにアプリをデプロイすると、接続しているクラスターを最新バージョンにアップグレードし、そのすべての機能を利用できるようになります。\n[Kubernetesのサポートポリシーやサポートされているその他のKubernetesバージョン](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)について、詳細をご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/456929)\n\n### **SAST、IaCスキャン、シークレット検出で使用されるルールセットの実施**\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nリポジトリにコミットされたローカル設定ファイルを作成するか、CI/CD変数を設定して複数のプロジェクトに共有設定を適用することで、[SAST](https://docs.gitlab.com/ee/user/application_security/sast/customize_rulesets.html)、[IaCスキャン](https://docs.gitlab.com/ee/user/application_security/iac_scanning/#customize-rules)、[シークレット検出](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#customizing-analyzer-settings)で使用されるルールをカスタマイズできます。\nこれまでは共有ルールセットの参照が設定されている場合でも、スキャナーはローカル設定ファイルを優先していました。この優先順位により、スキャンの際に既知の信頼できるルールセットを確実に使用することは困難でした。\n\n今回、新しいCI/CD変数`SECURE_ENABLE_LOCAL_CONFIGURATION`が追加され、ローカル設定ファイルを許可するかどうかを制御できるようになりました。この変数は、ローカル設定ファイルの使用を許可するかどうかを制御します。デフォルトではローカル設定が優先されますが、これを無効にすると、共有設定が優先されます。[スキャンの実行](https://docs.gitlab.com/ee/user/application_security/#enforce-scan-execution)時にこの値を`false`に設定すると、プロジェクトメンバーのデベロッパーによりローカル設定ファイルが追加された場合でも、スキャンの際に共有ルールセットまたはデフォルトルールセットが確実に使用されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/customize_rulesets.html#specify-a-remote-configuration-file)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/414732)\n\n### **マージリクエストの外部ステータスチェックに認証を追加**\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\n外部ステータスチェックの設定時、HMAC（ハッシュベースのメッセージ認証コード）認証を指定できるようになりました。これにより、GitLabから外部サービスへのリクエストの信頼性をより安全な方法で検証できます。\n\nステータスチェックを有効にすると、共有シークレットを使用してリクエストごとに一意の署名が生成されます。生成された署名は、ハッシュアルゴリズムとしてSHA256を用いて、`X-Gitlab-Signature`ヘッダーで送信されます。\n\n* セキュリティの向上：HMAC認証はリクエストの改ざんを防ぎ、正当な送信元からのリクエストであることを保証します。\n* コンプライアンス：この機能は、セキュリティを最も重視する銀行など、規制の厳しい業界において特に有用です。\n* 後方互換性：この機能の利用は任意です。また後方互換性があります。ユーザーは、新規または既存のチェックでHMAC認証を有効にするかどうかを選べますが、既存の外部ステータスチェックは変更なく引き続き機能します。\n\n[今後のイテレーション](https://gitlab.com/gitlab-org/gitlab/-/issues/476163)で、GitLabはHTTPリクエストも検証してブロックするオプションを追加する予定です。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge_requests/status_checks.html)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/433035)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/status-check-hmac.png\">\n\n### **管理者用UIを使用したパーソナルアクセストークンの無効化**\n\nSaaS: \\-\nSelf-Managed: Free、Premium、Ultimate\n\n管理者は、管理者用UIからインスタンスのパーソナルアクセストークンを無効化または再有効化できるようになりました。以前これを行うには、管理者はアプリケーション設定APIかGitLab Railsコンソールを使用する必要がありました。\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#use-the-admin-ui)[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/436991)\n\n### **カスタムロールに対するLDAPグループリンクのサポート**\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nLDAPグループリンクを使用してグループのユーザー権限を管理している組織は、すでにデフォルトのロールをメンバーシップに使用できます。\n今回のリリースで、そのサポートをカスタムロールに拡張しました。この設定により、多数のユーザーグループへのアクセスをマッピングしやすくなりました。\n\n### **サインアウト時にサブドメインのCookieを保持**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabのサインアウトプロセスを改善し、サインアウト時に兄弟サブドメインからのCookieが削除されないようにしました。これまでは、これらのCookieは削除されていたため、ユーザーはGitLabと同じトップレベルドメイン上にある他のサブドメインサービスからもサインアウトされてしまっていました。たとえば、ユーザーが`kibana.example.com`上にKibanaを設定し、`gitlab.example.com`上にGitLabを設定している場合、今後はGitLabからサインアウトしても、Kibanaからサインアウトされることはありません。\n\nこの場を借りて、コントリビュートしてくれた[Guilherme C. Souza](https://gitlab.com/GCSBOSS)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/active_sessions.html)\n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/471097)\n\n### **オムニバスの改善**\n\nSaaS: \\-\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.3には、[Raspberry Pi OS 12](https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/)をサポートするパッケージが含まれています。\nDebian 10の[サポートは、2024年6月30日をもって終了](https://www.debian.org/releases/buster/)しました。GitLabでは、GitLab 17.6でDebian 10のサポートを終了します。\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\n\n### **「マイワーク」でのプロジェクトやグループのソートとフィルタリングの改善**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n「**マイワーク**」でのプロジェクトやグループの概要のソートとフィルタリング機能を更新しました。これまでは、プロジェクトの「**マイワーク**」ページで名前や言語でフィルタリングしたり、事前定義されたソートオプションを使用したりすることができました。今回、**名前**、**作成日**、**更新日**、**スター**といった標準化されたソートオプションを使用できるようになりました。また、昇順または降順でソートするナビゲーション要素を追加し、言語フィルターを「フィルター」メニューに移動しました。新たに追加された「**非アクティブ**」タブで、アーカイブされたプロジェクトを確認できるようになりました。さらに、**ロール**フィルターが追加され、自分がオーナーとなっているプロジェクトを検索することもできます。\n\nグループの「マイワーク」ページでは、**名前**、**作成日**、**更新日**などの標準化されたソートオプションを使用できるようになりました。また、ナビゲーション要素を使用すると昇順または降順でソートすることができます。\nこの変更についてのフィードバックは[イシュー438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322)で投稿できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/working_with_projects.html#search-in-projects)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/25368)\n\n### **APIを使用して、グループやプロジェクトのWebhookイベントを一覧表示できるように**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nGitLab 9.3以降のバージョンでは、プロジェクトのWebhookリクエスト履歴をUIで表示できます。また、GitLab 15.3以降のバージョンでは、[グループのWebhookリクエスト履歴もUIで表示](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#view-webhook-request-history)されます。\n\n本リリースでは、そのデータにREST APIでアクセスできるようになりました。これにより、Webhookエラーを検出して対処するプロセスを自動化できます。特定の[プロジェクトフック](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events)と[グループフック](https://docs.gitlab.com/ee/api/groups.html#get-group-hook-events)に関する過去7日間のイベントリストを取得できます。\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151048)してくれた[Phawin](https://gitlab.com/lifez)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/437188)\n\n### **スパークラインによって傾向の可視化が強化されたAIインパクト分析**\n\nSaaS: Ultimate、Duo Enterprise\nSelf-Managed: Ultimate、Duo Enterprise\n\n本リリースでは、スパークラインの導入により、[AIインパクト分析](https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)が大幅に改善されました。データ表に埋め込まれたこのシンプルなミニグラフは、AIインパクトのデータの読みやすさとアクセシビリティを向上します。新たに導入されたスパークラインでは数値を視覚的な表現に変換することで、長期にわたる傾向を特定しやすくなり、上向きまたは下向きの動きを見つけられます。この新しい視覚的なアプローチにより、複数のメトリックにまたがる傾向を比較するプロセスが効率化され、数字だけに頼っていた場合に必要だった時間と労力を削減できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#ai-impact-analytics)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/464692)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/17.3_aii_spark.png\">\n\n### **サイクルタイム短縮のためのバリューストリーム分析の新しいステージイベント**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nGitLabにおけるマージリクエスト（MR）の追跡を改善するために、[バリューストリーム分析に新しいステージイベント](https://about.gitlab.com/solutions/value-stream-management/)「**MRのレビュアーが最初にアサイン**」を追加しました。新たにこのイベントが追加されたことで、チームはレビュープロセスのどの場所で遅延が生じているかを特定し、コラボレーションを改善できる機会を見つけ、チームメンバーに対して対応力と責任を高める文化を促進できます。レビュー時間が短縮されると、開発の全体的なサイクルタイムに直接影響し、[迅速なソフトウェアデリバリーにつながり](https://about.gitlab.com/blog/three-steps-to-optimize-software-value-streams/)ます。 例を挙げると、「**MRのレビュアーが最初にアサイン**」からはじまって「**MRをマージ済み**」で終わる新しいカスタムステージ「**マージまでのレビュー時間（RTTM）**」を追加できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466383)\n\n\u003Ciframe width=\"443\" height=\"249\" src=\"https://www.youtube.com/embed/kblpge6xeL8\" title=\"Optimizing Merge Request review process with Value Stream Analytics\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **タスク、目標、主な成果内でのスレッドの解決**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nタスク、目標、主な成果においてスレッドを解決できるようになり、重要なやり取りの管理および追跡をしやすくなりました。デフォルトでは解決済みのスレッドは折りたたまれているため、進行中のディスカッションに集中しやすくなり、コラボレーションのワークフローが効率化されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/discussions/#resolve-a-thread)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/458818)\n\n### **VS Codeで言語ごとにコード提案をきめ細かく制御できるように**\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\n特定のプログラミング言語のコード提案を有効または無効にすることで、VS Codeでのコーディング体験をより細かく制御できます。このようにきめ細かく制御することで、ワークフローをカスタマイズし、ご希望の言語でのコード提案のメリットはそのままに、無関係または邪魔な提案の表示件数を減らせます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#manage-languages-for-code-suggestions)\n[イシュー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1388)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/create-granular-language-controls.png\">\n\n### **リポジトリからコンテンツをより簡単に削除できるように**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\n現在、リポジトリからコンテンツを削除するプロセスは複雑です。GitLabにプロジェクトを強制的にプッシュしなければならない可能性があります。そのため、エラーが発生しやすくなり、プッシュを有効にするために保護を一時的に無効にしなければならないこともあります。リポジトリ内にある容量を使いすぎているファイルを削除する場合は、さらに難しい可能性があります。\n\nプロジェクト設定に新しく追加されたリポジトリメンテナンスオプションを使用して、オブジェクトIDリストに基づいてblobを削除できるようになりました。この新しい方法を使用すれば、GitLabにプロジェクトを強制プッシュしなくても、コンテンツを選択して削除できます。\n\nまた、プロジェクトから削除する必要があるシークレットやその他のコンテンツがプッシュされた場合に、テキストを削除する新たなオプションも導入します。ユーザーは、GItLabによりプロジェクト全体のファイルで「`***削除済み***`」に置き換えられる文字列を指定します。テキストの編集後、ハウスキーピングが実行され、古いバージョンの文字列が削除されます。\n\nこの新しいUIにより、コンテンツを削除する必要がある際のリポジトリの管理方法が効率化されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html#remove-blobs)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/450701)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/create-ui-for-repository-maintenance.png\">\n\n### **ジョブ名でジョブをフィルタリング**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nジョブ名を検索することで、特定のジョブをすばやく見つけられるようになりました。\nこれまでは、ステータスによってのみジョブリストをフィルタリングでき、特定のジョブを見つけるには手動でスクロールする必要がありました。本リリースでは、ジョブ名を入力して結果をフィルタリングできるようになりました。結果に含まれるのは、GitLab 17.3のリリース後に実行されたパイプラインのジョブのみです。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/jobs/)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/387547)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/filter-jobs-by-job-name.png\">\n\n### **macOSでホストされるRunnerのパフォーマンスが向上**\n\nSaaS: Premium、Ultimate\nSelf-Managed: \\-\n\n最近のmacOS 14.5とXcode 15.4へのアップグレードに伴い、パフォーマンスを改善しました。この変更により、Xcodeのビルドジョブは以前のジョブ実行と比べて大幅に高速化されました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html)\n[イシュー](https://gitlab.com/gitlab-org/ci-cd/shared-runners/images/job-images/-/issues/6)\n\n### **Kubernetes用エージェントの作成および削除時の監査イベント**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nKubernetes用エージェントは、KubernetesクラスターとGitLabの間で双方向のデータフローを実現するため、システムにアクセスできるコンポーネントが追加または削除されるタイミングを把握するのは重要なことです。これまでのリリースでは、コンプライアンスチームはカスタムツールを使用するか、GitLabで直接これらのデータを検索する必要がありました。本リリースから、GitLabでは次の監査イベントを提供するようになりました。\n\n* `cluster_agent_created`：新しいKubernetes用エージェントを登録したユーザーに関する記録\n* `cluster_agent_create_failed`：新しいKubernetes用エージェントを登録しようとしたものの、失敗したユーザーに関する記録\n* `cluster_agent_deleted`：Kubernetes用エージェントの登録を削除したユーザーに関する記録\n* `cluster_agent_delete_failed`：Kubernetes用エージェントの登録を削除しようとしたものの、失敗したユーザーに関する記録\n\nこれらの監査イベントによって`cluster_agent_token_created`および`cluster_agent_token_revoked`監査イベントが拡張され、GitLabインスタンスの監査機能がさらに強化されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#deployment-management)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/462749)\n\n### **GitLab UIでSBOMの取り込みエラーが表示されるように**\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nGitLab 15.3では、CycloneDX SBOMの[取り込み](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx)が新たにサポートされました。SBOMレポートはCycloneDXスキーマと照らし合わせて検証されるものの、検証の一環として生成された警告やエラーはユーザーには表示されませんでした。\n\nGitLab 17.3では、このような検証メッセージをGitLabの画面上で確認できるようになり、プロジェクトレベルの脆弱性レポートと依存関係リストのページに表示されます。\nGitLabの画面上（プロジェクトレベルの脆弱性レポート、依存関係リストページ、パイプラインページの「ライセンス」と「セキュリティ」タブ）でSBOMの取り込みエラーを確認できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dependency_list/)\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14408)\n\n### **依存関係スキャンとライセンススキャンでRustをサポート**\n\nSaaS: Ultimate\nSelf-Managed: Ultimate\n\nコンポジション解析で、Rustでの依存関係スキャンとライセンススキャンのサポートを開始しました。Rustスキャンでは、`Cargo.lock`ファイルタイプをサポートします。\nプロジェクトでRustスキャンを有効にするには、[CI/CDコンポーネントの依存関係スキャン](https://gitlab.com/explore/catalog/components/dependency-scanning)の`cargo`テンプレートを使用してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/#supported-languages-and-package-managers)\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/13093)\n\n### **ユーザープロファイルへのBluesky IDの追加**\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabプロファイルにBluesky did:plc識別子を追加できるようになりました。\nこの場を借りて、コントリビュートしてくれた[Dominique](https://domi.zip/)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/#add-external-accounts-to-your-user-profile-page)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/451690)\n\n### **高度な検索のためのエンドツーエンドのインスタンスのインデックス作成**\n\nSaaS: Premium、Ultimate\nSelf-Managed: Premium、Ultimate\n\nGitLabで高度な検索を有効にする際に「**インスタンスにインデックスを作成**」を選択して、初期インデックスを作成したり、ゼロからインデックスを再作成したりできるようになりました。この設定では、サポートされているすべての種類のデータのインデックスが、統合されたElasticsearchまたはOpenSearchクラスターに作成されるため、`gitlab:elastic:index`のRakeタスクと同等の機能レベルが実現されます。\n\n初期インデックス作成のみ可能であったすべてのプロジェクトでのインデックス作成設定は、「**インスタンスにインデックスを作成**」設定に置き換わります。\n\n[ドキュメント](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#index-the-instance)\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/271532)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_3/update_index_all_projects_to_allow_end_to_end_instance_indexing.png\">\n\n## **バグ修正、パフォーマンスの改善、UIの改善**\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験を届けることを約束します。\n\n以下のリンクをクリックして、17.3のバグ修正、パフォーマンス向上、UI改善についてすべてご覧ください。\n\n* [バグの修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.3)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.3)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.3)\n\n## **非推奨事項**\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [コンプライアンスパイプライン](https://docs.gitlab.com/ee/update/deprecations.html#compliance-pipelines)\n* [CodeClimateベースのCode Qualityスキャンが削除されます](https://docs.gitlab.com/ee/update/deprecations.html#codeclimate-based-code-quality-scanning-will-be-removed)\n* [GitGuardianのシークレット検出をスキップするオプションの名前が変更されました](https://docs.gitlab.com/ee/update/deprecations.html#rename-options-to-skip-gitguardian-secret-detection)\n\n## **削除された機能と破壊的な変更**\n\n削除されたすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n## **GitLabのアップグレードに関する重要なお知らせ**\n\nバックグラウンドでの移行が完了されるようにするには、GitLab 17.4にアップグレードする前に、まずはGitLab 17.3にアップグレードする必要があります。\n\n### **変更履歴**\n\n変更内容をすべて表示するには、以下のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### **インストール**\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](file:///C:\\\\install\\\\)をご覧ください。\n\n### **更新**\n\n[更新ページ](https://about.gitlab.com/update/)を確認してください。\n\n### **ご不明な点がある場合**\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### **GitLabサブスクリプションプラン**\n\n* [Freeプラン](https://about.gitlab.com/pricing/)\n\n  個人ユーザー向けの永久無料機能を提供\n\n* [Premiumプラン](https://about.gitlab.com/pricing/premium/)\n\n  チームの生産性と調整を強化\n\n* [Ultimateプラン](https://about.gitlab.com/pricing/ultimate/)\n\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/)でお試しいただけます。\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2024-09-24",{"slug":1164,"featured":91,"template":685},"gitlab-17-3-released","content:ja-jp:blog:gitlab-17-3-released.yml","Gitlab 17 3 Released","ja-jp/blog/gitlab-17-3-released.yml","ja-jp/blog/gitlab-17-3-released",{"_path":1170,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1171,"content":1177,"config":1183,"_id":1185,"_type":14,"title":1186,"_source":16,"_file":1187,"_stem":1188,"_extension":19},"/ja-jp/blog/gitlab-17-4-released",{"title":1172,"description":1173,"ogTitle":1172,"ogDescription":1173,"noIndex":6,"ogImage":1174,"ogUrl":1175,"ogSiteName":669,"ogType":670,"canonicalUrls":1175,"schema":1176},"GitLab 17.4リリース","GitLab 17.4でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662149/Blog/Hero%20Images/17_4-cover-image.png","https://about.gitlab.com/blog/gitlab-17-4-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.4リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-09-19\",\n      }",{"title":1172,"description":1173,"authors":1178,"heroImage":1174,"date":1179,"body":1180,"category":705,"tags":1181,"updatedDate":1182},[853],"2024-09-19","**よりコンテキストを意識するようになったGitLab Duoを含むGitLab 17.4をリリース**\n\nこのたび、開いているタブの内容を使用してよりコンテキストを意識するようになったコード提案、すべてのチェックに合格した場合の自動マージ、Web IDEの拡張機能マーケットプレース、一般提供が開始された高度なSASTなど、さまざまな機能を備えたGitLab 17.4のリリースを発表しました！\n\nこれらの機能は、今回のリリースに含まれる140件以上の改善点のほんの一部です。役に立つ最新情報をすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.4には、GitLabコミュニティのユーザーから220件以上ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、17.5リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。\n\n> [GitLab Duoでコンテキストの改善を実現したGitLab 17.4がリリースされました。](http://twitter.com/share?text=GitLab+17.4+released+with+improved+context+in+GitLab+Duo&url=https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/&hashtags=)クリックしてSNSで共有しましょう！\n\n## **今月のMost Valuable Person（[MVP](https://about.gitlab.com/community/mvp/)）は[Archish Thakkar](https://gitlab.com/archish27)さんが受賞**\n\nMVPには、誰でも[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。積極的に活動している候補者を応援したり、他の誰かをノミネートしてみませんか。🙌\n\nArchish Thakkarさんは、今年特に活躍しているGitLabのコントリビューターの1人で、[46のイシューをクローズ](https://gitlab.com/groups/gitlab-org/-/issues/?sort=created_date&state=closed&assignee_username%5B%5D=archish27&first_page_size=100)し、[119ものマージリクエストをマージ](https://gitlab.com/groups/gitlab-org/-/merge_requests?assignee_username%5B%5D=archish27&first_page_size=100&sort=created_date&state=merged)してくれました。このようなすばらしい実績により、Archishさんは過去2回の[GitLabハッカソン](https://gitlab-community.gitlab.io/community-projects/merge-request-leaderboard/?&createdAfter=2024-08-26&createdBefore=2024-09-02&mergedBefore=2024-10-03&label=Hackathon)で1位に選ばれました。Archishさんは、[Middleware社の](https://middleware.io/)ソフトウェアエンジニアであり、オープンソースコントリビューターとして積極的に活動しています。\n\nArchishさんを推薦したのは、GitLabにおいてエンジニアリングの生産性を担当するスタッフバックエンドエンジニア、[Peter Leitzen](https://gitlab.com/splattael)です。GitLabのスタッフバックエンドエンジニアである[Max Woolf](https://gitlab.com/mwoolf)と、シニアバックエンドエンジニアの[James Nutt](https://gitlab.com/jnutt)も、Archishさんを推薦することに賛同しました。過去2か月間でArchishさんのコントリビュート件数は増加しており、GitLabのコードベースの改善、QoL（クオリティオブライフ）に関する複数の修正へのコントリビュート、技術的負債の削減への取り組みなど、一貫して優れた取り組みを行っています。\n\nこの場を借りて、GitLabを共同開発してくださっているArchishさん、そしてGitLabのオープンソースコントリビューターの方々に心から感謝します！\n\n## **GitLab 17.4でリリースされた主な改善点**\n\n### **開いているタブの内容をもとに、よりコンテキストを意識するようになったGitLab Duoのコード提案**\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise    \nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise   \n\n開いている他のタブの内容を使用し、よりコンテキストを意識したコード提案を提供して、コーディングワークフローを向上させます。\nこのコード提案の改善により、開いているエディタタブの内容を使用して、より関連性が高く正確なコード提案を提供できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#use-open-tabs-as-context)  \n[イシュー](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/issues/206)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/open-tabs.gif\">\n\n### **すべてのチェックに合格した場合に自動マージ**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nマージリクエストがマージ可能になるには、多数の必須チェックに合格する必要があります。これらのチェックには、承認、未解決のスレッド、パイプライン、その他満たす必要のある項目が含まれます。コードをマージする担当者にとって、これらのイベントをすべて追跡し、マージリクエストがマージ可能になったかどうかについてどのタイミングで改めて確認すればよいかを判断するのは難しいものです。\n\nGitLabでは本リリースから、マージリクエストのすべてのチェックで**自動マージが利用可能**になりました。自動マージを使用すると、マージを行えるユーザーなら誰でも、必要なすべてのチェックに合格する前であっても**自動マージ**が行われるようにマージリクエストを設定できます。マージ リクエストのライフサイクルが進み、前回不合格となったチェックに合格すると、自動的にマージリクエストがマージされます。\n\nこの改善により、マージリクエストのワークフローを高速化できるようになりました。[イシュー438395](https://gitlab.com/gitlab-org/gitlab/-/issues/438395)でこの機能についてのフィードバックをぜひお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/8128)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10874)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/UbqAYizAFAk?si=GxUlLjpyNWmw-q3z\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **Web IDEで拡張機能マーケットプレースが利用可能に**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: -\n\nGitLab.comのWeb IDEに拡張機能マーケットプレースが登場しました。拡張機能マーケットプレースでは、サードパーティの拡張機能を検索、インストール、管理できるため、開発体験が向上します。拡張機能によってはローカル実行環境が必要となり、Webのみのバージョンと互換性がないものもありますが、何千種類もの拡張機能から選択して、生産性を向上させたり、ワークフローをカスタマイズしたりできます。\n\nデフォルトでは、拡張機能マーケットプレースは無効になっています。利用を開始するには、[ユーザー環境設定](https://gitlab.com/-/profile/preferences)の**インテグレーション**セクションで拡張機能マーケットプレースを有効にします。[エンタープライズユーザー](https://docs.gitlab.com/ee/user/enterprise_user/)の場合は、トップレベルグループのオーナーロールを持つユーザーのみが拡張機能マーケットプレースを有効にできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/web_ide/index.html#extension-marketplace)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11769)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/extensions-marketplace.png\">\n\n### **ワークスペースでのsudoアクセスをセキュアに管理**\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nワークスペースにおけるsudoアクセスが設定可能になり、開発環境で依存関係を直接インストール、設定、実行することがこれまで以上に簡単になりました。シームレスな開発環境を実現するために、次の3つのセキュアな方法が実装されています。\n- Sysbox\n- Kataコンテナ\n- ユーザーネームスペース\nこの機能により、ワークフローやプロジェクトのニーズに合わせて環境を完全にカスタマイズできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/configuration.html#configure-sudo-access-for-a-workspace)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13983)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/sudo-access.gif\">\n\n### **Kubernetesリソースイベントの一覧表示**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabでは、ポッドとポッドのログストリームがリアルタイムで表示されます。ただし、これまでUIではリソース固有のイベント情報が表示されていなかったため、[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)のデプロイをデバッグするにはサードパーティ製のツールを使用する必要がありました。今回のリリースでは、[Kubernetes用ダッシュボード](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)のリソース詳細ビューに「イベント」を追加しました。\n\nUIに「イベント」を追加するのは今回が初めてです。現在、リソース詳細ビューを開くと、イベント情報が更新されます。リアルタイムのイベントストリーミングの開発については、[イシュー470042](https://gitlab.com/gitlab-org/gitlab/-/issues/470042)で追跡できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/470041)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/kubernetes-events-list.png\">\n\n### **ワイルドカードDNSを使用しないGitLab Pagesの一般提供を開始**\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでGitLab Pagesプロジェクトを作成するには、`name.example.io`や`name.pages.example.io`といった形式のドメインが必要でした。この要件を満たすには、ワイルドカードDNSレコードとTLS証明書の設定を行う必要がありました。今回のリリースでは、DNSワイルドカードを使用しないGitLab Pagesプロジェクトの作成機能を、ベータ版から一般提供へ移行しました。\n\nワイルドカード証明書の要件をなくすことで、GitLab Pages関連の管理上のオーバーヘッドが軽減されます。なお、一部のお客様は、組織におけるワイルドカードDNSレコードや証明書に関する制限のため、GitLab Pagesをご利用いただけません。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/pages/#pages-domain-without-wildcard-dns)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13404)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/z230iB-hJ3A?si=paf8_1xxggwVgsZT\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **GitLab Pagesの並行デプロイ（ベータ版）**\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n本リリースでは、GitLab Pagesの並行デプロイ（ベータ版）が導入されました。これにより、GitLab Pagesサイトの変更を簡単にプレビューし、並列デプロイを管理できるようになりました。この機能強化により、新しいアイデアの検証をスムーズに行えるため、自信を持ってサイトをテストして改良できます。問題を早期に発見することでGitLab Pagesの基盤が最適な状態となり、その上に構築された公開中のサイトを安定して洗練された状態に維持することができます。\n\nまた並列デプロイは、アプリケーションやWebサイトの複数の言語バージョンをデプロイするために、多言語化を行う場合も役立ちます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/#parallel-deployments)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10914)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/pages_parallel_deployments_beta.png\">\n\n### **GitLab Duo Chatによるイシューディスカッションサマリー生成**\n\nSaaS: Ultimate、Duo Enterprise\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\n長時間繰り広げられてきたイシューのディスカッションの内容を把握するには、かなりの時間がかかります。今回のリリースでは、AIによるイシューディスカッションサマリー生成機能がDuo Chatに統合され、GitLab.com、Self-Managed、およびDedicatedをご利用のお客様を対象に一般公開されました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/discussions/index.html#summarize-issue-discussions-with-duo-chat) \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/454550)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/plan-summarize-discussions-with-duo.png\">\n\n### **高度なSASTの一般提供を開始**\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nGitLab Ultimateプランをご利用のすべてのお客様を対象に、高度な静的アプリケーションセキュリティテスト（SAST）スキャナーの一般提供を開始しました。\n\n高度なSASTは、今年初めに[Oxeyeから得た](https://about.gitlab.com/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities/)技術を利用して新たに開発されたスキャナーです。独自の検出エンジンとともに、社内でのセキュリティ研究によって得られたルールを使用して、ファーストパーティコードに潜む悪用可能な脆弱性を特定します。これにより、より正確なスキャン結果が得られるため、デベロッパーやセキュリティチームは、誤検出の結果によるノイズを選別する必要がなくなります。\n\nGitLab 17.4には新しいスキャンエンジンに加え、次の機能が含まれます。\n\n* 脆弱性がファイルや関数を横断してどのように広がるかを追跡できる新しい[コードフロービュー](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-code-flow)\n\n* これまでのGitLab SASTスキャナーからの既存の結果を高度なSASTに「引き継げる」ようにする自動移行\n\n詳細については、[一般提供の発表に関するブログ記事](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466322)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/secure-advanced-sast-code-flow.png\">\n\n### **CI/CD変数の値をUIで非表示にできるように**\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nときには、プロジェクト設定に保存された変数の値を誰にも見られたくない場合があります。CI/CD変数の作成時に、新しく「**マスクして非表示**」を選択できるようになりました。このオプションを選択すると、CI/CD設定のUIで変数の値が永久的にマスクされ、作成後は誰にも表示されなくなるため、データが誰かに見られる危険性を低下できます。\n\n[ドキュメント](https://new.docs.gitlab.com/ci/variables/#define-a-cicd-variable-in-the-ui)\n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/29674)\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/masked_and_hidden.png\">\n\n## **GitLab 17.4のその他の改善**\n\n### **Webhookリクエストの冪等キー**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\n本リリースから、Webhookリクエストのヘッダーで冪等キーをサポートします。冪等キーは、Webhookの再試行を複数回行っても一貫性が保たれる一意のIDであり、Webhookクライアントが再試行を検出できるようにします。統合においてWebhookの効果の冪等性を保つには、`Idempotency-Key`ヘッダーを使用してください。\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160952)してくれた[Van](https://gitlab.com/van.m.anderson)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#delivery-headers)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/388692)\n\n### **Wikiのサイドバーのサイズが変更可能に**\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nWikiのサイドバーを調整して、長めのページタイトルを表示できるようになりました。これにより、全体的にコンテンツが見つけやすくなりました。Wikiコンテンツが充実するにつれて、階層が複雑になったり表示されるページが膨大になったりしますが、サイドバーのサイズ変更が可能になったことでWikiの運用が効率的になり、管理、閲覧しやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/wiki/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154167)\n\n### **コードインテリジェンス用CI/CDコンポーネント**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabのコードインテリジェンスは、リポジトリを閲覧する際のコードナビゲーション機能を提供します。コードナビゲーションを開始する際は、CI/CDジョブを設定する必要があるため、複雑になりがちです。正しい出力と成果物を得るには、この作業を行う際にカスタムスクリプトが必要になる場合があります。\n\nGitLabでは本リリースから、簡単に設定を行えるように、公式の[コードインテリジェンス用CI/CDコンポーネント](https://gitlab.com/explore/catalog/components/code-intelligence)をサポートするようになりました。[コンポーネントの使い方](https://docs.gitlab.com/ee/ci/components/index.html#use-a-component)の手順に従って、このコンポーネントをプロジェクトに追加してください。これにより、GitLabでのコードインテリジェンスの導入が大幅に簡素化されます。\n\n現在、このコンポーネントでは次の言語をサポートしています。\n\n* Goバージョン1.21以降\n\n* TypeScriptまたはJavaScript\n\nこのコンポーネントの対応言語の拡大を検討するために、[利用可能なSCIP Indexer](https://github.com/sourcegraph/scip?tab=readme-ov-file#tools-using-scip)の評価を今後も続ける予定です。対応言語の追加に興味がある場合は、[コードインテリジェンスコンポーネント](https://gitlab.com/components/code-intelligence)プロジェクトでマージリクエストを作成してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/code_intelligence.html#with-the-cicd-component)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/480401)  \n\n### **GitLab Runner 17.4**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.4もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLab Runnerは、GitLabに組み込まれたオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n新機能：\n\n* [Azure Compute用GitLab Runnerフリートプラグイン（一般公開）](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29223)\n\nバグの修正：\n\n* [Kubernetes executorジョブが完了前にキャンセルされた場合、ジョブログの`after_script` セクションに`step_script`のすべての内容が表示される](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37952)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-4-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### **保護された環境への非デプロイジョブが手動ジョブにならないように**\n\nSaaS: Premium、Ultimate    \nSelf-Managed: Premium、Ultimate\n\n実装上の問題により、保護された環境で`action: prepare`、`action: verify`、`action: access`ジョブを実行した場合、手動ジョブになります。これらのジョブを実行するには、手動での操作が必要となりますが、追加の承認は必要ありません。\n\n[イシュー390025](https://gitlab.com/gitlab-org/gitlab/-/issues/390025)では、これらのジョブが手動ジョブにならないようにするために、実装に修正を加えることを提案しています。この提案が実装された後で現在の挙動が維持されるようにするには、[明示的にジョブを手動に設定する](https://docs.gitlab.com/ee/ci/jobs/job_control.html#types-of-manual-jobs)必要があります。\n\n現時点では、`prevent_blocking_non_deployment_jobs`機能フラグを有効にすることで、新しい実装に移行できます。\n\n破壊的な変更はすべて、`environment.action: prepare | verify | access`値の挙動を区別するために提案されています。`environment.action: access`キーワードを指定すると、現在の動作に最も近い形で維持されます。\n\n将来的に互換性の問題が発生しないように、これらのキーワードの使用方法を今すぐ見直してください。提案の詳細については、次のイシューを参照してください。\n\n* [イシュー437132](https://gitlab.com/gitlab-org/gitlab/-/issues/437132)\n\n* [イシュー437133](https://gitlab.com/gitlab-org/gitlab/-/issues/437133)\n\n* [イシュー437142](https://gitlab.com/gitlab-org/gitlab/-/issues/437142)\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/jobs/job_control.html#types-of-manual-jobs)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/390025)\n\n### **削除されたSASTアナライザーの自動クリーンアップ**\n\nSaaS: Ultimate    \nSelf-Managed: Ultimate\n\n[GitLab 17.0](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-coverage-changing-in-gitlab-170)、[16.0](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-coverage-changing-in-gitlab-160)、[15.4](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-consolidation-and-cicd-template-changes)ではGitLab SASTを効率化し、より少ない個別のアナライザーでコードの脆弱性をスキャンできるようにしました。\n\n本リリースでは、GitLab 17.3.1以降のバージョンにアップグレードした後で、データ移行を一度だけ行えば、[サポートが終了したアナライザー](https://docs.gitlab.com/ee/user/application_security/sast/#end-of-supported-analyzers)の検出対象である脆弱性が自動的に修正されるようになりました。これにより、脆弱性レポートがクリーンアップされるため、最新のアナライザーによって検出された脆弱性に集中して対応できます。\n\nデータ移行を行うと、確認または却下されていない脆弱性のみが修正されます。[Semgrepベースのスキャンに自動的に変換](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/#transition-to-semgrep-based-scanning)された脆弱性には、影響は生じません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/#end-of-supported-analyzers)\n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/444926)\n\n### **CycloneDX 1.6のSBOMのインジェストをサポート**\n\nSaaS: Ultimate    \nSelf-Managed: Ultimate\n\nGitLab 15.3では、CycloneDX SBOMの[インジェスト](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx)がサポートされました。\n\nこの度、GitLab 17.4では、CycloneDXバージョン1.6のSBOMのインジェストを新たにサポートするようになりました。\n\n現時点では、ハードウェア（HBOM）、サービス（SaaSBOM）、AI/MLモデル（AI/ML-BOM）関連のフィールドはサポート対象外です。これらのBOMの関連データを含むSBOMは処理されるものの、データは分析されず、ユーザーにも提示されません。こうした他の種類のBOMのサポートについては、[こちらのエピック](https://gitlab.com/groups/gitlab-org/-/epics/14989)で追跡されています。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/472837)\n\n### **トークンの有効期限設定オプション**\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\n個人、プロジェクト、グループ用のアクセストークンに有効期限の設定を必須にするかどうかを、管理者が決められるようになりました。この設定を管理者が無効にした場合、新たに生成されるアクセストークンでは有効期限の設定が不要になります。デフォルトではこの設定は有効になっており、有効期限を設定する際は許可されている最大有効期間よりも短くする必要があります。この設定は、GitLab 16.11以降のバージョンで利用可能です。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#require-expiration-dates-for-new-access-tokens)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/470192)\n\n### **パイプライン実行ポリシーで競合するジョブ名のサフィックスをサポート**\n\nSaaS: Ultimate    \nSelf-Managed: Ultimate\n\n[17.2リリースで追加されたパイプライン実行ポリシー](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)が拡張され、ポリシー作成者はジョブ名が重複した場合に適切に処理されるよう、パイプライン実行ポリシーを設定できるようになりました。パイプライン実行ポリシーの`policy.yml`で、次のオプションを設定できるようになりました。\n\n* `suffix: on_conflict`：重複が適切に処理されるように、ポリシーのジョブ名を変更するよう、ポリシーを設定します。今後は、これがデフォルトの動作です。\n\n* `suffix: never`：すべてのジョブ名が一意となるように強制し、重複が発生した場合はパイプラインが失敗します。17.2以降のバージョンでは、これがデフォルトの動作でした。\n\nこの改善により、パイプライン実行ポリシー内でセキュリティとコンプライアンスのジョブが必ず実行されるようになると同時に、下流工程のデベロッパーに不要な影響を及ぼすことのないように防ぐことができます。\n\n次の機能拡張では、ポリシーエディタ内でこの設定オプションを導入する予定です。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#pipeline-execution-policy-schema)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/473189)  \n\n### **オムニバスの改善**\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.4を新規インストールすると、デフォルトでPostgreSQL 16が含まれます。\n\nGitLab 17.7では、OpenSSL V3が含まれます。これは、TLS証明書の112ビット以上の暗号化とともに、送信接続用のTLS 1.2以上の最低要件を満たしていない外部統合設定のオムニバスインスタンスに影響を与えます。ご自身のインスタンスが影響を受けるか等の詳細を確認したい場合は、[OpenSSLのアップグレードに関するドキュメント](https://docs.gitlab.com/omnibus/settings/ssl/openssl_3.html)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\n\n### **グループAPIでドメインごとにグループアクセスを制限**\n\nSaaS: Premium、Ultimate    \nSelf-Managed: Premium、Ultimate\n\nこれまでは、ドメイン制限はUIでグループレベルでのみしか追加できませんでした。本リリースでは、グループAPIに追加された`allowed_email_domains_list`属性を使用してドメイン制限を行えるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/groups.html#update-group)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/351494)\n\n### **失敗したWebhookリクエストをAPIから再送信可能に**\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabではこれまで、Webhookリクエストの再送信機能をUIでのみ提供していましたが、リクエストが多数失敗した場合、この方法は非効率的でした。\n\n本リリースでは、コミュニティメンバーからのコントリビュートにより、失敗したWebhookリクエストをプログラムによって処理できるように、再送信用のAPIエンドポイントが追加されました。\n\n* [プロジェクトのWebhookリクエスト](https://docs.gitlab.com/ee/api/projects.html#resend-project-hook-event)\n\n* [グループのWebhookリクエスト](https://docs.gitlab.com/ee/api/groups.html#resend-group-hook-event)（PremiumおよびUltimateプランのみ）\n\n次の方法で再送信を行えるようになりました。\n\n1. [プロジェクトフック](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events)または[グループフック](https://docs.gitlab.com/ee/api/groups.html#get-group-hook-events)イベントのリストを取得します。\n\n2. リストをフィルタリングして、失敗したものを表示します。\n\n3. イベントの`id`を使用して再送信します。\n\nこの場を借りて、[コミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151130)してくれた[Phawin](https://gitlab.com/lifez)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/api/projects.html#resend-project-hook-event)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/372826)\n\n### **JetBrains IDEでOAuthを使用してGitLab Duoを認証**\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nJetBrains用GitLab Duoプラグインの開始プロセスが、これまでよりも安全かつ効率的になりました。OAuthを使用して、すばやく安全にサインインできます。パーソナルアクセストークンは不要で、既存のワークフローとシームレスに統合されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/#configure-the-extension)  \n[エピック](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/70)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ZOTFWbpBBHI?si=Qv-BD5cy6KxMP2Tz\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### **リンクしたファイルがマージリクエスト内で最初に表示されるように**\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nマージリクエストで特定のファイルへのリンクを共有する目的は、通常はそのファイル内に含まれる内容を見てもらうことです。これまでマージリクエストでは、すべてのファイルが読み込まれてから、参照した特定の位置までスクロールする必要がありました。本リリースから、以下の方法でファイルに直リンクすることで、マージリクエストでの共同作業のスピードを効果的に向上させることができるようになりました。\n\n1. 最初に表示したいファイルを見つけます。ファイル名を右クリックして、リンクをコピーします。\n\n2. そのリンクにアクセスすると、選択したファイルがリストの一番上に表示されます。ファイルブラウザでは、ファイル名の横にリンクアイコンが表示されます。\n\nファイルのリンクに関するフィードバックは、[イシュー439582](https://gitlab.com/gitlab-org/gitlab/-/issues/439582)で投稿できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge_requests/changes.html#show-a-linked-file-first)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/387246)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/create-linked-files.png\">\n\n### **テストカバレッジ可視化のためにJaCoCoのサポートを開始（ベータ版）**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nマージリクエスト内で、カバレッジ計測の標準として人気のあるJaCoCoのカバレッジレポートを使用できるようになりました。この機能はベータ版として提供されていますが、JaCoCoのカバレッジレポートをすぐに使用したい方なら誰でもテストできます。フィードバックがございましたら、ぜひ[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/479804)でお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/jacoco.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/227345)\n\n### **クラスターUIからFluxの調整をトリガー**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\n指定した間隔で調整がトリガーされるようにFluxを設定できるものの、状況によってはすぐに調整を行いたいこともあります。これまでのリリースでは、CI/CDパイプラインまたはコマンドラインから調整をトリガーできました。GitLab 17.4では、追加の設定なしでKubernetes用ダッシュボードから調整をトリガーできるようになりました。\n\n調整をトリガーするには、設定済みのダッシュボードに移動し、Fluxのステータスバッジを選択します。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/434248)\n\n### **シークレット検出でのAnthropic APIキーのサポート**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nパイプラインとクライアントサイドのシークレット検出の両方で、[Anthropic](https://www.anthropic.com/) APIキーの検出をサポートしました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/detected_secrets.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/481547)\n\n### **セキュリティポリシーにリンクされているプロジェクトのパイプライン実行YAMLファイルへの読み取りアクセスを許可**\n\nSaaS: Ultimate    \nSelf-Managed: Ultimate\n\nGitLab 17.4では、セキュリティポリシーの設定が追加され、リンクされているすべてのプロジェクトの`pipeline-execution.yml`ファイルへの読み取りアクセスを許可できるようになりました。この設定を使用すると、パイプラインの実行を行うユーザー、ボット、トークンをプロジェクト全体でグローバルかつより柔軟に指定できます。たとえば、グループやプロジェクトのアクセストークンがセキュリティポリシー構成を読み取り、パイプラインをトリガーできるようになります。引き続き、直接セキュリティポリシープロジェクトのリポジトリや[YAML](https://about.gitlab.com/ja-jp/blog/what-is-yaml/)を参照することはできません。この設定は、パイプラインの作成中にのみ使用できます。\n\n設定を行うには、共有したいセキュリティポリシープロジェクトに移動します。**「設定」 > 「一般」 > 「表示レベル、プロジェクトの機能、権限」**の順に選択し、**「パイプライン実行ポリシー」** までスクロールします。次に、**「セキュリティポリシープロジェクトソースとしてリンクされているプロジェクトに対して、このリポジトリへのアクセスを許可する」** を有効にします。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/469439)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/grant-access-to-spp.png\">\n\n### **複数のコンプライアンスフレームワークでの検索**\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nGitLab 17.3では、プロジェクトに複数のコンプライアンスフレームワークを追加できるようになりました。\n\n本リリースでは、複数のコンプライアンスフレームワークを指定して検索できるようになりました。これにより、複数のコンプライアンスフレームワークが設定されているプロジェクトをより簡単に検索できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_projects_report.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/462943)\n\n### **グループやプロジェクトメンバーのソース列の表示内容を改善**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate    \n\nグループとプロジェクトのメンバーページでのソース列の表示内容を簡素化しました。ダイレクトメンバーは引き続き、`Direct member`として表示されます。継承メンバーの場合、`Inherited from`という文字列に続いて、グループ名が表示されるようになりました。グループが招待されたことで追加されたメンバーは、`Invited group`という文字列に続いて、グループ名が表示されます。また、本リリースから、グループが招待されて追加されたメンバーがその後に継承された場合、メンバーシップを管理するユーザーに必要な情報として、最後に発生したイベントが表示されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/members/#membership-types)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/431066)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_4/data-stores_member-source.png\">\n\n### **グループまたはプロジェクトAPIを使用して、グループやプロジェクトに招待されたグループを一覧表示**\n\nSaaS: Free、Premium、Ultimate    \nSelf-Managed: Free、Premium、Ultimate\n\nグループAPIとプロジェクトAPIに新しいエンドポイントを追加しました。これにより、グループまたはプロジェクトに招待されたグループを取得できるようになりました。この機能は、グループまたはプロジェクトのメンバーページでのみ利用できます。このエンドポイントの追加により、グループやプロジェクトにおけるメンバーシップ管理がより簡単に自動化できるようになります。なお、このエンドポイントには、ユーザーあたり毎分60件のリクエストのレート制限が設定されています。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/groups.html#list-a-groups-invited-groups)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/465207)\n\n### **GitLab Duoシートの割り当てに関する通知メール**\n\nSaaS: -\n\nSelf-Managed: Premium、Ultimate、Duo Pro\n\nSelf-Managedインスタンスのユーザーには、GitLab Duoシートが割り当てられるとメールが届くようになりました。これまでは、ほかのユーザーに教えてもらうか、GitLab UIに新しい機能が表示されるようになったことに気付かない限り、シートが割り当てられたことはわかりませんでした。\n\n管理者は`duo_seat_assignment_email_for_sm`という名前の機能フラグを無効にすることで、このメール通知を無効にできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#assign-gitlab-duo-seats)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164104)\n\n## **バグ修正、パフォーマンスの改善、UIの改善**\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験を届けることを約束します。\n\n以下のリンクをクリックして、17.4のバグ修正、パフォーマンス向上、UI改善についてすべてご覧ください。\n\n* [バグの修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.4)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.4)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.4) \n\n## **非推奨事項**\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n-   [よく利用されるユーザー、プロジェクト、グループAPIのエンドポイントに対するレート制限](https://docs.gitlab.com/ee/update/deprecations.html#rate-limits-for-common-user-project-and-group-api-endpoints)  \n-   [\\`add\\_on\\_purchase\\` GraphQLフィールドの\\`add\\_on\\_purchases\\`への置き換え](https://docs.gitlab.com/ee/update/deprecations.html#replace-add_on_purchase-graphql-field-with-add_on_purchases)  \n-   [セキュアコンテナレジストリの一般利用の非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#public-use-of-secure-container-registries-is-deprecated)  \n-   [\\`heroku/builder:22\\`イメージの非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#the-herokubuilder22-image-is-deprecated)\n\n## **削除された機能と破壊的な変更**\n\n削除されたすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードをサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n## **GitLabのアップグレードに関する重要なお知らせ** \n\nバックグラウンドでの移行が完了されるようにするには、GitLab 17.4にアップグレードする前に、まずは[GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)にアップグレードする必要があります。  \n\n### **変更履歴**\n\n変更内容をすべて表示するには、以下のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)   \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)   \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)   \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases) \n\n### **インストール**\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### **更新**\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)を確認してください。\n\n### **ご不明な点がある場合**\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### **GitLabサブスクリプションプラン**\n\n* [Freeプラン](https://about.gitlab.com/pricing/) \n\n  個人ユーザー向けの永久無料機能を提供\n\n* [Premiumプラン](https://about.gitlab.com/pricing/premium/) \n\n  チームの生産性と調整を強化\n\n* [Ultimateプラン](https://about.gitlab.com/pricing/ultimate/) \n\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\n> GitLabのすべての機能を[無料](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial)でお試しいただけます。\n\n*監修：佐々木 直晴 [@naosasaki](https://gitlab.com/naosasaki) \u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-01-07",{"slug":1184,"featured":91,"template":685},"gitlab-17-4-released","content:ja-jp:blog:gitlab-17-4-released.yml","Gitlab 17 4 Released","ja-jp/blog/gitlab-17-4-released.yml","ja-jp/blog/gitlab-17-4-released",{"_path":1190,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1191,"content":1197,"config":1203,"_id":1205,"_type":14,"title":1206,"_source":16,"_file":1207,"_stem":1208,"_extension":19},"/ja-jp/blog/gitlab-17-5-released",{"title":1192,"description":1193,"ogTitle":1192,"ogDescription":1193,"noIndex":6,"ogImage":1194,"ogUrl":1195,"ogSiteName":669,"ogType":670,"canonicalUrls":1195,"schema":1196},"GitLab 17.5リリース","GitLab 17.5でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662166/Blog/Hero%20Images/17_5-cover-image.png","https://about.gitlab.com/blog/gitlab-17-5-released","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.5リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-10-17\",\n      }",{"title":1192,"description":1193,"authors":1198,"heroImage":1194,"date":1199,"body":1200,"category":705,"tags":1201,"updatedDate":1202},[853],"2024-10-17","**GitLab Duo Quick Chat AIコードアシストを含むGitLab 17.5をリリース**\n\nこのたび、GitLab 17.5のリリースを発表しました。このリリースでは、GitLab Duo Quick ChatによるIDEでのコードアシスト、GitLab Duoコード提案のセルフホストモデル、コード提案使用状況のエクスポート、GitLab Duo ChatとのMRに関する対話など、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる125件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.5には、GitLabコミュニティのユーザーから200件以上ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、17.6リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。  \n\n> [GitLab Duo Quick Chat AIコードアシストを含むGitLab 17.5をリリースしました。](http://twitter.com/share?text=GitLab+17.5+released+with+Duo+Quick+Chat+AI+code+assistance.&url=https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/&hashtags=)クリックしてSNSで共有しましょう！\n\n## 今月のMost Valuable Person（[MVP](https://about.gitlab.com/community/mvp/)）は[Jim Ender](https://gitlab.com/jimender2)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。積極的に活動している候補者を応援したり、他の誰かをノミネートしてみませんか。🙌\n\nJimさんは、GitLabにおいて[100件近くのバックログイシューを解決する](https://gitlab.com/gitlab-org/gitlab/-/issues/?sort=updated_desc&state=closed&assignee_username%5B%5D=Jimender2&first_page_size=100)取り組みを主導したことが評価されました。興味深いディスカッションが繰り広げられる毎週恒例のペアリングセッションに精力的に参加しています。さらに、[GitLab Discord Community](https://discord.gg/gitlab)のユーザーを支援し、GitLabサポートリクエストのトラブルシューティングや新規コントリビューターへの指導なども行っています。Jimさんは、重要なインフラやERPシステム向けのソフトウェアを開発している産業テクノロジー企業に勤務しています。\n\n「小さな貢献であっても積み重なれば、プロジェクトが改善されます。ドキュメンテーションに関するコントリビュートのような小さなものでも、誰かの役に立ちます。新機能のすべてを開発する必要はないんです」とJimさんは述べています。\n\nJimさんを推薦したのは、GitLabのコントリビューターサクセスチームに所属する[スタッフフルスタックエンジニア、](https://gitlab.com/leetickett-gitlab)Lee Tickettです。「より幅広いコミュニティからの参加を促すために、イシューのトリアージおよびキュレーション作業は、私にとって最重要項目のひとつです。Jimさんはそのための道筋をつけてくれています」とLeeは言います。\n\nLeeに続き、GitLabのコントリビューターサクセスチームのシニアプログラムマネージャーである[Daniel Murphy](https://gitlab.com/daniel-murphy)も、Jimさんを推薦しました。「新規コントリビューターに対するJimさんの多大なるサポートとオンボーディングの際の丁寧な説明のおかげで、GitLabを共同開発するコミュニティとして成長できています」\n\n「Jimさんの[マージリクエスト](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163849)をレビューしましたが、素晴らしかったです！」と、GitLabのシニアフロントエンドエンジニアである[Vanessa Otto](https://gitlab.com/vanessaotto)は振り返ります。「Jimさんからはすぐに返答があり、提案した内容を即座に理解して、スムーズに実装してくださいました。Jimさんの効率的かつ明瞭なアプローチには感銘を受けました」\n\nJimさんを始め、GitLabにコントリビュートしてくださっているオープンソースコミュニティのみなさまに心から感謝します！\n\n## GitLab 17.5でリリースされた主な改善点\n\n### GitLab Duo Quick Chatの導入 \nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise  \nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duo Quick Chatが導入されました。これは、コードを編集している画面上で動作するように設計されたAI搭載のチャットです。Quick Chatは編集中の行で直接動作するため、デベロッパーはコードから一切離れずにリアルタイムでサポートを得られます。リファクタリング、バグの修正、テストの作成など、どのような状況であっても、Quick Chatによりその場で提案や説明が提供されるため、ツール間の移動による頭の切り替えが不要になり、完全に集中し続けることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#in-the-editor-window)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15218)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/5JbAM5g2VbQ?si=P58oz2nyORFl538a\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Duoコード提案でのセルフホストモデルの使用(ベータ版)\n\nSaaS: -  \nSelf-Managed: Ultimate、Duo Enterprise\n\nGitLab承認の大規模言語モデル（LLM）を、自社のインフラ環境でホストして、コード提案のデータソースとして設定できるようになりました。この機能はベータ版で、UltimateとDuo Enterpriseのサブスクリプションをお持ちであれば、Self-ManagedのGItLab環境でご利用いただけます。  \nセルフホストモデルでは、オンプレミスまたはプライベートクラウドでホストしたモデルを使用して、コード提案を有効化できます。現在は、vLLMまたはAWS Bedrockを介してオープンソースのMistralモデルをサポートしています。セルフホストモデルを利用することで、エンタープライズレベルのデータ主権とプライバシーを維持しながら、生成AIの力を活用できます。  \n[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/498376)から、ぜひフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/self_hosted_models/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/498114)\n\n![self-hosted-beta](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687327/Blog/Content%20Images/self-hosted-beta.png)\n\n### コード提案使用状況のエクスポート\n\nSaaS: Ultimate、Duo Enterprise  \nSelf-Managed: Ultimate、Duo Enterprise\n\nこれまでAIインパクト分析は、GitLab.comでGitLab Duo Enterpriseを利用するお客様、およびGitLab Self-ManagedでClickHouseとのインテグレーションを利用するお客様に対してのみ提供されていました。さらに、デフォルトのメトリクスは集約されたものだけでした。\n\n本リリースでは、生データのコード提案イベントをGraphQL APIからエクスポートできるようになりました。この機能を使用してデータをデータ分析ツールにインポートすれば、提案のサイズ、言語、利用者など、より多くの側面から採用率に関するより詳しいインサイトを得られます。ClickHouseに生データは保存されないため、一部のAIインパクト分析メトリクスは、GitLab DedicatedやSelf-Managedを含めたGitLabの全デプロイで利用可能です。  \n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/#codesuggestionevent)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/477231)\n\n### GitLab Duo Chatとのマージリクエストに関する対話\n\nSaaS: Ultimate、Duo Enterprise  \nSelf-Managed: Ultimate、Duo Enterprise\n\nみなさまからのお寄せいただいたフィードバックに応え、GitLab Duo Chatがマージリクエストを認識するようになりました。レビュアーや作成者がマージリクエストについてDuo Chatとチャットで会話することで、マージリクエストについてすばやく調べたり、次に何をすべきかを確認したりできるようになりました。手順は簡単で、マージリクエストを開いてからDuo Chatを開き、会話を始めるだけです。\n\nこの新機能は既存の機能を補完するものです。GitLab Duoに「[コード変更のサマリー](https://docs.gitlab.com/ee/user/project/merge_requests/duo_in_merge_requests.html#generate-a-description-by-summarizing-code-changes)の作成を依頼することでマージリクエストの説明をすばやく入力でき、レビュアーはマージリクエストの概要を把握できます。  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples#ask-about-a-specific-merge-request)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/464587)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/4muvSFuWWL4?si=Btvvv1S9Evh3g8I1\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### ブランチルール編集機能の強化\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate \n\nGitLab 15.10では、[ブランチ関連の設定とルールが1つのページで表示されるようになり](https://about.gitlab.com/releases/2023/03/22/gitlab-15-10-released/#see-all-branch-related-settings-together)ました。これにより、複数の設定が適用されたプロジェクトの構成を簡単に理解できるようになりました。\n\n本リリースでは、この機能をベースに、ブランチ保護、承認ルール、外部ステータスチェック設定を含め、特定のブランチルールをこのページ上で直接変更できるようになりました。これらの新機能を土台としてブランチ設定の[継続的な改善](https://gitlab.com/groups/gitlab-org/-/epics/12546)に取り組み、将来的にはさらに柔軟に設定できるようになる予定です。\n\nぜひ新機能を活用し、フィードバックをお寄せください。フィードバックは、専用の[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/486050)からお寄せいただけます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/branches/branch_rules.html#create-a-branch-rule)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/8075)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/lUteytQOiYc?si=qx9YoimLTKVmnQ0_\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### スイッチボードにGitLab Dedicatedテナント概要を追加\n\nSaaS: -\nSelf-Managed: Ultimate\n\nスイッチボードに新たにテナント概要が追加され、GitLab Dedicatedインスタンスに関する重要な情報にまとめてアクセスできるようになりました。\n\n今回のリリースで初めて追加されたこの機能により、現在お使いのGitLabのバージョン、インスタンスのURL、今後予定されているメンテナンス期間と過去のメンテナンス期間の日時をすべてテナント概要ページで確認できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/dedicated/tenant_overview.html) \n[イシュー](https://about.gitlab.com/direction/saas-platforms/switchboard/#roadmap)\n\n![switchboard-tenant-overview](https://about.gitlab.com//about.gitlab.com/images/17_5/switchboard-tenant-overview.png)\n\n### シークレットプッシュ保護の一般提供を開始\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLab Ultimateをご利用のすべてのお客様を対象に、シークレットプッシュ保護の一般提供を開始しました。\n\nキーやAPIトークンなどのシークレット情報が誤ってGitリポジトリにコミットされた場合、リポジトリにアクセスできる人なら誰でも、情報を悪用する目的でそのシークレットのユーザーになりすますことができます。シークレットが流出すると、時間とコストがかかり、企業の評判に悪影響が及ぶ可能性があります。シークレットプッシュ保護は、そもそもシークレットがプッシュされないように保護することで、修正時間を削減し、リスクを軽減します。\n\nシークレットプッシュ保護機能は、ベータ版から改善されました。Git CLIを用いてコミットをプッシュすると、変更点（差分）のみを対象にスキャンが実行され、シークレットの有無を確認するようになりました。また、誤検出を防ぐために、パスやルール、特定の値を除外する実験的サポートも追加されました。\n\n詳細については、[ブログ記事（英語）](https://about.gitlab.com/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/13107)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/SFVuKx3hwNI?si=T2WPfTiMVHnzslEX\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab.comで認証情報インベントリが利用可能に\n\nSaaS: Ultimate  \nSelf-Managed: -\n\nGitLab.comのトップレベルグループのオーナーは、認証情報インベントリをご利用いただけるようになりました。認証情報インベントリでは、グループで使用される[エンタープライズユーザーの](https://docs.gitlab.com/ee/user/enterprise_user/)パーソナルアクセストークンとSSH鍵を閲覧できます。また、認証情報の失効や削除に加え、追加情報の表示も可能です。これまで認証情報インベントリは、GitLab Self-Managedの管理者のみが利用できました。\n\nグループオーナーは認証情報インベントリを使用することで、自分の管理権限内にある認証情報を把握できるため、可視性が高まります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/credentials_inventory.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/297441)\n\n![govern_credentialsinventory](https://about.gitlab.com//about.gitlab.com/images/17_5/govern_credentialsinventory.png)\n\n### 依存関係リストでのコンポーネントによるフィルタリング\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLabで、特定の依存関係コンポーネントをすばやくフィルタリングして、グループまたはプロジェクトで使用されているかどうかを特定できるようになりました。特定のパッケージやバージョンが使用されているかを確認するためだけに、手動で全リストを調べるのは面倒で、時間もかかります。新たに依存関係リストで**コンポーネントごとにフィルタリング**を行えるようになったことで、脆弱な依存関係を取り出して、アプリケーションのリスクを評価できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dependency_list/#filter-dependency-list)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/12652)\n\n![component_filter_dependency_list](https://about.gitlab.com//about.gitlab.com/images/17_5/component_filter_dependency_list.png)\n\n## GitLab 17.5でリリースされたその他の改善点\n\n### コーディングエクスペリエンスの向上！Windows用Visual StudioでDuo Chatが利用可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise  \nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nDuo ChatがWindows用Visual Studioにシームレスに統合され、開発ワークフローを強化できるようになりました。AI搭載機能を活用してコードの説明、改良、デバッグ、テストの作成をすべてリアルタイムで行うDuo ChatをVisual Studio上で使用できることで、コーディングエクスペリエンスを向上させます。この統合により、使い慣れた開発環境で直接Duo Chatの高度なAIツールを活用できるため、生産性が向上するとともに、より迅速かつ効率的に問題解決を行えます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html#use-gitlab-duo-chat-in-visual-studio-for-windows)  \n[エピック](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/77)\n\n![duo-chat-visual-studio](https://about.gitlab.com//about.gitlab.com/images/17_5/duo-chat-visual-studio.png)\n\n### コンテナレジストリタグ操作時のAPIパフォーマンスの向上\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab Self-Managedインスタンス用のコンテナレジストリAPIが大幅に改善されました。GitLab 17.5リリースで、`:id/registry/repositories/:repository_id/tags`エンドポイントにキーセットページネーションが実装され、GitLab.comでは既に提供されていた機能をご利用いただけるようになりました。この機能強化は、APIパフォーマンスの改善と、デプロイ方法に左右されることなくGitLabで一貫したエクスペリエンスを提供することを目的とした、継続的な取り組みの一環です。\n\nキーセットページネーションを使用すると、大規模なデータセットをより効率的に処理でき、結果としてパフォーマンスとユーザーエクスペリエンスが向上します。このアップデートにより、リポジトリタグをよりスムーズに操作できるようになったため、特に大規模なコンテナレジストリを管理する場合に特に効果的です。この機能を使用するには、Self-Managedインスタンスを[次世代のコンテナレジストリ](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html)にアップグレードする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repository-tags)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/482399)\n\n### REST APIを使用したエージェントおよびGitOps環境の設定\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nポッドのステータスとFluxの調整は、GitLab環境のUIから確認できます。ただし、この方法では、GraphQLかUIを使用しない限り必要な設定を確認できないため、スケーリングが難しい一面があります。本リリースから、Kubernetes用エージェントの設定と、環境ごとのネームスペースやFluxリソースの設定を行うREST APIサポートがGitLabに含まれるようになりました。動的な環境のサポートをさらに強化するために、[イシュー467912](https://gitlab.com/gitlab-org/gitlab/-/issues/467912)では、CI/CDパイプラインでこれらの設定のサポートを実装することが提案されています。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/environments.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/412677)\n\n### ファイアウォールで保護されたGitLabインストール環境向けにKubernetesインテグレーションをサポート\n\nSaaS: -\nSelf-Managed: Ultimate\n\nこれまで、Kubernetes用エージェントを使用できるのは、GitLabインスタンスにKubernetesクラスターが接続可能な場合のみでした。このような制限があることで、たとえばプライベートネットワーク上やファイアウォール経由でGitLabを実行しているお客様は、エージェントを使用できませんでした。GitLab 17.5からは、適切に設定された`agentk`インスタンスが接続開始を待機していることを前提とすることで、GitLabからクラスターとGitLab間の接続を開始できます。\n\n最初の接続が確立されると、エージェントの全機能を利用できるようになります。本リリースでは、クラスターからの初期化に関しては変更はありません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/#receptive-agents) \n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/437014)\n\n### GitLab UIからGitOpsの調整を一時停止または再開できるように\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nFluxを使用する中で、これまでに自動調整やドリフトの修正をすぐに停止せざるを得なかったことや、`HelmRelease`をトリガーして手動で削除したリソースを同期したいと思ったことはないでしょうか。このようなアクションは、Fluxの一時停止および再開機能を使用することで最も効果的に実現できます。これまではFlux CLIが利用可能な最良の方法でしたが、この方法では、ツール間の移動により頭の切り替えが発生するだけでなく、適切なリソースが対象となるようにコマンドをいくつか実行する必要がありました。GitLab 17.5では、Kubernetes用に組み込まれたダッシュボードから調整を一時停止または再開できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#suspend-or-resume-flux-reconciliation)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/478380)\n\n### プロジェクトレベルでのコンプライアンスセンターへのアクセス\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nこれまで、コンプライアンス センターは最上位のグループとサブグループでのみ利用可能でした。\n\n今回のリリースでは、プロジェクトにもコンプライアンスセンターが追加されました。プロジェクトレベルでのコンプライアンスセンターでは、特定のプロジェクト関連のチェックおよび違反の閲覧のみ行えます。\n\nフレームワークを追加または編集する場合は、プロジェクトレベルではなく、トップレベルグループのコンプライアンスセンターにアクセスする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/441350)\n\n### エンタープライズユーザーのパスワード認証を無効にする\nSaaS: Premium、Ultimate  \nSelf-Managed: -\n\nエンタープライズユーザーは、ユーザー名とパスワードを使用してローカルアカウントで認証を行えます。本リリースでは、グループオーナーが、グループのエンタープライズユーザーのパスワード認証を無効にできるようになりました。パスワード認証が無効になっている場合、エンタープライズユーザーは、グループのSAML Identity Providerを使用してGitLabのWeb UIで認証するか、もしくはパーソナルアクセストークンを使用して、GitLab APIやGitでHTTP基本認証を行えます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/saml_sso/#disable-password-authentication-for-enterprise-users)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/373718)\n\n### コンプライアンスパイプラインからセキュリティポリシーへの移行プロセス\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLab 17.3では、コンプライアンスパイプラインの非推奨化と、GitLab18.0リリースでの削除を発表しました。コンプライアンスパイプラインの代わりに、GitLab 17.2でリリースされたパイプライン実行ポリシータイプを使用することが推奨されます。\n\n既存のコンプライアンスパイプラインからパイプライン実行ポリシータイプへの移行を促すために、本リリースでは次の目的で警告バナーが表示されます。\n\n* コンプライアンスパイプラインの非推奨化に関するユーザーへの通知  \n* 既存のコンプライアンスパイプラインからパイプライン実行ポリシータイプへの移行を促すプロンプトと移行のガイド付きワークフローの提供\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/compliance_pipelines.html#pipeline-execution-policies-migration)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/11275)\n\n### APIを使用したトークンの関連付けの表示\n\nSaaS: Free、Premium、Ultimate\nSelf-Managed: Free、Premium、Ultimate\n\nトークンがどのグループ、サブグループ、またはプロジェクトに関連付けられているかを確認できるようになりました。これにより、トークンの有効期限や失効による影響を判断し、どこでトークンが使用可能であるかを把握しやすくなります。 \n\n[ドキュメント](https://docs.gitlab.com/ee/api/personal_access_tokens.html#list-token-associations) \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466046)\n\n### GitLabチャートの改善\n\nSaaS: -  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.5では、NGINX Ingressコントローラーのバージョンがアップデートされました。本リリースに含まれる`nginx-controller`コンテナイメージのバージョンは1.11.2です。なお、新しいコントローラーではEndpointSliceが使用されており、EndpointSliceへのアクセスにはRBACルールが必要になるため、新しいRBAC要件が含まれていますのでご注意ください。\n\n[ドキュメント](https://docs.gitlab.com/charts/)\n\n### オムニバスの改善  \nSaaS: -  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLab 17.5では、単一ノードのインストール時にPostgreSQLをバージョン14.xから16.xにアップグレードできるようになりました。自動アップグレードは有効でないため、手動でPostgreSQLのアップグレードを実行する必要があります。\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\n\n### GitLab Runner 17.5\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.5もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n**新機能：**\n\n* [スコープ指定された一時的な認証情報によるAWS S3のマルチパートアップロードをサポート](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26921)\n\n**バグの修正：**\n\n* [すべてのサービスコンテナが実行されていなければ、追加サービスを含むジョブが完了しない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38035)問題  \n* [Amazon Linux 2で`gitlab-runner-fips-17.4.0-1`パッケージの実行に失敗し、glibcエラーが返される](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38034)問題  \n* [S3 Express One Zoneエンドポイントを使用していると、Amazon S3でキャッシュが機能しない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37394)問題  \n* [`DOCKER_AUTH_CONFIG`変数に複数のレジストリが指定されている場合、ジョブがベースイメージをプルできない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28073)問題\n\n[ドキュメント](https://docs.gitlab.com/runner)  \n\n### 保護パッケージを使用して依存関係を守る\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: -\n\n本リリースでは、NPMの保護パッケージが新たにサポートされました。こちらは、GitLabパッケージレジストリのセキュリティと安定性を強化することを目的として設計された新機能です。急速に変化するソフトウェア開発の現場においては、パッケージを誤って変更または削除してしまった場合、開発プロセス全体に混乱が生じる可能性があります。保護パッケージを使用すると、意図せぬ変更を防いで最も重要な依存関係を保護できます。\n\nGitLab 17.5からは、保護ルールを作成してNPMパッケージを保護します。保護ルールの条件をパッケージが満たした場合、指定されたユーザーのみがパッケージを更新または削除できます。この機能を使用すると、手動による監視の必要性を減らすことにより、意図せぬ変更の防止、規制要件へのコンプライアンスの強化、ワークフローの効率化を実現できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/472655)\n\n![protected_npm_packages](https://about.gitlab.com//about.gitlab.com/images/17_5/protected_npm_packages.png)\n\n### GitLabのKubernetesインテグレーションが簡単に立ち上げ可能に\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabは、[Kubernetes用エージェント](https://docs.gitlab.com/ee/user/clusters/agent/)と[Fluxとのインテグレーション](https://docs.gitlab.com/ee/user/clusters/agent/gitops.html)を通じて、柔軟で信頼性が高く、安全なGitOpsサポートを提供していますがGitLabでFluxを立ち上げてKubernetes用エージェントを設定するには、さまざまなドキュメントを読み、GitLab UIとターミナル間で移動して作業を行う必要がありました。本リリースでは、GitLabに[`glab cluster agent bootstrap`コマンド](https://gitlab.com/gitlab-org/cli/-/blob/main/docs/source/cluster/agent/bootstrap.md)が追加され、インストール済みのFlux上に簡単にエージェントをインストールできるようになりました。これにより、たった2つの簡単なコマンドでFluxとエージェントを設定できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/install/#bootstrap-the-agent-with-flux-support-recommended)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/473987)  \n\n### Kubernetesリソースイベントのストリーミング\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nGitLabでは、Kubernetes用のダッシュボード上に、ポッドとポッドのログストリームのすべてがリアルタイムで表示されます。GitLab 17.4では、リソース固有のイベント情報の静的リストをUIから確認できるようになりました。今回のリリースではKubernetes用のダッシュボードをさらに強化し、クラスター内で発生した受信イベントをストリーミングできるようにしました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/470042)  \n\n### 高度なSASTでのRubyのサポートとルールの更新\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLabの高度なSASTのサポート対象として、新たにRubyを追加しました。Rubyを対象にファイルや機能をまたがるスキャンを実行するには、[高度なSASTを有効にしてください](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast/#enabling-advanced-sast-scanning)。高度なSASTがすでに有効な場合は、Rubyのサポートも自動的に有効になります。\n\nまた、[高度なSASTでサポートされる他の言語](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast/#supported-languages)の検出ルールを改善するために、次のアップデートを先月リリースしました。\n\n* 新たなJavaパストラバーサル、Javaコマンドインジェクション、JavaScriptパストラバーサルの脆弱性を検出  \n* 脆弱性の種類をより具体的かつ一貫性を持って特定できるようにCWEマッピングを更新  \n* パストラバーサルの脆弱性の重大度を増加\n\n高度なSASTが各言語で検出できる脆弱性の種類を確認するには、新しい[高度なSASTのカバレッジページ](https://docs.gitlab.com/ee/user/application_security/sast/advanced_sast_coverage/)を参照してください。\n\n高度なSASTの詳細については、[先月の一般提供の発表に関するブログ記事](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available)でご覧いただけます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast/)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14425)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/457969) \n\n### セキュリティポリシーのスコープにグループを追加\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nセキュリティポリシーのスコープにグループやサブグループを含められるようになりました。これは既存のオプションを拡張するもので、グループやサブグループ内の全プロジェクト、定義されたプロジェクトリストに記載されているプロジェクト、コンプライアンスフレームワークラベルのリストと一致するプロジェクトを対象にできるようになりました。\n\n今回のアップデートにより、グループ全体でポリシーを有効にする際の柔軟性がさらに高まります。また、必要に応じてスコープに例外を適用して、プロジェクトにポリシーが適用されないようにすることも可能です。\n\nこの改善以外にも、セキュリティポリシープロジェクトをリンクし、スコープをきめ細かく設定してポリシーを実施するプロセスを簡素化する、さまざまな[機能強化](https://gitlab.com/groups/gitlab-org/-/epics/5446)を今後も行っていく予定です。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#security-policy-scopes)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14149)\n\n![scope-all-projects-in-linked-groups](https://about.gitlab.com//about.gitlab.com/images/17_5/scope-all-projects-in-linked-groups.png)\n\n### ユーザー管理サマリーの改善\nSaaS: -  \nSelf-Managed: Free、Premium、Ultimate\n\n管理者エリアで、インスタンス上のユーザーに関する次の重要な情報のサマリーが表示されるようになりました。\n\n* 承認保留中  \n* 2要素認証なし  \n* 管理者\n\n管理者は、サマリービューで何人のユーザーが上記の状態にあるかをすばやく確認し、フィルタリングできるため、ユーザ管理の効率性が向上します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/account/create_accounts.html#create-users-in-admin-area)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/456332)\n\n![govern_admin_statcards](https://about.gitlab.com//about.gitlab.com/images/17_5/govern_admin_statcards.png)\n\n### SAMLシングルサインオンの適用が選択可能に\nSaaS: -  \nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、SAML SSOが有効な場合、グループはSSOの強制を選択できました。その場合、すべてのユーザーがグループにアクセスする際に、SSO認証を使用する必要がありました。しかし、グループによっては、従業員やグループメンバーに対してはSSOを実施してセキュリティを確保したい一方で、外部のコラボレーターや請負業者に関してはSSOなしでグループにアクセスできるようにしたい場合もあります。\n\n本リリースでは、SAML SSOが有効なグループでは、SAML IDを持つすべてのメンバーに対して自動的にSSOが実施されますが、SAML IDを持たないグループメンバーには、SSOの実施が明示的に有効化されていない限り、SSOの使用が求められません。\n\nメンバーがSAML IDを持っているとみなされるのは、次のいずれかまたは両方に該当する場合です。\n\n* GitLabグループのシングルサインオンURLを使用してGitLabにサインイン済みの場合  \n* SCIMを用いてプロビジョニングされた場合\n\nSSOの強制の選択をスムーズに動作させるには、「**このグループのSAML認証を有効にします**」チェックボックスをオンにする前に、SAMLの設定が正しく動作しているかどうかを確認してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/sign_in_restrictions.html#disable-password-authentication-for-users-with-an-sso-identity)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/382917)  \n\n## 実験的な機能\n\n### JavaとPythonにおける静的な到達可能性のサポート\n本リリースでは、コンポジション解析でJavaとPythonにおける静的な到達可能性をサポートしました。\n\n静的な到達可能性のサポートにより、ソフトウェアコンポジション解析（SCA）で得られる結果がより充実します。静的な到達可能性機能では、GitLabの高度なSASTによってプロジェクトのソースコードをスキャンし、使用中のオープンソースの依存関係を特定します。  \n\nトリアージや修正に関する意思決定を行う上で、静的な到達可能性によって生成されたデータを参考にできます。また、静的な到達可能性データをCVSS（共通脆弱性評価システム）スコアと一緒に使用すれば、より焦点を絞って脆弱性を確認することも可能です。\n\nこの機能は実験的に導入されました。有効にするには、`.gitlab-ci.yml`ファイルまたは[プロジェクト変数](https://docs.gitlab.com/ee/ci/variables/#for-a-project)で`STATIC_REACHABILITY_ENABLED`変数を設定してください。この機能の詳細については、[解説動画](https://www.youtube-nocookie.com/embed/_SVhcfcy9N8)をご視聴ください。\n\nみなさまからのフィードバックをお待ちしています。ご質問やコメントがある場合、またはGitLabチームとのやり取りをご希望の場合は、こちらの[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/498526)をご覧ください。  \n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n以下のリンクをクリックして、17.5のバグ修正、パフォーマンスの強化、UI改善についてすべてご覧ください。\n\n* [バグの修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.5)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.5)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.5)\n\n## 非推奨事項 \n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n-   [スキャン実行ポリシーで\\`scan\\`アクションを制限](https://docs.gitlab.com/ee/update/deprecations.html#limited-scan-actions-in-a-scan-execution-policy)  \n- [\\`mergeTrainIndex\\`および\\`mergeTrainsCount\\` GraphQLフィールドを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#mergetrainindex-and-mergetrainscount-graphql-fields-deprecated)\n- [GitLab Runner Docker Machine Executorを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#gitlab-runner-docker-machine-executor-is-deprecated)\n- [\\`ciUsedMinutes\\` GraphQLフィールドの名前を\\`ciDuration\\`に変更](https://docs.gitlab.com/ee/update/deprecations.html#ciusedminutes-graphql-field-renamed-to-ciduration)\n- [\\`ciJobTokenScopeAddProject\\`のGraphQL変異を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#cijobtokenscopeaddproject-graphql-mutation-is-deprecated)\n- [ネームスペースの\\`add\\_on\\_purchase\\` GraphQLフィールドを\\`add\\_on\\_purchases\\`に置き換え](https://docs.gitlab.com/ee/update/deprecations.html#replace-namespace-add_on_purchase-graphql-field-with-add_on_purchases)\n\n### 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n### GitLab 17.5へのアップグレードに関する重要なお知らせ\n\n* Gitlab 17.5以降のバージョンでは、Ruby 3.2が必要です。管理者が[ソースからインストール](https://docs.gitlab.com/ee/install/installation.html)して、GitLab 17.5以降のバージョンにアップグレードする場合、Ruby 3.2以降のバージョンが必要となります。現時点では、それ以外にユーザーによる対応は必要ありません。この変更が必要な理由は、2025年3月31日をもってRuby 3.1のサポートが終了し、公式のアップデートやサポートが提供されなくなるためです。GitLabでは、今後も[現在の安定バージョンのリリースに加え、セキュリティ修正を過去2回の月例リリース用に移植する](https://docs.gitlab.com/ee/policy/maintenance.html)方針を継続します。\n\nGitLab 17.5には、NGINXコントローラーコンテナイメージの新バージョン（`1.11.2`）が含まれています。新しいコントローラーではEndpointSliceが使用されており、アクセスにはRBACルールが必要となります。アップグレードする前に、新しいコンテナイメージを設定してください。  \n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)   \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)   \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)   \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項 \n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Freeプラン](https://about.gitlab.com/ja-jp/pricing/) \n\n  個人ユーザー向けの永久無料機能を提供\n\n* [Premiumプラン](https://about.gitlab.com/ja-jp/pricing/premium/) \n\n  チームの生産性と調整を強化\n\n* [Ultimateプラン](https://about.gitlab.com/ja-jp/pricing/ultimate/) \n\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)\n（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n\n### 過去の日本語リリース情報\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-01-16",{"slug":1204,"featured":91,"template":685},"gitlab-17-5-released","content:ja-jp:blog:gitlab-17-5-released.yml","Gitlab 17 5 Released","ja-jp/blog/gitlab-17-5-released.yml","ja-jp/blog/gitlab-17-5-released",{"_path":1210,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1211,"content":1217,"config":1223,"_id":1225,"_type":14,"title":1226,"_source":16,"_file":1227,"_stem":1228,"_extension":19},"/ja-jp/blog/gitlab-17-6-release",{"title":1212,"description":1213,"ogTitle":1212,"ogDescription":1213,"noIndex":6,"ogImage":1214,"ogUrl":1215,"ogSiteName":669,"ogType":670,"canonicalUrls":1215,"schema":1216},"GitLab 17.6リリース","GitLab 17.6でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662194/Blog/Hero%20Images/product-gl17-blog-release-cover-17-6-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-6-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.6リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-11-21\",\n      }",{"title":1212,"description":1213,"authors":1218,"heroImage":1214,"date":1219,"body":1220,"category":705,"tags":1221,"updatedDate":1222},[853],"2024-11-21","**セルフホストモデルが使用可能になったDuo Chat（ベータ版）を含むGitLab 17.6をリリース**\n\nこのたび、GitLab 17.6のリリースを発表しました。このリリースでは、セルフホストモデルが使用可能になったDuo Chat（ベータ版）、SASTとDASTセキュリティスキャナーの遵守チェック、脆弱性レポートのグループ化、モデルレジストリの一般提供など、さまざまな機能が追加されました！  \n\nこれらの機能は、今回のリリースに含まれる約150件の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.6には、GitLabコミュニティのユーザーから265件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。  \n来月のリリースで予定されている内容を先取りするには、17.7リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。\n\n> [GitLab 17.6では、セルフホストモデルが使用可能になったDuo Chatが追加されました。クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+17.6+released+with+self-hosted+Duo+Chat+in+beta&url=https://about.gitlab.com/releases/2024/11/21/gitlab-17-6-released/&hashtags=)\n\n## 今月のMost Valuable Person [MVP](https://about.gitlab.com/community/mvp/)は[Joel Gerber](https://gitlab.com/Jitsusama)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。現在の候補者を応援したり、他の誰かをノミネートしてみませんか。🙌  \n\nJoelさんは、CIコンポーネントへの非常に貴重なコントリビューターとしての実績に加え、マージリクエストに関する洞察に富んだフィードバックや複雑なディスカッションに対する思慮深いコメントを寄せたことが評価されました。Joelさんのコントリビュートには、[CI/CDカタログのUIの改良](https://gitlab.com/gitlab-org/gitlab/-/issues/464703)、要望の多かったGitLab Terraform Providerのドキュメントの改善、[ジョブログのタイムスタンプ](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164595)、[UI/UXチームへのフィードバックの提供](https://gitlab.com/gitlab-org/gitlab/-/issues/482524#note_2089551197)などが挙げられます。  \n\n[HackerOne社](https://www.hackerone.com/)のスタッフソフトウェアエンジニアであるJoelさんのコントリビュートと貴重なフィードバックの提供実績を評価し、推薦したのは、[Lee Tickett](https://gitlab.com/leetickett-gitlab)です。Leeは、GitLabのコントリビューターサクセスチームに所属するスタッフフルスタックエンジニアです。 \n\nLeeに続き、GitLabのシニア製品デザイナーである[Gina Doyle](https://gitlab.com/gdoyle)も、Joelさんを推薦しました。「GitLabでは多くのディスカッションが行われていたため、MRのプロセスが複雑になっていました。そのような状態でも、Joelさんは忍耐強く、そして積極的にディスカッションに参加し続け、コントリビュートしてくれました」とGinaは述べています。  \n\nまた、GitLabのスタッフ製品デザイナーである[Sunjung Park](https://gitlab.com/sunjungp)も次のように述べ、Joelさんの功績を讃えました。「Joelさんは、CI/CDカタログのイシューであったUIの改良にもコントリビュートしてくれました。Joelさんのおかげで、ユーザーインターフェイスが整い、他のエリアとの一貫性も保たれています」  \n\nJoelさんのコントリビュートを始め、GitLabにコントリビュートしてくださっているオープンソースコミュニティのみなさまに心より感謝します！\n\n## GitLab 17.6でリリースされた主な改善点\n\n### セルフホストモデルが使用可能になったGitLab Duo Chat\n\nSaaS: -\n\nSelf-Managed: Ultimate、Duo Enterprise\n\n選択した大規模言語モデル（LLM）を独自のインフラストラクチャでホストし、そのモデルをGitLab Duo Chatのソースとして設定できるようになりました。この機能はベータ版です。UltimateとDuo Enterpriseのサブスクリプションをお持ちであれば、Self-ManagedのGitLab環境でご利用いただけます。\n\nセルフホストモデルを使用すると、オンプレミスまたはプライベートクラウドでホストされたモデルを、GitLab Duo ChatまたはGitLab Duoコード提案（ベータ機能としてGitLab 17.5で導入）のソースとして利用できます。コード提案は現在、vLLMまたはAWS BedrockではオープンソースのMistralモデル、AWS BedrockではClaude 3.5 Sonnet、Azure OpenAIではOpenAIモデルをサポートしています。Duo Chatでは、vLLMまたはAWS BedrockではオープンソースのMistralモデル、AWS BedrockではClaude 3.5 Sonnetをサポートしています。セルフホストモデルを利用することで、エンタープライズレベルのデータ主権とプライバシーを維持しながら、生成AIの力を活用できます。\n\n[イシュー501268](https://gitlab.com/gitlab-org/gitlab/-/issues/501268)から、ぜひフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/self_hosted_models/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501267)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_6/self-hosted-models-ui-17.6.png\">\n\n### マージリクエストのレビュアーの割り当ての強化\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\n慎重に変更内容を練り上げて、マージリクエストを準備したら、次のステップはプロセスを進めてくれるレビュアーを特定することです。マージリクエストに対し適切なレビュアーを特定するには、承認者として誰が適切であるか、また、提案する変更に関連する分野の専門家（コードオーナー）が誰であるかを見極める必要があります。  \n\nレビュアーを割り当てる際は、サイドバーでマージリクエストの承認要件とレビュアーの関連付けを行います。各承認ルールを閲覧してから、その承認ルールを満たしてマージリクエストを実行できる承認者を選択します。[オプションの「コードオーナー」セクション](https://docs.gitlab.com/ee/user/project/codeowners/#make-a-code-owners-section-optional)を使用する場合は、これらのルールもサイドバーに表示されるため、変更内容に関連する分野を得意とするレビュアーを見つけるのに役立ちます。  \n\nこのレビュアーの割り当ての強化により、GitLabにおけるレビュアーの割り当てプロセスが飛躍的に向上しました。これまではどのレビュアーをアサインすればよいか見極めるのに悩むことがありましたが、過去の判定処理に基づいて強化された本機能でその悩みが解消されます。なお、[今後のレビュアーの割り当てのイテレーション](https://gitlab.com/groups/gitlab-org/-/epics/14808)では、レビュアーの推薦やランク付けを行う際に使用する判定処理を引き続き強化していく予定です。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge_requests/reviews/#request-a-review)\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/12878)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_6/create-enhanced-reviewer-assignment.png\">\n\n### ワークスペースでのプライベートコンテナレジストリのサポート\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nGitLabワークスペースで、プライベートコンテナレジストリがサポートされるようになりました。この設定を使用すると、任意のプライベートレジストリからコンテナイメージをプルすることができます。Kubernetesクラスターに有効なイメージプルシークレットがあれば、[GitLabエージェントの設定](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html)からそのシークレットを参照できます。  \n\nこの機能により、特にカスタムコンテナレジストリやサードパーティのコンテナレジストリを使用するチームのワークフローが簡素化されるとともに、コンテナ化された開発環境の柔軟性とセキュリティが向上します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/configuration.html#configure-support-for-private-container-registries)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14664)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/yPrJKAwwaB0?si=4PHEC08_xCy2xJ8B\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### ワークスペースで拡張機能マーケットプレースが利用可能に\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nワークスペースで拡張機能マーケットプレースを利用できるようになりました。拡張機能マーケットプレースでは、サードパーティの拡張機能を検索、インストール、管理できるため、開発体験が向上します。何千種類もの拡張機能から選択して、生産性の向上、ワークフローのカスタマイズを実現できます。  \n\nデフォルトでは、拡張機能マーケットプレースは無効になっています。利用を開始するには、ユーザー環境設定に移動して、[拡張機能マーケットプレースを有効にする](https://docs.gitlab.com/ee/user/profile/preferences.html#integrate-with-the-extension-marketplace)をオンにします。エンタープライズユーザーの場合は、トップレベルグループのオーナーロールを持つユーザーのみが[拡張機能マーケットプレースを有効にする](https://docs.gitlab.com/ee/user/enterprise_user/#enable-the-extension-marketplace-for-the-web-ide-and-workspaces)をオンにできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/web_ide/index.html#extension-marketplace)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/12443)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_6/extensions-marketplace.png\">\n\n### 終了のタイミングの遅延によるワークスペースライフサイクルの改善に\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\n本リリースでは、設定したタイムアウトが経過すると、ワークスペースが終了する代わりに、停止するようになりました。この機能を使用すると、いつでもワークスペースを再起動して、中断したところから再開できます。  \nデフォルトでは、ワークスペースは自動的に以下のように動作します。\n\n* ワークスペースが最後に起動または再起動されてから36時間後に停止する  \n* ワークスペースが最後に停止してから722時間後に終了する\n\nこれらの設定は、[GitLabエージェントの設定](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html)で行うことができます。  \nこの機能を使用すると、ワークスペースは停止してから1か月間ほど利用可能なままとなり、ワークスペースのリソースを最適化しつつ、進捗を保持できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/#automatic-workspace-stop-and-termination)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14910)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_6/workspace-suspend.gif\">\n\n### デプロイの詳細ページでのリリースノートの表示\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\n承認するよう求められたデプロイに一体何が含まれているのか、疑問に思ったことはありませんか。これまでのバージョンでは、リリース作成時に内容に関する詳細な説明やテスト手順を含めることはできたものの、関連する環境固有のデプロイに関してはデータが表示されませんでした。今回のリリースで、GitLabでは関連するデプロイの詳細ページにリリースノートが表示されるようになりました。  \n\nGitLabのリリースは必ずGitタグから作成されるため、タグによりトリガーされたパイプラインに関連するデプロイメントにのみ、リリースノートが表示されます。  \nGitLabのこの新機能は、[Anton Kalmykov](https://gitlab.com/antonkalmykov)さんがコントリビュートしてくれました。この場を借りて、Antonさんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/deployment_approvals.html#view-blocked-deployments)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/493260)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/deploy-automatically-show-release-notes.png\">\n\n### 管理者設定により、CI/CDジョブトークン許可リストの使用を強制\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate \n\n以前に、デフォルトのCI/CDジョブトークン（`CI_JOB_TOKEN`）の動作が[GitLab 18.0で変更される予定であり](https://docs.gitlab.com/ee/update/deprecations.html#default-cicd-job-token-ci_job_token-scope-changed)、引き続きプロジェクトにアクセスできるようにしたい場合は、明示的に個々の[プロジェクトやグループをプロジェクトのジョブトークン許可リスト](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#add-a-group-or-project-to-the-job-token-allowlist)に追加する必要があることを発表しました。  \n\n本バージョンからSelf-ManagedおよびGitLab Dedicatedインスタンスの管理者は、インスタンス上のすべてのプロジェクトに対して、より安全性の高いこの設定を強制できるようになりました。この設定を有効にすると、プロジェクトにおいてCI/CDジョブトークンを認証に使用したい場合、必ず許可リストを使用する必要があります。*注：セキュリティポリシーの強化の一環として、この設定を有効にすることをおすすめします。*\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#job-token-permissions)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/496647)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_6/allowlist_enforce_instance_toggle.png\">  \n\n### CI/CDジョブトークンによる認証の追跡\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、CI/CDジョブトークンによる認証を利用してご自身のプロジェクトにアクセスしている他のプロジェクトを追跡する機能はありませんでした。今回のリリースで認証ログが追加され、プロジェクトへのアクセスを簡単に監査および管理できるようになりました。  \n\n認証ログでは、ご自身のプロジェクトでジョブトークンによる認証を行った他のプロジェクトのリストをUI上で閲覧できるほか、CSVファイルにしてダウンロードできます。このデータは、プロジェクトへのアクセスの監査に使用できます。また、[ご自身のプロジェクトにアクセスできるオブジェクトヘの制御](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#control-job-token-access-to-your-project)を強化するために、ジョブトークン許可リストを作成する際に参考にできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#job-token-authentication-log)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467292)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/auth_log_allowlist.png\">\n\n### 脆弱性レポートのグループ化\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\n脆弱性をグループ別に表示する機能は、ユーザーにとって必須です。セキュリティアナリストは、グループに対して一括操作を適用することで、最適な方法でタスクをトリアージしやすくなります。さらに、ユーザーは自分が担当するグループに一致する脆弱性の数（OWASPトップ10の脆弱性の数など）を閲覧できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#group-vulnerabilities)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10164)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/vulnerability_report_grouping.png\">\n\n### モデルレジストリの一般提供を開始\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabのモデルレジストリの一般提供を開始しました。モデルレジストリは、既存のGitLabワークフローの流れの中で、機械学習モデルを一元的に管理できるハブです。モデルバージョンの追跡、アーティファクトとメタデータの保存に加え、モデルカード内で包括的なドキュメントを保持できます。  \n\nモデルレジストリはシームレスに統合できるように構築されているため、[MLflowクライアント](https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/mlflow_client.html)とネイティブに連携可能です。また、CI/CDパイプラインに直接接続し、自動化されたモデルのデプロイとテストを可能にします。データサイエンティストは、直感的なUIまたは既存のMLflowワークフローを介してモデルを管理できます。一方、MLOpsチームも、セマンティックバージョニングとCI/CDインテグレーションを活用して、[GitLab API](https://docs.gitlab.com/ee/api/model_registry.html)内で本番環境のデプロイをすべて効率化できます。  \n\n[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/504458)からお気軽にご意見をお寄せください。こちらから折り返しご連絡いたします。GitLabインスタンスで**「デプロイ」\\>「モデルレジストリ」**の順にアクセスして、ぜひご利用ください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/ml/model_registry/)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14998)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/model-registry-17.6.png\">\n\n### GitLab Dedicated向けの新しいテナントネットワーク設定\n\nSaaS: -\n\nSelf-Managed: Ultimate\n\nGitLab Dedicatedのテナント管理者は、スイッチボードを使ってアウトバウンドプライベートリンクとプライベートホストゾーンを設定できるようになりました。また、スイッチボードで定期的にスナップショットを閲覧して、ネットワーク接続をモニタリングすることも可能です。\n\nアウトバウンドプライベートリンクとプライベートホストゾーンを設定することで、AWSアカウント内のリソースとGitLab Dedicated間でセキュアなネットワーク接続を確立できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/network_security.html#outbound-private-link)  \n[イシュー](https://about.gitlab.com/direction/saas-platforms/switchboard/#fy25-q3)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/switchboard-tenant-networking-config.png\">\n\n### SASTとDASTセキュリティスキャナーの新しい遵守チェック\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nGitLabは、SAST、シークレット検出、依存関係スキャン、コンテナスキャンなど、幅広いセキュリティスキャナーを提供しており、これらを使用してアプリケーションにセキュリティの脆弱性が潜んでいないかチェックできます。\n何らかの方法で監査担当者や関係するコンプライアンス当局に対し、リポジトリへのセキュリティスキャナーの設定を義務付ける規制基準にアプリケーションが従っていることを示す必要があります。\n\n本リリースでは、こういった規制基準への遵守を証明するために、コンプライアンスセンターの基準遵守レポートに新しいチェックを2つ追加しました。新たに追加されたチェックは、グループ内のプロジェクトでSASTとDASTが有効になっているかどうかを点検します。これらのチェックにより、プロジェクトにおいてSASTとDASTセキュリティスキャナーが正しく実行され、パイプラインの実行により正しいアーティファクトを得られるかどうかを確かめることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_standards_adherence_dashboard.html#gitlab-standard)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/12661)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/dast_scanner_adherence.png\">\n\n## GitLab 17.6のリリースに含まれるその他の改善点\n\n### グループWebhookのプロジェクトイベント\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nこのリリースでは、グループWebhookにプロジェクトイベントが追加されました。次のような場合に、プロジェクトイベントがトリガーされます。\n\n* グループ内にプロジェクトが作成されたとき  \n* グループ内でプロジェクトが削除されたとき\n\nこれらのイベントは、[グループWebhook](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#group-webhooks)に対してのみトリガーされます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#project-events)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/359044)  \n\n### 任意のCI/CDジョブでのPagesサイトのデプロイ\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nPagesのデプロイジョブに「`pages`」という名前を付ける必要がなくなり、パイプラインをより柔軟に設計できるようになりました。今後は任意のCI/CDジョブで`pages`属性を使用するだけで、Pagesのデプロイをトリガーできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/#user-defined-job-names)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/232505)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/customizable-pages-job-name.png\">\n\n### ユーザーレベルでのGitLab Duo Enterpriseの利用状況メトリクスの取得\n\nSaaS: Ultimate、Duo Enterprise\n\nSelf-Managed: Ultimate、Duo Enterprise\n\nこれまでのリリースでは、GitLab Duo EnterpriseユーザーごとにGitLab Duo Chatおよびコード提案の使用状況データを取得することはできませんでした。それに対する改善として、17.6では、アクティブなGitLab Duo Enterpriseユーザーごとに、コード提案の採用数とDuo Chatとのインタラクションを可視化するGraphQL APIを追加しました。このAPIを使用すると、誰がどのGitLab Duo Enterprise機能をどのくらいの頻度で使用しているかといった情報を、より詳細に把握できます。この改善は、GitLabにおいて[GitLab Duo Enterpriseのより包括的な使用状況データを提供する](https://gitlab.com/groups/gitlab-org/-/epics/15026)という目標に向けた最初のイテレーションです。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/#aiusermetrics)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/483049)  \n\n### GitLab Duoでの企業ネットワークサポート\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nGitLab Duoプラグインの最新アップデートで、高度なプロキシ認証が導入され、デベロッパーは強固なファイアウォールで守られている企業環境にもスムーズに接続できるようになりました。既存のHTTPプロキシサポートをベースに構築されたこの機能拡張により、認証された接続を確立できるだけでなく、VS CodeとJetBrains IDE内でGitLab Duo機能に安全な方法で中断なくアクセスすることが可能です。\n\nデベロッパーは制限されたネットワーク環境において安全な方法で認証して接続する必要があるため、今回のアップデートは非常に重要と言えるでしょう。これにより、セキュリティを損なうことなく、GitLab Duoの全機能を利用できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/editor_extensions/language_server/#enable-proxy-authentication)  \n[イシュー](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/issues/159)  \n\n### GitLab Runner 17.6\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.6もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。  \n\nバグ修正\n\n* [GitLab Runner 17.5.0で、ポッドが追加できる状態にならない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38260)  \n* [フリートプラグインのインストール時に`exec format error`が発生して、Runnerがクラッシュする](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38247)  \n* [OOMKill 実行時に、cgroup v2が有効であるKubernetes executerポッドがハングする  ](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38244)\n* [設定テンプレートを使用してRunnerを登録すると、Runnerのデフォルトが適用されない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38231)  \n* [execモードを使用している場合、ポーリング期間中にKubernetesポッドが追加可能な状態になるまで、GitLab Runnerが待機状態になる](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37244)  \n* [`FF_GIT_URLS_WITHOUT_TOKENS`機能フラグが有効な場合、認証の問題が発生する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38268)\n\n[ドキュメント](https://docs.gitlab.com/runner)  \n\n### macOS Sequoia 15およびXcode 16のジョブイメージ\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: -\n\nmacOS Sequoia 15とXcode 16を使用して、最新世代のAppleデバイス向けアプリケーションを作成、テスト、デプロイできるようになりました。  \n\n[macOSにホストされているGitLab Runner](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html)を使用すれば、GitLab CI/CDと統合された安全なオンデマンドのビルド環境で、開発チームがmacOSアプリケーションをより迅速にビルドし、デプロイできます。\n\n`.gitlab-ci.yml`ファイルの`macos-15-xcode-16`イメージを使用して、ぜひお試しください。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502852)  \n\n### CI/CDジョブの環境でのGitLabエージェントの選択\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nKubernetes用のダッシュボードを使用するには、環境設定からKubernetesとの接続用エージェントを選択する必要があります。これまでは、UIまたはAPI（GitLab 17.5以降のバージョン）からしかエージェントを選択できなかったため、CI/CDからダッシュボードの設定を行うことはできませんでした。GitLab 17.6では、`environment.kubernetes.agent`構文を使用して、エージェント接続を設定できるようになりました。さらに、[イシュー500164](https://gitlab.com/gitlab-org/gitlab/-/issues/500164)では、CI/CDの設定からネームスペースとFluxリソースを選択できるようにすることを提案しています。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#configure-a-dashboard-for-a-dynamic-environment)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/467912)  \n\n### APIを介してプロジェクトでシークレットプッシュ保護を有効化\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nプログラムからさらに簡単にシークレットプッシュ保護を有効化できるようになりました。次のことを行えるように、アプリケーション設定のREST APIを更新しました。1. Self-Managedインスタンスで本機能を有効化し、プロジェクト単位で有効にする。2. プロジェクトで本機能が有効になっているかどうかを確認する。3. 指定したプロジェクトで本機能を有効にする。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/projects.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/490358)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/490357)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/490359)  \n\n### CycloneDX SBOMに含まれるライセンスデータのサポート\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nライセンススキャナーで、[サポートされているパッケージタイプ](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/#supported-languages-and-package-managers)を含む、CycloneDX SBOMに格納されている依存関係のライセンスデータを使用できるようになりました。  \n\nCycloneDX SBOMの`licenses`フィールドが使用可能な場合、ユーザーのSBOMから取得されたライセンスデータが表示されます。SBOMにライセンス情報が含まれていない場合は、引き続きライセンスデータベースからライセンスデータが取得されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/415935)  \n\n### 特権関連のアクションの監査イベント\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\n特権設定に関連する管理者アクションの監査イベントが追加されました。これらの設定が変更されたタイミングを記録することで、監査証跡が残るため、セキュリティを強化できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#groups-and-projects)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/486532)  \n\n### 新しい場所からのサインインを通知するメールに情報を追加\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\nGitLabは、新しい場所からのサインインが検出された場合、オプションでメールを送信します。これまで、このメールにはIPアドレスしか記載されておらず、場所関連の情報は含まれていませんでした。本リリースから、メールに都市と国の情報も記載されるようになりました。\n\nこの場を借りて、コントリビュートしてくれた[Henry Helm](https://gitlab.com/shangsuru)さんに感謝します！  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/notifications.html#notifications-for-unknown-sign-ins)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/296128)  \n\n### サービスアカウントのバッジ\n\nSaaS: Premium、Ultimate\n\nSelf-Managed: Premium、Ultimate\n\nサービスアカウントに所定のバッジが付き、ユーザーリストで簡単に識別できるようになりました。これまでサービスアカウントに付いていたボットバッジのみでは、グループやプロジェクトアクセストークンと区別するのが困難でしたが、今回のリリースで改善されました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/service_accounts.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/439768)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/govern_serviceaccountbadge.png\">\n\n### シートの割り当て有無によるGitLab Duoユーザーのフィルタリング\n\nSaaS: Premium、Ultimate、GitLab Duo Pro、GitLab Duo Enterprise\n\nSelf-Managed:  Premium、Ultimate、GitLab Duo Pro、GitLab Duo Enterprise\n\nこれまでのバージョンのGitLabでは、GitLab Duoシート割り当てページに表示されるユーザーリストをフィルタリングすることができなかったため、過去にGitLab Duoシートが割り当てられたことがあるユーザーを検索することができませんでした。本リリースから「アサインされたシート = はい」または「アサインされたシート = いいえ」でユーザーリストをフィルタリングして、現在どのユーザーにGitLab Duoシートが割り当てられているのか、または割り当てられていないのかを確認できるようになり、シートの割り当てを簡単に調整できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#view-assigned-gitlab-duo-users)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14683)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/filter-users-by-assigned-duo-seat.png\">\n\n### GitLab Duo Pro向けのAIインパクト分析API\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSelf-Managed:  Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duo Proをご利用の方は、`aiMetrics` GraphQL APIを使ってAIインパクト分析メトリクスにプログラムからアクセスできるようになりました。メトリクスには、割り当て済みのGitLab Duoシート数、Duo Chatのユーザー数、コード提案のユーザー数が含まれます。APIを介して、コード提案に関する詳細情報（表示された回数や採用回数）も取得できます。このデータを参照することで、コード提案の採用率を計算できるほか、GitLab Duo ProユーザーによるDuo Chatとコード提案の導入状況をより明確に把握できます。また、AIインパクト分析メトリクスをバリューストリーム分析やDORAメトリクスと組み合わせれば、Duo Chatやコード提案の導入がチームの生産性にどのような影響を及ぼしているかをより深く理解することができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/#aimetrics)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/498497)  \n\n### 完了したアイテムをビューから簡単に削除できるように\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\n「**クローズ済みアイテムを表示**」の切り替えをオフにすることで、リンクされたアイテムや子アイテムリストの完了したアイテムを非表示にできるようになりました。この機能の追加により、複雑なプロジェクトにおいて視覚的に邪魔な要素を整理できるようになったため、ビューをより自由に制御でき、進行中の作業に集中しやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/456941)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/easily_remove_closed_items_from_your_view.png\">\n\n### リポジトリX-Rayの自動化\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSelf-Managed:  Premium、Ultimate、Duo Pro、Duo Enterprise\n\nリポジトリX-Rayは、プロジェクトの依存関係関連の追加のコンテキストを提供することで、コード推奨内容の正確性と関連性を向上させ、GitLab Duoコード提案のコード生成リクエストを強化します。これはコード生成の品質向上につながります。これまでリポジトリX-RayではCIジョブが使用されており、ユーザーが設定や管理を行う必要がありました。  \n本リリースから、新規コミットがプロジェクトのデフォルトブランチにプッシュされると、リポジトリX-Rayによって、リポジトリ内の該当する設定ファイルをスキャンして解析するバックグラウンドジョブが自動的にトリガーされるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/repository_xray.html)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/14100)  \n\n### マージを実行する日時設定が可能に\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nマージリクエストの中には、特定の日付または時間になるまで、マージの実行を保留する必要があるものもあります。その場合、その日付または時間になったら、マージ権限を持つユーザーを見つけて対応してもらわなければなりません。そのタイミングが勤務時間外だったり、必ずスケジュール通りにマージを実行しなければならなかったりする場合は、事前に誰かにタスクの対応を依頼しておく必要があるでしょう。  \n\n本リリースから、マージリクエストを作成または編集する際に、`merge after`を使用して日付を指定できるようになりました。この方法で日付を指定すると、その日付が過ぎるまでマージリクエストがマージされません。この新機能と以前リリースされた[自動マージの改善機能](https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/#auto-merge-when-all-checks-pass)を組み合わせることで、マージリクエストのマージ実行を柔軟にスケジュールできるようになります。  \n\nこの場を借りて、素晴らしいコントリビュートをしてくれた[Niklas van Schrick](https://gitlab.com/Taucher2003)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html#prevent-merge-before-a-specific-date)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/14380)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/create-scheduled-merge.png\">\n\n### JaCoCoのテストカバレッジの可視化の一般提供を開始\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nマージリクエストの差分ビューで、JaCoCoのテストカバレッジ結果を直接確認できるようになりました。この可視化により、テストでどの行がカバーされていて、マージ前にどの行を追加でカバーする必要があるかを素早く特定できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/jacoco.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/227345)  \n\n### `glab agent bootstrap` コマンドで新たに値をサポート\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\n前回のリリースでは、GitLab CLIツールにおけるエージェントの立ち上げを簡単に行える機能を導入しました。GitLab 17.6では、カスタムHelm値に対応し、`glab cluster agent bootstrap`コマンドをさらに改善しました。`--helm-release-values`と`--helm-release-values-from`フラグを使用して、生成された`HelmRelease`リソースをカスタマイズできます。\n\n[ドキュメント](https://gitlab.com/gitlab-org/cli/-/blob/main/docs/source/cluster/agent/bootstrap.md#options)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/482844)  \n\n### EPSSによる効率的なリスクの優先順位付け\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nGitLab 17.6では、悪用予測スコアリングシステム（EPSS）のサポートを追加しました。EPSSは各共通脆弱性識別子（CVE）に0～1のスコアを付けて、今後30日以内にそのCVEが悪用される確率を示します。EPSSを活用すれば、スキャン結果の優先順位付けを改善できるほか、脆弱性によって環境に生じうる影響を評価できます。\n\nこのデータは、GraphQLを介してコンポジション解析ユーザーが利用できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/#cveenrichmenttype)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/11544)  \n\n### 除外が適用されたシークレットプッシュ保護の監査イベントを記録\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nシークレットプッシュ保護の除外が適用された場合に、監査イベントが記録されるようになりました。これにより、セキュリティチームは、プロジェクトの除外リストに含まれるシークレットのプッシュが許可された場合に発生する出来事をすべて監査し、追跡できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/secret_detection/exclusions.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/492465)  \n\n### グループの保護ブランチの変更を防止\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\nグループのブランチの変更を禁じるようにマージリクエストの承認ポリシーが設定されている場合、ポリシーにおいてグループに設定された保護ブランチが考慮されるようになりました。この設定が有効な場合、グループレベルで保護されたブランチの保護を解除することはできません。保護ブランチでは、ブランチの削除やブランチへの強制プッシュなど、特定のアクションが制限されます。新たに追加された`approval_settings.block_group_branch_modification`プロパティを使用して、この動作を上書きし、特定のトップレベルグループに対して例外を宣言すれば、グループオーナーが必要に応じて保護ブランチを一時的に変更できるようになります。  \n\nこの新たなプロジェクトの上書き設定により、グループの保護ブランチ設定を変更してセキュリティやコンプライアンス要件を回避することができなくなり、より安定した状態で保護ブランチを使用できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html#approval_settings)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13776)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_6/override-group-branches.png\">\n\n### OTP認証アプリとWebAuthnデバイスを個別に無効化\n\nSaaS: Free、Premium、Ultimate\n\nSelf-Managed: Free、Premium、Ultimate\n\nワンタイムパスワード（OTP）認証アプリとWebAuthnデバイスを個別または同時に無効にできるようになりました。これまではOTP認証アプリを無効にすると、WebAuthnデバイスも無効化されていました。個別に操作できるようになったことで、これらの認証方法をより細かく制御できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/account/two_factor_authentication.html#disable-two-factor-authentication)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/393419)  \n\n### マージリクエストのマージ時の新しい監査イベント\n\nSaaS: Ultimate\n\nSelf-Managed: Ultimate\n\n本リリースでは、マージリクエストのマージ時に`merge_request_merged`という新しいタイプの監査イベントがトリガーされるようになりました。この監査イベントには、次のようなマージリクエストに関する重要な情報が含まれます。\n\n* マージリクエストのタイトル  \n* マージリクエストの説明またはサマリー  \n* マージに必要な承認数  \n* マージに付与された承認数  \n* マージリクエストを承認したユーザー  \n* コミッターによるマージリクエストの承認有無  \n* 作成者によるマージリクエストの承認有無  \n* マージの日付や時刻  \n* コミット履歴から取得したSHAリスト\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#compliance-management)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/442279)  \n\n### トップレベルグループのオーナーがサービスアカウントを作成できるように\n\nSaaS: -\n\nSelf-Managed: Premium、Ultimate\n\n現在、GitLab Self-Managedでサービスアカウントを作成できるのは管理者のみです。本リリースでは、トップレベルグループのオーナーに対してサービスアカウントの作成を許可するオプション設定が追加されました。これにより、管理者はロールの範囲を広げてサービスアカウントの作成を許可するか、管理者のみが許可されたタスクのままとするかを選択できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#allow-top-level-group-owners-to-create-service-accounts)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/468806)  \n\n### APIの使用によるトークン関連情報の取得\n\nSaaS: -\n\nSelf-Managed: Free、Premium、Ultimate\n\n管理者は、新しいトークン情報のAPIを使用して、パーソナルアクセストークンに関する情報の取得、トークンのデプロイ、トークンへの入力を行えます。トークン情報が公開される他のAPIエンドポイントとは異なり、このエンドポイントを使用した場合、管理者はトークンの種類を知らなくてもトークン情報を取得できます。  \n\nこの場を借りて、コントリビュートしてくれた[Nicholas Wittstruck](https://gitlab.com/nwittstruck)さんを始め、シーメンス社の皆さまに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/api/admin/token.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/443597)  \n\n### GitLab Duoシートの割り当てに関する通知メールのアップデート\n\nSaaS: -\n\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nSelf-Managedインスタンスの全ユーザーに対して、GitLab Duoシートが割り当てられたタイミングでメールが送信されるようになりました。  \n\nこれまでは、GitLab Duo Enterpriseシートが割り当てられたユーザーや、一括割り当てによってアクセスを許可されたユーザーには通知メールは送信されませんでした。そのため、ほかのユーザーに教えてもらうか、GitLab UIで新しい機能に気付かない限り、自分にシートが割り当てられていることを知ることはできませんでした。  \n\n管理者は`duo_seat_assignment_email_for_sm`という名前の機能フラグを無効にすることで、このメール通知を無効化できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#assign-gitlab-duo-seats)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170507)  \n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。  \n17.6で提供されたすべてのバグ修正、パフォーマンスの改善、UIの改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.6)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.6)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.6)\n\n## 非推奨事項\n\n削除されたすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n- [GitLab chart use of NGINX controller image v1.3.1](https://docs.gitlab.com/ee/update/deprecations.html#gitlab-chart-use-of-nginx-controller-image-v131)\n- [Removal of `migrationState` field in `ContainerRepository` GraphQL API](https://docs.gitlab.com/ee/update/deprecations.html#removal-of-migrationstate-field-in-containerrepository-graphql-api)\n- [Guest users can pull packages from private projects on GitLab.com](https://docs.gitlab.com/ee/update/deprecations.html#guest-users-can-pull-packages-from-private-projects-on-gitlabcom)\n- [Deprecate CI job implementation of Repository X-Ray](https://docs.gitlab.com/ee/update/deprecations.html#deprecate-ci-job-implementation-of-repository-x-ray)\n- [Pipeline subscriptions](https://docs.gitlab.com/ee/update/deprecations.html#pipeline-subscriptions)\n- [Pipelines API cancel endpoint returns error for non-cancelable pipelines](https://docs.gitlab.com/ee/update/deprecations.html#pipelines-api-cancel-endpoint-returns-error-for-non-cancelable-pipelines)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabのドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n### **変更履歴**\n\n変更内容をすべて表示するには、以下のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)   \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)   \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)   \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases) \n\n### **インストール**\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### **更新**\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)を確認してください。\n\n### **ご不明な点がある場合**\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### **GitLabサブスクリプションプラン**\n\n* [Freeプラン](https://about.gitlab.com/pricing/) \n\n  個人ユーザー向けの永久無料機能を提供\n\n* [Premiumプラン](https://about.gitlab.com/pricing/premium/) \n\n  チームの生産性と調整を強化\n\n* [Ultimateプラン](https://about.gitlab.com/pricing/ultimate/) \n\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\n> GitLabのすべての機能を[無料](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial)でお試しいただけます。\n\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n\n### 過去の日本語リリース情報\n\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-02-18",{"slug":1224,"featured":91,"template":685},"gitlab-17-6-release","content:ja-jp:blog:gitlab-17-6-release.yml","Gitlab 17 6 Release","ja-jp/blog/gitlab-17-6-release.yml","ja-jp/blog/gitlab-17-6-release",{"_path":1230,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1231,"content":1237,"config":1243,"_id":1245,"_type":14,"title":1246,"_source":16,"_file":1247,"_stem":1248,"_extension":19},"/ja-jp/blog/gitlab-17-7-release",{"title":1232,"description":1233,"ogTitle":1232,"ogDescription":1233,"noIndex":6,"ogImage":1234,"ogUrl":1235,"ogSiteName":669,"ogType":670,"canonicalUrls":1235,"schema":1236},"GitLab 17.7リリース","GitLab 17.7でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662186/Blog/Hero%20Images/product-gl17-blog-release-cover-17-7-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-7-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.7リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2024-12-19\",\n      }",{"title":1232,"description":1233,"authors":1238,"heroImage":1234,"date":1239,"body":1240,"category":705,"tags":1241,"updatedDate":1242},[853],"2024-12-19","**プランナーユーザーロールを新たに追加したGitLab 17.7をリリース**\n\nこのたび、GitLab 17.7のリリースを発表しました。今回のリリースでは、プランナーという新たなユーザーロール、脆弱性の自動解決ポリシー、管理者が制御可能なインスタンスのインテグレーションの許可リスト、UIでのアクセストークンローテーションなどが追加されました！\n\nこれらの機能は、今回のリリースに含まれる230件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 17.7には、GitLabコミュニティのユーザーから138件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。  \n\n来月のリリースで予定されている内容を先取りするには、17.8リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。\n\n> [GitLab 17.7のリリースでは、プランナーというユーザーロールが新たに追加されました。クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+17.7+released+with+new+Planner+user+role&url=https://about.gitlab.com/releases/2024/12/19/gitlab-17-7-released/&hashtags=)\n\n## 今月のMost Valuable Person [MVP](https://about.gitlab.com/community/mvp/)は[Vedant Jain](https://gitlab.com/vedant-jain03)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターを推薦](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)できます。現在の候補者を応援したり、他の誰かをノミネートしてみませんか。🙌\n\nVedantさんは、コミュニティのコントリビューターとして活躍されていて、コントリビュートに対する積極的なアプローチ、デリバリーへのコミットメント、そしてコラボレーションスキルで知られています。フィードバックを受け入れ、それを作業に取り入れ、必要な場合は支援を求めることに長けていて、コントリビュートを完了させるだけでなく、常にGitLabの基準を満たしてくれています。\n\nVedantさんのコントリビュートには、[抽象化された作業アイテム属性を単一のリスト／ボードにまとめた](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/172191)プロジェクト管理プロセスの効率化、[作業アイテムのメタデータの並べ替え](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173033)、[作業アイテムウィジェットの折りたたみ状態を記憶する](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/171228)機能の開発などがあります。また、UIのドキュメントへのリンクを修正し（[1](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170633)、[2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170534)）、製品全体のユーザーエクスペリエンスを改善する重要な取り組みの一環として、テクニカルライティングチームを支援しました。\n\nGitLabのプロダクトプランニング担当シニアプロダクトマネージャーである[Amanda Rueda](https://gitlab.com/amandarueda)は、Vedantさんを推薦し、彼の積極的でコミュニティ指向の考え方について次のように述べました。「Vedantさんは業務を通じて、ユーザーのニーズに対応するだけでなく、コントリビュートにより安定性と信頼性をより一層高めたGitLab環境をともに作り上げてくれています。バグの修正、ユーザビリティの改善、メンテナンスの取り組みにコントリビュートすることで、製品の全体的な品質を向上させる上で重要な役割を担っています。Vedantさんの積極的なアプローチとグループの枠にとらわれないコントリビュートは、イテレーション、顧客とのコラボレーション、継続的な改善というGitLabのコアバリューを体現しており、彼はコミュニティの中でも傑出したコントリビューターと言えます」\n\n今回の受賞に関して、Vedantさんは次のように述べています。「ご協力いただいたみなさんのおかげです。良い影響を与えることができたことにとても感謝しており、これからもより多くのコントリビュートをしていきたいと思います」\n\nVedantさんは、最新のデータチーム向けのアクティブなメタデータプラットフォームであるAtlanのフロントエンドエンジニアであり、Google Summer of Code（GSOC）2024のメンターも務めています。\n\nVedantさんのコントリビュートを始め、GitLabにコントリビュートしてくださっているオープンソースコミュニティのみなさまに心より感謝します！\n\n## GitLab 17.7でリリースされた主な改善点\n\n### プランナーという新たなユーザーロール\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nプランナーというロールが新たに導入されました。これにより、[権限](https://docs.gitlab.com/ee/user/permissions.html)を過剰に付与することなく、エピック、ロードマップ、Kanbanボードなどのアジャイルプランニングツールへのアクセスをカスタマイズできます。この変更により、ワークフローを安全に保ち、最小権限の原則を守りながら、コラボレーションをより効果的に行うことができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/permissions.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/482733)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_7/new_planner_user_role.png\">\n\n### インスタンス管理者がどのインテグレーションを有効にするか設定可能に \nSaaS: -  \nSelf-Managed: Ultimate\n\nインスタンス管理者は、GitLabインスタンスで有効にするインテグレーションを許可リストで設定できるようになりました。空欄の許可リストを設定した場合、インスタンス上でインテグレーションは許可されません。許可リストの設定後、デフォルトでは新しいGitLabインテグレーションは許可リストに含まれません。\n\n以前に有効にしていたインテグレーションを後から許可リストの設定によってブロックした場合、そのインテグレーションは無効になります。これらのインテグレーションを再度許可すると、既存の設定で改めて有効になります。\n\n[ドキュメント  ](https://docs.gitlab.com/ee/administration/settings/project_integration_management.html#integration-allowlist)\n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/500610)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_7/integrations_allowlist.png\">\n\n### Direct Transfer によるユーザーのコントリビューションとメンバーシップの新たなマッピングのサポート\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n[Direct Transfer](https://docs.gitlab.com/ee/user/group/import/index.html)（直接転送）によりGitLabインスタンス間を移行する場合に、ユーザーのコントリビューションとメンバーシップの新たなマッピング方法を使用できるようになりました。この機能により、インポートプロセスを管理するユーザーと、コントリビューションの再割り当てを受けるユーザーの双方に対する柔軟性と制御性が向上しました。新しいマッピング方法による変更点は以下です。\n\n* インポートが完了した後、移行先のインスタンスの既存のユーザーにメンバーシップとコントリビュートを再割り当てできます。インポートするメンバーシップとコントリビュートはすべて、まずはプレースホルダーユーザーにマッピングされます。すべてのコントリビュートは、移行先のインスタンスで再割り当てするまで、プレースホルダーユーザーに関連付けられて表示されます。  \n* ソースインスタンスと移行先のインスタンスに異なるメールアドレスを持つユーザーのメンバーシップとコントリビュートをマッピングします。\n\n移行先のインスタンスのユーザーにコントリビュートを再割り当てすると、ユーザーは再割り当てを承認または拒否できます。  \n詳細については、[ユーザーのコントリビュートとメンバーシップのマッピングによる移行の効率化](https://about.gitlab.com/blog/streamline-migrations-with-user-contribution-and-membership-mapping/)（英語）を参照してください。フィードバックを投稿するには、[イシュー502565](https://gitlab.com/gitlab-org/gitlab/-/issues/502565)にコメントを追加してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/import/#user-contribution-and-membership-mapping)  \n[エピック](https://gitlab.com/gitlab-org/gitlab/-/issues/478054)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_7/user_contributions_mapping.png\">\n\n### 後続のスキャンで見つからない場合、脆弱性を自動的に解決\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLabの[セキュリティスキャンツール](https://docs.gitlab.com/ee/user/application_security/#security-scanning-tools)は、アプリケーションコードの既知の脆弱性と潜在的な弱点を特定するのに役立ちます。フィーチャーブランチのスキャンを行うと、新たな弱点や脆弱性が検出されるため、マージする前に修正できます。プロジェクトのデフォルトブランチにすでに脆弱性がある場合、フィーチャーブランチで修正しておけば、次のデフォルトブランチスキャンの実行時に脆弱性が検出されなくなります。どの脆弱性が検出されなくなったかを把握しておくことは有益であるものの、各脆弱性をクローズするには、それぞれ手動で解決済みとしてマークする必要があります。解決すべき脆弱性が多数ある場合、新しいアクティビティフィルターやステータスの一括変更を使用したとしても、時間がかかることがあります。\n\n本リリースでは、自動スキャンによって検出されなくなった脆弱性を自動的に解決済みに設定したいユーザーのニーズに応えて、新しいポリシータイプである*脆弱性管理ポリシー*を導入します。手順は簡単で、新たに追加された自動解決オプションを使用して新規ポリシーを設定し、適切なプロジェクトに適用するだけです。特定の重大度の脆弱性のみ、または特定のセキュリティスキャナーで検出された脆弱性のみを自動解決するように、ポリシーを設定することも可能です。設定が完了すると、プロジェクトのデフォルトブランチのスキャンが次回行われた際に検出されなかった既存の脆弱性は解決済みとしてマークされます。このアクションにより、脆弱性の情報が更新され、アクティビティノート、アクション発生時のタイムスタンプ、および脆弱性が削除されると判断されたパイプラインが記録されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/vulnerability_management_policy.html)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/5708)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/17_7/auto-resolve-when-not-found-in-subsequent-scan.png\">\n\n### パーソナル、プロジェクト、グループアクセストークンをUIからローテーション可能に\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nUIを使用して、パーソナルアクセストークン、プロジェクトアクセストークン、グループアクセストークンをローテーションできるようになりました。これまでは、UIからトークンを更新するにはAPIを使用する必要がありました。\n\nこの場を借りて、コントリビュートしてくれた[shangsuru](https://gitlab.com/shangsuru)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#revoke-or-rotate-a-personal-access-token)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/241523)\n\n\u003Ciframe width=\"478\" height=\"269\" src=\"https://www.youtube.com/embed/YqK2CF655OE\" title=\"Revoke and Renew a GitLab personal access token (PAT) in the UI\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### CI/CDコンポーネントの使用状況をプロジェクトをまたいで追跡可能に\n\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\n中心となるDevOpsチームは多くの場合、パイプライン全体でCI/CDコンポーネントが使用されている場所を追跡して、より適切に管理し、最適化する必要があります。コンポーネントの利用状況を可視化する方法がなければ、古いコンポーネントの使用の特定、採用率の把握、コンポーネントのライフサイクルのサポートなどを行うのは困難です。\n\nこのようなニーズに応えるために、新たにGraphQLクエリを追加し、DevOpsチームが組織のパイプライン全体でコンポーネントが使用されているプロジェクトのリストを表示できるようにしました。この機能により、DevOpsチームは可視化に基づいた分析結果を活用して生産性を向上させ、より良い意思決定を行うことができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/index.html#cicatalogresourcecomponentusage)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466575)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_7/catalog.png\">\n\n### Linux Armでホストされる小規模Runnerが全プランで利用可能に\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: -\n\n本リリースから、GitLab.com向けにLinux Armでホストされる小規模Runnerを全プランでご利用いただけるようになりました。この2 vCPU Arm Runnerは、GitLab CI/CDと完全に統合されており、Armアーキテクチャ上でネイティブにアプリケーションをビルドし、テストすることができます。\n\n当社は、業界最速のCI/CDビルド速度を実現できるよう尽力しており、みなさまのチームがフィードバックサイクルのさらなる短縮に成功し、最終的にソフトウェアをより迅速に提供できるようになることを願っております。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501423)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_7/runner_arm.png\">  \n\n## GitLab 17.7のリリースに含まれるその他の改善点\n\n### お好みのテキストエディタをデフォルトに設定\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n本バージョンでは、お好きな方法で編集を行えるようにするために、デフォルトのテキストエディタを設定できるようになりました。この変更により、リッチテキストエディタ、プレーンテキストエディタ、またはデフォルトなしを選択できるようになり、コンテンツの作成方法と編集方法の幅が拡がりました。\n\n今回のアップデートにより、エディタインターフェイスを個々の好みやチームの標準に合わせられるようになり、よりスムーズなワークフローを実現できます。この機能強化でも、GitLabは従来どおり、すべてのユーザーを考慮した使いやすさ、そしてカスタマイズ性を優先しています。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/preferences.html#set-the-default-text-editor)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/423104)\n\n### GitLab Duo Chatの新しい`/help`コマンド\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise  \nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nGitLab Duo Chatの様々な強力な機能を見つけましょう！チャットメッセージフィールドに「`/help`」と入力するだけで、Duo Chatで利用可能な機能をすべて確認できるようになりました。\n\nぜひこの新しいコマンドも試してみて、Duo Chatを使用することでどのように作業をよりスムーズに効率化できるかご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#gitlab-duo-chat-slash-commands)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/462122)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_7/new_help_command_in_gitlab_duo_chat.png\">\n\n### CI/CDジョブからネームスペースとFluxリソースパスを設定可能に\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nKubernetes用ダッシュボードを使用するには、環境設定からKubernetesとの接続用エージェントを選択し、必要に応じてReconciliationのステータスを追跡するために、ネームスペースとFluxリソースを設定する必要があります。GitLab 17.6では、CI/CD設定でエージェントの指定が可能になりました。ただし、ネームスペースとFluxリソースを設定するには、引き続きUIを使用するか、APIコールを行う必要がありました。17.7では、`environment.kubernetes.namespace`と`environment.kubernetes.flux_resource_path`を選択したCI/CD構文を使用してダッシュボードの設定をすべて行えるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/500164)\n\n### KEVによる効率的なリスクの優先順位付け  \nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nGitLab 17.7では、悪用が確認された既知の脆弱性（KEV）カタログのサポートを追加しました。[KEVカタログ](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)（英語）は、実際に悪用された共通脆弱性識別子（CVE）のリストがまとめられたもので、米国サイバーセキュリティ・社会基盤安全保障庁（CISA）によって管理されています。KEVを活用すれば、スキャン結果の優先順位付けを改善できるほか、脆弱性によって環境に生じうる影響を評価できます。\n\nこのデータは、GraphQLを介してコンポジション解析ユーザーが利用できます。このデータをGitLab UIに表示できるようにする[作業が計画されて](https://gitlab.com/gitlab-org/gitlab/-/issues/427441)います。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/#cveenrichmenttype)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/11912)\n\n### 高度なSASTのためのコードフロービューの表示場所を拡大\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n脆弱性が表示されている場所であればどこでも、高度なSASTの[コードフロービュー](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#vulnerability-code-flow)を利用できるようになりました。以下はその一例です。\n\n* [脆弱性レポート](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/)  \n* [マージリクエストのセキュリティウィジェット](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-widget)  \n* [パイプラインセキュリティレポート](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/pipeline.html)  \n* [マージリクエスト変更ビュー](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-changes-view)\n\nGitLab.comでは、新しいビューが有効になっています。GitLab Self-Managedでは、新しいビューはデフォルトでGitLab 17.7（MR変更ビュー）とGitLab 17.6（他のすべてのビュー）から有効になっています。サポートされているバージョンと機能フラグの詳細については、[コードフロー機能の可用性](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#code-flow-feature-availability)を参照してください。\n\n高度なSASTの詳細については、[本機能の一般提供の発表に関するブログ記事](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available)（英語）をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#vulnerability-code-flow)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/13499)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_7/ast-advanced-sast-code-flow.png\">\n\n### トークンの有効期限の通知機能の強化\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、トークンの有効期限に関するメール通知は、有効期限が切れる7日前にのみ送信されていましたが、本リリースから30日前と60日前にも送信されるようになりました。通知の頻度増加および日付範囲の拡大により、ユーザーはトークンの有効期限をより認識しやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/security/tokens/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/464040)\n\n### コンプライアンスセンターのナビゲーションと使いやすさを改善\nSaaS: Premium、Ultimate  \nSelf-Managed: Premium、Ultimate\n\nGitLabでは、グループとプロジェクトの両方で、コンプライアンスセンターのユーザーエクスペリエンスに対する重要な改善を反復的に行っています。  \nGitLab 17.7で行った主な改善は次の2点です。\n\n* コンプライアンスセンターの「**プロジェクト**」タブでグループによるフィルタリングが可能になりました。これにより、ユーザーはこれまでとは別の方法で、適切なプロジェクトとそのプロジェクトに設定されたコンプライアンスフレームワークを適用、絞り込み、検索できるようになりました。  \n* プロジェクトのコンプライアンスセンターに「**フレームワーク**」タブが追加されました。ユーザーはこのタブを使用して、特定のプロジェクトに設定されているコンプライアンスフレームワークを検索できます。\n\nなお、フレームワークの追加や編集は、プロジェクトではなくグループで行われます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_frameworks_report.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/499183)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/468399)  \n\u003Cimg src=\"https://about.gitlab.com/images/17_7/navigation-and-usability-improvements-to-compliance-center.png\">\n\n### オムニバスの改善  \nSaaS: -  \nSelf-Managed: Free、Premium、Ultimate\n\nバグのため、GitLab 17.6以前のバージョンでのFIPS LinuxパッケージではシステムLibgcryptは使用されず、標準のLinuxパッケージにバンドルされているのと同じLibgcryptが使用されていました。\n\nこのイシューは、AmazonLinux 2を除くGitLab 17.7のすべてのFIPS Linuxパッケージで修正されています。AmazonLinux 2のLibgcryptバージョンは、FIPS LinuxパッケージにインストールされているGPGMEおよびGnuPGバージョンと互換性がありません。  \n\nAmazonLinux 2のFIPS Linuxパッケージでは、標準のLinuxパッケージにバンドルされているのと同じLibgcryptが引き続き使用されます。そうでない場合は、GPGMEとGnuPGをダウングレードする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/omnibus/)\n\n### Unicode 15.1の絵文字サポート🦖🍋‍🟩🐦‍🔥\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n17.7より前のバージョンでは、絵文字のサポートは古いUnicode標準に限定されていたため、一部の新しい絵文字は利用できませんでした。\n\nGitLab 17.7では、Unicode 15.1のサポートが導入され、最新の絵文字が追加されました。これにより、ティラノサウルス🦖、ライム🍋‍🟩、不死鳥🐦‍🔥などの楽しい絵文字も使えるようになり、最新の絵文字を使用して表現の幅も広がります。\n\nさらに、今回のアップデートにより絵文字の多様性が強化され、文化、言語、アイデンティティをより適切に表現できるようになりました。プラットフォーム上でのやり取りにおいてすべての人が受け入れられていると感じられるようになります。\n\n[ドキュメント](https://gitlab-org.gitlab.io/ruby/gems/tanuki_emoji/)  \n[イシュー](https://gitlab.com/gitlab-org/ruby/gems/tanuki_emoji/-/issues/28)\n\n### Kubernetes 1.31のサポート\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\n本リリースでは、2024年8月にリリースされたKubernetesバージョン1.31のフルサポートが追加されました。Kubernetesにアプリをデプロイすると、接続しているクラスターを最新バージョンにアップグレードし、そのすべての機能を利用できるようになります。\n\n詳細については、[Kubernetesのサポートポリシーとサポートされているその他のKubernetesバージョン](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501390)  \n\n### `environment.action: access`と`prepare`の設定で`auto_stop_in`タイマーのリセットが可能に\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、`action: prepare`、`action: verify`、`action: access`ジョブを`auto_stop_in`と組み合わせた場合、タイマーはリセットされませんでした。18.0以降のバージョンでは、`action: prepare`と`action: access`を設定すると、タイマーがリセットされ、`action: verify`を設定すると、タイマーはそのままとなります。\n\n現時点では、`prevent_blocking_non_deployment_jobs`機能フラグを有効にすることで、タイマーがリセットされない問題を解消できます。\n\n複数の破壊的な変更は、`environment.action: prepare | verify | access`値の挙動を区別することを目的としています。`environment.action: access`キーワードを指定すると、タイマーのリセットを除き、現在の動作に最も近いままとなります。\n\n将来的に互換性の問題が発生しないように、これらのキーワードの使用方法を見直す必要があります。提案された変更の詳細については、次のイシューを参照してください。\n\n* [イシュー437132](https://gitlab.com/gitlab-org/gitlab/-/issues/437132)  \n* [イシュー437133](https://gitlab.com/gitlab-org/gitlab/-/issues/437133)  \n* [イシュー437142](https://gitlab.com/gitlab-org/gitlab/-/issues/437142)\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/yaml/#environmentauto_stop_in)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/437133)\n\n### APIを使用してグループ内でシークレットプッシュ保護を有効化\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n本リリースでは、[REST API](https://docs.gitlab.com/ee/api/group_security_settings.html)と[GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#mutationsetgroupsecretpushprotection)を介して、グループ内のすべてのプロジェクトでシークレットプッシュ保護を有効にできるようになりました。これにより、プロジェクトごとではなく、グループごとにシークレットプッシュ保護を効率的に有効化できます。プッシュ保護が有効または無効になるたびに、監査イベントが記録されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/group_security_settings.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502827)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502828)\n\n### 高度なSASTでの検出精度を向上\n\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\n次の脆弱性クラスをより正確に検出できるように、高度なSASTを更新しました。\n\n* C\\#：OSコマンド導入とSQL挿入  \n* Go：パストラバーサル  \n* Java：コードインジェクション、ヘッダーまたはログへのCRLFインジェクション、クロスサイトリクエストフォージェリ（CSRF）、不適切な証明書の検証、脆弱なデシリアライゼーション、安全でないリフレクション、およびXML外部エンティティ（XXE）インジェクション  \n* JavaScript：コードインジェクション\n\nまた、C\\#（ASP.NET）とJava（JSF、HttpServlet）のユーザー入力ソースの検出を改善し、一貫性を保つために重大度レベルを更新しました。\n\n高度なSASTが各言語で検出できる脆弱性の種類を確認するには、[高度なSASTのカバレッジ](https://docs.gitlab.com/ee/user/application_security/sast/advanced_sast_coverage.html)を参照してください。この改良されたファイルや機能間のスキャンを使用するには、[高度なSASTを有効](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#enable-advanced-sast-scanning)にしてください。高度なSASTがすでに有効な場合は、新しいルールが[自動的に適用](https://docs.gitlab.com/ee/user/application_security/sast/rules.html#how-rule-updates-are-released)されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14685)  \n\n### 認証情報インベントリ内でグループおよびプロジェクトアクセストークンが表示されるように\n\nSaaS: Ultimate  \nSelf-Managed: -\n\nグループとプロジェクトのアクセストークンが、GitLab.comの資格情報インベントリに表示されるようになりました。これまでは、パーソナルアクセストークンとSSH鍵のみが表示されていました。インベントリ内に新たなトークンタイプが表示されるようになったことで、グループ全体の認証情報をさらに詳しく把握できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/credentials_inventory.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/498333)  \n\n### エンタープライズユーザーを一覧表示するAPIエンドポイントを追加\n\nSaaS: Premium、Ultimate  \nSelf-Managed: \\-\n\nグループオーナーは、専用のAPIエンドポイントを使用して、エンタープライズユーザーと関連する属性を一覧表示できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/group_enterprise_users.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/438366)  \n\n### アクセストークン用の説明フィールドを追加\n\nSaaS: Free、Premium、Ultimate  \nSelf-Managed: Free、Premium、Ultimate\n\nパーソナル、プロジェクト、グループ、または代理のアクセストークンを作成する際に、任意でそのトークンの説明を入力できるようになりました。これにより、どこでどのように使用されるかなど、トークンに関する補足情報を入力できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/443819)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_7/sscs_token_description.png\">\n\n### カスタムロールからオーナーの基本ロールを削除\nSaaS: Ultimate  \nSelf-Managed: Ultimate\n\nカスタムロールの作成時に、オーナーの基本ロールを利用できなくなりました。カスタムロールは権限を追加していく形で作成するものであり、オーナーの基本ロールを提供することは意味をなさないためです。オーナーの基本ロールを使用している既存のカスタムロールは、この変更の影響を受けません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/custom_roles.html#create-a-custom-role)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/474273)\n\n## 実験的な機能\n\n### SCA Vulnerability Prioritizer\n\nこの実験的な機能の導入は、ユーザーが[依存関係スキャン](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html)または[コンテナスキャン](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html)中に特定された脆弱性への優先順位付けを支援する新たな一歩です。ユーザーは、このCI/CDコンポーネントを\\``.gitlab-ci.yml`\\`ファイルに含めることができます。これにより、プロジェクト内で見つかった脆弱性の優先順位付けレポートが生成されます。レポートはパイプラインに出力できます。\nこのコンポーネントは、GitLab GraphQL APIをクエリし、脆弱性データを取得後、次のように優先順位を付けます。\n\n1. 悪用が確認された既知の脆弱性（KEV）\n2. 悪用予測スコアリングシステム（EPSS）スコアが高い脆弱性\n3. 重大度の高い脆弱性\n\n検出および確認された脆弱性のみが表示されます。現在、このコンポーネントではEPSSとKEVデータを使用して、脆弱性の優先順位を付けています。EPSSとKEVデータは、依存関係スキャンとコンテナスキャンを通じて収集されるCVEでのみ利用可能です。詳細については、[Vulnerability Prioritizer](https://gitlab.com/components/vulnerability-prioritizer) を参照してください。\n\nフィードバックをお待ちしております。ぜひ[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509508)からご質問やコメントをお寄せください。\n\n### GitLab Self-Managedのカスタム管理者ロール\n\n管理者はカスタム管理者ロールを使用して、管理者エリアへのきめ細かいアクセスを提供できるようになりました。これにより、タスクを完了するために組織が管理者エリアへの完全なアクセス権をユーザーに付与する必要がなくなります。この機能は実験的に導入されました。詳細については、[カスタム管理者ロール](https://docs.gitlab.com/ee/user/custom_roles.html#custom-admin-roles)を参照してください。\n\nみなさまからのフィードバックをお待ちしています。ご質問やコメントがある場合、またはGitLabチームとのやり取りをご希望の場合は、こちらの[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509376)をご覧ください。\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。  \n以下のリンクをクリックして、17.7のバグ修正、パフォーマンスの強化、UI改善についてすべてご覧ください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.7)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.7)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.7)\u003Cbr>\u003Cbr>\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\u003Cbr>\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n\n### 過去の日本語リリース情報\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-02-06",{"slug":1244,"featured":91,"template":685},"gitlab-17-7-release","content:ja-jp:blog:gitlab-17-7-release.yml","Gitlab 17 7 Release","ja-jp/blog/gitlab-17-7-release.yml","ja-jp/blog/gitlab-17-7-release",{"_path":1250,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1251,"content":1257,"config":1262,"_id":1264,"_type":14,"title":1265,"_source":16,"_file":1266,"_stem":1267,"_extension":19},"/ja-jp/blog/gitlab-17-8-release",{"title":1252,"description":1253,"ogTitle":1252,"ogDescription":1253,"noIndex":6,"ogImage":1254,"ogUrl":1255,"ogSiteName":669,"ogType":670,"canonicalUrls":1255,"schema":1256},"GitLab 17.8リリース","GitLab 17.8でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662175/Blog/Hero%20Images/product-gl17-blog-release-cover-17-8-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-8-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.8リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-01-16\",\n      }",{"title":1252,"description":1253,"authors":1258,"heroImage":1254,"date":1202,"body":1259,"category":705,"tags":1260,"updatedDate":1261},[853],"**コンテナリポジトリのセキュリティが向上したGitLab 17.8をリリース**\n\nこのたび、GitLab 17.8のリリースを発表しました。このリリースでは、コンテナリポジトリのセキュリティ強化、リリース関連のデプロイの一覧表示、機械学習モデル検証の追跡、GitLab Dedicated向けLinuxホステッドランナーなど、さまざまな機能が追加されました！  \n\nこれらの機能は、今回のリリースに含まれる60件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。  \n\nGitLab 17.8には、GitLabコミュニティのユーザーから121件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースも、ユーザーのみなさまのご協力なくしては実現しませんでした。  \n来月のリリースで予定されている内容を先取りするには、17.9リリースのキックオフビデオも視聴できる[今後のリリースページ](https://about.gitlab.com/direction/kickoff/)をご覧ください。  \n\n> [GitLab 17.8のリリースでは、コンテナリポジトリのセキュリティが向上しました！クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+17.8+released+with+improved+container+repository+security&url=https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/&hashtags=)\n\n## 今月の[MVP](https://about.gitlab.com/community/mvp/)は[Océane Legrand](https://gitlab.com/oceane_scania)さんと[Juan Pablo Gonzalez](https://gitlab.com/ScanianJP)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターをMVPに推薦できます](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)。現在の候補者を応援したり、他の誰かをノミネートしてみませんか🙌\n\n[Océane Legrand](https://gitlab.com/oceane_scania)さんは共同開発プログラムを通じて、Juan Pablo Gonzalezさんと協力しながら、Conanのパッケージレジストリの機能セットを強化する取り組みを主導してきました。お二人は、一般公開（GA）に向けた機能の準備、またConanバージョン2のサポート実装に重点的に取り組んできました。お二人の例は、GitLabのパッケージレジストリ機能を大幅に改善する上で、共同開発プログラムがいかに有効であるかを示しています。  \n\nLegrandさんとGonzalezさんは、GitLabのコントリビューターサクセスチームでシニアフルスタックエンジニアを務める[Raimund Hook](https://gitlab.com/stingrayza)によって推薦されました。Hookは、お二人が連携しながら粘り強く取り組み、Conanパッケージレジストリの機能改善を継続的に進めた点に注目しました。お二人の功績はGitLabの価値観を体現するものであり、GitLabプラットフォーム上でConanを利用する全ユーザーに恩恵をもたらします。\n\nScania社のフルスタックデベロッパーであるOcéane Legrandさんは、AWS上のセルフホスト型GitLabインスタンスの保守作業を担っています。Legrandさんは「私がオープンソースで取り組んでいる作業は、GitLabとScaniaの両方に影響を与えています。共同開発プログラムを通じてコントリビュートすることで、Rubyやバックグラウンドマイグレーションの経験など、新たなスキルを習得できました。Scaniaの所属チームでアップグレード作業中に問題が発生した際、共同開発プログラムですでに同じ問題を経験していたため、トラブルシューティングを手伝うことができました」と述べています。  \n\nGitLabの共同開発プログラムについて詳しくは[こちら](https://about.gitlab.com/community/co-create/)をご覧ください。これらのプログラムでは、GitLabのお客様が、当社製品チームやエンジニアリングチームと直接連携しながら新機能の開発や既存機能の改善に取り組んでいます。\n\n## GitLab 17.8のリリースに含まれる主な改善点\n\n### 保護されたコンテナリポジトリによるセキュリティ強化\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n本リリースでは、保護されたコンテナリポジトリが導入されました。この新機能は、コンテナイメージを管理する際のセキュリティと制御の課題を解決することを目的に追加されました。組織は、機密性の高いコンテナリポジトリへの不正アクセス、意図せぬ変更、細かい制御が設定できない、コンプライアンスの維持の難しさといった課題に苦労することがよくあります。このソリューションは、厳格なアクセス制御、プッシュ、プル、管理の操作権限を詳細に設定できるようにし、、GitLab CI/CDパイプラインとの統合をシームレスにすることで、セキュリティを強化します。\n\n保護されたコンテナリポジトリの導入で、セキュリティ侵害リスクや過失によって重要な資産が変更されるリスクが軽減されます。また、開発速度とセキュリティの両方を維持しながら、ワークフローを効率化できます。コンテナレジストリの全体的なガバナンスが向上されるほか、組織のニーズに基づいて重要なコンテナ資産が保護されていることが分かるため、安心感も得られます。\n\nこの機能と[保護パッケージ](https://gitlab.com/groups/gitlab-org/-/epics/5574)は、`gerardo-navarro`さんとシーメンス社のみなさまによるコミュニティへのコントリビュートにより実現しました。この場を借りて、GitLabに多大なるコントリビュートをしてくださったNavarroさんをはじめ、シーメンス社のみなさまに感謝申し上げます！この変更に対するNavarroさんとシーメンス社の方々のコントリビュートについて、詳しくは[こちらの動画](https://www.youtube.com/watch?v=5-nQ1_Mi7zg)をご確認ください。Navarroさんが、外部のコントリビューターとしてGitLabにコントリビュートした経験から得た洞察やベストプラクティスを紹介してくれています。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/container_registry/container_repository_protection_rules.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/480385)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/protected_containers.png\">\n\n### リリース関連のデプロイの一覧表示\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\nGitLabでは、これまでもGitタグを元にしたリリースの作成およびデプロイの追跡をサポートしてきました。しかし、これらの情報が異なる場所に分散していたため、紐づけるのが困難でした。本リリースより、リリース関連のデプロイがすべてリリースページに直接表示されるようになりました。これにより、リリースマネージャーは、リリースのデプロイ先や、どの環境がデプロイ待ちであるかといったステータスを素早く確認できます。既存のデプロイページではタグ付けされたデプロイのリリースノートを表示されますが、この機能は既存のデプロイページの統合を補完するものです。\n\nこの場を借りて、GitLabに両機能をコントリビュートしてくれた[Anton Kalmykov](https://gitlab.com/antonkalmykov)さんに心より感謝します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/releases/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501169)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/list_the_deployments_related_to_a_release.png\">\n\n### 機械学習モデル検証の追跡機能の一般公開\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n機械学習モデルを作成する際、データサイエンティストはモデルの性能向上を目的に、さまざまなパラメーターや設定、特徴量エンジニアリングを試行することがよくあります。データサイエンティストにとって、これらのメタデータや関連するアーティファクトをすべて追跡し、後から実験を再現できるようにするのは容易ではありません。機械学習モデル検証の追跡により、パラメータ、メトリクス、アーティファクトをGitLabに直接記録できるため、後から簡単にアクセスできるだけでなく、すべての実験データをGitLab環境内で保持できるようになりました。この機能は、データ表示の強化、権限設定の強化、GitLabとのより緊密な統合、バグ修正といった改善が加えられ、本リリースより一般提供されています。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/9341)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/jkZq3SYm7a8?si=AaBF71InBSRhZWZa\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Dedicated向けLinuxホステッドランナーが限定的に利用可能に\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：-\n\n本リリースより、GitLab Dedicated向けLinuxホステッドランナーが限定的に利用可能になりました。\n\nランナーのフリート管理作業は複雑になりがちで、デベロッパーの要求に応じてすべてのCI/CDジョブをスケールするには、豊富な経験が必要です。\nGitLab Dedicated向けのホステッドランナーでは、CI/CDジョブ用に徹底管理されたランナーを活用できます。そのため、独自のランナーインフラストラクチャを管理せずに済むほか、ランナーには、GitLab Dedicatedと同等のセキュリティ、柔軟性、効率性が確保されます。\nホステッドランナーは、CI/CDのニーズに合わせて自動的にスケールし、ピーク時や大規模プロジェクトにおいてパフォーマンスを最適化します。今回の限定リリースでは、2～32 vCPU、8～128 GBのメモリを搭載した、さまざまなサイズのLinuxランナーをご利用いただけます。\n\n限定リリース期間中にGitLab Dedicated向けホステッドランナーをご利用になりたい場合は、GitLabの担当者までお問い合わせください。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/dedicated/hosted_runners.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509142)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/runner_dedicated.png\">\n\n### macOS大規模M2 Proホステッドランナーが利用可能に（ベータ版）\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：-\n\nM2 Proの性能を、モバイルDevOpsチームが活用できるようになりました。  \nM1ランナーの最大2倍、x86-64 macOSランナーの最大6倍の性能を誇るM2 Proランナーを使用することで、開発チームによるアプリケーションのビルドとデプロイの作業速度が向上します。\n\nこのランナーは、GitLab CI/CDに完全統合され、オンデマンドで利用可能です。これにより、Appleエコシステム向けアプリケーションの作成、テスト、およびデプロイがより迅速かつシームレスになります。\n\n`.gitlab-ci.yml`ファイルのタグに`saas-macos-large-m2pro`を指定して、新しいM2 Proランナーをぜひお試しください。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html)  \n[エピック](https://gitlab.com/groups/gitlab-org/ci-cd/shared-runners/-/epics/19)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/rocket_m2pro.png\">\n\n## GitLab 17.8のリリースに含まれるその他の改善点\n\n### イシューまたはマージリクエスト内における複数のto-doアイテムの追跡\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n単一のイシューまたはマージリクエスト内で、複数のディスカッションやメンションを追跡できるようになりました。この新機能は、メンションやアクションごとに個別のto-doアイテムを表示させて、重要な更新やリクエストを見逃さないようサポートします。この機能強化により、作業をより効果的に管理し、チームのニーズにより効率的に対応できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/todos.html#multiple-to-do-items-per-object)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/28355)\n\n### エピックの祖先を把握しやすい表示に\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\n祖先ウィジェットの設計が見直されたことで、[エピックの階層](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items)を確認しやすくなりました。各エピックの上部に、パンくずリストのようなナビゲーションガイドで目立つように表示されます。1つ上の親と一番上の親を一目で確認し、エピック間の関係を素早く把握できます。これにより、プロジェクト構造の概要を分かりやすく管理し、関連するエピック間を簡単に移動できます。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509920)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/epic_ancestors.png\">\n\n### エピックから親を追加\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nイシューの場合と同様に、直接エピックから親を追加することで、エピック階層を簡単に管理できるようになりました。このプロセスの効率化により、作業をより柔軟に整理できるようになり、エピック間の関係を迅速に構築し、プロジェクト構造を分かりやすく保つことができます。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509923)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/epic_parent.png\">\n\n### エピック、イシュー、目標の子アイテムにイテレーションフィールドを表示\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nプランナーはエピックの詳細を閲覧する際、どの子イシューがイテレーション（スプリント）で計画されていて、どれがまだ計画されていないかを確認できなければなりません。この新機能により、定義されたすべての作業がスプリントで計画されているかどうか、チームがより簡単に確認できるようになりました。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/iterations)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/510005)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/show_iteration_field_on_items_within_the_work_items_child_widget.png\">\n\n### エピックのWebhook\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nエピックのWebhookを使用することで、ワークフローの自動化が強化されるだけでなく、エピックで変更が発生するたびに、お好みのツールでリアルタイムの更新を受け取ることができます。お使いの他のサービスとGitLabを統合すると、コラボレーションを強化し、プロジェクトの進捗を常に把握できます。また、アプリケーション間を何度も移動する必要がなくなり、プロセスが効率化されます。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509928)\n\n### GitLab Community Editionでパイプラインの制限を適用可能に\n\nSaaS：-\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n管理者は、GitLab Community Edition（CE）にCI/CDに関する制限を適用して、パイプラインリソースの使用を制御できるようになりました。これまで、この機能はGitLab Enterpriseエディションでのみ利用可能でした。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#set-cicd-limits)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/287669)\n\n### Kubernetes用ダッシュボードでのポッド検索\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n大規模なデプロイの場合、Kubernetes用ダッシュボードで特定のポッドを見つけるのには時間がかかる可能性があります。新たに検索バーが追加され、ポッドの名前を指定して素早く絞り込めるようになりました。利用可能なすべてのポッドが検索対象に含まれます。また、ステータスフィルターと組み合わせて、モニタリングやトラブルシューティングが必要なポッドを特定することも可能です。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/508010)\n\n### シークレット検出の実行時に修正手順が表示されるように\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\n漏洩した認証情報を使用して攻撃者がシステムに侵入するリスクを最小限に抑えるには、公開されてしまったシークレットに素早く対処しなければなりません。正しく修正するには、認証情報のローテーションや不正アクセスできる可能性がある箇所の調査など、単にシークレットを削除するだけでなく、さまざまな手順を行う必要があります。本リリースから、システムの安全性を保つために、シークレット検出を実行すると、検出されたシークレットのタイプごとに具体的な修正手順が表示されるようになりました。この修正手順を参考にすることで、情報漏洩に体系的に対処し、セキュリティ侵害のリスクを軽減できます。パイプラインが完了すると、検出されたすべての脆弱性に関する修正手順が表示されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/secret_detection/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/505757)\n\n### `override_ci`戦略が一元化されたワークフロールールの適用に対応\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nパイプライン実行ポリシーの`override_ci`戦略が、`include:project`の利用時に、プロジェクト設定で定義されたジョブだけでなく、ポリシー内で定義されたジョブに対しても、ポリシーの実施を支援するワークフロールールの使用をサポートするようになりました。ポリシー内でワークフロールールを定義することで、プロジェクトでのブランチパイプラインの使用を防ぐルールを設定するなど、特定のルールに基づいてパイプライン実行ポリシーによって実行されるジョブをフィルタリングできます。\n\nポリシー内で定義されたジョブのみを対象とするワークフロールールを切り離して使用するには、ポリシーによってグローバルにルールを定義せずに、ジョブに対してルールを定義するのがおすすめです。もしくは、別の`include`フィールドを用いて、ジョブやルールをグループ化することもできます。\n\nこれまでは`override_ci`戦略を使用すると、パイプライン実行ポリシーで定義されたジョブにのみ、ワークフロールールを適用できました。\n\n`Inject_ci`戦略に変更はありません。ワークフロールールは、プロジェクトのワークフロールールには影響を及ぼさず、ポリシーのジョブが実行されるタイミングを制御するためだけに利用できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#override_project_ci)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/512123)\n\n### パイプライン実行ポリシーで`skip_ci`を設定可能に\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nパイプライン実行ポリシー（PEP）に新たな設定オプションを導入され、より柔軟に`[skip ci]`ディレクティブを処理できるようになりました。この機能によって、重要なセキュリティおよびコンプライアンスのチェックを確実に実行しつつ、パイプラインの実行をバイパスする必要がある、特定の自動化されたプロセス（セマンティックリリースなど）に対応できます。\n\nこの機能を使用するには、パイプライン実行ポリシーのYAML設定で`skip_ci`を`allowed: false`に設定するか、ポリシーエディターで「**ユーザーがパイプラインをスキップできないようにする**」を有効にします。次に、`[skip ci]`の使用を許可するユーザーまたはサービスアカウントを指定します。`skip_ci`設定内で例外として除外されない限り、デフォルトでは、すべてのユーザーがパイプライン実行ジョブをスキップできません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#skip_ci-type)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/15647)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/service-account-exception-skip_ci-pep.png\">\n\n### マージリクエスト承認ポリシーで複数の異なる承認アクションをサポート\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nこれまでマージリクエスト承認ポリシーはポリシーごとに1つの承認ルールしかサポートしておらず、「OR」条件を用いて複数の承認者を指定する場合も1セットしか設定できませんでした。結果として、さまざまなロール、個々の承認者、または別々のグループから成る、階層化されたセキュリティ承認の実装は非常に困難でした。\n\n今回の更新により、マージリクエスト承認ポリシーごとに最大5つの承認ルールを作成できるようになったことから、より柔軟で堅牢な承認ポリシーの設定が可能になりました。ルールごとに異なる承認者やルールを指定でき、各ルールは個別に評価されます。たとえば、セキュリティチームは、グループAとグループBからそれぞれ1名の承認者、もしくは特定のロールと特定のグループから1名の承認者を必要とするような複雑な承認ワークフローを定義できます。これにより、機密性の高いワークフローにおけるコンプライアンスと制御の強化が実現できます。\n\nこの機能強化の使用例を以下にご紹介します。\n\n* __異なるロールによる承認__：デベロッパーロールおよびメンテナーロールによる承認  \n* __ロールおよびグループによる承認__：デベロッパーまたはメンテナーロールによる承認と、セキュリティグループのメンバーによる承認  \n* __異なるグループによる承認__： Pythonエキスパートグループのメンバーによる承認と、セキュリティグループのメンバーによる承認\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html)\n\n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/12319)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/multiple-distinc-approvers-nov-19.png\">\n\n### GitLab MLOps Pythonクライアント（ベータ版）\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\nデータサイエンティストや機械学習エンジニアは主に作業環境としてPythonを使用していますが、機械学習ワークフローをGitLabのMLOps機能と統合するには、頭の切り替えが必要となるだけでなく、GitLabのAPI構造を理解しなければなりません。結果として、開発プロセスに摩擦が生じ、実験の追跡、モデルアーティファクトの管理、チームメンバーとのコラボレーションの速度に悪影響を及ぼす可能性があります。\n\n新しいGitLab MLOps Pythonクライアントでは、GitLabのMLOps機能にシームレスにアクセスできる、Pythonに適したインターフェイスを利用できます。これにより、データサイエンティストは、Pythonスクリプトやノートブックから直接GitLabの[実験追跡](https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/)機能や[モデルレジストリ](https://docs.gitlab.com/ee/user/project/ml/model_registry/)機能を利用できるようになりました。クライアントでは以下の機能を利用できます。\n\n* **GitLab内での実験の追跡**：GitLab内で行われる機械学習実験を簡単に追跡できます。  \n* **モデルレジストリの統合**：GitLabのモデルレジストリでモデルの登録および管理ができます。  \n* **実験の管理**：クライアントから直接実験を作成し、管理できます。  \n* **追跡の実行**：トレーニングの実行とモニタリングが簡単にできます。\n\nこの統合により、データサイエンティストはモデル開発に集中しながら、機械学習ライフサイクルのメタデータをGitLabに自動的に取り込むことが可能になりました。Pythonクライアントは既存の機械学習ワークフローとシームレスに連携し、設定は最小限で済むため、データサイエンスコミュニティにとってGitLabのMLOps機能がより身近な存在となります。\n\n幅広いPythonとデータサイエンスコミュニティのみなさまからのコントリビュートをお待ちしています。[プロジェクトのリポジトリ](https://gitlab.com/gitlab-org/modelops/mlops/gitlab-mlops)から、ぜひ直接フィードバックをお寄せください。\n\n[ドキュメント](https://gitlab.com/gitlab-org/modelops/mlops/gitlab-mlops)  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/16193)\n\n### エピックの色をカスタマイズ可能\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\n既存の値やカスタムのRGB値または16進コードを含む、拡張されたカラーオプションを使用して、エピックをより柔軟に分類できるようになりました。この視覚的なカスタマイズの強化により、エピックをスクワッド、会社のイニシアチブ、または階層レベルに簡単に関連付けることができ、ロードマップやエピックボードでの作業の優先順位付けや整理が楽になります。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#epic-color)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509924)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/customizable_colors_for_epics.png\">\n\n### エピックのヘルスステータス\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nエピックのヘルスステータス機能が新たに追加され、プロジェクトの進捗状況を共有しやすくなりました。ステータスを「健全」「要注意」「危険」のいずれかに設定することで、エピックの健全性が可視化され素早く把握できるようになります。これにより、リスクを管理しつつ、プロジェクト全体のステータスを関係者と常に共有できるようになりました。\n\n管理者は、[エピックの新しい外観](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#health-status.)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509922)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/epic_health_status.png\">\n\n### GitLab Pagesでのプライマリドメインへのリダイレクト\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\nGitLab Pagesでプライマリドメインを設定し、カスタムドメインからのリクエストをすべてプライマリドメインに自動的にリダイレクトできるようになりました。訪問者がどのURLからサイトにアクセスしても、指定したドメインにリダイレクトされるため、SEOランキングを維持し、一貫したブランド体験を提供するのに役立ちます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/#primary-domain)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15000)\n\n### エピックに費やした時間の追跡\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nエピック内で直接時間をトラッキングして、プロジェクトの時間管理をより細かくコントロールできるようになりました。この新機能を使用すると、プロジェクトに費やされた時間を細分化して記録できるため、スプリントやマイルストーンを進める中で、進捗をモニタリングし、スケジュールを遵守し、予算を管理するのに役立ちます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/time_tracking.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509930)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/epic_time_tracking.png\">\n\n### ロールを使用してプロジェクトメンバーをGitLabコードオーナーとして定義\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nロールをGitLabコードオーナーとして`CODEOWNERS`ファイルに設定できるようになりました。これにより、ロールベースの技能と承認をより効率的に管理できるようになりました。個別のユーザーを列挙したり、グループを作成したりする代わりに、以下の構文を使用できます。\n\n* `@@developers`：デベロッパーロールが付与されたすべてのユーザーを参照  \n* `@@maintainers`：メンテナーロールが付与されたすべてのユーザーを参照  \n* `@@owners`：オーナーロールが付与されたすべてのユーザーを参照\n\nたとえば、`* @@maintainers`を追加すると、リポジトリにおけるすべての変更に対して、メンテナーによる承認が必要になります。  \nこれにより、プロジェクトにおいてチームメンバーの参加、離脱、またはロールの変更があった場合でも、GitLabコードオーナーを簡単に管理できます。GitLabが指定されたロールを持つすべてのユーザーを自動的に`CODEOWNERS`ファイルに反映するため、手動でファイルを更新することなく、常に最新の状態を維持できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/codeowners/reference.html#add-a-role-as-a-code-owner)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/282438)\n\n### 保護パッケージを使用して依存関係を守る\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n本リリースでは、PyPIの保護パッケージが新たにサポートされました。こちらは、GitLabパッケージレジストリのセキュリティと安定性を強化することを目的として設計された新機能です。急速に変化するソフトウェア開発の現場では、パッケージを誤って変更または削除してしまった場合、開発プロセス全体に混乱が生じる可能性があります。保護パッケージを使用すると、意図せぬ変更を防いで最も重要な依存関係を保護できます。\n\nGitLab 17.8からは、保護ルールを作成してPyPIパッケージを保護します。保護ルールの条件に合致したパッケージは、指定されたユーザーのみが更新または削除できます。この機能を使用すると、手動による監視の必要性を減らすことにより、意図せぬ変更の防止、規制要件に関連するコンプライアンスの強化、ワークフローの効率化を実現できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/323971)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/protected_pypi_packages.png\">\n\n### Kubernetes用ダッシュボードで一時停止中のFluxの調整を表示\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\nこれまではKubernetes用ダッシュボードでFluxの調整（Flux reconciliation）を一時停止しても、一時停止状態であることを示す明確な指標がありませんでした。本リリースでは、既存のステータス指標に新たに「一時停止」が追加され、Fluxの調整が中断された状態であることが明示されるようになり、デプロイの状態に関する可視性が向上しました。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501339)\n\n### Webhookイベントのサポート対象に脆弱性を追加\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\n脆弱性に関連するアクションに対してイベントを生成するWebhookインテグレーションが導入されました。これにより、自動化や外部リソースとの統合が可能になります。たとえば、脆弱性の発生時や脆弱性ステータスの変更時にイベントが生成されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#vulnerability-events)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/366770)\n\n\u003Cimg src=\"https://about.gitlab.com/images/unreleased/vulnerabiltiy-webhook.jpg\">\n\n### 脆弱性が修正されたコミットの特定\n\nSaaS：Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nこれまでは、脆弱性が検出されなくなった場合に、その脆弱性がいつ、どこで修正されたかを確認できませんでした。本リリースより、脆弱性が修正されたコミットSHAへのリンクが表示されるようになったため、トレーサビリティが向上したほか、修正プロセスに関する詳細なインサイトも取得可能になりました。これにより、セキュリティチームと開発チームが連携してより効果的に脆弱性を管理しやすくなりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/372799)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_8/commit-link-vulnerability.png\">\n\n### スケジュールされたスキャン実行パイプラインの並行処理を管理\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Ultimate\n\nグローバルスケジュール型スキャン実行ポリシーのスケーラビリティを向上させるために、スキャン実行ポリシーに時間枠を設定する機能が新たに導入されました。`time_window`プロパティでポリシーによって新規スケジュールが作成および実行される期間を定義し、最適なパフォーマンスを確保します。\n\n新たに追加されたプロパティを使用するには、YAMLモードを使用してポリシーを更新し、[`time_window`スキーマ](https://docs.gitlab.com/ee/user/application_security/policies/scan_execution_policies.html#time_window-schema)に従います。スケジュールが実行される時間枠は秒単位で指定できます。たとえば、24時間の時間枠を設定する場合は`86400`と指定します。次に、`distribution: random`フィールドおよび値を指定すると、定義された時間枠でスケジュールがランダムに実行されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/scan_execution_policies.html#concurrency-control)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13997)\n\n### コンプライアンスセンターの「フレームワーク」レポートタブのUIパフォーマンスをスケーリング\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nGitLab 17.8では、バックエンドを改良し、コンプライアンスセンターで一貫した応答性と高速な動作を実現しました。たとえコンプライアンスセンターの「**フレームワーク**」レポートタブに数千件のコンプライアンスフレームワークがある場合でも、この性能は維持されます。\n\nさらに、より詳細な情報を求めて「**フレームワーク**」タブで任意のフレームワークをクリックすると、右側のポップアップメニューに、そのフレームワークに関連付けられているプロジェクト情報が1,000件まで表示されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_frameworks_report.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/477394)\n\n### グループのプロジェクト作成権限にオーナーロールを追加\n\nSaaS：Free、Premium、Ultimate\u003Cbr>\nSelf-Managed：Free、Premium、Ultimate\n\n**プロジェクトの作成許可**設定を使用すると、プロジェクトを作成できる対象者をグループ内の特定のロールに制限できます。本リリースから、オーナーロールがオプションに追加され、新規プロジェクトを作成できる対象者をグループに対してオーナーロールを持つユーザーに制限できるようになりました。このロールは、これまで選択オプションに含まれていませんでした。\n\nこの場を借りて、コミュニティにコントリビュートしてくださった[@yasuk](https://gitlab.com/yasuk)さんに感謝申し上げます！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/index.html#specify-who-can-add-projects-to-a-group)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/354355)\n\n### 削除予定のサブグループとプロジェクトの表示\n\nSaaS：Premium、Ultimate\u003Cbr>\nSelf-Managed：Premium、Ultimate\n\nグループを削除対象としてマークする際は、影響を受けるすべてのサブグループとプロジェクトを確認する必要があります。これまでは削除対象としてマークされたグループのみに「削除の保留中」ラベルが表示されており、そのサブグループとプロジェクトには表示されていなかったため、削除予定のコンテンツを特定するのは大変でした。\n\n本リリースから、グループが削除対象としてマークされると、そのすべてのサブグループとプロジェクトに「削除の保留中」ラベルが表示されるようになりました。これにより、可視性が向上し、グループ階層全体でアクティブなコンテンツと削除予定のコンテンツを素早く見分けることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/#view-groups-pending-deletion)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/457718)\n\n## 実験的な機能\n\n### VS CodeでのSASTスキャン\n\nリアルタイムのGitLab SASTスキャンが、実験的な機能としてVS Codeで利用できるようになりました。\n\nプロジェクトファイルをコミットまたはプッシュする前にVS Codeで直接スキャンできるため、セキュリティの脆弱性をこれまでよりも早期に発見して修正できます。SASTスキャンのサイドパネルには、スキャン結果が表示され、コードに変更を加えると更新されます。脆弱性の結果にカーソルを合わせると、詳細な説明が表示されます。またはエディタウィンドウを開いて詳細を確認することも可能です。この機能の利用を開始するには、[こちらのドキュメント](https://docs.gitlab.com/ee/editor_extensions/visual_studio_code/#perform-sast-scanning)をご参照ください。\n\nこの機能は、UltimateプランでGitLab.comをご使用のお客様にご利用いただけます。ぜひ[フィードバック](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1775)をお寄せください。今後段階的に、本機能を改善していく予定です。\n\nデモをご覧になりたい場合は、[VS CodeでのSASTスキャンの動画](https://www.youtube.com/watch?v=KOYdVdA6ZCs)をご視聴ください。\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabでは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームをご利用のすべての方々に、スムーズでシームレスな体験をお届けすることを約束します。\n\n以下のリンクをクリックして、17.8のバグ修正、パフォーマンスの強化、UIの改善についてすべてご覧ください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.8)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.8)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.8)\n\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n\n### 過去の日本語リリース情報\n\n### 過去の日本語リリース情報\n\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-01-28",{"slug":1263,"featured":91,"template":685},"gitlab-17-8-release","content:ja-jp:blog:gitlab-17-8-release.yml","Gitlab 17 8 Release","ja-jp/blog/gitlab-17-8-release.yml","ja-jp/blog/gitlab-17-8-release",{"_path":1269,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1270,"content":1276,"config":1282,"_id":1284,"_type":14,"title":1285,"_source":16,"_file":1286,"_stem":1287,"_extension":19},"/ja-jp/blog/gitlab-17-9-release",{"title":1271,"description":1272,"ogTitle":1271,"ogDescription":1272,"noIndex":6,"ogImage":1273,"ogUrl":1274,"ogSiteName":669,"ogType":670,"canonicalUrls":1274,"schema":1275},"GitLab 17.9リリース","GitLab 17.9でリリースした最新機能をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662202/Blog/Hero%20Images/product-gl17-blog-release-cover-17-9-0093-1800x945-fy25.png","https://about.gitlab.com/blog/gitlab-17-9-release","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 17.9リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-02-20\",\n      }",{"title":1271,"description":1272,"authors":1277,"heroImage":1273,"date":1278,"body":1279,"category":705,"tags":1280,"updatedDate":1281},[853],"2025-02-20","**GitLab 17.9がリリースされ、生成AIの大規模言語モデル（LLM)を閉じた環境にデプロイ可能になったGitLab Duoの一般提供を開始しました**\n\nこのたび、GitLab 17.9のリリースを発表しました。このリリースでは、生成AIの大規模言語モデル(LLM)を閉じた環境にデプロイ可能になったGitLab Duoの一般提供、複数のGitLab Pagesサイトを並列デプロイで実行できる機能、VS CodeやJetBrains IDEでGitLab Duo Chatにプロジェクトファイルを取り込んでより深い解釈を可能にするオプション、古くなったパイプラインの自動削除など、さまざまな機能が追加されました。  \nこれらの機能は、今回のリリースに含まれる110件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。  \n\nGitLab 17.9には、GitLabコミュニティのユーザーから322件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、17.10リリースのキックオフビデオも視聴できる今後のリリースページをご覧ください。\n\n> [GitLab 17.9では、生成AIの大規模言語モデル（LLM)を閉じた環境にデプロイ可能になったGitLab Duoの一般提供を開始しました。クリックしてSNSで共有しましょう](https://x.com/intent/post?text=GitLab+17.9%E3%81%A7%E3%81%AF%E3%80%81%E7%94%9F%E6%88%90AI%E3%81%AE%E5%A4%A7%E8%A6%8F%E6%A8%A1%E8%A8%80%E8%AA%9E%E3%83%A2%E3%83%87%E3%83%AB%EF%BC%88LLM%29%E3%82%92%E9%96%89%E3%81%98%E3%81%9F%E7%92%B0%E5%A2%83%E3%81%AE%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%8C%E5%8F%AF%E8%83%BD%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%9FGit+Lab+Duo%E3%81%AE%E4%B8%80%E8%88%AC%E6%8F%90%E4%BE%9B%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https%3A%2F%2Fabout.gitlab.com%2Fja-jp%2Fblog%2F2025%2F02%2F20%2Fgitlab-17-9-release%2F)\n\n## 今月の[MVP](https://about.gitlab.com/community/mvp/)は[Salihu Dickson](https://gitlab.com/salihudickson)さんが受賞\n\nMVPには、誰もが[GitLabコミュニティのコントリビューターをMVPに推薦できます](https://gitlab.com/gitlab-org/developer-relations/contributor-success/team-task/-/issues/490)。現在の候補者を応援したり、他の誰かをノミネートしてみませんか🙌\n\n今回、コミュニティから200件以上の反響を集めた待望の[Wikiページへのコメント機能](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/171764)の開発を実装した、[Salihu Dickson](https://gitlab.com/salihudickson)さんの素晴らしい貢献を称え、MVPとして表彰できることを嬉しく思います！\n\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n## GitLab 17.9でリリースされた主な改善点\n\n### セルフホストモデルが可能になったGitLab Duoの一般提供を開始\n\nSaaS: -\u003Cbr>\nSelf-Managed: Ultimate、Duo Enterprise\n\nこれにより、選択した大規模言語モデル（LLM）を自社のインフラストでホストし、それを GitLab Duo のコード提案やチャットのソースとして設定できるようになりました。この機能は、GitLab Ultimate \\+ Duo Enterpriseライセンスを持つセルフホスト型GitLabで一般提供が開始されました。\n\nセルフホストモデルが可能になったGitLab Duoを使用することで、オンプレミスまたはプライベートクラウドにホストされたモデルを GitLab Duo Chat やコード提案のソースとして利用できます。現在、Mistralモデル（vLLM または AWS Bedrock上でのオープンソース型モデル）、AWS BedrockのClaude 3.5 Sonnet、Azure OpenAIのOpenAIモデルをサポートしています。セルフホストモデルを活用することで、生成AIの力を最大限活かしながら、外部サービスに依存することなくデータ主権とプライバシーを確保できます。\n\nイシュー[512753](https://gitlab.com/gitlab-org/gitlab/-/issues/512753)から、ぜひフィードバックをお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/gitlab_duo_self_hosted/)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/517102)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/SH-UI.png\">\n\n### 複数のGitLab Pagesサイトを並列デプロイで実行可能に\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n並列デプロイを使用して、複数のバージョンのGitLab Pagesサイトを同時に作成できるようになりました。各デプロイには、指定したプレフィックスに基づいて一意のURLが設定されます。たとえば、独自ドメインを指定した場合は`project-123456.gitlab.io/prefix`から、独自ドメインを指定しない場合は`namespace.gitlab.io/project/prefix`からサイトにアクセスできます。\n\nこの機能は、特に以下のような場合に役立ちます。\n\n- デザインの変更やコンテンツの更新をプレビューする  \n- 開発中のサイトの変更内容をテストする  \n- マージリクエストによる変更内容を確認する  \n- 複数のサイトのバージョンを保守する（ローカライズされたコンテンツなど）\n\nデフォルトでは、並列デプロイは24時間後に自動的に失効します。過去のデプロイが蓄積するのを防ぎ、効率的にストレージを管理できます。ただし、有効期間をカスタマイズしたり、デプロイが失効されないように設定したりすることが可能です。マージリクエストから作成された並列デプロイは、マージリクエストがマージされた、または完了したタイミングで削除（自動クリーンアップ）されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/#parallel-deployments)\u003Cbr>\n\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14434)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/pages_pd_ga.png\">\n\n### VS CodeやJetBrains IDEでGitLab Duo Chatにプロジェクトファイルの追加が可能に\n\nSaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\u003Cbr>\nSelf-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise\n\nプロジェクトファイルをVS CodeやJetBrainsのGitLab Duo Chatに直接追加して、より強力でコンテキストに対応したAIアシストを利用できるようになりました。\n\nGitLab Duo Chatにプロジェクトファイルを追加することで、Duo Chatは特定のコードベースをより深く理解し、コンテキストに沿った正確な回答を提供できるようになります。このようなコンテキストアウェアネス（状況や背景を理解する能力）により、より適切なGitLab Duoコードの説明、デバッグに関する的確なサポート、既存のコードベースに密接に沿った提案が提供されます。この素晴らしい新機能に関するフィードバックをお待ちしています。ぜひ[フィードバック](https://gitlab.com/gitlab-org/gitlab/-/issues/492443)イシューからご意見をお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#ask-about-specific-files) \u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15183)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ycBgDBaUS9M?si=M1nflRQ0CFbFu0YA\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### Sysboxを用いたワークスペースコンテナのサポート\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nGitLabワークスペースにおいて、開発環境でコンテナのビルドと実行を直接行えるようになりました。[Sysboxを使用して](https://docs.gitlab.com/ee/user/workspace/configuration.html#with-sysbox)設定されたKubernetesクラスター上でワークスペースを実行している場合、追加の設定なしでコンテナのビルドと実行が可能です。\n\nこの機能はGitLab 17.4で[sudoアクセス機能](https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/#secure-sudo-access-for-workspaces)の一部として提供されており、GitLabワークスペース環境で完全なコンテナワークフローを維持できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/configuration.html#build-and-run-containers-in-a-workspace)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/452464)\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ycBgDBaUS9M?si=t4o-ONBzWEgb5oL1\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### カスタムdevfileなしでワークスペースが作成可能に\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nこれまでは、ワークスペースを設定する際に、`devfile.yaml`設定ファイルを作成する必要がありました。本リリースから、GitLabでは一般的な開発ツールを含むデフォルトファイルが提供されるようになりました。この機能強化により、次のことが可能になります。\n\n- 設定の手間がかからなくなる  \n- どのプロジェクトからでも素早くワークスペースを作成できる  \n- 一般的な開発ツールが事前に設定されており、すぐに利用可能  \n- 設定に時間をかけずに、開発に集中できる\n\n追加設定や設定手順の手間を省いて、すぐにワークスペースを作成して開発を始めることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/#gitlab-default-devfile)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14644)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/default_devfile.png\">\n\n### GitLab管理の[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソース\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n[GitLab管理のKubernetesリソース](https://docs.gitlab.com/ee/user/clusters/agent/kubernetes_managed_resources.html)を活用すれば、[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)へのアプリケーションのデプロイプロセスの自動化が進み、きめ細かい制御も可能になります。これまでは、環境ごとに手動で[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソースを設定する必要がありましたが、本リリースではGitLab管理の[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソースを使用して、リソースを自動的にプロビジョニングして管理できるようになりました。\n\nGitLab管理の[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソースを使用すると、次のことを行えます。\n\n- 新しい環境のネームスペースとサービスアカウントを自動的に作成する  \n- ロールバインディングによってアクセス権限を管理する  \n- ほかに必要な[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソースを設定する\n\nデベロッパーがアプリケーションをデプロイすると、GitLabは用意されたリソーステンプレートに基づいて必要な[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)リソースを自動的に作成します。これにより、デプロイプロセスが効率化されるほか、環境間の一貫性が保たれます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/managed_kubernetes_resources.html)  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16130)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/deploy-gitlabmanaged-kubernetes-resources.png\">\n\n### より簡単にプロジェクト環境内のデプロイ情報にアクセスできるように\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでプロジェクト内のデプロイの概要を把握するのに苦労したことはありませんか？本リリースでは、各環境をいちいち展開しなくても、環境リストで最近のデプロイの詳細を閲覧できるようになりました。環境リストには、各環境における最新の成功したデプロイが表示されます。成功したデプロイがない場合は、試行された最新のデプロイが表示されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/environments/)  \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/505770)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/deploy-surface-deployment-information-to-the-environment-list-view.png\">\n\n### Wikiページのコメント\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースからWikiページに直接コメントを追加できるようになりました。本来ドキュメントは静的なものですが、本機能を活用することでドキュメントを意見交換を伴う共同作業の場として使えるようになります。\n\nWikiページのコメントやスレッドは、チームが次のことを行うのに役立ちます:\n\n- コンテンツに沿ってドキュメント上で直接議論する\n- 改善点や修正案を提案する\n- ドキュメントを正確かつ最新の状態に保つ\n- 経験や専門知識を共有する\n\nWikiコメントを活用することで、ドキュメントが単なる記録ではなく、プロジェクトの進行に合わせて進化する「生きたドキュメント」になります。チームは、直接的なフィードバックや意見交換を通じて内容をリアルタイムで更新し続けることができます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/discussions/)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14062)\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/Qnc8jXIqMqw?si=yse1OJsbNM0O4TCL\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### ワークフローの可視性の強化：マージリクエストのレビュー時間に関する新たなインサイト\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n開発ワークフローの追跡を改善するために、[バリューストリーム分析](https://about.gitlab.com/solutions/value-stream-management/)（VSA）に新しいイベント「*Merge request last approved at*（*マージリクエストが最後に承認されたタイミング）*」が追加されました。[マージリクエストの承認](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)イベントは、レビュー段階の終了と、最終的なパイプラインの実行またはマージステージの開始を記録します。たとえば、マージリクエストの総レビュー時間を計算するには、VSAステージを作成して、開始イベントとして「*Merge request reviewer first assigned（マージリクエストのレビュアーが最初にアサイン）*」を、また終了イベントとして「*Merge request last approved at （マージリクエストが最後に承認されたタイミング）*」を指定します。\n\nこの機能強化により、チームはレビュー時間に関するインサイトを得ることができ、レビューを最適化しやすくなります。、結果として、開発全体のサイクルタイムが短縮され、そしてソフトウェアデリバリーをより迅速に行えるようになります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events) \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/503754)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/17_9_vsa_last_approved.png\">\n\n### 脆弱性リスクの優先順位付けに役立つEPSS、KEV、およびCVSS（共通脆弱性評価システム）データ\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n本リリースで、次の脆弱性リスクデータのサポートを追加しました。\n\n- 悪用予測スコアリングシステム（EPSS）  \n- 悪用されている既知の脆弱性（KEV）  \n- 共通脆弱性識別子（CVE）\n\nこれらのデータを使用して、依存関係やコンテナイメージにおける脆弱性のリスクを効率的に優先順位付けできるようになりました。このデータは、脆弱性レポートおよび脆弱性の詳細ページで確認できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/risk_assessment_data.html)\u003Cbr>  \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11544)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/srm_epss_cvss_kev.png\">\n\n### UIからDASTスキャンの詳細設定が可能に\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n複雑なアプリケーションを効果的にテストするには、セキュリティチームがDASTスキャンを柔軟に設定できる必要があります。これまでは、UIからDASTスキャンを設定する際に利用できる設定オプションが限られていたため、特定のセキュリティ要件が求められるアプリケーションではスキャンがうまく行えないことがありました。そのため、簡単なセキュリティ評価を行う場合でも、パイプラインベースのスキャンを使用する必要がありました。\n\n本リリースから、UIからDASTスキャンを設定する際にも、パイプラインベースのスキャンの利用時と同様の詳細な設定が、可能になりました。これには以下が含まれます。\n\n- カスタムヘッダーやクッキーを含む完全な認証設定  \n- 最大ページ数、最大深度、除外URLなどの正確なクロール設定  \n- 高度なスキャンのタイムアウトと再試行  \n- クロールするリンクの最大件数やDocument Objet Model（DOM）の深度など、カスタムスキャナーの動作  \n- 特定の脆弱性タイプを対象としたスキャンモード\n\nこれらの設定を再利用可能なプロファイルとして保存することで、複数のアプリケーション間で一貫したセキュリティテストを行えます。すべての変更は監査イベントによって追跡されるため、スキャン設定が追加、編集、削除されたタイミングを把握できます。\n\nこのような制御の強化により、詳細な監査証跡を使用してコンプライアンスに準拠したより効果的なセキュリティスキャンを実行できます。パイプライン設定の管理に時間がかからないため、アプリケーションごとに適切なスキャンを素早く実行し、脆弱性を迅速に発見して修正できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dast/on-demand_scan.html)\u003Cbr>  \n[イシュー](https://gitlab.com/groups/gitlab-org/-/epics/16057)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/dast_parity.png\">\n\n### CI/CDパイプラインの自動クリーンアップ\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでは、古くなったCI/CDパイプラインを削除する場合、API経由で行う必要がありました。\n\nGitLab 17.9では、CI/CDパイプラインの有効期限を設定できるプロジェクト設定が導入され、指定した保持期間よりも古いパイプラインと関連するアーティファクトは自動的に削除されるようになりました。数多くのパイプラインを実行し、大きなアーティファクトを作成するプロジェクトはディスク使用量を圧迫する原因になりますが、この機能により不要なパイプラインやアーティファクトが自動で削除されるため、、ディスク使用量が抑えられ、さらに全体的なパフォーマンスの向上にもつながります。\n\n[ドキュメント](https://docs.gitlab.com/ee/ci/pipelines/settings.html#automatic-pipeline-cleanup)\u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/338480)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/verify_auto_pipeline_cleanup.png\">\n\n## GitLab 17.9のリリースに含まれるその他の改善点\n\n### REST APIでグループからプロジェクトのインテグレーションを管理\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、グループからプロジェクトのインテグレーションを管理する際は、GitLab UIから行う必要がありました。本リリースでは、REST APIを使用してこれらのインテグレーションを管理できるようになりました。\n\nこの場を借りて、[最初にコミュニティにコントリビュート](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148283)してくれた[Van](https://gitlab.com/van.m.anderson)さんに感謝します。Vanさんのコントリビュート後、GitLabが引き継いで実装しました。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/group_integrations.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/328496)\n\n### GitLab Pagesへのアクセスをグループレベルで制御\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab Pagesへのアクセスをグループレベルで制限できるようになりました。グループオーナーは、この設定を有効にするだけで、グループとそのサブグループ内のすべてのGitLab Pagesサイトをプロジェクトメンバーのみに限定公開できます。この一元管理により、個々のプロジェクト設定を変更しなくて済むため、セキュリティ管理が簡素化されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/pages/pages_access_control.html#restrict-pages-access-to-project-members-for-the-group-and-its-subgroups)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/254962)\n\n### 作業アイテム用GraphQL APIにクエリフィルターを追加\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n作業アイテム用のGraphQL APIに新たなクエリフィルターが追加され、次の条件で絞り込めるようになりました。\n\n- 作成日、更新日、完了日、期日\n- ヘルスステータス\n- ウェイト\n\nこれらの新しいフィルターを使用することで、APIを介して作業アイテムをクエリおよび整理する際に、より細かい制御が可能になります。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/graphql/reference/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/513308)\n\n### GitLab Runner 17.9\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n本日、GitLab Runner 17.9もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n新機能:\n- [Runnerオートスケーラーインスタンス用のヘルスチェックを追加](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38271)\n- [Runner準備段階の所要時間をヒストグラムメトリクスとして追加](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37471)\n- [Kubernetesエグゼキューターでサービスコンテナに任意の名前を付けられるように](https://gitlab.com/gitlab-org/gitlab/-/issues/421131)\n\nバグ修正:\n- [GitLab RunnerがS3 Express One Zoneからキャッシュを取得できない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38484)\n- [Kubernetes上のGitLab RunnerがAWS Spotインスタンスに対して「runner_system_failure」ではなく「script_failure」と報告する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37911)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-9-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner/) \n\n### GitLabとKubernetesとの統合に関する入門ガイド\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n本リリースでは、新しい[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)入門ガイドを追加しました。このガイドでは、GitLabとFluxCDを使用してアプリケーションを直接[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)にデプロイする方法を説明しています。これらのチュートリアルはわかりやく、[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)に関する深い知識がなくても完了できます。そのため、初心者でも経験豊富なユーザーでもGitLabと[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)を統合する方法を理解していただけます。\n\nまた、[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)入門ガイドには、内容を補完するために、GitLabを[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)環境に統合する際の一連の推奨事項も含めました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/clusters/agent/getting_started)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/505216)\n\n### Cargo、Conda、Cocoapods、SwiftプロジェクトでSBOMを用いた依存関係スキャンを有効にする\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nGitLab 17.9のリリースに伴い、コンポジション解析チームがSBOM（ソフトウェア部品表）を用いた依存関係スキャンへの移行を開始します。この移行には、新たな依存関係スキャンアナライザーが導入されます。このアナライザーはGemnasiumに代わるものです。Gemnasiumはバージョン18.0でサポートを終了しますが、GitLab 19.0までは引き続き使用可能です。\n\nSBOMを活用した依存関係スキャンのアプローチにより、対応言語の拡充、GitLabプラットフォーム内の統合強化とユーザーエクスペリエンスの向上、および業界標準のレポート形式（SBOMベースのスキャンとレポート）への移行という点で、お客様をより適切にサポートできるようになります。GitLab 17.9の時点で、新しい依存関係スキャンアナライザーは次のプロジェクトおよびファイル形式の場合、`latest`の依存関係スキャンCI/CDテンプレート（`Dependency-Scanning.latest.gitlab-ci.yml`）で、デフォルトで有効になります。\\* `conda-lock.yml`ファイルでCondaを使用しているC/C++/Fortran/Go/Python/Rプロジェクト\\* `podfile.lock`ファイルでCocoapodsを使用しているObjective-Cプロジェクト\\* `cargo.lock`ファイルでCargoを使用しているRustプロジェクト\\* `package.resolved`ファイルでSwiftを使用しているSwiftプロジェクト\n\nこの変更に伴い、新しいCI/CD変数として`DS_ENFORCE_NEW_ANALYZER`（デフォルトでは`false`）が導入されます。\n\nこの方法によって、`latest`テンプレートを使用しているすべての既存ユーザーは、デフォルトでGemnasiumアナライザーを引き続き利用でき、上記のファイル形式では新しい依存関係スキャンアナライザーが自動的に有効になります。\n\n新しい依存関係スキャンへの移行を希望する既存ユーザーは、（プロジェクト、グループ、またはインスタンスレベルで）`DS_ENFORCE_NEW_ANALYZER`を`true`に設定してください。この変更の詳細については、[非推奨化のお知らせ](https://docs.gitlab.com/ee/update/deprecations.html?removal_milestone=18.0#dependency-scanning-upgrades-to-the-gitlab-sbom-vulnerability-scanner)と関連する[移行ガイド](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/migration_guide_to_sbom_based_scans.html)をご参照ください。\n\n新しい依存関係スキャンアナライザーを一切使用したくない場合は、CI/CD変数`DS_EXCLUDED_ANALYZERS`を`dependency-scanning`に設定する必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/dependency_scanning_sbom/)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/519597)\n\n### マルチコアAdvanced SASTがより高速なスキャンを提供\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nAdvanced SAST で、パフォーマンス向上のためのオプトイン機能としてマルチコアスキャンが利用できるようになりました。これにより、特に大規模なコードベースでは、スキャン時間が大幅に短縮されます。\n\nこの機能を有効にするには、CI/CD 変数`SAST_SCANNER_ALLOWED_CLI_OPTS`を `--multi-core N`に設定してください。`N`は使用したいコア数です。この変数は`gitlab-advanced-sast`ジョブにのみ設定し、他のジョブには設定しないでください。適切な値の選択方法については、[ドキュメント](https://docs.gitlab.com/user/application_security/sast/#security-scanner-configuration)で重要なガイダンスを確認してください。\n\nこのパフォーマンス向上をデフォルトで有効にする作業を進めています。これは[イシュー517409](https://gitlab.com/gitlab-org/gitlab/-/issues/517409) で追跡されています。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/#security-scanner-configuration)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/514156)\n\n### プロジェクトの依存関係リストでコンポーネントによるフィルタリングが可能に\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nプロジェクトの依存関係リストで、コンポーネントフィルターを使用してパッケージ名でフィルタリングできるようになりました。\n\nこれまで、プロジェクトレベルの依存関係リストでは、パッケージを検索することができませんでした。コンポーネントフィルターを設定すれば、指定した文字列を含むパッケージを見つけられるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/dependency_list/#filter-dependency-list)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16490)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/srm_dependency_list_project_filter_by_component.png\">\n\n### 脆弱性レポートで識別子によるフィルタリング\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nプロジェクトの脆弱性レポートにおいて、脆弱性識別子を使用して結果をフィルタリングできるようになりました。これにより、プロジェクトやグループに潜む特定の脆弱性（CVEやCWEなど）を見つけられます。識別子は、別のフィルター（重大度、状態、ツールなど）と組み合わせて使用できます。脆弱性識別子フィルターは、脆弱性の数が20,000件を超えるレポートには適用できません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#filtering-vulnerabilities)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13340)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/srm_filter_by_vulnerability_identifier.png\">\n\n### パイプライン実行ポリシーでマージリクエスト変数をサポート\n\nSaaS: Ultimate\u003Cbr> \nSelf-Managed: Ultimate\n\nパイプライン実行ポリシーで新しいマージリクエスト変数がサポートされるようになり、マージリクエスト関連の情報を考慮した、これまでよりも洗練されたポリシーを作成できるようになりました。CI/CDの適用をより的確かつ効率的に管理できるようになります。以下の変数がサポートされました。\n\n* `CI_MERGE_REQUEST_SOURCE_BRANCH_SHA`  \n* `CI_MERGE_REQUEST_TARGET_BRANCH_SHA`  \n* `CI_MERGE_REQUEST_DIFF_BASE_SHA`\n\nこの機能拡張により、次のことが可能になります。\n\n- ソースブランチとターゲットブランチ間の変更点を比較する高度なセキュリティスキャンを実装し、徹底したコードレビューと脆弱性検出を実現する。\n\n- 各マージリクエストの詳細に基づいて適応する動的な構成のパイプラインを作成し、開発プロセスを効率化する。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html)  \n[エピック](https://gitlab.com/gitlab-org/gitlab/-/issues/512916)\n\n### ローテーション対象のサービスアカウントにカスタムの有効期限を設定\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nサービスアカウントのアクセストークンをローテーションする際に、expires\\_at属性を使用してカスタムの有効期限を設定できるようになりました。これまで、トークンは、ローテーションしてから7日後に自動的に失効していました。これにより、トークンの有効期限をよりきめ細かく管理できるようになり、安全にアクセス制御を継続して行う機能が強化されました。  \n\n[ドキュメント](https://docs.gitlab.com/ee/api/group_service_accounts.html#rotate-a-personal-access-token-for-a-service-account-user)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/505671)\n\n### カスタムロールの新しい権限\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nカスタムロールの作成時に、[コンプライアンスダッシュボードの読み取り権限](https://gitlab.com/gitlab-org/gitlab/-/issues/465324)を指定できるようになりました。カスタムロールを使用すると、ユーザーに対して、タスクの完了に必要な特定の権限のみを付与できます。これにより、グループのニーズに合わせてロールを定義できるため、オーナーまたはメンテナーロールが必要なユーザー数を減らせます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/custom_roles.html)   \n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14746)\n\n### `Self_rotate`スコープを使ってアクセストークンをローテーションする\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n`self_rotate`スコープを使用して、アクセストークンをローテーションできるようになりました。このスコープは、パーソナルアクセストークン、プロジェクトアクセストークン、グループアクセストークンで使用できます。これまでは、新しいトークンの取得、そしてトークンのローテーションの実行というように、2つのリクエストを行う必要がありました。\n\nこの場を借りて、コントリビュートしてくれた[Stéphane Talbot](https://gitlab.com/stalb)さんと[Anthony Juckel](https://gitlab.com/ajuckel)さんに感謝します！  \n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-token-scopes)  \n [イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/430748)\n\n### 複数のOIDCプロバイダーの使用時に追加のグループメンバーシップをサポート\n\nSaaS: -\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\n複数のOIDCプロバイダーを使用している場合に、追加のグループメンバーシップを設定できるようになりました。これまでは、複数のOIDCプロバイダーを設定している場合でも、単一のグループメンバーシップしか設定できませんでした。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/auth/oidc.html#configure-multiple-openid-connect-providers)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/408248)\n\n### アクセストークンのIPアドレスを表示\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまでパーソナルアクセストークンの表示画面では、何分前にトークンが使用されたかという情報しか確認できませんでした。本リリースでは、トークンが使用された直近7件のIPアドレスも表示されるようになりました。このように情報がまとめて表示されることで、トークンがどこで使用されているかを追跡しやすくなります。\n\nこの場を借りて、コントリビュートしてくれた[Jayce Martin](https://jrm2k.us/)さん、[Avinash Koganti](http://www.linkedin.com/in/avinash-koganti-38b511162)さん、[Austin Dixon](https://austindixon.net/)さん、[Rohit Kala](https://www.linkedin.com/in/rohit-kala-1b891a179)さんに感謝します！  \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) \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/428577)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/govern_accesstoken_ip.png\">\n\n### AIエージェントとユーザーの両方のアイデンティ情報に基づいたより安全なアクセス管理\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、GitLabへのリクエストは単一のユーザーとしてのみ認証されていましたが、新しい「複合アイデンティティ」機能を使用することで、リクエストをサービスアカウントとユーザーの両方で同時に認証できるようになりました。AIエージェントのユースケースでは、システム内でタスクを実行したユーザーに基づいた権限が必要とされる一方で、そのユーザーとは異なる独自のアイデンティティを保持することが求められます。複合アイデンティティは、AIエージェントのアイデンティティを表す新しいアイデンティティプリンシパルであり、エージェントにアクションをリクエストした人間ユーザーのアイデンティティと関連付けられます。AIエージェントがリソースにアクセスしようとすると、複合アイデンティティトークンが使用されます。このトークンはサービスアカウントに紐づき、同時にエージェントを指示した人間ユーザーにもリンクされています。トークンに対する認可チェックは、リソースへのアクセスを許可する前に両方のアイデンティティを確認します。両方のアイデンティティがリソースにアクセスする権限を持っていない場合、アクセスは拒否されます。この新機能は、GitLab内でのリソース保護を強化するものです。サービスアカウントの複合アイデンティティの使用方法についての詳細は、[ドキュメント](https://docs.gitlab.com/development/ai_features/composite_identity/)をご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/development/ai_features/composite_identity/)\u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/506641)\n\n### 作業アイテムタイプを変更\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n作業アイテムタイプを簡単に変更できるようになりました。これにより、より効率的かつ柔軟にプロジェクトを管理できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/tasks.html#convert-a-task-into-another-item-type)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/385131)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/change_work_item_type_to_another.png\">\n\n### 送信したフォームに子アイテムを直接追加\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n複数の子アイテムを作成する際に、フォームが送信後も開いたままになるよう改善しました。余分なクリックなしで複数のエントリを簡単に追加できるようになったため、時間の節約につながるほか、タスク管理のワークフローもよりスムーズになります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#multi-level-child-epics)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/497767)\n\n### ワークスペース拡張機能でProposed APIをサポート\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nワークスペース拡張機能でProposed APIの有効化がサポートされ、本番環境での互換性と信頼性が向上しました。このアップデートによって、Python Debuggerなどの重要な開発ツールを含め、Proposed APIを利用する拡張機能がエラーなしに動作するようになりました。安定性を維持しながらAPIアクセスの拡大を実現させた改善と言えます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/workspace/#extension-marketplace)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/514741)\n\n### 証明書ベースのKubernetesクラスターの特定および移行\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n証明書ベースの[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)インテグレーションは、全ユーザーを対象に、2025年5月6日午前9時（UTC）から2025年5月8日午後10時（UTC）までの間にGitLab.comで無効化されます。さらに、GitLab 19.0でGitLab Self-Managedインスタンスから削除される予定です（2026年5月を予定）。\n\nユーザーの移行を支援するために、新たなクラスターAPIエンドポイントを追加しました。これにより、グループオーナーは、グループ、サブグループ、プロジェクトに登録されている[証明書ベースクラスター](https://docs.gitlab.com/ee/api/cluster_discovery.html)をクエリできるようになります。また、[移行に関するドキュメント](https://docs.gitlab.com/ee/user/infrastructure/clusters/migrate_to_gitlab_agent.html)を更新し、さまざまなユースケースに対応した移行手順を追加しました。\n\nGitLab.comのユーザーのみなさまは、影響の有無を確認した上で、早めに移行計画を立てることが推奨されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/cluster_discovery.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/512420)\n\n### FluxCD CI/CDコンポーネントを使用してOCIベースでGitOpsを実装\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\n[FluxCDコンポーネント](https://gitlab.com/components/fluxcd/)を使用することで、GitOpsのベストプラクティスを簡単に実現できます。FluxCDコンポーネントを使用して[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)マニフェストをOCIイメージとしてパッケージ化し、OCI互換のコンテナレジストリに保存できます。さらに、オプションとして、これらのイメージに署名し、FluxCDによる即時のリコンシリエーション（同期）をトリガーすることも可能です。\n\n[ドキュメント](https://gitlab.com/components/fluxcd/)\u003Cbr> \n[イシュー](https://gitlab.com/gitlab-org/ci-cd/deploy-stage/environments-group/experiments/fluxcd-ci-cd-component/-/issues/1)\n\n### Swiftパッケージのライセンススキャンをサポート\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nGitLab 17.9では、Swiftパッケージのライセンススキャンのサポートが追加されました。これにより、プロジェクト内でSwiftを使用しているユーザーは、Swiftパッケージのライセンスをより詳しく把握できるようになります。\n\nこのデータは、依存関係リスト、SBOMレポート、およびGraphQL APIを介して、コンポジション解析ユーザーが利用できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/index.html)   \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/506730)\n\n### 適用中のセキュリティポリシープロジェクトの削除をブロック\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nセキュリティポリシーを安全に管理し、有効化・適用されているポリシーの中断を防ぐために、運用中のセキュリティポリシープロジェクトの削除を防ぐ保護機能を追加しました。\n\nグループまたはプロジェクトにリンクされているセキュリティポリシープロジェクトを削除する場合は、まずはリンクを削除する必要があります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/)  \n[エピック](https://gitlab.com/gitlab-org/gitlab/-/issues/482967)\n\n### パイプライン実行ポリシーでカスタムステージを適用\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nパイプライン実行ポリシーの新機能として、CI/CDパイプラインにおいて`Inject`モードで**カスタムステージ**を適用できるようになりました。この機能を使用すると、セキュリティとコンプライアンス要件を遵守しながら、パイプライン構造をより柔軟に制御し、次のことを実現できます。\n\n- **パイプラインのカスタマイズの強化**：カスタムステージを定義してパイプラインの特定の箇所に挿入することで、ジョブの実行順序をよりきめ細かく制御できます。  \n- **セキュリティとコンプライアンスの向上**：パイプラインにおいて最適なタイミング（例：ビルド後かつデプロイ前）で、セキュリティスキャンとコンプライアンスチェックが実行されるように指定できます。  \n- **柔軟なポリシー管理**：ポリシーを一元管理しながら、開発チームが定義されたガードレール内でパイプラインを自由にカスタマイズできます。  \n- **シームレスな統合**：カスタムステージは、既存のプロジェクトステージやその他のポリシータイプと連携するため、CI/CDワークフローを中断することなく強化できます。\n\n**仕組み**\n\n新たに改良されたパイプライン実行ポリシー用の`inject_policy`を使用すると、ポリシー設定でカスタムステージを定義できます。定義されたカスタムステージは、有向非巡回グラフ（DAG）アルゴリズムを使用してプロジェクトの既存のステージ間の依存関係を効率的管理した上で自動的にマージされるため、適切な順序が設定され、競合が回避されます。\n\nたとえば、ビルドステージとデプロイステージの間にカスタムセキュリティスキャンステージを簡単に挿入できます。\n\n`inject_policy`ステージは、非推奨となる`inject_ci`に代わるものです。`inject_policy`モードを選択することで、より効果的にポリシーを管理、適用できるようになります。ポリシーエディターで`Inject`を使用してポリシーの設定を行った場合、デフォルトで`inject_policy`モードが設定されます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#inject_policy)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/475152)\u003Cbr>\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/custom-stages-yaml.png\">\n\n### マージリクエスト承認ポリシーでカスタムロールをサポート\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\nマージリクエスト承認ポリシーに、承認者としてカスタムロールを割り当てられるようになりました。\n\nこれにより、組織のチーム構成や職務に応じた承認要件を設定でき、適切な担当者がポリシーに基づいてレビュープロセスに関与するよう調整可能になります。たとえば、セキュリティレビューにはアプリケーションセキュリティ（AppSec）エンジニアリングロールによる承認が、ライセンス承認にはコンプライアンスロールによる承認が必要と設定できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html#require_approval-action-type)\u003Cbr>\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13550)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/custom-roles.png\">\n\n### プロジェクトのコンプライアンスセンターを使用してコンプライアンスフレームワークを適用\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nGitLab 17.2では、グループオーナーがグループのコンプライアンスセンターを使用して、グループ内のすべてのプロジェクトにコンプライアンスフレームワークを適用および削除する機能をリリースしました。\n\n本リリースではこの機能がさらに強化され、グループオーナーがプロジェクトレベルでもコンプライアンスフレームワークを適用および削除できるようになりました。これにより、グループオーナーによるプロジェクトレベルでのコンプライアンスフレームワークの適用およびモニタリングが容易になります。\n\nコンプライアンスフレームワークをプロジェクトレベルで適用および削除する機能は、グループオーナーのみが利用可能で、プロジェクトオーナーは利用できません。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_projects_report.html)  \u003Cbr>\n[エピック](https://gitlab.com/gitlab-org/gitlab/-/issues/507986)\n\n### サービスアカウントに関するメール通知\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nサービスアカウントのメール通知の送信先として、カスタムメールアドレスを設定できるようになりました。サービスアカウントの作成時にカスタムメールアドレスを指定すると、そのメールアドレス宛にGitLabから通知が送信されます。サービスアカウントごとに一意のメールアドレスを用いる必要があります。これにより、プロセスやイベントをより効果的にモニタリングできます。\n\nこの場を借りて、コントリビュートしてくれた[SNCF Connect & Techチーム](https://www.sncf-connect-tech.fr/)の[Gilles Dehaudt](https://gitlab.com/tonton1728)さん、[Étienne Girondel](https://gitlab.com/lenaing)さん、[Kevin Caborderie](https://gitlab.com/Densett)さん、[Geoffrey McQuat](https://gitlab.com/gmcquat)さん、[Raphaël Bihore](https://gitlab.com/rbihore)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/service_accounts.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/428750)\n\n### OAuthアプリケーション認証の監査イベント\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nこれまで、ユーザーがOAuthアプリケーションを認証しても、その行為を記録する監査イベントは生成されませんでした。しかし、特定のGitLabインスタンス上でユーザーが認証したOAuthアプリケーションに対し、セキュリティチームが監視、追跡を行うことは重要です。\n\n本リリースでは、「**ユーザーがOAuthアプリケーションを認証した**」ことを記録する監査イベントが追加され、GitLabインスタンスの監査機能がさらに強化されました。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#authorization)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/514152)\n\n### 認証情報インベントリでの検索およびフィルタリング\n\nSaaS: Ultimate\u003Cbr>\nSelf-Managed: Ultimate\n\n認証情報インベントリで検索とフィルター機能を使用できるようになりました。これにより、ある期間内に有効期限が切れるトークンなど、ユーザー定義パラメーターに当てはまるトークンやキーを簡単に特定できます。これまで認証情報インベントリのエントリは静的リストとして表示されていました。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/credentials_inventory.html)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/345734)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/filter_search_credentials.png\">\n\n### APIを使用して、個々のエンタープライズユーザーの2FAを無効にする\n\nSaaS: Premium、Ultimate\u003Cbr>\nSelf-Managed: -\n\nAPIを使用して、個々のエンタープライズユーザーの2要素認証（2FA）登録を一括で消去できるようになりました。これまではUIでのみ行えましたが、APIを使用することで、自動化や一括操作が可能になり、2FAの大規模なリセットが必要な場合に時間を節約できます。\n\n[ドキュメント](https://docs.gitlab.com/ee/api/group_enterprise_users.html#disable-two-factor-authentication-for-an-enterprise-user)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/383319)\n\n### 無効なプロジェクトアクセストークンとグループアクセストークンを表示\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nUIで無効なグループアクセストークンとプロジェクトアクセストークンを表示できるようになりました。これまでGitLabでは、期限切れまたは失効済みとなったプロジェクトアクセストークンやグループアクセストークンはすぐに削除されていました。無効になったトークンの記録が存在しないため、監査やセキュリティレビューが困難になっていました。本リリースから、無効なグループアクセストークンとプロジェクトアクセストークンの記録が30日間保持されるようになりました。これにより、コンプライアンス対応やモニタリングを目的とした、トークンの使用状況と有効期限の追跡が容易になります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#revoke-or-rotate-a-project-access-token)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/462217)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/govern_expired_tokens_list.png\">\n\n### グループ共有の可視性を強化\n\nSaaS: Free、Premium、Ultimate\u003Cbr>\nSelf-Managed: Free、Premium、Ultimate\n\nGitLab全体でグループ共有の可視性が向上しました。これまではグループの概要ページで共有プロジェクトを閲覧できたものの、そのグループがどのグループに招待されているかまでは確認できませんでした。本リリースでは、グループの概要ページに**共有プロジェクト**と**共有グループ**の両方のタブが表示され、組織全体でどのようにグループがつながり、共有されているかを完全に把握できるようになりました。これにより、組織全体におけるグループアクセスの監査および管理が容易になります。\n\nこの変更に関するフィードバックがございましたら、ぜひ[エピック16777](https://gitlab.com/groups/gitlab-org/-/epics/16777)にご投稿ください。  \n\n[ドキュメント](https://docs.gitlab.com/user/project/members/sharing_projects_groups/#view-shared-groups)  \n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/378629)\n\u003Cimg src=\"https://about.gitlab.com/images/17_9/group_overview_shared_groups.png\">\n\n### ユーザーによるプロフィールの非公開化を制限\n\nSaaS: -\u003Cbr>\nSelf-Managed: Premium、Ultimate\n\nユーザーは自分のプロフィールを公開するか非公開にするかを選択できます。本リリースより、管理者は、GitLabインスタンス全体でユーザーがプロフィールを非公開にできるかどうかを制御できるようになりました。管理者エリアにある「ユーザーがプロフィールを非公開にすることを許可」という設定で、このオプションを管理できます。デフォルトではこの設定は有効になっており、ユーザーはプロフィールを非公開にできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.md#prevent-users-from-making-their-profiles-private) \u003Cbr>\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/421310)\n\n\u003Cbr>\n\u003Cbr>\n\n## 実験的な機能\n\n### ジョブトークンの詳細な権限設定\n\nジョブトークンは、パイプライン内でリソースにアクセスするための一時的な認証情報です。ジョブトークンはユーザーの権限を継承するため、通常は広範なアクセス権限を持っています。[ジョブトークンの詳細な権限設定](https://docs.gitlab.com/ee/ci/jobs/fine_grained_permissions.html)により、ジョブトークンがプロジェクト内のどのリソースにアクセスできるかを制御できます。\n\nこの機能に関するフィードバックをお待ちしています。ご質問やコメントがある場合、またはGitLabチームとのやり取りをご希望の場合は、[こちらのフィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/519575)をご覧ください。\n\n\u003Cbr>\n\u003Cbr>\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabでは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームをご利用のすべての人に、スムーズでシームレスな体験をお届けすることを約束します。\n\n以下のリンクをクリックして、17.9のバグ修正、パフォーマンスの強化、UIの改善についてすべてご覧ください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.9)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=17.9)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=17.9)\n\n\u003Cbr>\n\u003Cbr>\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n- [API Discoveryはデフォルトでブランチパイプラインを使用予定](https://docs.gitlab.com/ee/update/deprecations.html#api-discovery-will-use-branch-pipelines-by-default)  \n- [アプリケーションセキュリティテストアナライザーの大型バージョンアップ](https://docs.gitlab.com/ee/update/deprecations.html#application-security-testing-analyzers-major-version-update)  \n- [コンテナスキャンのデフォルトの重大度のしきい値を「中」に設定](https://docs.gitlab.com/ee/update/deprecations.html#container-scanning-default-severity-threshold-set-to-medium)  \n- [DASTの`dast_crawl_extract_element_timeout`および`dast_crawl_search_element_timeout`変数を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#dast-dast_crawl_extract_element_timeout-and-dast_crawl_search_element_timeout-variables-are-deprecated) \n- [DASTの`dast_devtools_api_timeout`のデフォルト値を低めに変更予定](https://docs.gitlab.com/ee/update/deprecations.html#dast-dast_devtools_api_timeout-will-have-a-lower-default-value)  \n- [`defaultMaxHoursBeforeTermination`および`maxHoursBeforeTerminationLimit`フィールドを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#defaultmaxhoursbeforetermination-and-maxhoursbeforeterminationlimit-fields-are-deprecated)  \n\n- [依存プロキシへのトークンスコープの適用](https://docs.gitlab.com/ee/update/deprecations.html#dependency-proxy-token-scope-enforcement)  \n\n- [JavaScriptベンダーライブラリ向けの依存関係スキャン](https://docs.gitlab.com/ee/update/deprecations.html#dependency-scanning-for-javascript-vendored-libraries)  \n\n- [依存関係スキャンのGitLab SBOM脆弱性スキャナーへのアップグレード](https://docs.gitlab.com/ee/update/deprecations.html#dependency-scanning-upgrades-to-the-gitlab-sbom-vulnerability-scanner)  \n\n- [CI/CDテンプレートからサポート終了となるSASTジョブを削除予定](https://docs.gitlab.com/ee/update/deprecations.html#end-of-support-sast-jobs-will-be-removed-from-the-cicd-template) \n\n- [GitLabの高度なSASTをデフォルトで有効化予定](https://docs.gitlab.com/ee/update/deprecations.html#gitlab-advanced-sast-will-be-enabled-by-default)  \n\n- [kptベースの`agentk`を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#kpt-based-agentk-is-deprecated)  \n\n- [従来のGeo関連のPrometheusリポジトリチェックメトリクス](https://docs.gitlab.com/ee/update/deprecations.html#legacy-geo-prometheus-repository-checks-metrics)  \n\n- [レガシーWeb IDEを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#legacy-web-ide-is-deprecated)  \n\n- [Prometheusサブチャートの大型アップデート](https://docs.gitlab.com/ee/update/deprecations.html#major-update-of-the-prometheus-subchart)  \n\n- [Linux OSパッケージの`gitlab-runner-helper-images`と`gitlab-runner`の依存関係をオプションに](https://docs.gitlab.com/ee/update/deprecations.html#make-the-gitlab-runner-helper-images-linux-os-package-an-optional-dependency-of-gitlab-runner)  \n\n- [GitLab.comでの脆弱性に関する新しいデータ保持制限](https://docs.gitlab.com/ee/update/deprecations.html#new-data-retention-limits-for-vulnerabilities-on-gitlabcom)\n\n- [グループ設定のプロジェクトページを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#project-page-in-group-settings-is-deprecated)  \n\n- [Raspberry Piの32ビットパッケージを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#raspberry-pi-32-bit-packages-are-deprecated)  \n\n- [REST APIエンドポイント`pre_receive_secret_detection_enabled`を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#rest-api-endpoint-pre_receive_secret_detection_enabled-is-deprecated)  \n\n- [`allowed_pull_policies`にないコンテナイメージのプルポリシーを拒否](https://docs.gitlab.com/ee/update/deprecations.html#reject-container-image-pull-policies-not-in-allowed_pull_policies)  \n- [GraphQLタイプ`RemoteDevelopmentAgentConfig`を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#remotedevelopmentagentconfig-graphql-type-is-deprecated)  \n\n- [GraphQLフィールド「duoProAssignedUsersCount」を削除](https://docs.gitlab.com/ee/update/deprecations.html#remove-duoproassigneduserscount-graphql-field)  \n\n- [Yarnプロジェクトの依存関係スキャンの脆弱性を修正](https://docs.gitlab.com/ee/update/deprecations.html#resolve-a-vulnerability-for-dependency-scanning-on-yarn-projects)  \n\n- [SASTジョブでグローバルキャッシュ設定を使用しないように変更](https://docs.gitlab.com/ee/update/deprecations.html#sast-jobs-no-longer-use-global-cache-settings)  \n- [シークレット検出アナライザーがデフォルトではルートユーザーで実行されないように](https://docs.gitlab.com/ee/update/deprecations.html#secret-detection-analyzer-doesnt-run-as-root-user-by-default)  \n\n- [公開APIのサブスクリプション関連のAPIエンドポイントを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#subscription-related-api-endpoints-in-the-public-api-are-deprecated)  \n\n- [SpotBugsスキャンの一部としてプロジェクトビルドをサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-project-build-as-part-of-spotbugs-scans)  \n\n- [SUSE Linux Enterprise Server 15 SP2をサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-suse-linux-enterprise-server-15-sp2)  \n\n- [`agentk`コンテナレジストリをクラウドネイティブGitLabに移行](https://docs.gitlab.com/ee/update/deprecations.html#the-agentk-container-registry-is-moving-to-cloud-native-gitlab)  \n- [CI/CDジョブトークンをJWT標準に更新](https://docs.gitlab.com/ee/update/deprecations.html#updating-cicd-job-tokens-to-jwt-standard)  \n\n- [GraphQLフィールド`maxHoursBeforeTermination`を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#maxhoursbeforetermination-graphql-field-is-deprecated)\n\n\u003Cbr>\n\u003Cbr>\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受けるには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n- [openSUSE Leap 15.5のサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-opensuse-leap-155)\n\n### 変更履歴\n\n変更内容をすべて表示するには、以下のページから変更履歴をご確認ください。\n\n- [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)  \n- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)  \n- [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)  \n- [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新たにインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご参照ください。\n\n### 更新\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご確認ください。\n\n\u003Cbr>\n\u003Cbr>\n\n*監修：小松原 つかさ  [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n\n\u003Cbr>\n\u003Cbr>\n\n### 過去の日本語リリース情報\n### 過去の日本語リリース情報\n\n- [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n- [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n- [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n- [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)\n",[9,1082,705],"2025-02-21",{"slug":1283,"featured":91,"template":685},"gitlab-17-9-release","content:ja-jp:blog:gitlab-17-9-release.yml","Gitlab 17 9 Release","ja-jp/blog/gitlab-17-9-release.yml","ja-jp/blog/gitlab-17-9-release",{"_path":1289,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1290,"content":1296,"config":1302,"_id":1304,"_type":14,"title":1305,"_source":16,"_file":1306,"_stem":1307,"_extension":19},"/ja-jp/blog/gitlab-18-0-release",{"ogTitle":1291,"schema":1292,"ogImage":1293,"ogDescription":1294,"ogSiteName":669,"noIndex":6,"ogType":670,"ogUrl":1295,"title":1291,"canonicalUrls":1295,"description":1294},"GitLab 18.0 リリース","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab 18.0 リリース\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-05-15\",\n      }","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662010/Blog/Hero%20Images/product-gl18-blog-release-cover-18-0-0750-1800x945-fy26.png","GitLab 18.0でリリースした最新機能をご紹介します。","https://about.gitlab.com/blog/gitlab-18-0-release",{"heroImage":1293,"body":1297,"authors":1298,"updatedDate":1299,"date":1300,"title":1291,"tags":1301,"description":1294,"category":705},"本ブログは、[GitLab 18.0 Release](https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## GitLab 18.0をリリース：GitLab DuoがPremiumとUltimateで利用可能に\n\nこのたび、GitLab 18.0のリリースを発表しました。このリリースでは、GitLab PremiumとGitLab UltimateにGitLab Duoが搭載され、GitLab Duoコードレビューによる自動レビュー、コンテキストをより考慮したコードレビュー、GitLab Duo Self-Hostedで利用可能なリポジトリX-Rayなど、さまざまな新機能が追加されました。  \n\nこれらの機能は、今回のリリースに含まれる30件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.0には、GitLabコミュニティのユーザーから328件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\nGitLab 18の新機能を活用することで、開発からリリースまでの全工程でAIの力を活用しつつ、開発者のスピードを落とさずにセキュリティを強化できます。これらがすべて、一つのプラットフォームで実現します。新機能については、[GitLab 18のオンラインリリースイベント「The next step in intelligent DevSecOps（知的進化する次世代のDevSecOps）」](https://about.gitlab.com/eighteen/)で詳しくご紹介いたします。ご参加をお待ちしています。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n[GitLab 18.0では、PremiumおよびUltimate向けのGitLab Duoが追加されました。 クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+18.0%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%A7%E3%81%AF%E3%80%81Premium%E3%81%8A%E3%82%88%E3%81%B3Ultimate%E5%90%91%E3%81%91%E3%81%AEGitLab+Duo%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/&hashtags=)\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[Michael Hofer](https://gitlab.com/karras)さんです\n\n\u003Cimg src=\"https://about.gitlab.com/images/notable-contributor-logo.svg\">\n\nトップコントリビューターであり、コミュニティリーダーでもあるMichael Hoferさんは、GitLabの[オープンソース](https://about.gitlab.com/ja-jp/blog/what-is-open-source/)ミッションを推進しています。今年だけで[50件以上のコントリビュート](https://contributors.gitlab.com/users/karras?fromDate=2025-01-01&toDate=2025-05-12)を行い、その活動はOpenBaoに基づくGitLabのGeo機能やシークレットマネージャーの強化に大きく貢献しました。また、[4月のハッカソン](https://contributors.gitlab.com/hackathon?hackathonName=2025_04)ではトップの成績を収め、他のコントリビューターを支援しながらコミュニティプロジェクトも率いています。\n\n「GitLabには誰もがコントリビュートできる環境があるので、とても感謝しています！」とMichaelさんは言います。「素晴らしいチームで、一緒に取り組んでいてとても楽しいです。特に、OpenBaoやSLSAのような[オープンソース](https://about.gitlab.com/ja-jp/blog/what-is-open-source/)イニシアチブで協力する際は、みんな本当に頼りになります。」\n\nMichaelさんは、ミッションクリティカルな[オープンソース](https://about.gitlab.com/ja-jp/blog/what-is-open-source/)ワークロードの計画、構築、運用に特化した国際的なITサービスプロバイダーである[Adfinis社](https://adfinis.com/en/)のCTOを務めています。Michaelさんは、組織間での協力を促進し、[オープンソース](https://about.gitlab.com/ja-jp/blog/what-is-open-source/)ソリューションの普及に情熱を注いでいます。\n\n最近、Adfinis社はGitLabの[共同開発プログラム](https://about.gitlab.com/community/co-create/)に参加しました。このプログラムでは、組織がGitLabの製品チームおよびエンジニアリングチームと協力して、GitLabの構築に取り組んでいます。「共同開発プログラムを、すべての組織に強くお勧めしたいです」とMichaelさんは話します。「PodmanのルートレスビルドやGlimmerの構文ハイライトに加え、その他多くの素晴らしいコントリビュートを生み出しました。」\n\nGitLabのエンジニアリングマネージャーであり、今回Michaelさんを推薦した[Lucie Zhao](https://gitlab.com/luciezhao)は次のように話します。「GeoチームはMichaelさんとの共同作業に大きなやりがいと楽しみを感じています。Michaelさんは、ここ数件のマイルストーンでの素晴らしいコントリビュートにより、チーム内で最も知られたコミュニティコントリビューターとなりました。」\n\nGitLabチームメンバーの[Lee Tickett](https://gitlab.com/leetickett-gitlab)、[Chloe Fons](https://gitlab.com/c_fons)、[Alex Scheel](https://gitlab.com/cipherboy-gitlab)も、Michaelさんの推薦を支持しました。Alexは次のように述べています。「MichaelさんのOpenBaoでのリーダーシップにより、お客様向けのシークレット管理ソリューションを効果的に共同開発することができました。また、透明性も確保され、GitLabの価値観に沿って進められました。」\n\nGitLabの共同開発に取り組んでくださっているMichaelさんとAdfinisチームのみなさま、ありがとうございます！\n\u003Cbr>\n\u003Cbr>\n\u003Cbr>\n\n## GitLab 18.0でリリースされた主な改善点\n\n### GitLab DuoがGitLab PremiumおよびGitLab Ultimateで利用可能に\n\n> SaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise  \n\nこのリリースから、GitLab PremiumとGitLab UltimateでGitLab Duoが利用可能になりました。両プランにAI機能が標準搭載されます。\n\nGitLabのAIネイティブ機能には、IDE内のコード提案とチャット機能があります。開発チームは、これらの機能を使用して次の作業を効率化できます。\n\n* コードを分析し、理解し、説明する\n* より迅速に安全なコードを記述する\n* コード品質を維持するためのテストを素早く生成する\n* パフォーマンス向上や特定のライブラリの利用に合わせてコードを簡単にリファクタリングする\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/#summary-of-gitlab-duo-features)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/538857)  \n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/Premium_Duo.png\">\n\n### GitLab Duo Self-HostedでリポジトリX-Rayが利用可能に\n\n> SaaS: - \u003Cbr>\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedで、コード提案と併せてリポジトリX-Rayを使用できるようになりました。この機能は、GitLab Duo Self-Hostedではベータ版として提供され、GitLab Self-Managedインスタンスでは一般提供されています。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/code_suggestions/repository_xray/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17756)\n\n\u003Cimg src=\"https://about.gitlab.com/images/17_11/eclipse-beta.png\">\n\n### GitLab Duoコードレビューによる自動レビュー\n\n> SaaS: Premium、Ultimate、Duo Enterprise\u003Cbr>\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nDuoコードレビューは、コードレビューのプロセスで効果的なフィードバックを提供しますが、これまでは各マージリクエストごとに手動でレビューをリクエストする必要がありました。\n\n今回、プロジェクトのマージリクエスト設定を変更することで、Duoコードレビューを自動的に実行できるようになりました。自動レビュー機能を有効にすると、以下の場合を除き、すべてのマージリクエストに対してDuoコードレビューが自動でレビューを行います。\n\n* マージリクエストがドラフトとしてマークされている場合  \n* マージリクエストに変更が含まれていない場合\n\n自動レビュー機能により、プロジェクト内のすべてのコードが確実にレビューされ、コードベース全体のコード品質が継続的に改善されます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#automatic-reviews-from-gitlab-duo)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/506537)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/create-auto-dcr.png\">\n\n### コード提案にプロンプトキャッシュを導入\n\n> SaaS: Premium、Ultimate、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Pro、Duo Enterprise  \n\nコード提案にプロンプトキャッシュ機能が追加されました。この機能により、キャッシュされたプロンプトや入力データの再処理が不要になるため、コード補完の待機時間が大幅に短縮されます。キャッシュデータは永続ストレージに保存されることはなく、必要に応じてGitLab Duoの設定でプロンプトキャッシュを無効にすることも可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/code_suggestions/#prompt-caching)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17489)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/prompt-cache.png\">\n\n### コンテキストをより考慮したコードレビュー\n\n> SaaS: Premium、Ultimate、Duo Enterprise\u003Cbr>\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nコードレビューがより広範なコンテキスト情報を活用できるようになり、分析結果の精度が向上しました。主な改善点は以下のとおりです。\n\n* マージリクエストのタイトルと説明を含めることで、変更の目的をより正確に把握できるようになりました。  \n* すべての差分を一度に分析することで、ファイル間の関連性を認識し、誤検出を削減します。  \n* 変更されたファイル全体の内容を読み込み、修正が既存のコードパターンにどのように適合するかを理解できるようになりました。\n\nこれらの機能強化により、不正確な提案が減少し、より関連性が高く高品質なコードレビューが可能になりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/466684)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/510266) \n\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/532653)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/create-dcr-improved-context.png\">\n\n## GitLab 18.0のリリースに含まれるその他の改善点\n\n### グループとプレースホルダーユーザーの削除\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab 18.0では、トップレベルグループを削除すると、そのグループに関連付けられたプレースホルダーユーザーも同時に削除されるようになりました。プレースホルダーユーザーが他のプロジェクトに関連付けられている場合は、トップレベルグループからのみ削除され、他のプロジェクトには残ります。これにより、他のプロジェクトの履歴や属性を損なうことなく、不要なプレースホルダーユーザーを整理できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/project/import/#placeholder-user-deletion)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/473256)\n\n### Slackアプリ用GitLabで複数のワークスペースに対応\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Self-ManagedおよびGitLab Dedicatedのお客様向けに、GitLab for Slackアプリで複数のワークスペースを利用できるようになりました。この機能により、複数のSlackワークスペースを持つ組織でも、すべてのワークスペースでGitLabとの連携をスムーズに維持できます。複数のワークスペースを有効にするには、GitLab for Slackアプリを[非公開配布アプリ](https://api.slack.com/distribution#unlisted-distributed-apps)として設定してください。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/slack_app/#enable-support-for-multiple-workspaces)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/424190)\n\n### GitLab Pagesテンプレートの改善\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLabでは、[人気の高い静的サイトジェネレーター用のテンプレート](https://gitlab.com/pages)を提供しています。スコアリングフレームワークでテンプレートを精査し、最も人気のあるものだけを厳選しました。\n\nGitLab Pagesで利用可能なテンプレートが改良されたことにより、ウェブサイト制作の工程がよりスムーズになりました。テンプレートを活用すれば、技術的な専門知識が限られていてもプロ並みのサイトを立ち上げることができます。改善されたテンプレートは最新のレスポンシブデザインに対応しており、カスタム開発作業の必要もありません。\n\n[ドキュメント](https://docs.gitlab.com/user/project/pages/getting_started/pages_new_project_template/#project-templates)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13847)\n\n### ワークスペースの共有Kubernetesネームスペース\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n共有のKubernetesネームスペースにGitLabワークスペースを作成できるようになりました。これにより、ワークスペースごとに新しいネームスペースを作成する必要がなくなり、エージェントに上位のClusterRole権限を付与する必要もなくなります。この機能により、セキュリテイが厳しい環境または制約のある環境でもワークスペースをより容易に導入できるようになり、よりスムーズにスケールできるようになります。\n\n共有のネームスペースを有効にするには、エージェント設定ファイルの`shared_namespace`フィールドを設定し、すべてのワークスペースで使用したいKubernetesネームスペースを指定してください。\n\nこの機能は、[GitLabの共同開発プログラム](https://about.gitlab.com/community/co-create/)を通じて開発され、6人のコミュニティメンバーの協力によって実現しました。皆さまのコントリビュートに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/user/workspace/settings/#shared_namespace)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/12327)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/CXakdRuoGgU?si=indgAnCrTuIhUhcM\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### GitLab Runner 18.0\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Runner 18.0もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\n新機能：\n\n* [GitLab Runnerビルドエラー分類に`ConfigurationError`と`ExitCodeInvalidConfiguration`を新たに追加](https://gitlab.com/gitlab-org/gitlab/-/issues/514297)  \n* [Cloud Storageへのキャッシュアップロードに失敗した場合に、よりわかりやすいクラウドプロバイダーエラーメッセージを表示するよう改善](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/5527)\n\nバグ修正：\n\n* [GitLab Runnerが、許可されていない場合でもキャッシュされたイメージを使用できてしまう](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38706)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-0-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner/)\n\n### Kubernetes用ダッシュボードのポッド状態表示を改善\n\n> SaaS: Free、Premium、Ultimate\u003Cbr>\n> Self-Managed: Free、Premium、Ultimate\n\nKubernetes用のダッシュボードを使用すると、デプロイされたアプリケーションをモニタリングできます。これまで`CrashLoopBackOff`や`ImagePullBackOff`などのコンテナエラーがあるポッドは「保留中」または「実行中」というステータスで表示されていたため、`kubectl`を使用せずに問題のあるデプロイメントを特定するのが困難でした。\n\nGitLab 18.0からは、UI上のエラー表示が`kubectl`出力と同様に、特定のコンテナのステータスを示すようになりました。これにより、GitLabインターフェイスだけで失敗したポッドをすばやく特定し、トラブルシューティングを行えるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/ci/environments/kubernetes_dashboard/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/525081)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/deploy-improve-pod-status-visualizations.png\">\n\n### セキュリティスキャナーがMRパイプラインに対応\n\nSaaS: Free、Premium、Ultimate\\\nSelf-Managed: Free、Premium、Ultimate\n\n[マージリクエスト（MR）パイプライン](https://docs.gitlab.com/ci/pipelines/merge_request_pipelines/)で[アプリケーションセキュリティテスト（AST）スキャナー](https://docs.gitlab.com/user/application_security/detect/)を実行できるようになりました。パイプラインへの影響を最小限に抑えるため、この機能はオプトインで制御可能です。\n\nこれまでは、スキャナーを有効にする際に使用する[CI/CDテンプレートのエディション（StableかLatest）](https://docs.gitlab.com/user/application_security/detect/roll_out_security_scanning/#template-editions)によって、デフォルトの動作が異なっていました。\n\n* Stableのテンプレートでは、スキャンジョブはブランチパイプラインでのみ実行され、MRパイプラインでは実行されませんでした。  \n* Latestのテンプレートでは、MRが開いている場合はMRパイプラインでスキャンジョブが実行され、関連するMRがない場合はブランチパイプラインで実行されており、この動作を制御することはできませんでした。\n\n今回、新しいオプションとして`AST_ENABLE_MR_PIPELINESが追加され`、MRパイプラインでジョブを実行するかどうかを制御できるようになりました。StableテンプレートとLatestテンプレートのデフォルトの動作は変わりません。\n\n具体例：\n\n* Stableテンプレートでは引き続き、デフォルトでブランチパイプラインでスキャンジョブを実行しますが、`AST_ENABLE_MR_PIPELINES: \"true\"`を設定すると、MRが開いている場合にMRパイプラインを使用できます。  \n* Latestテンプレートでは引き続き、MRが開いている場合はデフォルトでMRパイプラインでスキャンジョブを実行しますが、`AST_ENABLE_MR_PIPELINES: \"false\"`を設定すると、代わりにブランチパイプラインを使用できます。\n\n今回の改善は、API Discovery（`API-Discovery.gitlab-ci.yml`）を除くすべてのセキュリティスキャンテンプレートに適用されます。API Discoveryは現在、MRパイプラインがデフォルトですが、GitLab 18.0では他のStableテンプレートと同様に、デフォルトでブランチパイプラインを使用するように変更されました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/detect/roll_out_security_scanning/#use-security-scanning-tools-with-merge-request-pipelines)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/410880)\n\n### JiraインテグレーションAPIを使用して脆弱性からJiraのイシューを作成する設定が可能に\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nこれまでは、[脆弱性からJiraのイシューを作成](https://docs.gitlab.com/integration/jira/configure/#create-a-jira-issue-for-a-vulnerability)する設定は、プロジェクト設定ページからしか行えませんでした。\n\n今回の更新により、プロジェクト統合APIからも設定できるようになり、セットアップの自動化が可能になりました。\n\n[ドキュメント](https://docs.gitlab.com/api/project_integrations/#jira-issues)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/454574)\n\n### 再検出された脆弱性のトレーサビリティの向上\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまで、解決済みの脆弱性が再検出されてステータスが変更された場合、脆弱性の詳細にはいつ、なぜステータスが変更されたかを示す情報が含まれていませんでした。\n\n解決済みの脆弱性が新しいスキャンで再び検出されてステータスが変更された場合、GitLabはその脆弱性の履歴にシステムメモを自動的に追加するようになりました。これにより、ユーザーは脆弱性のステータスが変更された経緯を明確に把握できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523452)\n\n### コンプライアンスプロジェクトレポートでアーカイブされたプロジェクトの表示とフィルタリングが可能に\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nコンプライアンスプロジェクトレポートでは、グループまたはサブグループ内の各プロジェクトに適用されているコンプライアンスフレームワークを確認することができます。\n\nただし、これまでのレポートでは、プロジェクトがアーカイブされているかどうかを表示する機能がなく、アクティブなプロジェクトとアーカイブ済みプロジェクトの両方のコンプライアンス管理に必要な情報が十分ではありませんでした。\n\nそこで今回、プロジェクトがアーカイブされているかどうかを示すインジケータが追加されました。これにより、コンプライアンスフレームワークを確認する際に、プロジェクトがアクティブかアーカイブ済みかを問わず、コンプライアンス状況をより明確に把握できるようになりました。\n\nこの機能には以下が含まれます。\n\n* コンプライアンスプロジェクトレポートの各プロジェクトに、アーカイブ済みかどうかを示すステータスバッジを表示  \n* アーカイブ済み、アーカイブされていない、すべてのプロジェクトを切り替えるフィルター\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_projects_report/#filter-the-compliance-projects-report)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/500520)\n\n### GitLabユーザー名を使用したLDAP認証\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Premium、Ultimate\n\nLDAPユーザーは、GitLabユーザー名を使用してリクエストを認証できるようになりました。これまでは、GitLabユーザー名がLDAPユーザー名と一致しない場合、GitLabは認証エラーを返していました。今回の変更により、承認ワークフローに影響を与えることなく、GitLabシステムとLDAPシステムで異なるユーザー名の命名規則を採用できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/administration/auth/ldap/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/215357)\n\n### カスタムロールの新しい権限\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n[保護環境を管理](https://gitlab.com/gitlab-org/gitlab/-/issues/471385)する権限をカスタムロールに設定できるようになりました。カスタムロールを使用すれば、ユーザーに対して、タスクの完了に必要な特定の権限のみを付与できます。これによりグループのニーズに合わせてロールを定義できるため、オーナーまたはメンテナーロールが必要なユーザー数を減らすことができます。\n\n[ドキュメント](https://docs.gitlab.com/user/custom_roles/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14746)\n\n### ユーザーネームスペースのプロジェクトにも削除保留機能を追加\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nユーザーネームスペース（個人プロジェクト）のプロジェクトでも、プロジェクト削除保留機能が利用できるようになりました。誤削除からデータを守るこの安全機能は、これまではグループプロジェクトでしか利用できませんでした。今回の更新により、ユーザーネームスペースでプロジェクトを削除しても、すぐに完全に削除されるのではなく、インスタンスの設定期間（GitLab.comでは7日間）は「削除保留中」の状態になります。これにより、期間内であれば、必要に応じてプロジェクトを元に戻すことが可能になりました。\n\nユーザーの皆さまがより安心して個人プロジェクトを管理できるよう設計された保護機能です。\n\n[ドキュメント](https://docs.gitlab.com/user/project/working_with_projects/#delayed-project-deletion)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/536244)\n\n### 破壊的な変更を伴うGitLabチャート9.0のリリース\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Free、Premium、Ultimate\n\n* [破壊的な変更](https://docs.gitlab.com/update/deprecations/#postgresql-14-and-15-no-longer-supported)：PostgreSQL 14と15のサポートが削除されました。GitLabチャート9.0にアップグレードする前に、PostgreSQL 16にアップグレードされていることを確認してください。  \n* [破壊的な変更](https://docs.gitlab.com/update/deprecations/#major-update-of-the-prometheus-subchart)：バンドルのPrometheusチャートが15.3から27.11に更新されました。Prometheusチャートのアップグレードに伴い、Prometheusバージョンも2.38から3.0に更新されました。このアップグレードを実行するには、手動での設定が必要です。Alertmanager、Node Exporter、Pushgatewayのいずれかが有効になっている場合は、Helm値も更新する必要があります。詳細については、[移行ガイド](https://docs.gitlab.com/charts/releases/9_0/#prometheus-upgrade)を参照してください。  \n* [破壊的な変更](https://docs.gitlab.com/update/deprecations/#fallback-support-for-gitlab-nginx-chart-controller-image-v131)：デフォルトのNGINXコントローラーイメージがバージョン1.3.1から1.11.2に更新されました。GitLab NGINXチャートを使用し、独自のNGINX用RBACルールを設定している場合は、新しいRBACルールが必要となります。詳細については、[アップグレードガイド](https://docs.gitlab.com/charts/releases/8_0/#upgrade-to-86x-851-843-836)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/charts/releases/9_0/)\\\n[イシュー](https://gitlab.com/gitlab-org/charts/gitlab/-/issues/5927)\n\n### GitLab Dedicated向けに内部リリース機能を提供開始\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Ultimate\n\nGitLab Dedicatedを選択される組織の多くは、厳格なセキュリティ要件やコンプライアンス義務を満たすために、開発環境における最高レベルの保護を必要としています。このたび、「内部リリース」という新しいプライベートリリース機能の提供を開始しました。致命的な脆弱性が一般に公開される前にGitLab Dedicatedインスタンスに修正を適用できるようになり、GitLab Dedicatedのお客様をリスクから保護します。この新機能は、GitLab.comでの対応と並行し、GitLabで発見された致命的な脆弱性に対して即時の保護を提供するものです。この新しいプロセスは、お客様側での操作は必要ありません。\n\n[ドキュメント](https://handbook.gitlab.com/handbook/engineering/releases/internal-releases/)\\\n[エピック](https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1201)\n\n### グループとプロジェクトのREST APIに新しい`アクティブ`パラメータを追加\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nグループとプロジェクトのREST APIに新しい`アクティブ`パラメータが追加されました。これにより、ステータスに基づいたグループのフィルタリングが簡素化されます。`true`に設定すると、アーカイブされていないグループ、または削除マークが付いていないプロジェクトのみが返されます。`false`に設定すると、アーカイブされたグループ、または削除マークが付いているプロジェクトのみが返されます。パラメータを指定しない場合、フィルタリングは適用されません。この機能強化により、簡単なAPIコールで特定のステータスを持つグループやプロジェクトだけを選び出せるようになり、作業プロセス全体をより効率的に管理できるようになります。\n\nこのパラメータをプロジェクトAPIに追加してくれた[@dagaranupam](https://gitlab.com/dagaranupam)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/api/projects/#list-projects)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/526206)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/526205)\n\n### GitLab.comでのコントリビュートの再アサイン時にEnterpriseユーザーのみを表示\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n今回のリリースでは、プレースホルダーユーザーマッピング体験を向上させました。具体的には、ユーザー選択ドロップダウンの表示範囲を、トップレベルグループに関連付けられた[Enterpriseユーザー](https://docs.gitlab.com/user/enterprise_user/)に絞り込むように改善しました。これまで、GitLab.comへのインポート後にユーザーのコントリビュートを再アサインすると、プラットフォーム上のすべてのアクティブユーザーがドロップダウンリストに表示されていました。この仕様では、特にSCIMプロビジョニングでユーザー名が変更されている場合などは、正しいユーザーを特定するのが困難でした。今回の変更により、トップレベルグループでEnterpriseユーザー機能が有効になっている場合、ドロップダウンリストには組織が要求したユーザーのみが表示されるようになり、ユーザーの再アサイン時に発生するエラーの可能性が大幅に低減されます。同様の絞り込みがCSVベースの再アサインにも適用されるため、組織外のユーザーへの誤ったアサインを防ぐことができます。\n\n[ドキュメント](https://docs.gitlab.com/user/group/import/direct_transfer_migrations/#user-contribution-and-membership-mapping)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/510673)\n\n### GitLabクエリ言語ビューの機能強化\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLabクエリ言語（GLQL）ビューが大幅に改善されました。新しく追加された機能は以下のとおりです。\n\n* すべての日付型で`>=`および`\u003C=`の条件指定が可能に  \n* ビューの「ビューアクション」ドロップダウンが追加  \n* 「**再読み込み**」アクションが利用可能に  \n* フィールドエイリアス対応  \n* GLQLテーブルの列でカスタム名にエイリアス設定が可能に\n\nこの機能強化およびGLQLビュー全般に関するフィードバックは、[イシュー509791](https://gitlab.com/gitlab-org/gitlab/-/issues/509791)からお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15008)\n\n### マージリクエストからワークスペースを作成\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n新しい「**ワークスペースで開く**」オプションを使用して、マージリクエストから直接ワークスペースを作成できるようになりました。この機能は、マージリクエストのブランチとコンテキストを使用してワークスペースを自動的に構成し、以下のことを可能にするものです。\n\n* 完全に設定された環境でコード変更をレビュー  \n* マージリクエストブランチでテストを実行し、機能を検証  \n* ローカル環境の設定なしでマージリクエストに修正を追加\n\n[ドキュメント](https://docs.gitlab.com/user/workspace/configuration/#create-a-workspace)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/426568)\n\n### ファイルをターゲットとするオープンマージリクエストの表示\n\n> SaaS: Free、Premium、Ultimate\u003Cbr> \n> Self-Managed: Free、Premium、Ultimate\n>\n> これまでは、コードファイルを編集する際に、他のブランチで同じファイルを変更している可能性のあるユーザーの動向を把握することはできませんでした。このため、マージの競合や作業の重複、非効率的なコラボレーションが生じていました。\n\n今回の変更により、リポジトリで表示しているファイルを変更しているすべてのオープンマージリクエストを簡単に特定できるようになりました。この機能は次のような場面で役立ちます。\n\n* マージコンフリクトを事前に特定する  \n* すでに進行中の作業の重複を回避する  \n* 進行中の変更を可視化してコラボレーションを強化する\n\nファイルを変更しているオープンマージリクエストの数がバッジに表示され、その上にカーソルを合わせると、該当するマージリクエストのリストがポップオーバーで表示されます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/repository/files/#view-open-merge-requests-for-a-file)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/448868)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/mr-open-workspace.png\">\n\n### 新しい「CI/CDの分析」表示機能の限定提供を開始\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n「CI/CDの分析」のデザインが改良され、開発チームがパイプラインのパフォーマンスと信頼性を新しい方法で分析、監視、最適化できるようになりました。デベロッパーは、GitLabの操作画面に表示される直感的なグラフによってパフォーマンスの傾向や信頼性に関するメトリクスを確認できます。これらの分析情報をプロジェクトリポジトリに埋め込むことで、デベロッパーの作業の流れを中断させる頭の切り替えが不要になります。そして、チームは、生産性を低下させるパイプラインのボトルネックを特定して対処することができます。この機能強化により、開発サイクルの高速化、コラボレーションの向上が実現されるだけでなく、具体的な分析結果に基づき、GitLabのCI/CD環境を最適化するための信頼できる材料を得ることができます。\n\n[ドキュメント](https://docs.gitlab.com/user/analytics/ci_cd_analytics/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/444468)\n\n\u003Ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/78Nxbem9OAk?si=KTKVK7EsiW9E4Zxm\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen>\u003C/iframe>\n\n### イベントデータ収集\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab 18.0では、GitLab Self-ManagedおよびGitLab Dedicatedインスタンスからイベントレベルの製品使用状況データの収集が有効にされます。集計データとは異なり、イベントレベルのデータは製品利用の実態をより正確に把握するための情報源となります。これにより、プラットフォーム上のユーザーエクスペリエンスを向上させ、機能の利用率を高めることができます。データ共有設定を調整する方法の詳細については、ドキュメントを参照してください。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/event_data/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/510333)\n\n### 脆弱性レポートからイシューへ脆弱性を一括追加\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n今回リリースでは、脆弱性レポートから新規または既存のGitLabイシューに複数の脆弱性を一括追加できるようになりました。これにより、複数のイシューと脆弱性を関連付けることが可能になります。さらに、関連する脆弱性がイシューページに表示されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#add-vulnerabilities-to-an-existing-issue)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13216)\n\n### ライセンス承認ルールからパッケージを除外\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nマージリクエスト承認ポリシーに追加されたライセンス承認ポリシーの新機能により、法務チームやコンプライアンスチームは、特定のライセンスを使用できるパッケージをより細かく制御できるようになりました。これにより、組織のポリシーによって通常ブロックされるライセンスを使用している場合でも、事前に承認されたパッケージの例外を作成できるようになります。\n\nこれまでのライセンス承認ポリシーでは、AGPL-3.0などのライセンスをブロックした場合、組織内のすべてのパッケージでそのライセンスがブロックされていました。これにより、次のような場面で問題が発生していました。\n\n* 法務チームが、通常は制限されているライセンスであっても特定のパッケージを事前に承認している場合  \n* 数百件ものプロジェクトで同じパッケージを使用する必要がある場合  \n* チームごとに異なるライセンスの例外が必要な場合\n\n今回のリリースでは、厳格なライセンスガバナンスを維持しつつ必要な例外を許可できるようになり、承認のボトルネックや手作業でのレビューを大幅に削減できます。たとえば、以下のような設定が可能です。\n\n* パッケージURL（PURL）形式を使用して、ライセンス承認ルールにパッケージ固有の例外を定義  \n* 通常は制限されているライセンスでも、特定のパッケージ（またはパッケージのバージョン）に限って使用を許可  \n* 特定のパッケージ（またはパッケージのバージョン）に対し、一般的に許可されているライセンスの使用をブロック\n\n例外を追加するには、ライセンス承認ポリシーの作成または編集時に次のワークフローに従ってください。\n\n1. グループで**セキュリティ** > **ポリシー**に移動します。  \n2. ライセンス承認ポリシーを作成または編集します。  \n3. ビジュアルエディタで新しいパッケージ例外オプションを見つけるか、YAMLモードで構成します。  \n4. ライセンスに対して、許可リストまたは拒否リストを選択します。  \n5. ポリシーに特定のライセンスを追加します。\n6. ライセンスごとにPURL形式でパッケージ例外を定義します。\n\n例：`pkg:npm/@angular/animation@12.3.1`\n\n7. ライセンスルールにこれらのパッケージを含めるか除外するかを指定します。\n\nこれらの設定後は、ポリシーが定義された例外を適切に処理しながらライセンスルールを適用するため、組織全体でライセンスコンプライアンスをきめ細かく制御できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#license_finding-rule-type)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/10203)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/license-exceptions-mr-approval-policy.png\">\n\n### ユーザー招待機能の無効化\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nグループやプロジェクトにメンバーを招待する機能を制限できるようになりました。\n\n* GitLab.comでは、Enterpriseユーザーを持つグループのオーナーがこの制限を設定でき、設定はトップレベルグループ内のサブグループやプロジェクトに適用されます。この招待制限が設定されると、どのユーザーも新しいメンバーを招待することはできません。  \n* GitLab Self-Managedの場合、この制限設定は管理者によって行われ、インスタンス全体に適用されます。その後も、管理者は引き続きユーザーを直接招待できます。\n\nこの機能は、組織がメンバーシップアクセスを厳格に管理したい場合に便利です。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#disable-user-invitations)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/19618)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/disable_invitations.png\">\n\n### ジョブトークンのきめ細かい権限管理がベータ版として登場\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nパイプラインセキュリティがさらに柔軟になりました。ジョブトークンはパイプライン内でリソースにアクセスするための一時的な認証情報です。トークンはこれまで、ユーザーから完全な権限を継承していたため、不必要に広範なアクセスが付与される事態が数多く発生していました。\n\n新しく追加された[ジョブトークンのきめ細かい権限](https://docs.gitlab.com/ci/jobs/fine_grained_permissions/)ベータ機能により、プロジェクト内でジョブトークンがアクセスできる特定のリソースを正確に制御できるようになりました。これにより、CI/CDワークフローで最小権限の原則を実装し、各ジョブに対してタスクの実行に必要な最小アクセス権のみを設定できるようになります。\n\nこの機能について、コミュニティからのフィードバックをぜひお寄せください。ご質問や実装経験の共有、改善点に関して当社チームへのご意見がある場合は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/519575)をご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/ci/jobs/fine_grained_permissions/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16199)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/sscs-authz-fine-grained-job-tokens.png\">\n\n### ユーザーセッション最大長の制限\n\n> SaaS: -\u003Cbr>\n> Self-Managed: Free、Premium、Ultimate\n\n管理者は、ユーザーセッションの最大有効期間を「最初のサインイン」から計算するか、または「最後のアクティビティー」から計算するかを選択できるになりました。ユーザーにはセッションが終了することが通知されますが、セッションの有効期限を変更したり、セッションを延長したりすることはできません。この機能はデフォルトで無効になっています。\n\nこの場を借りて、コントリビュートしてくれた[John Parent](https://gitlab.kitware.com/john.parent)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/account_and_limit_settings/#set-sessions-to-expire-from-creation-date)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/395038)\n\n### SAML証明書のSHA256サポート\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nGitLabは、グループSAML認証におけるSHA1およびSHA256の証明書フィンガープリントを自動的に検出し、サポートするようになりました。これにより、既存のSHA1フィンガープリントとの下位互換性が維持されるほか、より安全なSHA256フィンガープリントのサポートが追加されます。今回のアップグレードは、SHA256をデフォルト設定とする次世代ruby-saml 2.xに対応するための必須の対応となります。\n\n[ドキュメント](https://docs.gitlab.com/integration/saml/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524624)\n\n### すべてのユーザーが利用できる削除保留機能\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nプロジェクトとグループの削除保留機能が、Freeプランを含むすべてのGitLabユーザーに提供されるようになりました。この重要なセキュリティ機能は、削除されたグループやプロジェクトが完全に削除される前に、猶予期間（GitLab.comでは7日間）を設けるものです。この機能により、誤って削除した場合でも複雑な手順を踏まずに簡単に復元できるようになります。\n\nデータ保護を基盤機能として組み込むことで、大切なデータを消失リスクから守ります。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#deletion-protection)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/526405)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17208)\n\n\u003Cimg src=\"https://about.gitlab.com/images/18_0/tenant_scale_deletion_protcection_all_tiers.png\">\n\n### グループ、プロジェクト、ユーザーAPIのレート制限\n\n> SaaS: Free、Premium、Ultimate\n> Self-Managed: -\n\nすべてのユーザーに対してプラットフォームの安定性とパフォーマンスを向上させることを目的として、プロジェクト、グループ、ユーザーごとにAPIレート制限を追加しました。今回の変更は、当社のサービスに影響を与えているAPI通信の増加に対応するものです。\n\nこの制限は平均的な使用パターンに基づいて慎重に設定されており、ほとんどのユースケースにおいて十分な容量を提供するよう設計されています。制限を超えると、「429 Too Many Requests」（リクエスト過多）という応答が返されます。\n\n特定のレート制限と実装情報の詳細については、[関連のブログ記事をご覧ください](https://about.gitlab.com/blog/rate-limitations-announced-for-projects-groups-and-users-apis/)。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_com/#rate-limits-on-gitlabcom)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/461316)\n\n\u003Cbr>\n\u003Cbr>\n\n## 実験的な機能\n\n### スケジュールされたパイプライン実行ポリシー\n\nこの実験的機能を有効にすると、カスタマイズされたCI/CDジョブやスクリプトを使い、定期スケジュールでパイプライン実行ポリシーをトリガーできます。主な特徴は以下のとおりです。\n\n* スケジュールされたパイプラインでは、コンプライアンススクリプト、GitLabまたはサードパーティ製のセキュリティスキャン、その他のカスタムCI/CDジョブを強制実行できます。  \n* セキュリティおよびコンプライアンス要件を確実に満たすためのツールとして、スケジュールされたパイプラインを実行して日次、週次、月次のスケジュールでジョブを実行することができます。  \n* スケジュールされたパイプラインは、プロジェクトの`.gitlab-ci.yml`ファイルにジョブをインジェクトしたり強制したりせず、ダウンストリームのプロジェクトパイプラインに影響を与えません。  \n* 代わりに、これらのパイプラインを使用して、デフォルトブランチを定期的に対象とし、依存関係やプロジェクト構成、その他の要件を確認するといったアクションを実行できます。\n\n実験を有効にするには`policy.yml`ファイルを作成するか、セキュリティポリシープロジェクトの既存の`policy.yml`ファイルを変更して`experiments`属性を追加します。有効にすると、パイプライン実行ポリシーを設定できるようになります。このポリシーには、パイプライン実行ポリシーが適用されているすべてのプロジェクトでカスタムCI/CDジョブを実行するスケジュールが含まれます。\n\nトリガーされるパイプライン実行ポリシーは複数作成できますが、セキュリティポリシープロジェクトごとに設定できるスケジュールされたパイプライン実行ポリシーは1件のみです。\n\n詳細については、[スケジュールされたパイプライン実行ポリシー](https://docs.gitlab.com/user/application_security/policies/scheduled_pipeline_execution_policies/)を参照してください。\n\n\u003Cbr>\n\u003Cbr>\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.0で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.0)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.0)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.0)\n\n\u003Cbr>\n\u003Cbr>\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [リソースオーナーパスワード認証方式を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#resource-owner-password-credentials-grant-is-deprecated)\n* [cert-manager Helm チャートをアップデート](https://docs.gitlab.com/ee/update/deprecations.html#cert-manager-helm-chart-update)\n* [カバレッジガイド付きファズテストを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#coverage-guided-fuzz-testing-is-deprecated)\n\n\u003Cbr>\n\u003Cbr>\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [APIディスカバリーはデフォルトでブランチパイプラインを使用するように](https://docs.gitlab.com/ee/update/deprecations.html#api-discovery-will-use-branch-pipelines-by-default)  \n* [アプリケーションセキュリティテスト（AST）アナライザーのメジャーバージョンをアップデート](https://docs.gitlab.com/ee/update/deprecations.html#application-security-testing-analyzers-major-version-update)  \n* [「今後」および「開始済み」マイルストーンフィルタの動作を変更](https://docs.gitlab.com/ee/update/deprecations.html#behavior-change-for-upcoming-and-started-milestone-filters)  \n* [CI/CDジョブトークン - 「認証されたグループとプロジェクト」許可リストの強制適用](https://docs.gitlab.com/ee/update/deprecations.html#cicd-job-token-authorized-groups-and-projects-allowlist-enforcement)  \n* [CI/CDジョブトークン - 「プロジェクトからのアクセス制限」設定を削除](https://docs.gitlab.com/ee/update/deprecations.html#cicd-job-token-limit-access-from-your-project-setting-removal)  \n* [DASTのdast_devtools_api_timeoutのデフォルト値引き下げ](https://docs.gitlab.com/ee/update/deprecations.html#dast-dast_devtools_api_timeout-will-have-a-lower-default-value)  \n* [依存関係プロキシトークンのスコープ強制](https://docs.gitlab.com/ee/update/deprecations.html#dependency-proxy-token-scope-enforcement)  \n* [Terraform CI/CD テンプレートを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#deprecate-terraform-cicd-templates)  \n* [ライセンスメタデータ形式 V1 を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#deprecate-license-metadata-format-v1)  \n* [GraphQL APIのNamespaceProjectSortEnumにおけるSTORAGE列挙型を非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#deprecation-of-storage-enum-in-namespaceprojectsortenum-graphql-api)  \n* [GraphQL APIのProjectMonthlyUsageType におけるnameフィールドを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#deprecation-of-name-field-in-projectmonthlyusagetype-graphql-api)  \n* [GitLab NGINXチャートコントローラーイメージv1.3.1のフォールバックサポート](https://docs.gitlab.com/ee/update/deprecations.html#fallback-support-for-gitlab-nginx-chart-controller-image-v131)  \n* [Gitalyストレージを設定するためのgit_data_dirs](https://docs.gitlab.com/ee/update/deprecations.html#git_data_dirs-for-configuring-gitaly-storages)  \n* [従来のWeb IDEを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#legacy-web-ide-is-deprecated)  \n* [スキャン実行ポリシーごとに許可されるアクションの数を制限](https://docs.gitlab.com/ee/update/deprecations.html#limit-number-of-scan-execution-policy-actions-allowed-per-policy)  \n* [スキャン実行ポリシーにおけるscanアクションを制限](https://docs.gitlab.com/ee/update/deprecations.html#limited-scan-actions-in-a-scan-execution-policy)  \n* [Prometheusサブチャートのメジャーアップデート](https://docs.gitlab.com/ee/update/deprecations.html#major-update-of-the-prometheus-subchart)  \n* [GitLab.comでの脆弱性データ保持期間の新しい制限](https://docs.gitlab.com/ee/update/deprecations.html#new-data-retention-limits-for-vulnerabilities-on-gitlabcom)  \n* [PostgreSQL 14および15はサポートされなくなります](https://docs.gitlab.com/ee/update/deprecations.html#postgresql-14-and-15-no-longer-supported)  \n* [Raspberry Pi 32 ビットパッケージを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#raspberry-pi-32-bit-packages-are-deprecated)  \n* [allowed_pull_policies に含まれないコンテナイメージのプルポリシーを拒否](https://docs.gitlab.com/ee/update/deprecations.html#reject-container-image-pull-policies-not-in-allowed_pull_policies)  \n* [duoProAssignedUsersCount GraphQL フィールドを削除](https://docs.gitlab.com/ee/update/deprecations.html#remove-duoproassigneduserscount-graphql-field)  \n* [GraphQL フィールドadd_on_purchaseをadd_on_purchasesに置き換え](https://docs.gitlab.com/ee/update/deprecations.html#replace-add_on_purchase-graphql-field-with-add_on_purchases)  \n* ネームスペース[のGraphQL フィールドadd_on_purchaseをadd_on_purchasesに置き換え](https://docs.gitlab.com/ee/update/deprecations.html#replace-namespace-add_on_purchase-graphql-field-with-add_on_purchases)  \n* [SUSE Linux Enterprise Server 15 SP2をサポート](https://docs.gitlab.com/ee/update/deprecations.html#support-for-suse-linux-enterprise-server-15-sp2)  \n* [ciJobTokenScopeRemoveProjectのGraphQL 引数directionを非推奨化](https://docs.gitlab.com/ee/update/deprecations.html#the-direction-graphql-argument-for-cijobtokenscoperemoveproject-is-deprecated)  \n* [APIでの注釈の機密性切り替え](https://docs.gitlab.com/ee/update/deprecations.html#toggle-notes-confidentiality-on-apis)\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)  \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)  \n* [VS CodeのGitLabワークフロー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)  \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\\\n  ユーザー向けの永久無料機能を提供  \n* [Premium](https://about.gitlab.com/pricing/premium/)\\\n  チームの生産性と調整を強化  \n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\\\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/) でお試しいただけます。  \n\n\u003Cbr>\n\u003Cbr>\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)",[853],"2025-05-19","2025-05-15",[9,1082,705,109],{"slug":1303,"featured":91,"template":685},"gitlab-18-0-release","content:ja-jp:blog:gitlab-18-0-release.yml","Gitlab 18 0 Release","ja-jp/blog/gitlab-18-0-release.yml","ja-jp/blog/gitlab-18-0-release",{"_path":1309,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1310,"content":1313,"config":1320,"_id":1322,"_type":14,"title":1323,"_source":16,"_file":1324,"_stem":1325,"_extension":19},"/ja-jp/blog/gitlab-18-01-release",{"noIndex":6,"title":1311,"description":1312},"GitLab 18.1 リリース","GitLab 18.1でリリースした最新機能をご紹介します。",{"heroImage":1314,"body":1315,"authors":1316,"updatedDate":1317,"date":1318,"title":1311,"tags":1319,"description":1312,"category":705},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750396128/vak5nlffgockma115495.png","本ブログは、[GitLab 18.1 Release](https://about.gitlab.com/releases/2025/06/19/gitlab-18-1-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## Maven仮想レジストリ（ベータ版）とGitLab Duoコードレビュー搭載のGitLab 18.1リリース\n\nこのたび、GitLab 18.1のリリースを発表しました。このリリースでは、Maven仮想レジストリ（ベータ版）、GitLab Duoコードレビュー、漏洩パスワードの検出、SLSAレベル1準拠を実現するCI/CDコンポーネントなど、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる110件以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.1には、GitLabコミュニティのユーザーから311件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースもユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n[GitLab 18.1のリリースでは、Maven仮想レジストリ（ベータ版）とGitLab Duoコードレビューが追加されました。クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+18.1%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%A7%E3%81%AF%E3%80%81Maven%E4%BB%AE%E6%83%B3%E3%83%AC%E3%82%B8%E3%82%B9%E3%83%88%E3%83%AA%EF%BC%88%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88%EF%BC%89%E3%81%A8GitLab+Duo%E3%82%B3%E3%83%BC%E3%83%89%E3%83%AC%E3%83%93%E3%83%A5%E3%83%BC%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97%E3%81%A6SNS%E3%81%A7%E5%85%B1%E6%9C%89%E3%81%97%E3%81%BE%E3%81%97%E3%82%87%E3%81%86%EF%BC%81&url=https://about.gitlab.com/ja-jp/blog/gitlab-18-1-release/&hashtags=)\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[](https://gitlab.com/karras)[Chaitanya Sonwane](https://gitlab.com/chaitanyason9)さんです\n\n\u003Cimg src=\"https://about.gitlab.com/images/notable-contributor-logo.svg\">\n\nChaitanya Sonwaneさんは、継続的な認証機能の強化により、GitLabのセキュリティ機能向上に貢献しています。[2025年に13件のコントリビュートがマージされ](https://contributors.gitlab.com/users/chaitanyason9?fromDate=2025-01-01&toDate=2025-12-31)、認証情報インベントリのフィルタリング、サービスアカウント管理、作業アイテムの使いやすさが向上しました。以前には[GitLab 17.11の主要機能](https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/#token-statistics-for-service-account-management)としてサービスアカウントのトークン統計情報をひと目で確認できる機能を手がけ、サービスアカウントの管理を容易にする「一目でわかる」情報を提供しました。Chaitanyaさんは現在、[作業アイテムリストのソート設定をコンテキスト固有にする改善](https://gitlab.com/gitlab-org/gitlab/-/issues/503587)に取り組み、GitLabの製品計画におけるユーザーエクスペリエンスをさらに向上させています。\n\nChaitanyaさんの活躍により、GitLabを利用する組織のセキュリティが強化され、サービスアカウントの使用状況がプロジェクト全体で把握しやすくなりました。現在では、チームが認証情報をより効果的に追跡、ローテーションできるようになったことで、セキュリティの脆弱性につながりかねない、未管理の認証情報のリスクが軽減されています。\n\n「認証情報インベントリとサービスアカウントに対するChaitanyaさんのコントリビュートは、セキュリティ分野において非常に貴重なものです」と[Eduardo Sanz-Garcia（](https://gitlab.com/eduardosanz)ソフトウェアサプライチェーンセキュリティステージの認証グループのシニアフロントエンドエンジニア）は語ります。Eduardoは、[GitLabの認証チーム](https://about.gitlab.com/direction/software_supply_chain_security/authentication/)による推薦も後押ししました。\n\nさらに彼は「Chaitanyaさんは、トークン統計のコンセプトの実装に貢献してくれました。認証情報インベントリの取り組みにより、認証情報の追跡とモニタリングを強化する、非常に要望の多かった機能が提供されたのです。非常に素晴らしいコントリビュートでした」とも付け加えています。\n\nChaitanyaさんはTATA AIGのソフトウェアエンジニアです。セキュリティ上の課題に積極的に取り組み、自らのコントリビュートを改善するための継続的なフォローアップを行っています。\n\nこの場を借りて、GitLabのセキュリティ基盤やその他の製品にコントリビュートしてくれたChaitanyaさんに感謝します！\n\n## GitLab 18.1リリースの主な改善点\n\n### Maven仮想レジストリがベータ版で利用可能に\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nMaven仮想レジストリは、GitLabでのMaven依存関係管理を簡素化するものです。Maven仮想レジストリを使用しない場合、Maven Central、プライベートリポジトリ、GitLabパッケージレジストリからの依存関係にアクセスするための設定を個別に行う必要があります。こうしたアプローチでは、リポジトリへの順次クエリによってビルドが遅くなり、セキュリティ監査とコンプライアンスレポート作成が複雑になります。\n\nMaven仮想レジストリは、複数のアップストリームリポジトリを単一のエンドポイントに集約することで、このような問題に対処します。プラットフォームエンジニアは、1つのURLを介してMaven Central、プライベートレジストリ、GitLabパッケージレジストリを設定できます。インテリジェントキャッシュはビルドパフォーマンスを向上させ、GitLabの認証システムと統合されます。これにより、設定オーバーヘッドの削減、ビルドの高速化、セキュリティとコンプライアンス向上を目的として一元管理されたアクセス制御が実現します。\n\nMaven仮想レジストリは現在、GitLab.comとGitLab Self-Managedの両方で、GitLab PremiumおよびUltimateのお客様にベータ版として提供されています。一般公開リリースには、レジストリ設定用のWebベースUI、共有可能なアップストリーム機能、キャッシュ管理のためのライフサイクルポリシー、強化された分析機能などが追加される予定です。現在のベータ版では、トップレベルグループあたり最大20の仮想レジストリ、仮想レジストリあたり最大20のアップストリームまでと制限されており、ベータ期間中の設定はAPIのみで行えます。\n\n企業のお客様を対象としたMaven仮想レジストリベータプログラムを実施しています。最終リリースの品質向上にご協力をお願いいたします。ベータ版にご参加いただくお客様には、機能への早期アクセス、GitLab製品チームとの直接のやり取り、評価期間中の優先サポートを提供します。ベータプログラムに参加するには、[イシュー498139](https://gitlab.com/gitlab-org/gitlab/-/issues/498139)でご興味があることをお知らせいただき、ユースケースの詳細を提供してください。また、フィードバックや提案は[イシュー543045](https://gitlab.com/gitlab-org/gitlab/-/issues/543045)にお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/packages/virtual_registry/maven/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14137)[](https://gitlab.com/groups/gitlab-org/-/epics/14137)\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/ZkIkaJDEcEE?si=F7dfSCtzBIv02_is\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### GitLab Duoコードレビューが一般公開開始\n\n> SaaS: Premium、Ultimate、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duoコードレビューが一般公開され、本番環境で使用できるようになりました。AI搭載のこのコードレビューアシスタントは、マージリクエストに対して的確で自動化されたフィードバックを提供し、従来のコードレビュープロセスを変革します。これにより、人間のレビュアーが関与する前に、潜在的なバグ、セキュリティの脆弱性、コード品質の問題を特定できるため、レビュープロセス全体を徹底的かつ効率的に行うことができます。GitLab Duoコードレビューには以下の機能が含まれています。\n\n* **自動初期レビュー**：コードの変更内容を分析し、潜在的な問題、改善点、ベストプラクティスに関する包括的なフィードバックを提供します。  \n* **対話ベースで改善**：マージリクエストコメントで`@GitLabDuo`をメンションすると、特定の変更や質問に対する的確なフィードバックを受け取ることができます。  \n* **実行可能な提案**：多くの提案をブラウザから直接適用できるため、改善プロセスが効率化されます。  \n* **文脈を理解した分析**：変更されたファイルの内容を理解し、プロジェクトに特化した関連性の高い推奨事項を提供します。\n\nGitLab Duoコードレビューをリクエストするには、次の手順に従います。\n\n* マージリクエストで、`/assign_reviewer` `@GitLabDuo`クイックアクションを使用して`@GitLabDuo`をレビュアーとして追加するか、GitLab Duoをレビュアーとして直接割り当てます。  \n* コメントで`@GitLabDuo`をメンションすると、ディスカッションスレッドで特定の質問をしたり、詳細なフィードバックをリクエストしたりできます。  \n* プロジェクト設定で自動レビューを有効にすると、GitLab Duoがすべての新しいマージリクエストを自動的にレビューします。\n\nGitLab Duoコードレビューを活用することで、チームがより高いコード品質基準を維持しながら、手動レビューサイクルに費やす時間を短縮できます。問題を早期に発見し、教育的なフィードバックを提供することで、開発チームにとって品質管理ツールと学習ツールの両方の役割を果たします。\n\nベータ版時のGitLab Duoコードレビューの動作はこちらを[ご覧ください](https://www.youtube.com/watch?v=FlHqfMMfbzQ)。\n\n[イシュー517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386)でご経験やフィードバックをお寄せいただき、本機能の継続的な改善にご協力ください。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13979)[](https://gitlab.com/groups/gitlab-org/-/epics/13979)\n\n![GitLab Duoコードレビューが一般公開開始](https://about.gitlab.com/images/18_1/create-duo-code-review.png)\n\n### ネイティブGitLab認証情報の漏洩パスワード検出\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: -\n\nGitLab.comへのサインイン時に、アカウント認証情報の安全なチェックが実行されるようになりました。お使いのパスワードが既知の情報漏洩に含まれている場合、GitLabにバナーが表示され、メール通知が送信されます。これらの通知には、認証情報の更新手順が記載されています。\n\nセキュリティを最大限に高めるために、GitLabでは以下を推奨しています。\n\n* GitLab専用の強力なパスワードの使用  \n* 2要素認証の有効化  \n* アカウントアクティビティの定期的な確認\n\n注：この機能はネイティブGitLabのユーザー名とパスワードでのみ利用可能です。SSO認証情報は対象外です。\n\n[ドキュメント](https://docs.gitlab.com/security/compromised_password_detection/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/549865)[](https://gitlab.com/gitlab-org/gitlab/-/issues/549865)[](https://gitlab.com/gitlab-org/gitlab/-/issues/549865)\n\n![ネイティブGitLab認証情報の漏洩パスワード検出](https://about.gitlab.com/images/18_1/sscs_password_alert.png)\n\n### CI/CDコンポーネントでSLSAレベル1のコンプライアンスに対応\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate  \n\nGitLabの新しいCI/CDコンポーネントを使用することで、[SLSA](https://slsa.dev/)レベル1のコンプライアンスに対応できるようになりました。このコンポーネントは、GitLab Runnerが生成するSLSA準拠の [アーティファクトの来歴メタデータ](https://docs.gitlab.com/ci/runners/configure_runners/#artifact-provenance-metadata)に対して署名と検証を実行します。また、[Sigstore Cosignの機能](https://docs.gitlab.com/ee/ci/yaml/signing_examples.html)を再利用可能なモジュールとして提供し、CI/CDワークフローに簡単に統合できるようにします。\n\n[ドキュメント](https://docs.gitlab.com/ci/pipelines/pipeline_security/#sign-and-verify-slsa-provenance-with-a-cicd-component)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15859)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/15859)\n\n![CI/CDコンポーネントでSLSAレベル1のコンプライアンスに対応](https://about.gitlab.com/images/18_1/SLSA_component.png)\n\n## GitLab 18.1リリースに含まれるその他の改善点\n\n### コード検索で複数の検索結果の統合表示が可能に\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n完全一致コードの検索（ベータ版）では、同じファイル内の複数の検索結果を単一のビューに統合して表示できるようになりました。この改善により、次のことが可能になります。\n\n* 孤立した行表示ではなく、隣接する一致間のコンテキストを保持  \n* 一致する内容が近い場合に重複コンテンツを排除し、視覚的な混乱を軽減  \n* ファイルごとの一致数を明確に表示することで、ナビゲーションを強化  \n* エディタでの表示と同様にコードを表示することで、可読性を改善\n\nこの変更により、リポジトリ全体のコードパターンの発見と理解がより効率的になりました。\n\n[ドキュメント](https://docs.gitlab.com/integration/exact_code_search/zoekt/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13127)\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/wx2D39UdUoQ?si=fvjYK-rYVHPgVgzs\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### 権限チェック機能を強化したCODEOWNERSファイル検証\n\nSaaS: Premium、Ultimate\\\nSelf-Managed: Premium、Ultimate\n\nGitLabでは、基本的な構文チェックを超えた、CODEOWNERSファイルに対するより強化された検証が提供されるようになりました。CODEOWNERSファイルを表示すると、GitLabが自動的に包括的な検証を実行し、マージリクエストのワークフローに影響を与える前に構文エラーと権限の問題を特定します。\n\nこの強化された検証では、CODEOWNERSファイル内の最初の200のユニークなユーザーとグループの参照をチェックし、次のことを検証します。\n\n* 参照されたすべてのユーザーとグループがこのプロジェクトにアクセスできること  \n* ユーザーに、マージリクエストを承認するために必要な権限があること  \n* グループに、デベロッパーレベル以上のアクセス権があること  \n* グループに、マージリクエストの承認権限を持つユーザーが少なくとも1人含まれていること\n\nこの事前検証により、設定上の問題を早期に発見して承認ワークフローの中断を防ぎ、マージリクエストが作成されたときにGitLabコードオーナーが実際にレビューの責任を果たせるようにできます。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/project/codeowners/troubleshooting.html#validate-your-codeowners-file)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15598)\n\n### VS Codeでダウンストリームパイプラインのジョブログを表示\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nVS Code用GitLab Workflow拡張機能で、ダウンストリームパイプラインからのジョブログをエディタ内で直接表示できるようになりました。これまで、子パイプラインからログを確認するには、GitLab Webインターフェイスに切り替える必要がありました。\n\nこの機能は、[GitLab共同開発](https://about.gitlab.com/community/co-create/)を通じて開発されました。この場を借りて、コントリビュートしてくれたTim Ryanさんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/editor_extensions/visual_studio_code/cicd/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1895)\n\n\n\n![VS Codeでダウンストリームパイプラインのジョブログを表示](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750659268/orzwm4kjqdag8fe0psvr.png)\n\n### シークレット検出のデフォルトルールとDAST検出の同等性\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nDASTアナライザーが、GitLabのシークレット検出アナライザーで使用されるものと同じデフォルトのシークレット検出ルールを自動的に取り込むようになりました。この改善により、両方のアナライザーで検出されるシークレットの種類に一貫性が確保されます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/checks/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/549990)\n\n### 依存関係リストでコンポーネントバージョンによるフィルタリング\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n依存関係リストで、コンポーネントのバージョン番号によるフィルタリングがサポートされるようになりました。複数のバージョン（`バージョン=1.1、1.2、1.4`など）を選択できますが、バージョン範囲指定はサポートされていません。この機能は、グループとプロジェクトの両方で利用できます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_list/#filter-dependency-list)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16431)\n\n![依存関係リストでコンポーネントバージョンによるフィルタリング](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750659404/fepyzz2uv3j47bjcehhi.png)\n\n\n\n### コンプライアンスステータスレポートでコントロールステータスの一覧がポップアップで表示されるように\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンプライアンスステータスレポートのコントロールには、次の3つのステータスがあります。\n\n* 合格  \n* 失敗  \n* 保留中\n\nこれまでは、要求事項に関連付けられているコントロールの数に関係なく、少なくとも1つのコントロールが「保留中」の場合、要求事項行全体が「保留中」として表示されていました。これは、失敗したコントロールの表示方法とは一貫性がありませんでした。失敗したコントロールが1つでもある場合は、要求事項に関連付けられた全コントロール数と失敗の数が表示されます。\n\n「保留中」のコントロールに関する詳細なコンテキストと情報を提供するため、要求事項行のステータスにカーソルを合わせると、各コントロールのステータスを一覧表示するポップアップが表示されるようになりました。これにより、単に「保留中」という全体ステータスを確認するだけでなく、どのコントロールが保留中で、どのコントロールが合格または失敗しているかを具体的に把握できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/521757)\n\n### ボットユーザーと人間のユーザーのフィルタリング\n\n> SaaS: -\\\n> Self-Managed: Free、Premium、Ultimate\n\n運用が進んだGitLabインスタンスでは、多くの場合、人間とボットの両方のユーザーが多数存在します。今回のリリースで、管理者エリアのユーザーリストをユーザータイプでフィルタリングできる機能が追加されました。この機能により、以下のことが可能になります。\n\n* 人間のユーザーと自動化アカウントを区別して迅速に特定、管理  \n* 特定のユーザータイプに絞った管理アクションを実行  \n* ユーザーの監査と管理のワークフローの効率化\n\n[ドキュメント](https://docs.gitlab.com/administration/moderate_users/#view-users-by-type)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/541186)\n\n![ボットユーザーと人間のユーザーのフィルタリング](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750659653/prkshqzxg5785p69yshd.png)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/541186)\n\n### ユーザープロフィールのORCID識別子\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nユーザープロフィールにORCID識別子を設定できるようになり、GitLabが研究者や学術コミュニティにとってより使いやすく価値あるものになりました。[ORCID](https://orcid.org/)（Open Researcher and Contributor ID）は、研究者に永続的なデジタル識別子を提供し、他の研究者との区別を可能にするとともに、研究者とその業績を自動的に関連付けることで、適切な評価を支援するものです。\n\nこの機能は、学術コミュニティからの長年の要望に応えるため、アルトワ大学の修士課程の学生であるThomas LabaletteとErwan Hivinが[Daniel Le Berre](https://www.ouvrirlascience.fr/appointment-of-daniel-le-berre-as-the-national-coordinator-for-higher-education-and-research-software-forges-in-france/)の指導の下、コミュニティに貢献することを目的に開発したものです。\n\n[ドキュメント](https://docs.gitlab.com/user/profile/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/23543)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/23543)\n\n![ユーザープロフィールのORCID識別子](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750663008/oogvxelirqapyxp10pha.png)\n\n\n\n### サービスアカウントのパイプライン通知への登録\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nサービスアカウントによってトリガーされたパイプラインイベントの通知を、受信できるようになりました。通知はパイプラインが合格、失敗、または修正された場合に送信されます。これまでは、サービスアカウントに有効なカスタムメールアドレスが設定されている場合にのみ、そのサービスアカウントのメールアドレスに通知が送信されていました。\n\nこの場を借りて、コントリビュートしてくれた[Densett](https://gitlab.com/Densett)さん、[Gilles Dehaudt](https://gitlab.com/tonton1728)さん、[Lenain](https://gitlab.com/lenaing)さん、[Geoffrey McQuat](https://gitlab.com/gmcquat)さん、[Raphaël Bihoré](https://gitlab.com/rbihore)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/user/profile/notifications/#notification-events-on-issues-merge-requests-and-epics)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/515629)\n\n### 無効となっているパーソナルアクセストークンの表示\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLabは、有効期限が切れたり、失効したりしたアクセストークンを自動的に無効化します。今回の変更では、無効となっているトークンを確認できるようになりました。これまでは、アクセストークンが無効になると表示されなくなっていました。この変更により、こうしたトークンのトレーサビリティとセキュリティが向上します。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/425053)\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/weEU6pukbag?si=ebijnyBQdW1_5yBl\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### GitLab Query Language（GLQL）ビューでのエピックサポート（ベータ版）\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Query Language（GLQL）ビューが大幅に改善されました。今後は、クエリでエピックをタイプとして使用できるようになり、グループ全体のエピック検索や親エピックへのクエリが可能になります。\n\nこの機能強化により計画・追跡のワークフローが大きく向上し、エピックレベルでのクエリや整理が格段に効率化されます。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/fields/#epic)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab-query-language/glql-rust/-/issues/30)\n\n### レビューパネルによるマージリクエストのレビューエクスペリエンスの強化\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nマージリクエストのレビューを行う際、レビューを送信する前にこれまでのフィードバックを参照すると役立つことがあります。これまでは、最終コメントと保留中コメントが別々のポップアップに分かれていたため、全体像を把握することが困難でした。\n\nコードレビュー時に、保留中の下書きコメントを一箇所にまとめて表示する専用ドロワーが利用できるようになりました。強化されたレビューパネルでは、レビュー送信インターフェイスがよりアクセスしやすい場所に移動し、保留中のコメント数を示す番号付きバッジが表示されます。パネルを開くと、下にスクロールできるリストに下書きコメントがすべて表示されるため、送信前のフィードバックの確認と管理が簡単になります。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/reviews/#submit-a-review)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/525841)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/525841)\n\n![レビューパネルによるマージリクエストのレビューエクスペリエンスの強化](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750663218/yfbrzecnuynpb1g57854.png)\n\n\n\n### GitLab Runner 18.1\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Runner 18.1もリリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドのエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\nバグ修正：\n\n* [GitLab 17.10または17.11にアップグレードすると、Runnerがジョブをリクエストしたときに404エラーが発生する可能性があります](https://gitlab.com/gitlab-org/gitlab/-/issues/543351)。\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-1-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### 高度なSASTのPHPサポート\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nGitLabの高度なSASTにPHPサポートを追加しました。この新しいファイル間、関数間スキャン機能を使用するには、[高度なSASTを有効](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#enable-advanced-sast-scanning)にします。高度なSASTをすでに有効にしている場合、PHPサポートは自動的に有効になります。\n\n高度なSASTが各言語で検出する脆弱性の種類を確認するには、[高度なSASTカバレッジページ](https://docs.gitlab.com/user/application_security/sast/advanced_sast_coverage/)を参照してください。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#supported-languages)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/14273)\n\n### パイプライン実行ポリシーにおける変数の優先順位制御\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n多くの場合、セキュリティチームはセキュリティ保証とデベロッパーエクスペリエンスの間で微妙なバランスを取ることになります。セキュリティスキャンが適切に実行されていることを確認するのは重要ですが、セキュリティアナライザーが正常に動作するためには、開発チームからの特定のインプットが必要な場合があります。変数の優先順位制御により、セキュリティチームは新しい`variables_override`設定オプションを通じて、パイプライン実行ポリシーにおける変数の処理方法を細かく制御できるようになりました。\n\nこの新しい設定を使用すると、次のことが可能になります。\n\n* プロジェクト固有のコンテナイメージパス（`CS_IMAGE`）を許可するコンテナスキャンポリシーを適用  \n* `SAST_EXCLUDED_PATHS`などの低リスク変数は許可し、`SAST_DISABLED`などの高リスク変数はブロック  \n* `AWS_CREDENTIALS`などのグローバルCI/CD変数で保護（マスクまたは非表示）されたグローバル共有認証情報を定義しつつ、必要に応じてプロジェクトレベルのCI/CD変数によるプロジェクト固有の上書きを許可\n\nこの強力な機能は、次の2つのアプローチをサポートしています。\n\n* **デフォルトで変数をロックする**（`allow: false`）：例外として指定した特定の変数を除き、すべての変数をロック  \n* **デフォルトで変数を許可する**`（allow: true`）：変数のカスタマイズを許可するが、重大なリスクのある変数を例外として指定することで制限  \n\n\n\nパイプライン実行ポリシーによってCI/CDジョブが実行される際のトレーサビリティとトラブルシューティングを改善するために、ジョブログ機能も導入されました。これにより、デベロッパーとセキュリティチームは、どのジョブがポリシーによって実行されたかを簡単に特定できますジョブログでは、変数の上書きによる影響の詳細を確認でき、どの変数がポリシーによって上書きまたはロックされているかを把握するのに役立ちます。\n\n**実際の影響**\n\nこの機能強化により、セキュリティ要件とデベロッパーの柔軟性のニーズとの間のギャップが解消されます。\n\n* セキュリティチーム：プロジェクト固有のカスタマイズを許可しつつ、標準化されたスキャンを実行できる  \n* デベロッパーは：ポリシーの例外をリクエストすることなく、プロジェクト固有の変数を制御できる  \n* 組織は：開発ワークフローを混乱させることなく、一貫したセキュリティポリシーを実装できる\n\nこの重要な変数制御機能により、GitLabは組織が開発の柔軟性を保ちながら強固なセキュリティポリシーを導入できる環境を提供します。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/#variables_override-type)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16430)\n\n\n\n![パイプライン実行ポリシーにおける変数の優先順位制御](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750663308/h1oukhyd4ky1w6spdxpo.png)\n\n\n\n### 外部カスタムコントロールの`Name`を定義\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまでは、カスタムコンプライアンスフレームワークを作成する際に外部カスタムコントロールの名前を定義できず、GitLabコントロールと並んでリスト表示される外部コントロールを識別することが困難でした。\n\n今回、外部カスタムコントロールを定義する際のワークフローの一部として`Name`フィールドが追加されました。これにより、複数の外部カスタムコントロールを作成し、それぞれに固有の名前を設定して明確に区別できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_frameworks/#external-controls)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/527007)\n\n### GitLab Duo脆弱性の修正のためのSASTカバレッジの向上\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまでは、次のCommon Weakness Enumeration（CWE）識別子を持つ検出された脆弱性を手動で解決する必要がありました。\n\n* CWE-78（コマンドインジェクション）  \n* CWE-89（SQLインジェクション）\n\n現在は、GitLab Duo脆弱性の修正により、これらの脆弱性を自動的に修正できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerabilities/#supported-vulnerabilities-for-vulnerability-resolution)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/534307)\n\n### コンプライアンスフレームワークUIにおける要件のページネーション\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンプライアンスフレームワークを作成する際は、最大50個の要件を指定できます。\n\nただし、これほど多くの要件があると、UIで大きな表示領域を占めるため、コンプライアンスフレームワークの操作が非常に困難になります。\n\n今回のリリースでは、コンプライアンスフレームワークに多数の要件が含まれている場合でも、ユーザーが要件を簡単に閲覧、検索、選択できるよう、要件のページネーション機能を導入しました。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_frameworks/#add-requirements)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/531039)\n\n### コンプライアンスセンターのUIパフォーマンスとフィルタリングを改善\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンプライアンスセンターのUIパフォーマンスとフィルタリングオプションの改善を継続しています。今回のリリースでは、次のことを行いました。\n\n* 特に多くの要件とプロジェクトが含まれる場合に、**フレームワークの編集**ページのUIスピードとパフォーマンスを改善しました。  \n* コンプライアンスセンターの**コンプライアンスステータスレポート**タブで、要件、プロジェクト、またはフレームワーク別にグループ化できる新しいフィルタリングオプションを導入しました。\n\nこれらの改善を行うことで、コンプライアンスセンターを定期的に利用するお客様に対し、コンプライアンスセンターと関連機能が大規模環境でも継続して高いパフォーマンスを発揮できるようにしています。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/508188)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/478216)\n\n### GraphQL APIの`projectMembers`に新しい`accessLevels`引数を追加\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGraphQL APIの`projectMembers`フィールドに`accessLevels`引数が追加されました。この引数を使用すると、APIコールから直接アクセスレベル別にプロジェクトメンバーをフィルタリングできます。これまでは、プロジェクトメンバーの全リストを取得してからローカルでフィルターを適用する必要があり、これにより計算オーバーヘッドが大幅に増加していました。現在では、プロジェクトの権限分析や所有権グラフの生成がより高速化し、リソース効率も向上しています。この機能強化は、複雑な権限構造を持つ大規模デプロイを管理する組織にとって特に価値があります。\n\n[ドキュメント](https://docs.gitlab.com/api/graphql/reference/#projectprojectmembers)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/541386)\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.1で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.1)  \n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.1)  \n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.1)\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。[](https://docs.gitlab.com/ee/update/deprecations.html#resource-owner-password-credentials-grant-is-deprecated)[](https://docs.gitlab.com/ee/update/deprecations.html#coverage-guided-fuzz-testing-is-deprecated)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n[](https://docs.gitlab.com/ee/update/deprecations.html#api-discovery-will-use-branch-pipelines-by-default)[](https://docs.gitlab.com/ee/update/deprecations.html#toggle-notes-confidentiality-on-apis)\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)  \n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)  \n* [VS CodeのGitLab Workflow](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)  \n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\\\n  ユーザー向けの永久無料機能を提供  \n* [Premium](https://about.gitlab.com/pricing/premium/)\\\n  チームの生産性と調整を強化  \n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\\\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/?hosted=saas)でお試しいただけます。  \n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.1](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release)\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)  \n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)  \n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)  \n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)  \n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)  \n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)",[853],"2025-06-23","2025-06-20",[1082,9,705,109],{"featured":6,"template":685,"slug":1321},"gitlab-18-01-release","content:ja-jp:blog:gitlab-18-01-release.yml","Gitlab 18 01 Release","ja-jp/blog/gitlab-18-01-release.yml","ja-jp/blog/gitlab-18-01-release",{"_path":1327,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1328,"content":1333,"config":1340,"_id":1342,"_type":14,"title":1343,"_source":16,"_file":1344,"_stem":1345,"_extension":19},"/ja-jp/blog/gitlab-18-02-release",{"noIndex":6,"ogImage":1329,"title":1330,"description":1331,"config":1332},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817693/gr3miapxfam57ksgivgi.png","GitLab 18.2 リリース","GitLab 18.2でリリースした最新機能をご紹介します。",{"noIndex":91},{"heroImage":1329,"body":1334,"authors":1335,"updatedDate":1336,"date":1337,"title":1330,"tags":1338,"description":1339,"category":705},"本ブログは、[GitLab 18.2 Release](https://about.gitlab.com/releases/2025/07/17/gitlab-18-2-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## IDE向けGitLab Duoエージェントプラットフォーム（ベータ版）とイシュー・タスク用カスタムワークフローステータスを追加したGitLab 18.2をリリース\n\nこのたび、GitLab 18.2のリリースを発表しました。このリリースでは、IDE向けGitLab Duoエージェントプラットフォーム（ベータ版）、イシュー・タスク用カスタムワークフローステータス、新しくなったマージリクエストのホーム画面、セキュリティを強化する不変コンテナタグなど、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる30以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.2には、GitLabコミュニティのユーザーから152件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースもユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n[GitLab 18.2のリリースでは、IDE](http://twitter.com/share?text=GitLab+18.2%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%A7%E3%81%AF%E3%80%81IDE%E5%90%91%E3%81%91GitLab+Duo%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%EF%BC%88%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88%EF%BC%89%E3%81%A8%E3%80%81%E3%82%A4%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%BB%E3%82%BF%E3%82%B9%E3%82%AF%E7%94%A8%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https://about.gitlab.com/ja-jp/blog/gitlab-18-1-release/&hashtags=)[向けGitLab Duoエージェントプラットフォーム（ベータ版）と、イシュー・タスク用カスタムワークフローステータスが追加されました。クリックしてSNSで共有しましょう！](http://twitter.com/share?text=GitLab+18.2%E3%81%AE%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%81%A7%E3%81%AF%E3%80%81IDE%E5%90%91%E3%81%91GitLab+Duo%E3%82%A8%E3%83%BC%E3%82%B8%E3%82%A7%E3%83%B3%E3%83%88%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%EF%BC%88%E3%83%99%E3%83%BC%E3%82%BF%E7%89%88%EF%BC%89%E3%81%A8%E3%80%81%E3%82%A4%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%BB%E3%82%BF%E3%82%B9%E3%82%AF%E7%94%A8%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%95%E3%83%AD%E3%83%BC%E3%82%B9%E3%83%86%E3%83%BC%E3%82%BF%E3%82%B9%E3%81%8C%E8%BF%BD%E5%8A%A0%E3%81%95%E3%82%8C%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82&url=https://about.gitlab.com/ja-jp/blog/gitlab-18-1-release/&hashtags=)\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[](https://gitlab.com/karras)[](https://gitlab.com/chaitanyason9)[Markus Siebert](https://gitlab.com/m-s-db)さんです\n\n\u003Cimg src=\"https://about.gitlab.com/images/notable-contributor-logo.svg\">\n\nDB Systel GmbHのプラットフォームエンジニアであるMarkus Siebertさんは、GitLab CI/CDにネイティブなAWS Secrets Managerサポートを導入するコミュニティの取り組みを主導しています。これは、パイプラインでの安全なシークレット管理という重要なエンタープライズニーズに応えるものです。わずか6週間で172件もの活動を記録し、「[AWS Secrets Managerからのシークレット取得機能の追加](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/5587)」「[AWS SSM ParameterStore用GitLab CI設定エントリの追加](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/191803)」「[AWS Secrets Managerのドキュメント作成](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/192378)」など、複数のマージリクエストを通じてAWS Secrets ManagerとAWS Systems Manager Parameter Storeの両方のサポート実装に精力的に取り組んでいます。\n\nMarkusさんを推薦したGitLabの[Aditya Tiwari](https://gitlab.com/atiwari71)（Secureチームのシニアバックエンドエンジニア）は次のように述べています。「Markusさんの取り組みにより、AWS環境を利用する GitLabユーザーは、サードパーティツールやカスタムスクリプトに頼ることなく、CI/CDシークレットを安全に管理できるようになりました。これは、AWSサービスを標準化しているエンタープライズユーザーにとって特に価値のある機能です。」\n\n初期実装からドキュメント作成まで、この機能を完成させようとするMarkusさんの献身的な姿勢、そしてフィードバックに基づいてマージリクエストを継続的に改善する取り組みは、コミュニティコントリビューションの理想的な例です。また、AWS ユーザーのためにGitLabをより良いものにするコミュニティ主導開発の力を示しています。\n\nこのコントリビュートはGitLab共同開発プログラムを通じて実現されました。\n\nこの場を借りて、GitLabにコントリビュートしてくれたMarkusさんに感謝します！\n\n## GitLab 18.2でリリースされた主な改善点\n\n### IDEでGitLab Duoエージェントプラットフォームが利用可能に（ベータ版）\n\n> SaaS: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Core、Duo Pro、Duo Enterprise\n\nGitLab Duoエージェントプラットフォームを使用して、VS CodeとJetBrains IDEでAgentic Chatとエージェントフローを直接利用できるようになりました。コードベースやGitLabプロジェクトと自然な会話形式でやりとりできます。\n\nAgentic Chatは、ファイルの作成・編集、パターンマッチングやgrepを使用したコードベース全体の検索、コードに関する質問への即座の回答など、素早く会話的なタスクに対応しています。\n\nAgent Flowは、より大規模な実装や包括的な計画を担当し、概念からアーキテクチャまでの高レベルなアイデアを実現しながら、イシュー、マージリクエスト、コミット、CI/CDパイプライン、セキュリティ脆弱性などのGitLabリソースにアクセスします。\n\nどちらの機能も、ドキュメント、コードパターン、プロジェクト探索のための高度な検索機能を備えており、簡単な編集から複雑なプロジェクト分析まで、様々なタスクの実行をサポートします。\n\nこのプラットフォームは、Model Context Protocol（MCP）にも対応しており、外部のデータソースやツールへの接続が可能で、AI機能がGitLab上の情報だけでなく外部のコンテキストも活用できます。\n\n利用を開始するには、[GitLab Duoエージェントプラットフォームに関するドキュメント](https://docs.gitlab.com/user/duo_agent_platform/)、[VS Codeセットアップガイド](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-vs-code)、[JetBrainsセットアップガイド](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-jetbrains-ides)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/duo_agent_platform/)\\\n[イシュー](https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/issues/1217)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/14137)\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/GPewPbqlFDE?si=C7LVy7tWpRGyZT7b\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### イシュー・タスク用カスタムワークフローステータス\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nステータス設定が柔軟になったことで、これまでの「オープン／クローズ」だけの単純な管理方法に代わり、チームの実際のワークフローステージに沿って作業アイテムを追跡できるようになりました。\n\nチームのプロセスを正確に反映したカスタムステータスを定義できるようになったことで、ラベルに頼る必要がなくなりました。ステータスを自由に設定することで、次のことが可能になります。\n\n* **カスタムワークフローの定義**：チームの実際のプロセスに合わせたワークフローを作成\n* **ワークフローラベルの置き換え**：ワークフローラベルを検索、更新、レポートしやすい適切なステータスに変更\n* **完了結果の明確化**：「完了」または「キャンセル」を使用して、単にイシューをクローズするだけでなく、完了の結果を明確に表示\n* **正確なフィルタリングとレポート**：作業アイテムのステータスを正確に絞り込んでレポートし、プロジェクトの状況をより的確に把握\n* **イシューボードでのステータス利用**：イシューが列間を移動した際にステータスを自動更新\n* **ステータスの一括更新**：複数の作業アイテムのステータスを一括更新して効率的に管理\n* **依存関係の追跡**： リンクされた作業アイテムのステータスを可視化\n\nカスタムワークフローステータスは、**コメントでのクイックアクション**にも対応し、GitLabのオープン／クローズシステムと自動で同期します。\n\n本機能の改善に向けたご意見やご提案を、ぜひ[フィードバックイシュー](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/35235)よりお寄せください。\n\n[](\u003C>)\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/oxN95MSo6UU?si=iYGB7gF9LSsRULhk\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### 新しくなったマージリクエストのホーム画面\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n複数のプロジェクトで、作成者とレビュアーの両方の立場で多数のマージリクエストを同時に対応していると、コードレビューの管理は非常に大変になります。\n\nマージリクエストのホーム画面が新しくなりました。早急に対応が必要な作業がわかるようスマートに優先順位を付け、以下の2つの表示モードを使用してレビュー作業の進め方を示してくれます。\n\n* **ワークフロービュー**：マージリクエストをレビューのステータスごとに整理し、コードレビューの各ステージに応じて作業をグループ化\n* **ロールビュー**：自分が作成者かレビュアーかによってマージリクエストをグループ化し、担当作業の範囲を明確に分離\n\n**有効**タブには対応が必要なマージリクエストが表示され、**マージ済み**タブには最近完了した作業が表示されます。また、**検索**では包括的なフィルタ機能を使用できます。\n\nまた、新しいホーム画面では、自分が作成したマージリクエストと割り当てられたマージリクエストの両方がまとめて表示されるため、可視性がさらに向上し、担当作業の見落としを防ぐことができます。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/homepage/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13448)\n\n![新しくなったマージリクエストのホーム画面](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817030/ehswaenxkydlwbox0ip3.png)\n\n### 不変コンテナタグでセキュリティを強化\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンテナレジストリは、現代のDevSecOpsチームにとって重要なインフラストラクチャです。しかし、保護されたコンテナタグがあっても、組織には依然として課題があります。それは、タグが作成された後でも、十分な権限を持つユーザーであれば変更できてしまうという点です。これは、本番環境の安定性を特定のタグ付きコンテナイメージに依存しているチームにとってリスクとなります。権限を持つユーザーによる変更であっても、意図しない変更が発生したり、デプロイの整合性が損なわれたりする可能性があります。\n\n不変コンテナタグを使用することで、コンテナイメージを意図しない変更から保護できます。不変ルールに一致するタグが作成されると、そのコンテナイメージは誰にも変更できなくなります。今後は以下のことが可能になります。\n\n* 保護ルールおよび不変ルールを合わせて、1プロジェクトあたり最大5件までの保護ルールをRE2正規表現パターンを用いて作成する\n* latest、セマンティックバージョン（例：v1.0.0）、リリース候補といった重要なタグをあらゆる変更から保護する\n* 不変タグがクリーンアップポリシーの対象から自動的に除外されるようにする\n\n不変コンテナタグを使用するには、次世代コンテナレジストリが必要です。このレジストリは、GitLab.comではデフォルトで有効になっています。GitLab Self-Managedインスタンスで不変コンテナタグを使用するには、[メタデータデータベース](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/)を有効にする必要があります。\n\n[ドキュメント](https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15139)[](https://gitlab.com/groups/gitlab-org/-/epics/15139)\n\n![不変コンテナタグでセキュリティを強化](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817030/xfcqsdjotx4acx96nu5b.png)\n\n### PremiumおよびUltimateにおけるGitLab Duoの機能をグループ・プロジェクト単位で制御\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nGitLab PremiumおよびUltimateユーザーは、グループとプロジェクトでIDE内のコード提案とGitLab Duo Chatの利用可否を変更できるようになりました。以前は、インスタンスまたはトップレベルグループでのみ利用可否を変更できました。\n\n[ドキュメント](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/551895)\n\n![PremiumおよびUltimateにおけるGitLab Duoの機能をグループ・プロジェクト単位で制御](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817030/khiyfhuutomokxjkgsul.png)\n\n### 新しいグループ概要コンプライアンスダッシュボード\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンプライアンスセンターは、コンプライアンスチームがコンプライアンスステータスのレポート、違反レポート、コンプライアンスフレームワークの管理などを一括して行える場所です。\n\n新たに導入されたグループ概要コンプライアンスダッシュボードは、グループ内のすべてのプロジェクトに関するコンプライアンス情報を集約してコンプライアンスマネージャーに提供します。この最初のイテレーションでは、以下の情報が表示されます。\n\n* 特定のコンプライアンスフレームワークの対象となっているプロジェクトの割合\n* グループ内すべてのプロジェクトで失敗した要求事項の割合\n* グループ内すべてのプロジェクトで失敗した制御の割合\n* 「注意」が必要な特定のフレームワーク\n\nこの新しいグループ概要により、コンプライアンスマネージャーは、コンプライアンス対応状況の明確な全体像を一元的な画面で把握できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_center/compliance_overview_dashboard/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13909)\n\n![新しいグループ概要コンプライアンスダッシュボード](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817030/rttcgovqszvnwqgqw1z5.png)\n\n### インスタンス全体で利用可能なワークスペースKubernetesエージェント\n\n> Self-Managed: Premium、Ultimate\n\nGitLab管理者は、インスタンスレベルでワークスペースKubernetesエージェントをマッピングできるようになりました。これにより、ユーザーはそのインスタンスに含まれるどのグループやプロジェクトからでも、ワークスペースを作成できるようになりました。\n\n組織はワークスペースKubernetesエージェントを一度プロビジョニングするだけで、インスタンス全体の現在および将来のすべてのプロジェクトからそのエージェントにアクセスできるようになり、ワークスペースのスケーラビリティが大幅に向上します。\n\n[ドキュメント](https://docs.gitlab.com/user/workspace/gitlab_agent_configuration/#allow-a-cluster-agent-for-workspaces-on-the-instance)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16485)\n\n![インスタンス全体で利用可能なワークスペースKubernetesエージェント](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817031/if68jfrt7op0tqnsb2co.png)\n\n### セキュリティレポートのPDFエクスポートがダウンロード可能に\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n脆弱性管理の状況や進捗を他の関係者と共有するために、各プロジェクトまたはグループのセキュリティダッシュボードをPDFドキュメントとしてエクスポートできるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/security_dashboard/#exporting)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16989)\n\n![セキュリティレポートのPDFエクスポートがダウンロード可能に](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817035/xsuirbb1qrpnkamx9a9o.png)\n\n### 一元的なセキュリティポリシー管理（ベータ版）\n\n> Self-Managed: Ultimate\n\nコンプライアンスが重要となる大規模な組織では、複数のプロジェクトやグループにポリシーが分散していることが多く、チームはその断片化されたポリシーの管理に苦労することがあります。ポリシーが一元的に可視化されていない状態では、ポリシーを一貫して適用するのに時間がかかり、コンプライアンスリスクの増大にもつながります。\n\n一元的なセキュリティポリシー管理は、GitLab組織全体にわたってセキュリティポリシーを作成、管理、適用するための統一されたアプローチを導入するものであり、指定された単一のコンプライアンスおよびセキュリティポリシー（CSP）グループを通じて実現されます。これにより、セキュリティチームは以下のことを行えるようになります。\n\n* **一度の定義でポリシーを全体に適用**：CSPグループを通じてインスタンス全体に適用されるセキュリティポリシーを一度作成し、すべてのグループとプロジェクトに対して自動的に適用\n* **事業部単位のポリシーを設定**：トップレベルグループは、CSPグループから組織全体のポリシーを継承しつつ、独自のポリシーセットを設定可能\n* **最小権限の原則を遵守**：インスタンス全体に適用される中央ポリシー管理レイヤーを確立\n\nこのベータ版リリースでは、一元的なポリシー管理のための基盤となるフレームワークを確立し、グループ、プロジェクト、またはインスタンス単位で設定可能なすべての既存のセキュリティポリシータイプに対応しています。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/centralized_security_policy_management/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17392)\n\n![一元的なセキュリティポリシー管理（ベータ版）](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752817030/jombwhyuvqsif4k7kjvn.png)\n\n## GitLab 18.2リリースに含まれるその他の改善点\n\n### 管理者がユーザーの確認なしでコントリビュートを再アサイン可能に\n\n> Self-Managed: Free、Premium、Ultimate\n\n管理者は、プレースホルダユーザーからアクティブユーザーへのコントリビュートの再アサインを、ユーザーの確認なしで実行できるようになりました。この機能は、再アサインの承認メールをユーザーが確認しないことでプロセスが停滞してしまうという、大規模組織が抱える重要な課題を解決します。\n\nユーザーの代理操作が有効になっているGitLabインスタンスでは、管理者はユーザー管理のワークフローを効率化しつつ、データの整合性を維持することができます。再アサイン完了後には、ユーザーに通知メールが送信されるため、プロセス全体における透明性も確保されます。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/import_and_export_settings/#skip-confirmation-when-reassigning-placeholder-users)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523259)\n\n### チームメンバーにエピックを割り当て\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n個人へのエピックの割り当てが可能になり、戦略的イニシアチブの責任者が明確になりました。エピックに担当者を設定することで、ポートフォリオレベルで誰が責任を持つかが明確になり、迅速な意思決定と長期目標への明確な責任体制を構築できます。チームは、エピックの進捗状況、依存関係、スコープの変更について、誰に連絡すればよいかをすぐに把握できます。\n\n[ドキュメント](https://docs.gitlab.com/user/group/epics/manage_epics/#assignees)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/4231) \n\n![チームメンバーにエピックを割り当て](https://about.gitlab.com/images/18_2/epic_assignees.png)\n\n### エピックの表示設定\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n作業アイテムの一覧を表示する際に、どのメタデータを表示するかを自由に選べるようになり、最も重要な情報に集中しやすくなりました。\n\nこれまでは、すべてのメタデータフィールドが常に表示されていたため、作業アイテムを確認する際に情報が多すぎて把握しにくい状況でした。今回の改善により、担当者、ラベル、日付、マイルストーンといった特定のフィールドのオン／オフを切り替えて、表示内容をカスタマイズできるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/group/epics/manage_epics/#configure-epic-display-preferences)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/393559) \n\n![エピックの表示設定](https://res.cloudinary.com/about-gitlab-com/image/upload/v1753246094/nyfmmdweksyndjdisfp4.png)\n\n### GLQLビューでの並べ替えとページネーション\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n今回のリリースでは、GLQLビューの並べ替え機能とページネーション機能が強化され、大規模なデータセットでの作業がより簡単になりました。\n\n期限、ヘルスステータス、人気度などの主要なフィールドで並び替えできるようになり、最も関連性の高い項目をすばやく見つけられます。新しい「さらに読み込む」形式のページネーションシステムにより、ページ全体に表示されていた大量の結果が、必要な分だけを段階的に読み込めるようになり、データの管理がしやすくなりました。\n\nこうした改善により、チームは複雑なプロジェクトデータを効率的に扱い、その時々で最も重要な情報に集中できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/#presentation-syntax)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502701)\n\n### GitLab Runner 18.2\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Runner 18.2も本日リリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\nバグ修正：\n\n* [GitLab Runner 18.1.0へのアップグレード後、FIPSモードでRunnerが失敗する](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38890)\n* [FF_USE_DUMB_INIT_WITH_KUBERNETES_EXECUTORでジョブポッドを起動できない](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/241)\n* [GitLab Runner（FIPSモード）でubi-fipsイメージがデフォルトのイメージフレーバーとして使用されていない](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38273)\n* [GitLabメンテナンスモードを無効にした後、Runnerが長時間オフラインのままになる](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29181)\n\nすべての変更の一覧は、GitLab Runnerの[変更履歴で確認できます](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-2-stable/CHANGELOG.md)。\n\n[ドキュメント](https://docs.gitlab.com/runner/)\n\n### コンテナスキャンにおけるマルチアーキテクチャコンテナイメージのサポート\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンテナスキャンにLinux Arm64コンテナイメージバリアントが追加されました。これにより、Linux Arm64ランナー上で実行する際にアナライザーがエミュレーションなしで動作するため、分析速度が向上します。さらに、`TRIVY_PLATFORM`環境変数にスキャンしたいプラットフォームを設定することで、マルチアーキテクチャイメージをスキャンできるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/container_scanning/#available-cicd-variables)\\\n[イシュー ](https://gitlab.com/gitlab-org/gitlab/-/issues/543144)\n\n### コンテナスキャンにおけるアーカイブファイルのサポート強化\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab 18.2では、コンテナスキャンにおけるアーカイブファイルスキャンのサポートが強化されました。特定のパッケージに含まれる脆弱性が複数のイメージで検出された場合、スキャンされた各イメージに対して該当する脆弱性が表示されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/container_scanning/#scanning-archive-formats)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501077)\n\n### JavaScriptで静的到達可能性がサポートされるように\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nコンポジション解析で、JavaScriptライブラリの静的到達可能性がサポートされるようになりました。トリアージや修正に関する意思決定を行う上で、静的到達可能性機能によって生成されたデータを活用できます。また、静的な到達性データをEPSS、KEV、およびCVSS（共通脆弱性評価システム）のスコアと一緒に使用すれば、より焦点を絞って脆弱性を確認することも可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_scanning/static_reachability/#supported-languages-and-package-managers)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502334) \n\n### 脆弱性レポートにおける到達可能性フィルター\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n脆弱性レポート内のデータを到達可能な脆弱性のみに絞り込めるようになりました。到達可能な脆弱性とは、次の両方の条件を満たす脆弱性を指します。\n\n* 共通脆弱性識別子（CVE）リストに掲載されている\n* 明示的にインポートされているライブラリに含まれている\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#filtering-vulnerabilities)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/543346) \n\n![脆弱性レポートにおける到達可能性フィルター](https://about.gitlab.com/images/18_2/reachability_filter.png)\n\n### 承認ポリシーにおけるソースブランチパターンの例外設定\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまで、GitFlowを使用するチームは、`release/*`ブランチを`main`にマージする際に、承認のデッドロックが頻繁に発生していました。これは、ほとんどのコントリビューターがリリース開発にすでに関与しており、承認者として機能できなくなるためです。\n\nマージリクエスト承認ポリシーのブランチパターン例外設定によって、この問題は解決されます。特定のソースブランチとターゲットブランチの組み合わせに対して、承認要件を自動的に回避できる仕組みです。たとえば、featureからmainへのマージには厳格な承認を設定しつつ、releaseからmainへのマージはスムーズに進められるように構成できます。\n\n主要機能：\n\n* **パターンベースの設定**：`release/*`や`hotfix/*`などのソースブランチパターンを定義し、承認要件を回避\n* **シームレスな統合**：ブランチの例外設定は既存のマージリクエスト承認ポリシーに直接統合され、UIまたは`policy.yaml`ファイルを通じて設定可能\n\nこれにより、複雑な回避策が不要になると同時に、標準的な開発ワークフローにおけるマージリクエスト承認ポリシーのセキュリティ上の利点は維持されます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#source-branch-exceptions)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18113) \n\n![承認ポリシーにおけるソースブランチパターンの例外設定](https://about.gitlab.com/images/18_2/source-branch-pattern.png)\n\n### 脆弱性レポートのCSVエクスポートに脆弱性IDを追加\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまで、脆弱性レポートのCSVエクスポートに脆弱性IDは含まれていませんでしたが、CSVエクスポートに各脆弱性のIDが一覧表示されるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#exporting)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18033)\n\n### カスタム管理者ロール（ベータ版）\n\n> Self-Managed: Ultimate\n\nこの新しいカスタム管理者ロールでは、GitLab Self-ManagedおよびGitLab Dedicatedインスタンスの管理者エリアで権限を細かく調整できるようになります。管理者は、従来のようにすべてのアクセス権を付与するのではなく、必要とする特定の機能のみにアクセスできる専用のロールを作成できます。これにより、管理機能に対する最小権限の原則を組織内で実現し、過剰な権限によるセキュリティリスクを低減し、業務効率性を向上させることができます。\n\nこの機能に関するコミュニティのみなさまからのフィードバックを心よりお待ちしております。ご質問や実装経験の共有、改善点に関して当社チームへのご意見がある場合は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509376)をご確認ください。\n\n[ドキュメント](https://docs.gitlab.com/user/custom_roles/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15069) \n\n![カスタム管理者ロール（ベータ版）](https://about.gitlab.com/images/18_2/sscs_authz_custom_admin_role.png)\n\n### 監査ストリーミング先へのストリーミングの無効化\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまで、監査ストリーミング先へのストリーミングを一時的に無効化する方法がありませんでした。たとえば、ストリーム接続のトラブルシューティングを行いたい場合や、設定の削除・再構成を行わずに変更を加えたい場合など、さまざまな理由で一時的に無効化したいケースが考えられます。\n\nGitLab 18.2では、監査ストリームを「有効」または「無効」に切り替える機能が追加されました。監査ストリームが無効になると、監査イベントは指定された送信先へストリーミングされなくなります。アクティブに切り替えると、監査イベントのストリーミングが再開されます。\n\n[ドキュメント](https://docs.gitlab.com/administration/compliance/audit_event_streaming/#activate-or-deactivate-streaming-destinations)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/537096) \n\n### すべての監査ストリーミング先でフィルタ機能が利用可能に\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまでは、一部の監査ストリーミング先では、利用できるフィルタ機能に制限がありました。\n\n今回の改善により、すべての監査ストリーミング先で、UI上で以下のような項目を指定して絞り込めるようになりました。\n\n* 監査イベントタイプ別\n* グループまたはプロジェクト別\n\nまた、AWSやGCPなどの監査イベント先でも、監査イベントの絞り込みが可能になりました。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/audit_event_streaming/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524939)\n\n### プレースホルダユーザーから非アクティブユーザーへの再アサイン\n\nSelf-Managed: Free、Premium、Ultimate\n\nこれまで、管理者はプレースホルダユーザーからアクティブユーザーに対してのみ、コントリビュートやメンバーシップを再アサインできました。\n\nGitLab Self-Managedでは、管理者によるプレースホルダユーザーから非アクティブユーザーへのコントリビュートやメンバーシップの再アサインも可能になりました。この機能により、ブロック済み、BAN済み、または無効化済みユーザーのコントリビュート履歴やメンバーシップ情報をGitLabインスタンス上で保持することができます。\n\n管理者は最初にこの設定を有効化する必要があります。有効化すると、安全なアクセス制御を維持しながら、再アサイン時のユーザー確認をスキップしてユーザー管理を効率化できます。\n\n[ドキュメント](https://docs.gitlab.com/administration/settings/import_and_export_settings/#skip-confirmation-when-administrators-reassign-placeholder-users)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/523260) \n\n### 長期計画の強化に向けたエピックへのマイルストーン割り当て\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\n[マイルストーン](https://docs.gitlab.com/user/project/milestones/)をエピックに直接割り当てることが可能になり、戦略的なイニシアティブから実行に至るまで、段階的な計画の流れを自然に作成できるようになりました。この機能強化により、四半期ごとの計画やSAFeプログラムインクリメント（PI）といった長期的な計画サイクルをエピックと連携させることができます。一方で、イテレーションは開発スプリントに特化させることができます。\n\nこの明確な階層構造により、管理上の負担を軽減し、戦略的なイニシアティブが組織のタイムフレームに沿ってどのように進捗しているかをより適切に把握できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/project/milestones/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/329)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/329)\n\n![長期計画の強化に向けたエピックへのマイルストーン割り当て](https://about.gitlab.com/images/18_2/epic_milestone.png)\n\n### エピックページでエピックをドロワーまたは全ページで表示\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nエピック一覧ページに新たに追加されたトグルを切り替えて、エピックをドロワー表示で開くか、全ページ表示で開くかを選べるようになりました。\n\nドロワー表示を使えば、エピック一覧のコンテキストを保ったまま、エピックの詳細をすばやく確認できます。また、詳細な編集や包括的な操作を行うために、より広い画面スペースが必要な場合は、全ページ表示で開くことも可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/group/epics/manage_epics/#open-epics-in-a-drawer)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/536620) \n\n![エピックページでエピックをドロワーまたは全ページで表示](https://about.gitlab.com/images/18_2/drawer_toggle.png)\n\n### GitLab Flavored Markdownにおける作業アイテム参照とエディターの改善\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Flavored Markdownで、`[work_item:123]`という統一構文を使用して、イシュー、エピック、作業アイテムを参照できるようになりました。この新しい構文は、イシュー用の`#123`やエピック用の`&123`といった既存の参照形式と併用でき、`[work_item:namespace/project/123]`のようなプロジェクト間参照にも対応しています。\n\nまた、プレーンテキストエディターには、Enterキーを押した際に[カーソルのインデントを維持する設定](https://docs.gitlab.com/user/profile/preferences/#maintain-cursor-indentation)が新たに追加されました。これにより、ネストされたリストやコードブロックなどの構造化されたコンテンツをより書きやすくなります。\n\n[ドキュメント](https://docs.gitlab.com/user/markdown/#gitlab-specific-references)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/7654)\n\n### トリガージョブでダウンストリームパイプラインステータスをミラーリング\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nこれまで、`strategy:depend`を使用したトリガージョブでは、手動ジョブ、ブロックされたパイプライン、実行中にステータスが変化する再試行パイプラインなど、複雑なパイプラインの状態に対応する際に制限がありました。そのため、実際には手動ジョブでブロックされているにもかかわらず、ダウンストリームパイプラインがアクティブに実行中であるかのように見えることがありました。\n\n新しい`strategy:mirror`キーワードは、ダウンストリームパイプラインの正確なリアルタイムのステータスをミラーリングすることで、より詳細なステータスレポートを可能にします。ステータスには、`running`、`manual`、`blocked`、`canceled`などの途中経過のステータスも含まれます。この機能により、チームは既存のワークフローを中断することなく、ダウンストリームパイプラインの現在のステータスを完全に把握できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/ci/yaml/#triggerstrategy)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/431882) \n\n### 時間ベースのワンタイムパスワードMFAのDAST対応\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n動的解析において時間ベースのワンタイムパスワード（TOTP）による多要素認証（MFA）がサポートされるようになりました。\n\nTOTP MFAが有効になっているプロジェクトでDASTスキャンを実行し、包括的なセキュリティテストを確実に行うことができます。この機能強化により、MFAが展開されている本番環境を再現した設定でアプリケーションをテストできるため、より正確なスキャン結果が得られます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/configuration/authentication/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/13633) \n\n### DASTログイン成功確認のサポート強化\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまで、`DAST_AUTH_SUCCESS_IF_AT_URL`変数を使用して認証の成功を確認するには、URLの完全一致が必要でした。この方法は、ランディングページが静的なアプリケーションには有効でしたが、ログイン後のURLにログインごとの動的要素が含まれるアプリケーションでは困難でした。\n\n今回の改善により、`DAST_AUTH_SUCCESS_IF_AT_URL`変数でワイルドカードパターンを使用し、動的なURLパターンにも一致させることが可能になりました。この機能強化で柔軟性が向上されたことで、セッションごとにURLが変化する場合でも、認証の成功を確認できるようになりました。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/configuration/variables/#authentication)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/435942)\n\n### 依存関係パスの表示\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nこれまでは、ある依存関係が直接的な依存関係なのか、それとも依存関係の子孫を通じてインポートされた間接的な依存関係なのかを判別するのが困難でした。\n\n新たに追加された依存関係パス機能を使用することで、ライブラリが直接的にインポートされているのか、あるいは間接的にインポートされているのかを判別できるようになりました。依存関係パスは、プロジェクトおよびグループの依存関係リストと脆弱性詳細で確認できます。この機能により、ライブラリがどのようにインポートされているかに応じて、最も効率的な修正のパスをデベロッパーが判断できるようになります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_list/#dependency-paths)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16815)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/16815)\n\n![依存関係パスの表示](https://about.gitlab.com/images/18_2/dependency_paths.png)\n\n### セキュリティインベントリによるアセットの包括的な可視化（ベータ版）\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nAppSecチームには、組織内のすべてのアセットに対するセキュリティ体制を包括的に可視化することが求められています。これまでのGitLabのセキュリティワークフローは、主にプロジェクトレベルでのスキャナー設定や脆弱性に焦点を当てていたため、カバレッジのギャップを把握したり、リスクに基づいて効率的に優先順位を付けたりするのが困難でした。\n\nセキュリティインベントリは、GitLabインスタンス全体におけるセキュリティ対策状況を一元的に表示し、AppSecチームが以下を実現できるようにします。\n\n* プロジェクトやグループ間のセキュリティカバレッジを完全に可視化する\n* セキュリティスキャンが十分に実行されていない、または設定にギャップがあるアセットを特定する\n* セキュリティ対策の重点をどこに置くのかについて、情報に基づいたリスクベースの意思決定を行う\n* セキュリティ対策状況の改善を継続的に追跡する\n\nこの機能を使用することで、個別プロジェクトのセキュリティと組織全体のセキュリティ戦略とのギャップを埋め、効果的なセキュリティプログラム管理に必要なアセットインベントリの基盤を構築できます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/security_inventory/)\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16484)\\\n\n### 脆弱性GraphQL APIで追加情報を取得可能に\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nGraphQL APIを使用して、脆弱性が導入されたパイプラインと最後に検出されたパイプラインを特定できるようになりました。脆弱性GraphQL APIに以下のフィールドが追加されました。\n\n* `initialDetectedPipeline`：脆弱性が導入された際の追加のコミット情報（例：作成者のユーザー名）を取得するために使用\n* `latestDetectedPipeline`：脆弱性が削除された際の追加のコミット情報（例：コミットSHA）を取得するために使用\n\n[ドキュメント](https://docs.gitlab.com/api/graphql/reference/#vulnerability)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/468913) \n\n### 認証情報インベントリにサービスアカウントトークンを追加\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nGitLabの認証情報インベントリでサービスアカウントトークンがサポートされるようになりました。これにより、ソフトウェアサプライチェーン全体で使用されているさまざまな認証方式を、より明確に把握・管理できるようになります。認証情報インベントリは、組織全体で使用されている認証情報の全体像を提供します。\n\n[ドキュメント](https://docs.gitlab.com/administration/credentials_inventory/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/421954) \n\n### GitLab Duo Self-HostedでMistral Smallが利用可能に\n\nSelf-Managed: Premium、Ultimate、Duo Enterprise\n\n[GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models)でMistral Smallを使用できるようになりました。このモデルはGitLab Self-Managedインスタンスで利用可能であり、GitLab Duo Self-HostedのGitLab Duo Chatおよびコード提案機能に完全対応する初のオープンソースモデルです。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18202)\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.2で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.2&first_page_size=100)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.2)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.2)\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。[](https://docs.gitlab.com/ee/update/deprecations.html#resource-owner-password-credentials-grant-is-deprecated)[](https://docs.gitlab.com/ee/update/deprecations.html#coverage-guided-fuzz-testing-is-deprecated)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n[](https://docs.gitlab.com/ee/update/deprecations.html#api-discovery-will-use-branch-pipelines-by-default)[](https://docs.gitlab.com/ee/update/deprecations.html#toggle-notes-confidentiality-on-apis)\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [VS CodeのGitLab Workflow](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\\\n  ユーザー向けの永久無料機能を提供\n* [Premium](https://about.gitlab.com/pricing/premium/)\\\n  チームの生産性と調整を強化\n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\\\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/?hosted=saas)でお試しいただけます。\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.2](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release)\n* [GitLab 18.1](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release)\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)",[853],"2025-07-24","2025-07-18",[1082,9,705,109],"GitLab 18.2でリリースした最新機能を公開します。",{"featured":91,"template":685,"slug":1341},"gitlab-18-02-release","content:ja-jp:blog:gitlab-18-02-release.yml","Gitlab 18 02 Release","ja-jp/blog/gitlab-18-02-release.yml","ja-jp/blog/gitlab-18-02-release",{"_path":1347,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1348,"content":1353,"config":1360,"_id":1362,"_type":14,"title":1363,"_source":16,"_file":1364,"_stem":1365,"_extension":19},"/ja-jp/blog/gitlab-18-03-release",{"config":1349,"ogImage":1350,"title":1351,"description":1352},{"noIndex":91},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1755780180/rjsjdqp84qgmlu698wfc.png","GitLab 18.3 リリース","GitLab 18.3でリリースした最新機能をご紹介します。",{"heroImage":1350,"body":1354,"authors":1355,"updatedDate":1356,"date":1357,"title":1351,"tags":1358,"description":1359,"category":705},"本ブログは、[GitLab 18.3 Release](https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/)の抄訳です。内容に相違がある場合は、原文が優先されます。\n\n## Visual Studio向けDuo Agent Platform（ベータ版）と埋め込みビューを搭載したGitLab 18.3をリリース\n\nこのたび、GitLab 18.3のリリースを発表しました。このリリースでは、Visual Studio向けDuo Agent Platform（ベータ版）、埋め込みビュー、直接転送による移行、CI/CDジョブトークンの詳細な権限設定など、さまざまな機能が追加されました。\n\nこれらの機能は、今回のリリースに含まれる38以上の改善点のほんの一部です。この記事では、お役に立つアップデートをすべてご紹介していますので、ぜひ最後までお読みください。\n\nGitLab 18.3には、GitLabコミュニティのユーザーから314件ものコントリビュートがありました。ありがとうございました！GitLabは[誰もがコントリビュートできる](https://about.gitlab.com/community/contribute/)プラットフォームであり、今回のリリースはユーザーのみなさまの協力なしには実現しませんでした。\n\n来月のリリースで予定されている内容を先取りするには、[今後のリリースページ](https://about.gitlab.com/upcoming-releases/)をご覧ください。\n\n## 今月の[注目コントリビューター](https://contributors.gitlab.com/docs/notable-contributors)は[Ahmed Kashkoush](https://gitlab.com/ahmad-kashkoush)さんです\n\n\u003Cimg src=\"https://about.gitlab.com/images/notable-contributor-logo.svg\">\n\n18.3では、[Ahmed Kashkoush](https://gitlab.com/ahmad-kashkoush)さんを注目コントリビューターとして表彰いたします！\n\nAhmedさんはこの[Google Summer of Codeの参加](https://gitlab.com/ahmad-kashkoush/gsoc-2025-final-report)を通じて、[GitLab Web IDE](https://gitlab.com/gitlab-org/gitlab-web-ide)に優れたコントリビュートをもたらしました。彼は長年のコミュニティからの要望に直接応える重要なGit操作を一貫して提供してきました。彼の5つの重要なマージリクエストには、[コミットおよび強制プッシュ機能](https://gitlab.com/gitlab-org/gitlab-web-ide/-/merge_requests/497)、[更新確認メッセージ](https://gitlab.com/gitlab-org/gitlab-web-ide/-/merge_requests/540)、[コミット修正機能](https://gitlab.com/gitlab-org/gitlab-web-ide/-/merge_requests/507)、[ブランチ作成操作](https://gitlab.com/gitlab-org/gitlab-web-ide/-/merge_requests/534)、[ブランチ削除機能](https://gitlab.com/gitlab-org/gitlab-web-ide/-/merge_requests/539)が含まれています。\n\n新機能の実装に加え、AhmedさんはWeb IDEから既存のコミットを修正できる機能を追加しました。これは5年以上前にコミュニティから要望され、24の「いいね」を獲得していた機能です。彼の包括的なブランチ管理の実装により、Web IDEはローカル開発環境と機能的に同等に近づき、基本的なGit操作のためにインターフェース間を切り替える必要がなくなりました。Ahmedさんの作業は、Web IDEをより多くのデベロッパーに利用しやすくすることで、GitLabの「誰もがコントリビュートできる」という[ミッション](https://handbook.gitlab.com/handbook/company/mission/)の理念を形にしています。\n\nAhmedさんをGoogle Summer of Codeプログラムを通じてメンターとしてサポートしたGitLabのスタッフフロントエンドエンジニア[Enrique Alcántara](https://gitlab.com/ealcantara)によってノミネートされました。彼は次のように述べています。「Ahmedさんは実際のユーザーの問題を解決することに献身的です。彼の作業は、専念するコントリビューターがGitLabのコア機能を改善する上でどれほどの影響を与えることができるかを示しています。」\n\nAhmedさんのコントリビュートは、オープンソース開発におけるメンターシップとコミュニティコラボレーションの力を示し、ローカルセットアップに関係なくGitLabをより使いやすくしています。\n\nGitLab Web IDEへの素晴らしいコントリビュートを提供してくれたAhmedさんに感謝します！\n\n## **GitLab 18.3でリリースされた主な改善点**\n\n### **Visual Studio向けDuo Agent Platform（ベータ版）**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nVisual Studio向けDuo Agent Platformのパブリックベータ版をリリースしました！このリリースにより、Visual StudioユーザーはDuo Agent Platformの高度なAI機能をIDE内で直接利用できるようになりました。\n\nDuo  Agent Platformは、ワークフローに2つの強力な機能をもたらします：\n\n* **Agentic Chat**：ファイルの作成と編集、パターンマッチングとgrepを使用したコードベースの検索、コードに関する質問への即座の回答など、会話型のタスクをVisual Studioから離れることなく素早く実行できます。\n* **エージェントフロー**：より大規模で複雑なタスクに、包括的な計画と実装サポートで取り組みます。エージェントフローは、イシュー、マージリクエスト、コミット、CI/CDパイプライン、セキュリティ脆弱性などのGitLabリソースを活用しながら、高レベルのアイデアをアーキテクチャとコードに変換するのに役立ちます。\n\nどちらの機能も、ドキュメント、コードパターン、プロジェクト情報全体で高度な検索を提供し、簡単な編集から詳細なプロジェクト分析まで、シームレスに移行できるようサポートします。\n\n今すぐVisual StudioでDuo Agent Platformベータ版をお試しいただき、開発ワークフローにおける新しいレベルの生産性とAI機能のサポートを体験してください。\n\n[ドキュメント](https://docs.gitlab.com/user/duo_agent_platform/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/179)\n\n[](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/179)\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/Pdjf5HxQUBQ?si=ouLMn2O8jTQ6y9Ql\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### **埋め込みビュー（GLQLを活用）**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nこのリリースで、GLQLを活用した埋め込みビューの一般提供を開始します。Wikiページ、エピックの説明、イシューコメント、マージリクエストなど、作業が行われる場所に直接、GitLabデータの動的でクエリ可能なビューを作成して埋め込むことができます。\n\n埋め込みビューにより、チームは画面を切り替えることなく作業の進捗を一箇所で追跡できます。使い慣れた構文を使用してイシュー、マージリクエスト、エピック、その他の作業アイテムを検索し、カスタマイズ可能なフィールドとフィルタリングを備えたテーブルまたはリスト表示で結果を確認できます。\n\n埋め込みビューは、静的なドキュメントをプロジェクトデータと同期を保つライブダッシュボードに変換し、チームがコンテキストを保ちながら、ワークフロー全体でコラボレーションを向上させることができます。\n\n埋め込みビューの改善に向けたご意見やご提案を、ぜひ[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509792)よりお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/user/glql/#embedded-views)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15008)\n\n\u003Cfigure class=\"video_container\">\n\u003Ciframe src=\"https://www.youtube.com/embed/DG_DL5r2GCM?si=6ATRXOF06qs0rMPS\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n### **直接転送による移行**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n直接転送による移行が一般提供されるようになりました。GitLabインスタンス間でGitLabグループとプロジェクトを直接転送で移行するには、GitLab UIまたは[REST API](https://docs.gitlab.com/ee/api/bulk_imports.html)を使用できます。\n\n[エクスポートファイルのアップロードによる移行](https://docs.gitlab.com/ee/user/project/settings/import_export.html#migrate-projects-by-uploading-an-export-file)と比較して、直接転送は：\n\n* 大規模なプロジェクトでより確実に動作します。\n* ソースインスタンスと宛先インスタンス間のバージョンギャップが大きい移行をサポートします。\n* 移行プロセスと結果に関するより良い洞察を提供します。\n\nGitLab.comでは、直接転送による移行はデフォルトで有効になっています。GitLab Self-ManagedおよびGitLab Dedicatedでは、管理者が[機能を有効にする](https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#enable-migration-of-groups-and-projects-by-direct-transfer)必要があります。\n\n![直接転送による移行](https://about.gitlab.com/images/18_3/migration_history.png)\n\n### **CI/CDジョブトークンのきめ細かい権限設定**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nパイプラインセキュリティがより柔軟になりました。ジョブトークンは、パイプライン内のリソースへのアクセスを提供する一時的な認証情報です。これまで、これらのトークンはユーザーから全権限を継承していたため、必要以上に広範なアクセス権限を持ってしまうことがありました。\n\n新しいジョブトークンのきめ細かい権限設定機能により、ジョブトークンがプロジェクト内でアクセスできる特定のリソースを正確に制御できるようになりました。これにより、CI/CDワークフローで最小権限の原則を適用し、CI/CDジョブトークンでプロジェクトにアクセスする際に、ジョブがタスクを完了するための必要最小限のアクセスのみを付与できます。\n\nパイプラインでの長期トークンへの依存を減らすために、[詳細権限機能のさらなる拡充](https://gitlab.com/groups/gitlab-org/-/epics/6310)に積極的に取り組んでいます。\n\n[ドキュメント](https://docs.gitlab.com/ci/jobs/fine_grained_permissions/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15258)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/15258)\n\n![CI/CDジョブトークンのきめ細かい権限設定](https://about.gitlab.com/images/18_3/sscs_authz_fine_grained_job_tokens.png)\n\n### **GitLab Duo Self-HostedでCode Reviewが利用可能に（ベータ版）**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Self-HostedでGitLab Duo Code Reviewを使用できるようになりました。この機能はGitLab Duo Self-Hostedでベータ版として提供され、Mistral、Meta Llama、Anthropic Claude、OpenAI GPTモデルファミリーをサポートしています。\n\nGitLab Duo Self-HostedでCode Reviewを使用して、データ主権を損なうことなく開発プロセスを加速させます。Code Reviewがマージリクエストをレビューすると、潜在的なバグを特定し、直接適用できる改善を提案します。Code Reviewを使用して、人間にレビューを依頼する前に変更を反復して改善します。\n\nCode Reviewに関するフィードバックは[イシュー517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386)までお寄せください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitlab-duo-in-merge-requests)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524929)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/524929)\n\n![GitLab Duo Self-HostedでCode Reviewが利用可能に（ベータ版）](https://about.gitlab.com/images/18_3/Self_Hosted_Code_Review-min.png)\n\n### **GitLab Duo Code Reviewのカスタム指示**\n\n> SaaS: Premium、Ultimate、Duo Enterprise\\\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Code Reviewのカスタム指示で、プロジェクト全体で一貫したコードレビュー標準を適用します。globパターンを使用して異なるファイルタイプに特定のレビュー基準を定義し、言語固有の規約が最も重要な場所に確実に適用されるようにします。\n\nカスタム指示では、次のことが可能です：\n\n* チームのコードレビュー標準を記述する\n* globパターンを使用してファイル固有の指示を定義する\n* カスタム指示を参照した、明確にラベル付けされたフィードバックを確認する\n\nリポジトリにカスタム指示を含む[.gitlab/duo/mr-review-instructions.yaml](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#customize-instructions-for-gitlab-duo-code-review)ファイルを作成するだけです。GitLab Duoは自動的にこれらの指示をレビューに組み込み、フィードバックを提供する際に特定の指示グループを引用します。\n\n[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/517386)でご意見やご提案をお寄せいただき、この機能の改善にご協力ください。\n\n[ドキュメント](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#customize-instructions-for-gitlab-duo-code-review)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/545136)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/545136)\n\n![GitLab Duo Code Reviewのカスタム指示](https://about.gitlab.com/images/18_3/DCR-Instructions.png)\n\n### **GitLab Duo Self-Hostedに独自のモデルを持ち込む（ベータ版）**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Self-Hostedでは、GitLab Duo機能で使用する独自のモデルを持ち込むことができるようになりました。この機能はベータ版で、GitLab Duo Enterpriseをお使いのすべてのGitLab Self-Managedのお客様が利用できます。インスタンス管理者は、サポートされているGitLab Duo機能で使用する互換性のあるモデルを設定できます。\n\nこの機能により、GitLab Duo Self-Hostedの柔軟性は向上しますが、GitLabはすべてのGitLab Duo機能がすべての互換モデルで動作することをお約束できません。インスタンス管理者は、選択したモデルの互換性とパフォーマンスを検証してご確認いただく必要があります。なお、GitLabは、選択したモデルまたはプラットフォーム固有の問題については、GitLabからの技術サポートは提供されませんのでご了承ください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#bring-your-own-compatible-model)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/517581)\n\n[](https://gitlab.com/gitlab-org/gitlab/-/issues/517581)\n\n![](https://about.gitlab.com/images/18_3/SH_compatible_models.png)\n\n### **GitLab Duo Self-Hostedでハイブリッドモデルが選択可能に（ベータ版）**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Self-HostedでGitLab AIベンダーモデルとプライベートに設定されたセルフホストモデルの組み合わせを使用できるようになりました。この機能はベータ版で、GitLab Self-ManagedですべてのGitLab Duo Enterpriseのお客様が利用できます。\n\nGitLab Duo Self-Hostedのハイブリッドモデルにより、GitLab Self-Managedインスタンス管理者は、セルフホストモデルとセルフホストAIゲートウェイ、またはGitLab AIベンダーモデルとGitLabホストのAIゲートウェイを、機能ごとに選択できるようになりました。これにより、管理者はセキュリティとスケーラビリティの要件のバランスを取ることができます。ハイブリッドモデル選択に関するフィードバックを提供するには、[イシュー561048](https://gitlab.com/gitlab-org/gitlab/-/issues/561048)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#decide-on-your-configuration-type)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17192)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/17192)\n\n![GitLab Duo Self-Hostedでハイブリッドモデルが選択可能に（ベータ版）](https://about.gitlab.com/images/18_3/SH_Hybrid.png)\n\n### **コンプライアンスフレームワーク制御の違反の表示（ベータ版）**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n以前のコンプライアンス違反レポートは、グループ内のすべてのプロジェクトのマージリクエストアクティビティの全体的な概要を表示していました。検出可能なコンプライアンス違反は、職務分離の懸念に関連するもので、以下の内容でした：\n\n* マージリクエストの作成者が自分のマージリクエストを承認した場合を検出\n* マージリクエストが2つ未満の承認でマージされた場合を検出\n\nしかし、ユーザーフィードバックにより、違反分類が分かりにくく、実際のコンプライアンス用途にうまく適合しないことが判明しました。\n\nGitLab 18.3では、職務分離の範囲を超えて、コンプライアンスフレームワークのコンプライアンス制御と要件の違反を含むように違反レポートを大幅に強化しています。各カスタムコンプライアンスフレームワーク制御には、違反に関する詳細な情報を提供する関連監査イベントがあります。これには、誰が違反を犯したか、いつ発生したか、どのように修正するかといった内容が含まれ、ユーザー名とIPアドレス、さらに実行可能な修正提案も提供されます。\n\nこれらの改善により、コンプライアンスマネージャーは、組織が特定のコンプライアンスフレームワークに確実に準拠できるよう、より強力で関連性の高い情報を得られるようになります。非準拠を効果的に特定、修正、防止できるという安心感ももたらします。\n\n![コンプライアンスフレームワーク制御の違反の表示（ベータ版）](https://about.gitlab.com/images/18_3/compliance_link_violations_to_framework_controls.png)\n\n### **新しいWeb IDEソースコントロール操作**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n本リリースでは、Web IDEに追加のソースコントロール機能が追加されました。ブラウザから離れることなく、Gitワークフローをより効率的に管理できます。**ソースコントロール**パネルで、次のことができるようになりました：\n\n* ブランチの作成と削除。\n* 既存のブランチをベースとしてブランチを作成。\n* 最後のコミットを修正して素早く修正。\n* インターフェースから直接変更を強制プッシュ。\n\nこれらの機能強化により、Git操作が指先で行えるようになります。利用可能な機能については、[ソースコントロールを使用する](https://docs.gitlab.com/user/project/web_ide/#use-source-control)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/project/web_ide/#use-source-control)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11142)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/11142)\n\n![新しいWeb IDEソースコントロール操作](https://about.gitlab.com/images/18_3/webide-source-control.gif)\n\n### **GitLab CI/CDのAWS Secrets Managerサポート**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nAWS Secrets Managerに保存されたシークレットをCI/CDジョブで簡単に取得して使用できるようになりました。AWSとの新しい統合により、GitLab CI/CDを通じてAWS Secrets Managerと対話するプロセスが簡素化され、AWSのお客様のビルドとデプロイプロセスの合理化に役立ちます！\n\n[GitLabの共同開発プログラム](https://about.gitlab.com/community/co-create/)を通じてこの機能の開発にご協力いただいた[Markus Siebert](https://gitlab.com/m-s-db)さんと[Henry Sachs](https://gitlab.com/DerAstronaut)さんに感謝します！\n\n[ドキュメント](https://docs.gitlab.com/ci/secrets/aws_secrets_manager/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17822)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/17822)\n\n![](https://about.gitlab.com/images/18_3/AWS_image.png)\n\n### **カスタム管理者ロール**\n\n> Self-Managed: Ultimate\n\nカスタム管理者ロールは、GitLab Self-ManagedおよびGitLab Dedicatedインスタンスの管理エリアに詳細な権限をもたらします。管理者は、フルアクセスを付与する代わりに、ユーザーが必要とする特定の機能のみにアクセスできる専門的なロールを作成できるようになりました。この機能により、組織は管理機能に対する最小権限の原則を適用し、過剰な権限によるセキュリティリスクを削減しつつ、運用効率を向上させることができます。\n\nご質問がある場合、実装経験を共有したい場合、または潜在的な改善について当社のチームと直接関わりたい場合は、[フィードバックイシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/509376)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/custom_roles/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15069)\n\n[](https://gitlab.com/groups/gitlab-org/-/epics/15069)\n\n![カスタム管理者ロール](https://about.gitlab.com/images/18_3/sscs_authz_custom_admin_role.png)\n\n## GitLab 18.3リリースに含まれるその他の改善点\n\n### **エピックの担当者、マイルストーンなどを一括編集**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nグループ内でより多くのエピック属性を一括編集できるようになりました。ラベルに加えて、複数のエピックの担当者、ヘルスステータス、サブスクリプション、機密性、マイルストーンを一度に更新できます。\n\nこの機能強化により、複数のエピックに同じ変更を同時に適用できるため、大量のエピックの管理が効率化されます。\n\n[ドキュメント](https://docs.gitlab.com/user/group/epics/manage_epics/#bulk-edit-epics)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11901)\n\n![エピックの担当者、マイルストーンなどを一括編集](https://about.gitlab.com/images/18_3/bulk_edit_epics.png)\n\n### **Wiki機能の強化**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nこのリリースでは、3つの主要な改善によりWiki機能が強化されます：Wikiページへのサブスクライブ、ページ編集中のWikiコメントの表示、Wikiページコメントの並べ替えができるようになりました。\n\nこれらの機能強化により、チームはドキュメントでより効果的にコラボレーションできます：\n\n* コンテキスト内で直接コンテンツについて議論する。\n* 改善や修正を提案する。\n* ドキュメントを正確かつ最新の状態に保つ。\n* 知識と専門知識を共有する。\n\nこれらのアップデートにより、GitLab Wikiは直接のフィードバックとディスカッションを通じてプロジェクトと共に進化する生きたドキュメントとして活用できます。\n\n[ドキュメント](https://docs.gitlab.com/user/discussions/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/16403)\n\n### **浅いクローニングによるワークスペースの高速起動**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nワークスペースは、起動時間を短縮するために浅いクローニングを使用するようになりました。初期化中、GitLabは完全なGit履歴ではなく、最新のコミット履歴のみをダウンロードします。ワークスペース起動後、Gitはバックグラウンドで浅いクローンを完全なクローンに変換します。\n\nこの機能は新しいワークスペースすべてに自動適用され、設定は不要で、開発ワークフローに影響を与えません。\n\n[ドキュメント](https://docs.gitlab.com/user/workspace/#shallow-cloning)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/543982)\n\n### **Kubernetes 1.33サポート**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLabはKubernetesバージョン1.33に完全対応しました。アプリをKubernetesにデプロイする場合、接続クラスターを最新バージョンにアップグレードして、機能をすべて利用できます。\n\n詳細については、[GitLab機能でサポートされているKubernetesバージョン](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/538906)\n\n### **簡潔なDASTジョブ出力**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nGitLab 18.3では、動的解析セキュリティテストのジョブ出力が改善されました。\n\n改善されたジョブ出力は、スキャン結果の理解や、失敗のトラブルシューティングに役立つ、明確で整理された情報を提供します。\n\nジョブ出力の各セクションは簡潔で直感的であり、出力の下部にトラブルシューティングドキュメントへのリンクがあります。簡潔なジョブ出力を上書きするには、DAST設定で`DAST_FF_DIAGNOSTIC_JOB_OUTPUT: \"true\"`を設定します。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dast/browser/troubleshooting/#what-is-dast-doing)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18342)\n\n### **ライセンス情報のユーザー定義ソース**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nユーザーは、ライセンス情報の優先ソース（GitLabライセンスデータベースまたはCycloneDX SBOMレポート）を選択できるようになりました。これにより、オープンソース依存関係のライセンス情報取得がより柔軟になります。ライセンス情報のソースを指定する場合は、[セキュリティ設定UI](https://docs.gitlab.com/user/application_security/detect/security_configuration/#with-the-ui)で選択できます。デフォルトでは、ライセンス情報のソースとしてSBOMデータを使用します。\n\n[ドキュメント\n](https://docs.gitlab.com/user/compliance/license_scanning_of_cyclonedx_files/#use-cyclonedx-report-as-a-source-of-license-information)[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/501662)\n\n### **脆弱性レポートでOWASP 2021によるグループ化**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nプロジェクトとグループの脆弱性レポートで、脆弱性をOWASP Top 10 2021カテゴリでグループ化できるようになりました。GitLab.comおよびGitLab Dedicatedインスタンスでのみ利用可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/vulnerability_report/#advanced-vulnerability-management)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/532703)\n\n![脆弱性レポートでOWASP 2021によるグループ化](https://about.gitlab.com/images/18_3/group-by-owasp-2021-on-vulnerability-report.png)\n\n### **セキュリティポリシー監査イベント**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nGitLab Ultimateは、セキュリティポリシー管理のための包括的な監査イベントが利用できるようになり、各セキュリティポリシープロジェクト内でイベントが整理、一元化されます。\n\nセキュリティチームは次のことができるようになります：\n\n* 詳細なメタデータでポリシーのすべての変更を追跡する。\n* スキャンとパイプライン実行の失敗を含む、実施の失敗を監視する。\n* スキップされたスキャン実行とパイプライン実行パイプラインを監視する。\n* ポリシー違反でマージされたMRを含む、各プロジェクト内でのポリシー違反を検出する。\n* 制限を超えた場合にアラートを受け取る。\n* ポリシー設定エラーを検出する。\n* 大量処理向けストリーミング専用オプションを使用する。\n\n新しい監査イベントには以下が含まれます：\n\n* [security_policy_create](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_create.yml)\n* [security_policy_delete](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_delete.yml)\n* [security_policy_update](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_update.yml)\n* [security_policy_merge_request_merged_with_policy_violations](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_merge_request_merged_with_policy_violations.yml)\n* [security_policy_yaml_invalidated](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_yaml_invalidated.yml)\n* [security_policies_limit_exceeded](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_yaml_invalidated.yml)\n* [security_policy_violations_detected](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_violations_detected.yml)（ストリーミングのみ）\n* [security_policy_pipeline_failed](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_pipeline_failed.yml)（ストリーミングのみ）\n* [security_policy_pipeline_skipped](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_pipeline_skipped.yml)（ストリーミングのみ）\n* [merge_request_branch_bypassed_by_security_policy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/audit_events/types/merge_request_branch_bypassed_by_security_policy.yml)\n\nこの機能強化により、ポリシーの変更、設定エラー、実施ギャップを把握できるようになり、セキュリティ体制が強化され、より迅速なインシデント対応と徹底的な監査機能が可能になります。\n\n[ドキュメント](https://docs.gitlab.com/ee/user/compliance/audit_event_streaming/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15869)\n\n![セキュリティポリシー監査イベント](https://about.gitlab.com/images/18_3/policy-audit-events-example-image.png)\n\n### **サービスアカウントの追加メール設定オプション**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nデフォルトでは、GitLabが新しいサービスアカウント用に自動的にメールアドレスを生成します。今回のアップデートにより、組織はUIでサービスアカウントにカスタムメールアドレスを設定できるようになりました。以前は、カスタムメール設定はサービスアカウントAPIを通じてのみ可能でしたが、この改善により、組織は通知を指定されたメールアドレスにより確実に配信できます。\n\n[ドキュメント](https://docs.gitlab.com/user/profile/service_accounts/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/537976)\n\n### **インスタンスレベルのコンプライアンスとポリシー管理（ベータ版）**\n\n> Self-Managed: Ultimate\n\nエンタープライズユーザーは、複数のトップレベルグループ全体でコンプライアンスフレームワークとセキュリティポリシーを管理したいと考えています。これは、インスタンス内のすべてのグループが次の場合によくあります：\n\n* 同じコンプライアンスフレームワークを共有している（例：グループ内のすべてのプロジェクトがISO 27001標準に準拠する必要がある）\n* 同様のポリシーを実施している（例：すべてのグループで同じパイプライン実行ポリシーを共有している）\n\nGitLab 18.3では、GitLab Self-Managedインスタンス向けにコンプライアンスとセキュリティポリシー管理がベータ版で利用可能になりました。単一のトップレベルグループからコンプライアンスフレームワークとセキュリティポリシーを作成、設定、割り当て、GitLab Self-Managedインスタンス全体の他のすべてのトップレベルグループに適用できます。\n\nコンプライアンスとセキュリティポリシーのトップレベルグループを使用することで、コンプライアンスフレームワークとセキュリティポリシーを管理および編集できる信頼できる単一の情報源が確立されます。グループ管理者は、これらのコンプライアンスフレームワークとセキュリティポリシーをそれらのグループ内のすべてのプロジェクトに適用できます。\n\n選択したトップレベルのコンプライアンスとセキュリティポリシーグループから主要なフレームワークとポリシーを管理することにより、GitLab Self-Managedインスタンス全体で主要なコンプライアンスとセキュリティ要件の管理、実施が簡素化されます。ただし、各グループは、固有の状況やワークフローに対処するために、独自のコンプライアンスフレームワークとセキュリティポリシーを作成する権限は維持されます。\n\nこの機能は、GitLab Self-Managed向けに提供されています。GitLab.comおよびGitLab Dedicatedでは、既に単一のトップレベルグループまたはネームスペース内でポリシーを一元的に管理可能です。\n\n[ドキュメント](https://docs.gitlab.com/user/compliance/compliance_frameworks/centralized_compliance_frameworks/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/15864)\n\n### **SAML SSOのセッションタイムアウト属性のサポート**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nGitLabは、アイデンティティプロバイダー（IdP）からのSAMLアサーションに含まれる`SessionNotOnOrAfter`属性を自動的に検出、適用するようになりました。この属性が存在する場合、GitLabはユーザーセッションをIdPによって指定された時刻に期限切れに設定し、組織全体で統一されたセッション管理を実現します。設定変更は不要で、 IdPが属性を提供すれば、GitLabが自動的に指定された有効期限を適用します。\n\n[ドキュメント](https://docs.gitlab.com/user/group/saml_sso/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/262074)\n\n### **SSHキーのセキュリティ警告**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLabは、ユーザーが弱いSSHキーをアップロードした際にUIにセキュリティ警告を表示するようになりました。この警告は、古いキータイプまたは不十分なビット長（2048ビット未満）のキーに対して表示されます。この変更により、SSHキーのセキュリティベストプラクティスをユーザーに周知し、より強固な暗号キーの利用を促進します。\n\n[ドキュメント](https://docs.gitlab.com/user/ssh/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/432624)\n\n### **GitLab Duo Self-Hostedで使用可能なモデルの追加**\n\n> Self-Managed: Premium、Ultimate、Duo Enterprise\n\nGitLab Duo Enterpriseをご利用のGitLab Self-Managedのお客様は、GitLab Duo Self-HostedでAnthropic Claude 4を利用できるようになりました。Claude 4はAWS Bedrockでサポートされています。また、オープンソースのOpenAI GPT OSS 20Bと120Bが実験的モデルとして追加され、vLLM、Azure OpenAI、AWS Bedrockで利用可能です。これらのモデルをGitLab Duo Self-Hostedで使用することに関するフィードバックは、[イシュー523918](https://gitlab.com/gitlab-org/gitlab/-/issues/523918)をご覧ください。\n\n[ドキュメント](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/560016)\n\n### **マイワークのグループ向け新しいナビゲーション体験**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n**マイワーク**のグループ概要を大幅に改善しました。これにより、グループの発見とアクセス方法が効率化されます。新しいタブ付きインターフェースでは、**メンバー**タブでアクセス可能なグループを包括的に表示し、**無効**タブで削除保留中のグループを確認できます。また、適切な権限を持つユーザー向けにリスト表示で**編集**と**削除**アクションを追加し、グループ管理を効率化しました。これらの改善により、重要なグループの検索と管理がより容易になります。\n\n新しいナビゲーションシステムの利用体験について、[エピック18401](https://gitlab.com/groups/gitlab-org/-/epics/18401)にご意見をお寄せください。フィードバックをお待ちしております！\n\n[ドキュメント](https://docs.gitlab.com/user/group/#view-groups)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/502487)\n\n![マイワークのグループ向け新しいナビゲーション体験](https://about.gitlab.com/images/18_3/tenant_scale_your_work_groups_update.png)\n\n### **GitLab Pagesサイトの一意のドメインのデフォルトを制御**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\n管理者は、新しいGitLab Pagesサイトの一意のドメインに関するデフォルト動作を設定できるようになりました。デフォルトでは、新しいPagesサイトは、サイト間のCookie共有を防ぐために一意のドメインURL（例：`my-project-1a2b3c.example.com`）を使用します。\n\nインスタンス向けのこの新しい設定により、新しいPagesサイトをデフォルトでパスベースのURL（例：`my-namespace.example.com/my-project`）を使用するように設定できます。これにより、組織はGitLab Pagesの動作を自社のワークフローやセキュリティ要件に合わせることができます。\n\nユーザーは個々のプロジェクトでこの設定を上書きでき、既存のPagesサイトは影響を受けません。\n\n[ドキュメント\n](https://docs.gitlab.com/administration/pages/#disable-unique-domains-by-default)[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/555559)\n\n### **OAuthアプリでSSO認証をサポート**\n\n> SaaS: Premium、Ultimate\\\n> Self-Managed: Premium、Ultimate\n\nOAuthアプリケーションが組織のシングルサインオン要件とシームレスに統合できるようになりました。以前は、ユーザーは最初にGitLabで、次にSSOで認証するという2段階認証が必要で、不要な手間と複雑さが生じていました。\n\n現在、OAuthアプリケーションは、認証リクエストでパラメーターを指定し、必要に応じてSSO認証を自動的に開始できます。これにより以下が提供されます：\n\n* ユーザー向けの統一された認証体験\n* 組織のSSOポリシーへの自動準拠\n* すべてのGitLab統合全体で一貫したセキュリティ\n* パラメーター追加だけのデベロッパー向けの簡単な実装\n\nOAuth統合は、セキュリティを維持しながら煩雑な認証ワークフローを排除し、SSOポリシーを自動的に適用するようになりました。\n\n[ドキュメント\n](https://docs.gitlab.com/api/oauth2/#authorization-code-flow)[イシュー\n](https://gitlab.com/gitlab-org/gitlab/-/issues/461212)[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/326288)\n\n### **GitLab Runner 18.3**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab Runner 18.3も本日リリースされます！GitLab Runnerは、CI/CDジョブを実行し、結果をGitLabインスタンスに送信する、拡張性の高いビルドエージェントです。GitLabに含まれるオープンソースの継続的インテグレーションサービスであるGitLab CI/CDと連携して動作します。\n\nバグ修正：\n\n* [GitLab 18.2.0では、Runnerはサブディレクトリファイルをキャッシュキーとして使用してジョブキャッシュをプルできません](https://gitlab.com/gitlab-org/gitlab/-/issues/556464)\n* [Docker executorがジョブの開始に断続的に失敗し、ユーザー名またはパスワードが正しくないというエラーメッセージを返す](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38707)\n* [`none`と`empty`のGit戦略間での`*_get_sources`フックの使用における不整合](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38703)\n* [非OLMマニフェストでデプロイされたOperatorが間違ったデフォルトイメージを想定する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/228)\n* [CRに`app.kubernetes.io/instance`ラベルがある場合、Operatorが間違った名前でConfigMapを作成する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/183)\n* [OpenShift 4.9でOperator 1.10.0が`gitlab-runner`ネームスペースでランナーConfigMapの作成とポッドの起動に失敗する](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/138)\n\n新機能：\n\n* [GitLab Runner Operatorがランナーマネージャーポッドアノテーションをサポートするようになりました](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/245)\n* [GitLab Runner OperatorがOpenShift 4.19をサポートするようになりました](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/253)\n\nすべての変更の一覧は、GitLab Runnerの[CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-3-stable/CHANGELOG.md)で確認できます。\n\n[ドキュメント](https://docs.gitlab.com/runner)\n\n### **GitLab管理のOpenTofuおよびTerraform状態用の新しいCLIコマンド**\n\n> SaaS: Free、Premium、Ultimate\\\n> Self-Managed: Free、Premium、Ultimate\n\nGitLab CLI（`glab`）に、GitLab管理の`OpenTofu`および`Terraform`状態を支援するための新しいトップレベルコマンド`opentofu`が含まれるようになりました。`opentofu`コマンドは、`terraform`およびtfコマンドのエイリアスとしても使用できます。\n\n以下のコマンドが追加されました：\n\n* `glab opentofu init`：状態バックエンドをローカルで初期化します\n* `glab opentofu state list`：プロジェクト内のすべての状態を一覧表示します\n* `glab opentofu state download`：最新の状態または特定のバージョンをダウンロードします\n* `glab opentofu state delete`：状態全体または特定のバージョンを削除します\n* `glab opentofu state lock`：状態をロックします\n* `glab opentofu state unlock`：状態のロックを解除します\n\n`opentofu`コマンドで状態を管理するには、`glab` 1.66以降が必要です。\n\n[ドキュメント](https://docs.gitlab.com/user/infrastructure/iac/terraform_state)\\\n[イシュー](https://gitlab.com/gitlab-org/cli/-/issues/7954)\n\n### **依存関係スキャンアナライザーのファイル場所情報の改善**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n依存関係をそのソースまで追跡できることは、特に脆弱性の修正にとって重要です。以前は、依存関係スキャンアナライザーが期限切れで削除されるジョブアーティファクトにリンクすることがあり、依存関係のソースまで追跡することが困難でした。本リリースで、依存関係スキャンアナライザーが、依存関係を導入したプロジェクトファイルにリンクできるようになりました。このオプションを有効にすると、依存関係リストと脆弱性レポートのリンクが確実に利用可能になります。ユーザーは、依存関係スキャンジョブで`DS_FF_LINK_COMPONENTS_TO_GIT_FILES=true`を設定することで、この機能を有効にできます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#customizing-behavior-with-the-cicd-template)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/537716)\n\n### **API経由でパイプライン実行ポリシーにCI/CD設定へのアクセスを付与**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nプロジェクトREST APIを使用して、新しい`spp_repository_pipeline_access`フィールドでセキュリティポリシープロジェクトの**パイプライン実行ポリシー**設定をプログラムで有効または無効にできるようになりました。以前は、この設定はGitLab UIでのみ管理できました。この機能強化により、次のことができるようになりました：\n\n* 現在の**パイプライン実行ポリシー**ステータスを`GET`する。\n* 設定をプログラムで有効または無効にするために`PUT`する。\n\nこの改善により、大規模でセキュリティポリシーを管理するチームにとって、より優れた自動化と統合ワークフローが実現されます。\n\n[ドキュメント](https://docs.gitlab.com/api/projects/#edit-a-project)\\\n[イシュー](https://gitlab.com/gitlab-org/gitlab/-/issues/524124)\n\n### **スキャン実行ポリシーテンプレート**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\nスキャン実行ポリシーテンプレートは、一般的なユースケースに基づいてスキャン実行ポリシーを素早く作成するのに役立ちます。以下の3つのテンプレートから選択できます：\n\n* マージリクエストセキュリティ\n* スケジュールされたスキャン\n* リリースセキュリティ\n\nテンプレートを選択したら、そのテンプレートで有効にするGitLabセキュリティスキャンを選択して、すぐに開始します。より高度なユースケースがある場合は、カスタム設定に切り替えて、特定のブランチパターン、パイプラインソースなどでポリシーを拡張できます。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/#scan-execution-policy-editor)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/11919)\n\n![スキャン実行ポリシーテンプレート](https://about.gitlab.com/images/18_3/scan-execution-policy-templates.png)\n\n### **承認ポリシーのサービスアカウントとアクセストークンの例外**\n\n> SaaS: Ultimate\\\n> Self-Managed: Ultimate\n\n新しい**サービスアカウントとアクセストークンの例外**機能により、必要に応じてマージリクエスト承認ポリシーをバイパスできる特定のサービスアカウントとアクセストークンを指定できるようになりました。これにより、セキュリティコントロールを維持しながら、既知の自動化の摩擦を解消します。\n\n**主要な機能：**\n\n* 自動化ワークフローサポート：CI/CDパイプライン、プルミラーリング、自動バージョン更新のために承認要件をバイパスするように、特定のサービスアカウント、ボットユーザー、グループアクセストークン、プロジェクトアクセストークンを設定します。サービスアカウントは、人間のユーザーに対する制限を維持しながら、承認されたトークンを使用して保護されたブランチに直接プッシュできます。\n* 緊急アクセスと監査：重要なインシデントのブレークグラスシナリオを有効にし、包括的な監査証跡を提供します。すべてのバイパスイベントは、コンテキストと理由を含む詳細な監査ログを生成し、停止中またはセキュリティ修正時の迅速な対応を可能にしながら、コンプライアンス要件をサポートします。\n* GitOps統合：リポジトリミラーリング、外部CIシステム（Jenkins、CloudBees）、自動変更ログ生成、GitFlowリリースプロセスなど、一般的な自動化の課題を解決します。サービスアカウントは、特定のプロジェクトとブランチにスコープされたトークンベースのアクセスで必要最小限の権限を受け取ります。\n\nこの機能強化により、ガバナンスコントロールを維持しながら、現代のDevOps自動化のニーズに対して厳格なセキュリティポリシーの適用が維持され、カスタムの回避策が不要になります。\n\n[ドキュメント](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#access-token-and-service-account-exceptions)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/18112)\n\n![承認ポリシーのサービスアカウントとアクセストークンの例外](https://about.gitlab.com/images/18_3/access-token-exception-policies.png)\n\n### **エンタープライズユーザーの機能強化**\n\n> SaaS: Premium、Ultimate\n\nGitLab 18.3では、ユーザープライバシーとライフサイクル管理に対する組織の制御を強化するエンタープライズユーザー機能強化が導入されます。\n\nグループオーナーは、ユーザーAPIを使用してネームスペース内のエンタープライズユーザーを削除できるようになりました。この破壊的なアクションは、ユーザーの貢献のリンクを解除し、それらをシステム全体のGhostユーザーに関連付けます。これらのオプションは、自動SCIMインポートで誤って作成されたユーザーをクリーンアップする場合や、ユーザー名とメールを再利用する必要があるフェデレーション環境を管理したりする場合に特に有用です。\n\nさらに、組織はエンタープライズユーザーのメールをユーザープロファイルで非表示にできるようになり、すべてのエンタープライズユーザーに対してより広範なメールプライバシーの実施を提供します。\n\n[ドキュメント](https://docs.gitlab.com/user/enterprise_user/)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/9262)\n\n### **強化された管理エリアプロジェクトリスト**\n\n> Self-Managed: Free、Premium、Ultimate\n\nより一貫した体験をGitLab管理者に提供するために、**管理者エリア**プロジェクトリストをアップグレードしました：\n\n* 削除保護の遅延：プロジェクトの削除は、GitLab全体で使用されているのと同じ安全な削除フローに従うようになり、偶発的なデータ損失を防ぎます。\n* より高速なインタラクション：ページのリロードなしでプロジェクトのフィルター、並べ替え、ページ分割が可能になり、より応答性の高い体験を提供します。\n* 一貫したインターフェース：プロジェクトリストは、GitLab全体の他のプロジェクトリストの外観と動作に統一されました。\n\nこのアップデートにより、管理者の体験がGitLabデザイン標準に沿ったものになり、データを保護するための重要な安全機能が追加されます。プロジェクト管理の今後の機能強化は、プラットフォーム全体のすべてのプロジェクトリストに自動的に反映されます。\n\n[ドキュメント](https://docs.gitlab.com/administration/admin_area/#administering-projects)\\\n[エピック](https://gitlab.com/groups/gitlab-org/-/epics/17782)\n\n## **実験的機能**\n\n### **GitLabモデルコンテキストプロトコルサーバー**\n\nGitLabモデルコンテキストプロトコル（MCP）サーバーにより、AIアプリケーションがGitLabインスタンスに安全に接続できるようになります。MCPサーバーを設定すると、Claude Desktop、Cursor、その他のMCP対応アプリケーションなどのAIアシスタントが、GitLabデータにアクセスし、ユーザーに代わってアクションを実行できます。このリリースには、計画イシュー、マージリクエスト、CIパイプラインジョブと連携するツールが含まれており、今後のマイルストーンでサポートツールを拡張していく予定です。\n\nMCPサーバーは、AIツールに対して標準化された方法を提供します：\n\n* GitLabプロジェクト情報にアクセスする\n* イシューとマージリクエストデータを取得する\n* GitLab APIと安全に連携する\n* AIアシスタントを通じてGitLab固有の操作を実行する\n\nGitLabのMCPサーバーはリモートで実行されるため、ローカルにインストールまたは実行する必要はありません。アップデートは自動的に適用されます。\n\n実験的機能を有効にする方法を含む詳細については、[GitLab MCPサーバーのドキュメント](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server)をご覧ください。\n\n### **GitLab Duo CLIエージェント（ベータ版）**\n\nGitLab Duo CLIエージェントを素早く作成し、Claude Code、OpenAI Codex、Amazon Q、Google Gemini CLI、OpenCode AIコーディングアシスタントと統合できるようになりました。このベータ機能は、すべてのGitLab Duo Enterpriseのお客様が利用でき、選択したプロバイダー用に独自のAPIキー（BYOK）を持ち込む必要があります。\n\nイシュー、エピック、またはマージリクエストで、作成したサービスアカウントユーザーをタグ付けすることで、CLIエージェントにタスクの完了を依頼できます。タグ付けされると、そのエージェントに接続された統合コーディングアシスタントがトリガーされ、自動CI/CDパイプラインが実行され、タスクが完了します。マージ可能な変更またはインラインコメントとして応答を受け取ります。\n\nこの仕組みによりブランチ保護と承認ルールを尊重しながら、セキュリティ、コスト管理、インフラストラクチャガバナンスに関する組織のニーズを満たしつつ、CLIエージェントの力をGitLabに直接もたらします。今後のイテレーションでは、GitLab管理のAPIキーを使用してCLIエージェントをコーディングアシスタントとネイティブに統合できるようになります。\n\nGitLab Duo CLIエージェントの使用に関するフィードバックは、[イシュー557820](https://gitlab.com/gitlab-org/gitlab/-/issues/557820)をご覧ください。\n\n## バグ修正、パフォーマンスの改善、UIの改善\n\nGitLabでは、ユーザーに可能な限り最高の環境をお届けできるよう尽力しています。リリースのたびに、バグを修正し、パフォーマンスを改善し、UIを向上させるためにたゆまぬ努力を続けています。GitLabは、100万人を超えるGitLab.comユーザーをはじめ、GitLabのプラットフォームを利用するすべての人にスムーズでシームレスな体験をお届けすることを約束します。\n\n18.3で提供されたすべてのバグ修正、パフォーマンスの強化、UI改善を確認するには、以下のリンクをクリックしてください。\n\n* [バグ修正](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=type%3A%3Abug&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.3)\n* [パフォーマンスの改善](https://gitlab.com/groups/gitlab-org/-/issues/?sort=updated_desc&state=closed&label_name%5B%5D=bug%3A%3Aperformance&or%5Blabel_name%5D%5B%5D=workflow%3A%3Acomplete&or%5Blabel_name%5D%5B%5D=workflow%3A%3Averification&or%5Blabel_name%5D%5B%5D=workflow%3A%3Aproduction&milestone_title=18.3)\n* [UIの改善](https://papercuts.gitlab.com/?milestone=18.3)\n\n## 非推奨事項\n\n新たに非推奨になった機能、および現在非推奨になっているすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。[](\u003C>)\n\n## 削除された機能と破壊的な変更\n\n削除されたすべての機能の一覧は、[GitLabドキュメント](https://docs.gitlab.com/ee/update/deprecations.html)で確認できます。今後の破壊的な変更について通知を受け取るには、[破壊的な変更のRSSフィードにサブスクライブ](https://about.gitlab.com/breaking-changes.xml)してください。\n\n* [cert-manager Helmチャートのアップデート](https://docs.gitlab.com/ee/update/deprecations.html#cert-manager-helm-chart-update)[](\u003C>)[](\u003C>)\n\n### 変更履歴\n\n変更内容をすべて表示するには、次のページから変更履歴を確認してください。\n\n* [](\u003C>)[GitLab](https://gitlab.com/gitlab-org/gitlab-foss/blob/master/CHANGELOG.md)\n* [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/blob/main/CHANGELOG.md)\n* [VS CodeのGitLab Workflow](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/CHANGELOG.md)\n* [GitLab CLI](https://gitlab.com/gitlab-org/cli/-/releases)\n\n### インストール\n\nGitLabを新規にインストールする場合は、[GitLabのダウンロードページ](https://about.gitlab.com/ja-jp/install/)をご覧ください。\n\n### 更新事項\n\n[更新ページ](https://about.gitlab.com/ja-jp/update/)をご覧ください。\n\n### ご不明な点がある場合\n\nご質問やご意見をお聞かせください。本リリースについてご不明な点がある場合は、[GitLabフォーラム](https://forum.gitlab.com/)にアクセスして質問を投稿してください。\n\n### GitLabサブスクリプションプラン\n\n* [Free](https://about.gitlab.com/pricing/)\n  ユーザー向けの永久無料機能を提供\n* [Premium](https://about.gitlab.com/pricing/premium/)\n  チームの生産性と調整を強化\n* [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n  組織全体のセキュリティ、コンプライアンス、プランニングに対応\n\nGitLabのすべての機能を[無料](https://about.gitlab.com/free-trial/?hosted=saas)でお試しいただけます。\n\n*監修：ソリス ジェレズ / Jerez Solis [@jerezs](https://gitlab.com/jerezs)\n（GitLab合同会社 ソリューションアーキテクト本部 ソリューションアーキテクト）*\n\n### 過去の日本語リリース情報\n\n* [GitLab 18.3](https://about.gitlab.com/ja-jp/blog/gitlab-18-03-release)\n* [](\u003C>)[GitLab 18.2](https://about.gitlab.com/ja-jp/blog/gitlab-18-02-release)\n* [GitLab 18.1](https://about.gitlab.com/ja-jp/blog/gitlab-18-01-release)\n* [GitLab 18.0](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n* [GitLab 17.11](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n* [GitLab 17.10](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n* [GitLab 17.9](https://about.gitlab.com/ja-jp/blog/gitlab-17-9-release/)\n* [GitLab 17.8](https://about.gitlab.com/ja-jp/blog/gitlab-17-8-release/)\n* [GitLab 17.7](https://about.gitlab.com/ja-jp/blog/gitlab-17-7-release/)\n* [GitLab 17.6](https://about.gitlab.com/ja-jp/blog/gitlab-17-6-release/)\n* [GitLab 17.5](https://about.gitlab.com/ja-jp/blog/gitlab-17-5-released/)\n* [GitLab 17.4](https://about.gitlab.com/ja-jp/blog/gitlab-17-4-released/)\n* [GitLab 17.3](https://about.gitlab.com/ja-jp/blog/gitlab-17-3-released/)\n* [GitLab 17.2](https://about.gitlab.com/ja-jp/blog/gitlab-17-2-released/)\n* [GitLab 17.1](https://about.gitlab.com/ja-jp/blog/gitlab-17-1-released/)\n* [GitLab 16.11](https://about.gitlab.com/ja-jp/blog/gitlab-16-11-released/)[](\u003C>)",[853],"2025-08-25","2025-08-22",[1082,9,705,109],"GitLab 18.3でリリースした最新機能を公開します。",{"featured":91,"template":685,"slug":1361},"gitlab-18-03-release","content:ja-jp:blog:gitlab-18-03-release.yml","Gitlab 18 03 Release","ja-jp/blog/gitlab-18-03-release.yml","ja-jp/blog/gitlab-18-03-release",{"_path":1367,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1368,"content":1372,"config":1379,"_id":1381,"_type":14,"title":1382,"_source":16,"_file":1383,"_stem":1384,"_extension":19},"/ja-jp/blog/gitlab-18-3-expanding-ai-orchestration-in-software-engineering",{"config":1369,"title":1370,"description":1371},{"noIndex":6},"GitLab 18.3: ソフトウェアエンジニアリングにおけるAIオーケストレーションの拡張","強化されたフロー、エンタープライズガバナンス、シームレスなツール統合により、人間とAIのコラボレーションを進化させる方法をご紹介します。",{"heroImage":1373,"body":1374,"authors":1375,"updatedDate":1041,"date":1377,"title":1370,"tags":1378,"description":1371,"category":10},"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>",[1376],"Bill Staples","2025-08-21",[705,9,703,706,681],{"featured":91,"template":685,"slug":1380},"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":1386,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1387,"content":1391,"config":1399,"_id":1401,"_type":14,"title":1402,"_source":16,"_file":1403,"_stem":1404,"_extension":19},"/ja-jp/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance",{"config":1388,"title":1389,"description":1390},{"noIndex":6},"GitLabがAIガバナンスでISO/IEC 42001認証を取得","この新しいISO認証、関連するGitLab Duo機能、および責任あるAI開発への取り組みについて詳しく解説します。",{"heroImage":1392,"body":1393,"authors":1394,"updatedDate":1396,"date":1397,"title":1389,"tags":1398,"description":1390,"category":10},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098208/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_479904468%20%281%29_4lmOEVlaXP0YC3hSFmOw6i_1750098208185.jpg","人工知能（AI）は、あらゆる業界で働き方や問題解決の方法を変革しています。AIがビジネスプロセスや意思決定により深く統合されるにつれて、堅牢なAIガバナンスフレームワークの必要性がかつてないほど重要になっています。組織はAIの潜在的な機会と、AIシステムが安全で倫理的、かつ説明責任を持って構築されることを保証することの間でバランスを取らなければなりません。\n\n責任あるAI管理への取り組みの一環として、GitLabがISO/IEC 42001認証を取得したことを発表いたします。これは、組織内でAI管理システム（AIMS）を確立、実装、維持、継続的改善するための国際的に認められた初の標準です。\n\n認証の範囲には、当社の包括的なAI製品であるGitLab Duo、およびGitLab Duo Agent Platformとそのコンポーネントが含まれます。DevSecOpsのリーダーとして、GitLabは開発ライフサイクル全体にわたってAI駆動機能を提供しており、以下のような機能があります：\n\n* [GitLab Duo Agent Platform](https://about.gitlab.com/ja-jp/blog/gitlab-duo-agent-platform-public-beta/)（パブリックベータ版、今年後半の一般提供を予定）：ソフトウェア開発ライフサイクル全体を通じて、デベロッパーと専門的なAIエージェント間の非同期コラボレーションを可能にし、線形開発プロセスを動的な並列ワークフローに変換しながら、GitLabの統一プラットフォーム内に保存されたすべてのソフトウェアエンジニアリングコンテキストへのアクセスをエージェントに提供します。\n\n* [コード提案](https://docs.gitlab.com/user/project/repository/code_suggestions/)（一般提供中）：コードブロックを予測的に補完し、関数ロジックを定義し、テストを生成し、正規表現パターンなどの一般的なコードを提案することで、デベロッパーがすでにコーディングを行っている同じ環境でフロー状態を維持できます。\n\n* [脆弱性の説明](https://docs.gitlab.com/user/application_security/vulnerabilities/#explaining-a-vulnerability)（一般提供中）：デベロッパーとセキュリティアナリストが脆弱性、その悪用方法、修正方法を理解するのに役立ちます。\n\n* [テスト生成](https://docs.gitlab.com/user/gitlab_duo/)（一般提供中）：選択したコードに対してテストを自動的に作成し、カバレッジを向上させ、手作業を削減します。\n\n## この認証がGitLabユーザーにもたらす価値\n\n**信頼性と透明性の向上：** 当社のAI機能は、AIガバナンスに関する国際的に認められた最高水準に従って構築・管理されており、信頼性と倫理的な実装をサポートします。\n\n**戦略的リスク管理：** 運用事業継続性リスク、技術的リスク、セキュリティとプライバシーリスク、より広範な社会的影響などの側面を考慮して、プラットフォーム内のAIコンポーネントに対するリスク評価とリスク対処戦略を実装しました。この積極的なアプローチにより、顧客データの保護が強化され、より信頼性の高いAI駆動機能が促進されます。\n\n**継続的改善：** ISO/IEC 42001フレームワークの下で、年次外部監視監査、定期的な内部評価、リーダーシップによるAIMS審査を通じて、品質と責任の基準を維持しながらAI機能を継続的に評価・向上させていきます。\n\n**規制との整合性：** EU AI法などのAI規制が世界的に進化し続ける中、この認証は新たな規制要件に対するGitLabの対応をサポートします。\n\nこの認証取得により、AI駆動DevSecOpsの信頼できるプラットフォームとしてのGitLabの地位がさらに確固たるものとなりました。今後も責任あるAIイノベーションの分野で業界をリードし続けます。\n\n## 詳細情報\n\n- [GitLabトラストセンター](https://trust.gitlab.com/)でISO/IEC 42001認証書をご覧ください。\n- [ハンドブックのAIMS](https://handbook.gitlab.com/handbook/security/isms/)をご覧ください。\n- [GitLab AI Transparency Center](https://about.gitlab.com/ja-jp/ai-transparency-center/)をご確認ください。\n- 詳しくは、[GitLab Duoのすべての機能](https://docs.gitlab.com/user/gitlab_duo/)のドキュメントをご確認ください。",[1395],"Davoud Tu","2025-09-03","2025-09-02",[682,9,705],{"featured":91,"template":685,"slug":1400},"gitlab-achieves-iso-iec-42001-certification-for-ai-governance","content:ja-jp:blog:gitlab-achieves-iso-iec-42001-certification-for-ai-governance.yml","Gitlab Achieves Iso Iec 42001 Certification For Ai Governance","ja-jp/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance.yml","ja-jp/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance",{"_path":1406,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1407,"content":1411,"config":1417,"_id":1419,"_type":14,"title":1420,"_source":16,"_file":1421,"_stem":1422,"_extension":19},"/ja-jp/blog/gitlab-duo-agent-platform-public-beta",{"noIndex":6,"title":1408,"description":1409,"ogImage":1410},"GitLab Duo Agent Platform ベータ版：次世代AIオーケストレーション","開発者とAIエージェント間の非同期コラボレーションを実現するDevSecOpsオーケストレーションプラットフォームをご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg",{"heroImage":1410,"body":1412,"authors":1413,"updatedDate":1414,"date":1415,"title":1408,"tags":1416,"description":1409,"category":10},"**私たちはソフトウェア開発の未来を構築しています。**\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>",[1376],"2025-07-22","2025-07-17",[9,705,706,682],{"featured":91,"template":685,"slug":1418},"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":1424,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1425,"content":1431,"config":1436,"_id":1438,"_type":14,"title":1439,"_source":16,"_file":1440,"_stem":1441,"_extension":19},"/ja-jp/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes",{"title":1426,"description":1427,"ogTitle":1426,"ogDescription":1427,"noIndex":6,"ogImage":1428,"ogUrl":1429,"ogSiteName":669,"ogType":670,"canonicalUrls":1429,"schema":1430},"GitLab Duo + Amazon Q：アイデアを数分でコードに変換","新しいGitLab Duo with Amazon Qのインテグレーションは、イシューの説明を分析して、動作するコードソリューションを自動で生成することで、開発ワークフローを加速します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097127/Blog/Hero%20Images/Blog/Hero%20Images/Screenshot%202024-11-27%20at%204.55.28%E2%80%AFPM_4VVz6DgGBOvbGY8BUmd068_1750097126673.png","https://about.gitlab.com/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo + Amazon Q：アイデアを数分でコードに変換\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2025-04-28\",\n      }",{"title":1426,"description":1427,"authors":1432,"heroImage":1428,"date":1433,"body":1434,"category":10,"tags":1435},[699],"2025-04-28","複雑なイシューを動作するコードに変えるのに、何日も、あるいは何週間もかかった経験はありませんか？きっと誰もが一度は経験していることです。しっかりしたアイデアと明確な要件をもとに始めたはずなのに、そこからデプロイ可能なコードにたどり着くまでの道のりは、イライラするほど長く感じることがあります。実装の細かい部分に足を取られ、生産性が落ちてしまい、本来もっとスムーズに進むはずのプロジェクトが、なかなか進まなくなってしまうのです。\n\nここで力を発揮するのが、[自律型AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)機能です。 [GitLab Duo with Amazon Q](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)は、AIを搭載した包括的なDevSecOpsプラットフォームと、クラウドコンピューティングにおける豊富な機能を組み合わせたもので、アプリケーション開発のプロセスを、慣れ親しんだGitLabのワークフロー内で大幅に加速できるよう設計されています。この強力なインテグレーションはアイデア段階からデプロイまでの流れを効率化し、イシューの説明だけをもとに実装案を提案します。これまで数日かかっていた作業が、数分で完了するようになります。\n\n## イシューが動作するコードへ変わる仕組み\n\nこの自律型AI機能が実際にどう動くのか、流れを見てみましょう。あなたはデベロッパーとして、住宅ローン計算機アプリを作成するタスクを任されたとします。GitLab Duo with Amazon Qを使用して、以下の手順で作業を進めます。\n\n1. **詳細な要件を記載したイシューを作成する：**まず、通常の[GitLabイシュー](https://docs.gitlab.com/user/project/issues/)を作成します。説明には、サービスが満たす必要がある要件をできるだけ詳細に記載します。これがソリューションの設計図となります。\n\n2. **クイックアクションでAmazon Qを呼び出す：** イシューを作成したら、コメント欄に「/q dev」というクイックアクションを追加するだけで、Amazon Qを呼び出すことができます。ここからがマジックの始まりです。\n\n3. **AIが実装を生成する：**GitLab Duo with Amazon Qは、作成したイシューの説明文とソースコードのコンテキストを分析し、指定されたすべての要件を満たすコードを自律的に生成します。 さらに、生成されたコードはマージリクエストとして自動的にコミットされ、すぐにレビュー可能な状態になります。\n\n![GitLab Duo  with Amazon Qのアクティビティポップアップのスクリーンショット](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097156/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097156018.png)\n\n4. **生成されたアプリケーションをレビューする：**マージリクエストに移動して、生成されたコードをレビューします。 すべての要件が満たされていることを確認し、必要に応じて調整を行います。\n\n5. **提案されたアプリケーションをテストする：**最後に、アプリケーションが正常に動作することを確認します。 最小限の労力で、元の要件を実装した、動作するコードが完成します。\n\n## 開発プロセスを変革\n\nGitLab Duo with Amazon Qは、インテリジェントな自動化によって複雑なデベロッパータスクにかかる時間を大幅に短縮し、このプロセス全体を根本から変革します。自律型AIアプローチを活用することで、アイデア段階からデプロイまでのプロセスを加速し、開発チームはより戦略的な業務に集中できるようになります。\n\nGitLab DuoとAmazon Qを使用すれば、手動でコードを書く負担を減らしながら、より迅速かつ効率的にソフトウェアを開発できます。このインテグレーションによって、以下のようなメリットが得られます。\n\n* 要件に基づく自動実装で、**貴重な開発時間を節約**\n* どのプロジェクトでも、コード生成の**一貫性を維持** \n* 要件を動作するコードに変換する際の**認知負荷を軽減**\n* 実装上のボトルネックを排除し、**リリースサイクルを加速**\n* ボイラープレートコードの記述ではなく、レビューや最適化に**専門知識を活用**\n\nGitLab Duo with Amazon Qの動作を実際にご覧になりますか？デモ動画で、開発ワークフローを変革する方法をご覧ください。\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/jxxzNst3jpo?si=j_LQdZhUnwqoQEst\" title=\"GitLab Duo with Amazon Q demo video for dev workflow\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line ->\n\n> 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/)ください。\n\n## GitLab Duo with Amazon Q関連リソース\n\n- [GitLab Duo with Amazon Q（AWS向けに最適化された自律型AI）の一般提供を開始](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)\n- [GitLabとAWSのパートナーページ](https://about.gitlab.com/ja-jp/partners/technology-partners/aws/)\n- [GitLab Duo with Amazon Qに関するドキュメント](https://docs.gitlab.com/user/duo_amazon_q/)",[9,707,708,703,705,234],{"slug":1437,"featured":91,"template":685},"gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes","content:ja-jp:blog:gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes.yml","Gitlab Duo Amazon Q Transform Ideas Into Code In Minutes","ja-jp/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes.yml","ja-jp/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes",{"_path":1443,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1444,"content":1450,"config":1457,"_id":1459,"_type":14,"title":1460,"_source":16,"_file":1461,"_stem":1462,"_extension":19},"/ja-jp/blog/gitlab-duo-chat-gets-agentic-ai-makeover",{"title":1445,"description":1446,"ogTitle":1445,"ogDescription":1446,"noIndex":6,"ogImage":1447,"ogUrl":1448,"ogSiteName":669,"ogType":670,"canonicalUrls":1448,"schema":1449},"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":1445,"description":1446,"authors":1451,"heroImage":1447,"date":1453,"body":1454,"category":10,"tags":1455,"updatedDate":1456},[1452],"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",[9,682,706,703,705,708],"2025-06-05",{"slug":1458,"featured":91,"template":685},"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":1464,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1465,"content":1471,"config":1478,"_id":1480,"_type":14,"title":1481,"_source":16,"_file":1482,"_stem":1483,"_extension":19},"/ja-jp/blog/gitlab-duo-enterprise-is-now-available",{"title":1466,"description":1467,"ogTitle":1466,"ogDescription":1467,"noIndex":6,"ogImage":1468,"ogUrl":1469,"ogSiteName":669,"ogType":670,"canonicalUrls":1469,"schema":1470},"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":1466,"description":1467,"authors":1472,"heroImage":1468,"date":1474,"body":1475,"category":10,"tags":1476,"updatedDate":1477},[1473],"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",[9,705,703,706,682],"2024-09-13",{"slug":1479,"featured":91,"template":685},"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":1485,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1486,"content":1492,"config":1499,"_id":1501,"_type":14,"title":1502,"_source":16,"_file":1503,"_stem":1504,"_extension":19},"/ja-jp/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy",{"title":1487,"description":1488,"ogTitle":1487,"ogDescription":1488,"noIndex":6,"ogImage":1489,"ogUrl":1490,"ogSiteName":669,"ogType":670,"canonicalUrls":1490,"schema":1491},"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":1487,"description":1488,"authors":1493,"heroImage":1489,"date":1495,"body":1496,"category":10,"tags":1497,"updatedDate":1498},[959,1494],"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合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*",[9,706,703,705,682],"2025-02-28",{"slug":1500,"featured":91,"template":685},"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":1506,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1507,"content":1513,"config":1518,"_id":1520,"_type":14,"title":1521,"_source":16,"_file":1522,"_stem":1523,"_extension":19},"/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws",{"title":1508,"description":1509,"ogTitle":1508,"ogDescription":1509,"noIndex":6,"ogImage":1510,"ogUrl":1511,"ogSiteName":669,"ogType":670,"canonicalUrls":1511,"schema":1512},"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":1508,"description":1509,"authors":1514,"heroImage":1510,"date":1119,"body":1516,"category":10,"tags":1517,"updatedDate":1122},[1515],"Emilio Salvador","このたび、[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)ください。",[9,703,707,705,706,682],{"slug":1519,"featured":91,"template":685},"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":1525,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1526,"content":1531,"config":1536,"_id":1538,"_type":14,"title":1539,"_source":16,"_file":1540,"_stem":1541,"_extension":19},"/ja-jp/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai",{"title":1527,"description":1528,"ogTitle":1527,"ogDescription":1528,"noIndex":6,"ogImage":1510,"ogUrl":1529,"ogSiteName":669,"ogType":670,"canonicalUrls":1529,"schema":1530},"GitLab Duo with Amazon Q：DevSecOpsに自律型AIという新たな選択肢を","AIを活用したDevSecOpsは、自律型AIエージェントにより、デベロッパーの生産性、アプリケーションのモダナイゼーション、そしてイノベーションを加速させます。","https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo with Amazon Q：DevSecOpsに自律型AIという新たな選択肢を\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Emilio Salvador\"}],\n        \"datePublished\": \"2024-12-03\",\n      }",{"title":1527,"description":1528,"authors":1532,"heroImage":1510,"date":1533,"body":1534,"category":10,"tags":1535,"updatedDate":769},[1515],"2024-12-03","GitLabは、Amazon Qとの共同開発による新たなソリューション「GitLab Duo with Amazon Q」をリリースします。この統合型ソリューションは、GitLabの包括的なAI搭載DevSecOpsプラットフォームとAmazon Qの自律型AIエージェントを組み合わせたものです。\n\nGitLab Duo with Amazon Qを活用して強力なAIエージェントを日々のワークフローに直接統合することで、ソフトウェア開発を革新できます。複数のツールを切り替える必要がなくなり、デベロッパーはGitLabの包括的なDevSecOpsプラットフォーム内で、機能開発からコードレビューに至るまでの主要なタスクを加速できます。Amazon QのAIエージェントは、インテリジェントなアシスタントとして、要件に基づくコード生成、ユニットテストの作成、コードレビューの実施、Javaアプリケーションのモダナイゼーションなど、時間のかかるタスクを自動化します。この共同ソリューションは、こうした複雑なタスクを処理することで、セキュリティと品質基準を維持しながら、チームがイノベーションに集中できるよう支援します。\n\nこのエンタープライズ向けのデベロッパーエクスペリエンスには次の内容が含まれます。\n\n* 単一のデータストアを備えたGitLabの統合プラットフォームで、安全なコードのビルド、テスト、パッケージ化、デプロイを自動化できます。\n* Amazon Q Developerによって強化されたGitLab Duoで、GitLabプロジェクトのコンテキストを活用し、タスクに基づいて複数ファイルの変更を生成できます。\n* GitLab Duoに統合されたAmazon QのAIエージェントで、タスクごとにイシューを更新し、マージリクエストを作成できます。これらはプロジェクト単位で権限が設定されています。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1033653810?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"GitLab Duo and Amazon Q\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## パートナーシップによるイノベーション：GitLabとAWS\n\nGitLab Duo with Amazon Qは、GitLabとAWS社のエンジニアリングチームの緊密な協力から誕生しました。このパートナーシップは、ソフトウェア開発を革新するために両社の強みを結集したものです。GitLabの統合型DevSecOpsにおける専門知識と、AWS社のクラウドコンピューティング分野でのリーダーシップを融合し、デベロッパーのニーズを理解する革新的なソリューションを実現しました。\n\nAmazon Qの自律型エージェントをGitLabの包括的なAI搭載プラットフォームに統合することで、単なる技術的な連携を超えた体験を実現しました。これにより、AIを活用した直感的な開発が可能になっただけでなく、エンタープライズが求めるセキュリティ、コンプライアンス、信頼性も確保されています。\n\n業界のアナリストたちは、AI搭載型ソフトウェア開発の進展においてこの統合が持つ重要性を認識しています。\n\n***「このコラボレーションにより、GitLabとAWSはそれぞれの強みを組み合わせて、ソフトウェア開発におけるエージェント型AIを実現しています。GitLab Duo with Amazon Qは、顧客がAIの可能性を最大限に活用できるよう、効果的なユースケースに取り組むとともに重要な課題に対処しています」（IDC社、リサーチマネージャー、Katie Norton氏）***\n\n***「デベロッパーと彼らが働く組織の両方が、シンプルで統合されたエクスペリエンスにますます関心を持っています。特に、セキュリティとプライバシーが最重要の懸念事項であるAIの時代には、最先端のテクノロジーの力を活用すると同時に、リスクを制御し、分断されたソフトウェアツールチェーンを最小限に抑えたいと考えています。GitLab DuoとAmazon Qのパートナーシップは、エンドツーエンドのDevSecOpsエクスペリエンスの中でデベロッパーが必要とするツールを提供することを目指しています」（RedMonk社、シニアアナリスト、Rachel Stephens氏）***\n\n## 4つの主要な顧客メリット\n\nGitLab Duo with Amazon Qは、AI搭載型DevSecOpsと最も充実したクラウドコンピューティング機能を組み合わせ、開発チームを次のように支援します。\n\n### 1. 機能開発におけるアイデアからコードへの変換を効率化\n\n開発チームは、要件をコードに変換する作業に多くの時間を費やすことが多く、その結果、納期の遅延や実装時の不整合が生じることがあります。しかし、新しいクイックアクション`/q dev`を使用することで、GitLab Duo with Amazon QのAIエージェントを呼び出し、イシューの内容をマージ可能なコードに数分で直接変換できるようになりました。このエージェントは要件を分析し、実装を計画し、最適なマージリクエストを生成します。すべて、チームの開発基準を遵守しながら行われます。さらに、コメントでのフィードバックを活用して迅速にイテレーションを行うことで、アイデアから本番環境での動作可能なコード開発を可能にします。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1034050110?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Feature Dev with Rev\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### 2. レガシーコードのモダナイゼーションの手間を低減\n\n従来、Javaアプリケーションのアップグレードには、数週間にわたる慎重な計画、手作業でのコード変更、大規模なテストが必要でした。しかし、新しいクイックアクション`/q transform`を使用することで、Javaモダナイゼーションプロセス全体を自動化できます。エージェントは、Java 8やJava 11のコードベースの分析、包括的なアップグレード計画の作成、Java 17への移行に必要なマージリクエストのドキュメント化および生成、これらすべてを数時間でなく、わずか数分でこなします。コード変換中のすべての変更が逐次報告されるため、チームは安心して作業を進められ、アプリケーションのセキュリティとパフォーマンスも向上します。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1034050145?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"QCT\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### 3. 品質を損なうことなくコードレビューを加速\n\nコードレビューはボトルネックになりがちです。フィードバックを得るまでに数日待つ一方で、一貫した基準を維持する必要があります。しかし、クイックアクション`/q review`を使用すれば、マージリクエスト内でコード品質やセキュリティに関するフィードバックを即座に得られます。エージェントは、チームの基準に基づいて潜在的な問題を自動的に特定し、改善案を提案します。これにより、レビューサイクルを飛躍的に短縮しつつ、高品質なコードを維持できます。\n\n\u003Cdiv style=\"padding:56.25% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1034050136?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Code Reviews\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n### 4. テストの自動化により自信を持ってリリース\n\n手動でのテスト作成は時間がかかる上、チーム間でテストの範囲にばらつきが生じることがよくあります。しかし、クイックアクション`/q test`を使用すれば、アプリケーションのロジックを理解した包括的なユニットテストを自動生成できます。エージェントは重要なパスやエッジケースを徹底的にカバーし、既存のテストパターンに一致させます。この自動化により、チームは問題を早期に発見し、一貫した品質基準を維持しながら、デベロッパーの貴重な時間を節約できます。\n\n\u003Cdiv style=\"padding:54.37% 0 0 0;position:relative;\">\u003Ciframe src=\"https://player.vimeo.com/video/1034050181?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Use GitLab Duo with Amazon Q to add tests\">\u003C/iframe>\u003C/div>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n## エンタープライズ向けのセキュリティとガードレールを標準搭載\n\nエンタープライズ規模とセキュリティを念頭に設計されたこのソリューションは、GitLabの統合型セキュリティ、コンプライアンス、プライバシー機能とAmazon QのAIエージェントを組み合わせ、デベロッパーのワークフローを加速し、組織がより迅速にセキュアなソフトウェアをリリースできるよう支援します。\n\n統合機能の特長：\n\n* 開発速度を維持するためのガードレールを標準装備\n* それぞれのレベル（ユーザー、プロジェクト、グループ）でAI搭載機能を管理できるきめ細かい制御性\n* 既存のワークフローに統合可能なエンドツーエンドのセキュリティ\n\nDevSecOpsチームは、世界で最も広く採用されているクラウドを活用して、開発環境を安全にスケールできます。\n\n## 今後の展望\n\nGitLab Duo with Amazon Qは、[2024年5月に発表されたAWS社との既存のインテグレーション（英語）](https://press.aboutamazon.com/2024/4/aws-announces-general-availability-of-amazon-q-the-most-capable-generative-ai-powered-assistant-for-accelerating-software-development-and-leveraging-companies-internal-data)を基盤としており、ソフトウェア開発を変革するという共同のミッションにおいて大きな前進をもたらしました。今回のより高度なAI機能の統合は、AWS社との連携拡大の始まりを示しています。今後もこれらの機能を進化させ、次の点に注力していきます。\n\n* 開発ライフサイクル全体へのAI機能の拡張\n* デベロッパーの生産性向上\n* エンタープライズ規模の開発ニーズへの対応\n\n**GitLab Duo with Amazon Qは現在、GitLab.orgプロジェクト内の[パブリックブランチ](https://gitlab.com/groups/gitlab-org/-/epics/16059)で利用可能です。この機能のプレビュー版にアクセスし、ソフトウェア開発プロセスをどのように変革できるか詳しく知りたい方は、[当社のウェブサイト](https://about.gitlab.com/partners/technology-partners/aws/#interest)をご覧ください。**\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*",[682,707,9,703,234],{"slug":1537,"featured":91,"template":685},"gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai","content:ja-jp:blog:gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai.yml","Gitlab Duo With Amazon Q Devsecops Meets Agentic Ai","ja-jp/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai.yml","ja-jp/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai",{"_path":1543,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1544,"content":1550,"config":1556,"_id":1558,"_type":14,"title":1559,"_source":16,"_file":1560,"_stem":1561,"_extension":19},"/ja-jp/blog/gitlab-duo-workflow-enterprise-visibility-and-control-for-agentic-ai",{"title":1545,"description":1546,"ogTitle":1545,"ogDescription":1546,"noIndex":6,"ogImage":1547,"ogUrl":1548,"ogSiteName":669,"ogType":670,"canonicalUrls":1548,"schema":1549},"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":1545,"description":1546,"authors":1551,"heroImage":1547,"date":1553,"body":1554,"category":10,"tags":1555,"updatedDate":1495},[1552],"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*免責事項：このページには、今後予定されている製品、機能および機能性に関する情報が含まれています。この情報は情報提供のみを目的としたものであり、購入や計画の判断材料として使用することはお控えください。すべての項目は変更や未更新の可能性があります。開発、リリース、およびタイミングについては、予告なく内容を変更または削除する場合があります。*",[703,9,706,705,682,814],{"slug":1557,"featured":91,"template":685},"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":1563,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1564,"content":1570,"config":1576,"_id":1578,"_type":14,"title":1579,"_source":16,"_file":1580,"_stem":1581,"_extension":19},"/ja-jp/blog/gitlab-flow-duo",{"title":1565,"description":1566,"ogTitle":1565,"ogDescription":1566,"noIndex":6,"ogImage":1567,"ogUrl":1568,"ogSiteName":669,"ogType":670,"canonicalUrls":1568,"schema":1569},"GitLab Flow (フロー) と GitLab Duo  (デュオ) を併用してワークフローを強化する","GitLab Flow に AI 搭載の GitLab Duo の能力を合わせ、DevSecOps ワークフローの効率をアップする方法をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662840/Blog/Hero%20Images/ai-experiment-stars.png","https://about.gitlab.com/blog/gitlab-flow-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Flow (フロー) と GitLab Duo  (デュオ) を併用してワークフローを強化する\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Cesar Saavedra\"}],\n        \"datePublished\": \"2023-07-27\",\n      }",{"title":1565,"description":1566,"authors":1571,"heroImage":1567,"date":1572,"body":1573,"category":10,"tags":1574,"updatedDate":1575},[699],"2023-07-27","DevSecOps を始めるには、綿密に検討されたワークフローが必要ですが、時としてそれは厳しい挑戦のように感じられます。しかし、過度に心配する必要はありません。GitLab Flow と GitLab Duo の 2 つがワークフロー設計をサポートしてくれるからです。GitLab Flow は、DevSecOps プロセスを支障なく適用するのを支援するもので、手順がすでに規定されたアプローチです。GitLab Duo は、GitLab DevSecOps プラットフォーム内で提供される[パワフルな一連のAI 機能](https://about.gitlab.com/blog/supercharge-productivity-with-gitlab-duo/)で、 組織におけるコード開発、運用の改善、ソフトウェアのセキュリティ強化をより効率的に行う手助けとなります。GitLab Flow と GitLab Duo を併用すると、組織ではエンドツーエンドのワークフロー効率を顕著に改善できます。それにより、生産性、デプロイの頻度、コード品質、総合的なセキュリティ、本番環境の耐久性と可用性に、さらなる向上が期待されます。この記事では、企業でうまくDevSecOps を運用するため、GitLab Flow と GitLab Duo の組み合わせがどのように役立つか、深く掘り下げていきます。\n\n> GitLab 17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を発見しましょう！ [【今すぐ視聴する】](https://about.gitlab.com/ja-jp/seventeen/)\n\n## GitLab Flow とは\nGitLab Flow は、手順が規定されている、アプリケーションの開発ライフサイクルのためのエンドツーエンドのワークフローです。GitLab Flow はユーザーインタフェースとデータモデルをそれぞれ 1 つずつ備えている、AI 搭載の DevSecOps プラットフォーム、GitLab を使用します。GitLab Flow には、顧客からのフィードバックや、自社使用から得られた教訓など、ベストプラクティスや経験から学んだことが組み込まれています。さらに、GitLab Flow は[DevSecOps ライフサイクルの全段階](https://about.gitlab.com/stages-devops-lifecycle/)にまたがるもので、ある特定のアップデートのための内側のフィードバックループと、開発ライフサイクルのみならずアプリケーション全体を改善させていく外側のフィードバックループで構成される、効率的なワークフローです。\n\n![The GitLab Flow inner and outer loops](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-feedback-loops.png)\n\u003Ccenter>GitLab Flowの内側と外側のフィードバックループ\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow には多くの段階がありますが、ご存知のようにソフトウェア開発にはコードを書くだけでは終わらないたくさんの作業があります。以下で、GitLab Flow の各ステップと、GitLab Duo の役割について詳しく説明します。\n\n### GitLab Flowでのプランニング\n\nGitLab Flow の第一段階はプランニングです。プランニングは、GitLab Flow の外側のフィードバックループに配置されています。プランニング段階には、イシュー、マージリクエスト (MR)、エピック、マイルストーン、イテレーション、リリース、リリースエビデンスなど、さまざまなものが含まれます。これから、GitLab Flow でのこれらの各種要素の役割と、GitLab Duo がどのように役立つかについて説明します。\n\n![Planning - first portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-planning-portion.png)\n\u003Ccenter>プランニング – GitLab Flow の第 1 部\u003C/center>\u003Cp>\u003C/p>\n\n#### イシュー\nイシューは、コードの問題や新機能を定義するもので、かつチームメンバーが協力し合える場です。イシューが作成されたら、タイトルを追加し、GitLab Duoの「**イシュー説明文の生成**」機能を用いると、説明欄へ自動で記入してくれるので、時間と労力が節約できます。1つのイシューについてのコメントスレッドには数多くの関係者が参加できます。「**イシューコメントのサマリー**」は GitLab Duoの AI機能のひとつで、あるイシューに関する何百ものコメントを簡潔なひとつのパラグラフに要約できるので、関係者は迅速に会話の内容を把握でき、議論に参加し、生産的な活動にすぐに貢献できます。\n\nイシューは、イシューボードで整理・視覚化できます。イシューボードはソフトウェアのプロジェクト管理ツールで、カンバンボードやスクラムボードとして利用できます。こういったボード類は、チームが機能や製品リリースのワークフローを計画、整理、視覚化するのに便利です。ボードのカテゴリは異なるものとして作成でき、イシューは簡単にドラッグアンドドロップで 1 つのリストから別のリストに移動させることができます。\n\n#### マージリクエスト\nマージリクエスト (MR) とは、解決策が開発される場を意味します。リリースを構成する要素として、イシューやマージリクエストは、DevOps やプラットフォームエンジニア、システム管理者やデータベース管理者、セキュリティエンジニア、そして開発者など、関係者により行われるアプリケーションの変更を、監査可能で追跡できる仕組みとして提供します。また、イシューやマージリクエストはリリースプランニングのプロセスに対する重要なインプットでもあります。\n\nマージリクエストは個別に作成することも、イシュー上で作成することも可能です。イシュー上でマージリクエストを作成した場合には、作成したマージリクエストが自動的にそのイシューに関連付けられるため、マージリクエストがマージされると、関連付けられているイシューも自動的にクローズされます。マージリクエストは手動でイシューに関連付けることもできます。\n\n![Merged merge request will close issue](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/mr-with-its-issue.png)\n\u003Ccenter>マージされたマージリクエストによりイシューがクローズされる\u003C/center>\u003Cp>\u003C/p>\n\nイシューと同様、マージリクエストには多くの関係者がアップデートを行なうフィーチャーのロングリストを含められます。GitLab Duo の「**マージリクエスト変更の要約**」機能を使うと、マージリクエストに含まれている更新内容のすべてを認識・理解する必要がある共同作業者は、変更点を素早く把握できます。\n\n同じテーマを持つイシューはエピック内でグループ化でき、取り組むべき作業を整理できます。エピックには子イシューやサブエピックが設定でき、組織全体のエピックにリンクすることも可能です。イテレーションを使用すると作業のスプリントの追跡ができ、手動でスケジュール設定したり、イテレーションの反復を使って自動でスケジュール設定し、プランニングのワークフローを効率化したりできます。さらに、イテレーションにはバーンダウンチャートとバーンアップチャートがあります。バーンダウンチャートを使用するとプロジェクトの全スコープに対する進捗状況の全体を追跡できます。バーンアップチャートはイテレーションの期間内に追加した、または完了したイシューの日次合計数と重み付けを追跡します。\n\n#### マイルストーン\nチームでマイルストーンを使えば、イシューやマージリクエストに任意の開始日や完了期限を設定し、関連のある 1 つのグループとして整理できます。マイルストーンは通常リリースの追跡に使用しますが、プロジェクト単位またはグループ単位で、イシューやマージリクエストを追跡することもできます。イテレーションと同様、マイルストーンでもバーンダウンチャートとバーンアップチャートが利用でき、進捗状況が可視化されます。\n\nマイルストーンはリリースに関連付けられます。リリースの自動作成からはリリースエビデンスを含む、多くのアーティファクトが生成されます。リリースエビデンスとはリリースに関連付けられている、自動収集されたデータのスナップショットです。テストアーティファクトやリンクされたマイルストーンに加えて、ジョブのアーティファクトもオプションとしてリリースエビデンスに含められるので、外部監査などの内部プロセスが容易になります。\n\nエピック、マイルストーン、そしてイテレーションは、「ロードマップ」ページで可視化できます。このページを使うと、リリースの進捗状況が追跡でき、リリースプロセスが効率化できます。\n\nプランニングに進むと、問題の解決や新機能に向けた作業が開始できます。これはマージリクエストで作業していきます。では、GitLab Flow でそのプロセスがどのように行われるのか、もう少し詳しく見てみましょう。 \n\n> [GitLab FlowとGitLab Duoを試してみる](https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2Fblog%2F)\n\n### マージリクエストとコードのプッシュ\n\n![Merge requests and pushing code - second portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-mr-pushing-code-portion.png)\n\u003Ccenter>マージリクエストとコードのプッシュ – GitLab Flow の第 2 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 2 部は、マージリクエスト (MR) とコードのプッシュに関連したものです。前述のように、マージリクエストとは組織全体から参加する関係者の共同作業で、解決策が生み出される場です。この共同作業は分散された場所から、非同期で行うことも可能です。参加者は、タグ付け、インラインでの提案、インラインコメント、マージリクエストのコメント、レビュースレッド、レビューリクエストなど、コラボレーション機能を活用でき、コード品質、可用性、信頼性とパフォーマンスの改善につながります。マージリクエストを作成するとすぐ、GitLab Flow の内側フィードバックループがスタートします。ここでは、コードと修正点のプッシュ、テストとスキャンの実行が行われ、アップデートのレビューなど共同作業が発生します。\n\n#### パイプライン\nアップデートは、マージリクエストを通してフィーチャーブランチに適用されます。パイプラインが定義されていれば、自動的に実行されます。パイプラインには複数のステージやジョブが設定でき、ビルドやテストを行った後、アプリケーションやマイクロサービスをレビュー環境にデプロイします。そのレビュー環境では、アップデートはメインブランチにマージする前に動的に検証できます。この自動化は、アプリケーションのアップデートとレビュープロセスを効率良く行う手助けになります。\n\nさらに、DevSecOps チームがマージリクエストを通じてアプリケーションのアップデートをする際は、さまざまなAI 搭載機能が活用できます。チームメンバーがコードを書いて更新するとき、GitLab Duo の「**コードの提案**」が次に書くべきコードを推奨してくれます。開発者はその提案を受け入れるか、無視するか選択できます。「コード提案」は、エラーを減らして開発者がより速くコードを書けるようにすることでプログラミング体験を向上させ、コード品質が改善します。「コード提案」はまた、開発者の生産性を高めるので、イテレーションやロールアウトの高速化にもつながります。\n\n組織内で異なる関係者がアプリケーションの開発やレビューに参加する場合、ドキュメントが不十分だったり、複雑で難解なコード、あまり馴染みのないプログラミング言語で書かれたコードなどに出くわすことがあります。GitLab Duo の「**コードの解説**」機能は、コードを自然言語で説明してくれるので、誰もが理解でき、そのスピードを高められます。\n\nさらに、フィーチャーブランチにアップデートがコミットされると、GitLab Duo の「**推奨レビュアー**」機能がマージリクエスト内の変更点とコントリビューションカレンダーグラフを使い、マージリクエストのサイドバー内のドロップダウンにプロジェクトに最適なレビュアーを提案してくれます。このリストにはアプリケーションのある特定の部分に詳しいユーザーが数人含まれ、そのアップデートのレビューの適任者が示されます。レビュー適任者をさがして特定する必要がありませんので、開発者の時間が節約でき、レビュープロセスを効率化し、遅延やレビューの品質低下を防ぎます。\n\n開発者がコードに変更を加える場合、その具体的な変更点についてマージリクエストにコメントを書くことはあまりありません。GitLab Duo の「**マージリクエスト変更の要約**」機能を使うと、マージリクエストで変更を行ったコード作成者は、AI を使用して自然言語のコメントを生成することができます。このコメントは、コードへの更新内容を要約するものです。これによりレビュアーは変更内容をよりよく理解でき、レビュープロセス全体の効率化につながります。\n\nレビュアーがマージリクエストでコード更新をレビューすると、レビューブロックが作成されます。このブロックには数多くのソースファイルにまたがる多数のコメントが含まれ、非常に長いので目を通すのが大変です。ここで、コード作成者がレビュー内容をしっかり理解できるように、GitLab Duo の「**マージリクエストレビューの要約**」機能を使うと、レビュアーのフィードバックが自然言語で生成されます。これによりコード作成者とレビュアーの間の引き継ぎがよりスムーズになり、レビュープロセスが効率化されます。\n\nさらに、マージリクエストに開発者が新しいコードを追加する際は、GitLab Duo の「**マージリクエストのテスト生成**」機能を活用すれば、AI を使って新しいコード用のユニットテストを生成できます。そのため開発者の生産性は高まり、テストカバレッジが向上し、開発ライフサイクル内でのバグ検出が前倒しできます。\n\nパイプラインはブランチの更新に対して実行されます。さらに、自動テストやスキャンをそこに組み込むことができます。それはセキュリティをシフトレフトすることにつながっていきます。\n\n### セキュリティのシフトレフト\n\n![Shifting security left - third portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-shift-sec-left-portion.png)\n\u003Ccenter>セキュリティをシフトレフトする –  GitLab Flow の第 3 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 3 部は、セキュリティのシフトレフトです。これは GitLab Flow の内側フィードバックループの一部です。\n\nDevOps やプラットフォームエンジニア、システム管理者やデータベース管理者、開発者、マージリクエストで共同作業している関係者の中には、セキュリティやコンプライアンスを危惧している人もいるかもしれません。そういった場合に、自動化テストやセキュリティスキャンが役立ちます。スキャンはすぐ利用可能なテンプレートを使って簡単にパイプラインに埋め込むことができ、マージリクエストのパイプラインから自動的に実行できます。GitLab では、幅広い組み込みのセキュリティスキャナとアナライザが利用できます。これらはGitLab Flow から利用できます。さらに、DevSecOps プラットフォームにはサードパーティのスキャナやカスタムスキャナも取り込めます。\n\nソフトウェア開発プロセスで不具合検出をできる限り早い段階で行ない、早期解決する目的で、GitLab Flow はパイプライン内でセキュリティをシフトレフトしました。開発サイクルの早い段階で脆弱性を修正する方が、アプリケーションが本番環境に入ってからの修正より、はるかに簡単でコストもあまりかかりません。本番環境での修正では、予定外の停止によりユーザーや収益に影響が及ぶ恐れもあります。\n\nGitLab の組み込みのセキュリティスキャナおよびアナライザには、ユニットテスト、[Infrastructure-as-Code (IaC)](https://about.gitlab.com/ja-jp/blog/using-ansible-and-gitlab-as-infrastructure-for-code/) スキャン、静的アプリケーションセキュリティテスト (SAST) スキャナ、依存関係スキャナ、シークレット検出、コンテナスキャン、API セキュリティ、Web API ファズテスト、カバレッジガイド式ファズテストが含まれています。これに加えて、GitLab ではさまざまなセキュリティダッシュボードやレポートが利用できますので、脆弱性を管理・可視化できます。これには、依存関係リスト、セキュリティダッシュボード、脆弱性レポート、脆弱性ページなどが含まれます。\n\n開発者およびセキュリティエンジニアの脆弱性への理解を深め、脆弱性への対処をより効率的に行うため、GitLab Duo の「**脆弱性の説明**」機能からは、ある特定の脆弱性についての説明が得られます。脆弱性がどのように悪用されうるのかが説明されるだけでなく、それをどう修正したらよいのか提案もしてくれます。この AI 搭載機能は、本番環境でのサイバー攻撃で悪用される可能性のある脆弱性を防ぐため、アプリケーションのセキュリティを強化するプロセスの最適化を助長します。\n\nSAST スキャナのほかに、GitLab では動的アプリケーションセキュリティテスト (DAST) スキャナも提供しています。これには実行中のアプリケーションが必要です。このスキャナを活用すると、GitLab では DAST スキャン用に自動的に DAST 環境をプロビジョニングし、DASTテスト後はすべてのリソースを完全にクリーンアップしてくれます。これに加え、実行中のコンテナについては、GitLab では操作用のコンテナスキャンも使えます。このスキャンは、セキュリティの脆弱性をチェックするため、クラスタ内のコンテナイメージをスキャンします。\n\n上記のスキャンは、マージリクエストのパイプライン内で自動実行できますが、場合によっては、スキャン実行ポリシーやスキャン結果ポリシーを使い、実行をスケジュール化することも可能です。こういったポリシーは、GitLab UI または YAML ファイルで定義可能で、別個のプロジェクト内で構成します。これにより再利用性、メンテナンスと管理の責任が分離できます。スキャン実行ポリシーでは、指定されたスケジュールまたはプロジェクトパイプラインと一緒にセキュリティスキャンを実行する必要があり、スキャン結果ポリシーはスキャン結果に基づいて対処します。セキュリティエンジニアや各種チームはこれらのポリシーを定義して、組織全体のセキュリティプロセスを強化できます。GitLab Flow はこういったステップもカバーしていますので、これらのポリシーを活用することができます。\n\n組織内でセキュリティおよびコンプライアンスを強化する際は、コンプライアンスラベルやパイプラインを使用します。コンプライアンスラベルおよびパイプラインは、プロジェクト自体のパイプラインを実行する前に必須にすることも可能です。このアプローチでは、組織内のすべてのチームが確実に組織内のセキュリティとコンプライアンス基準に準拠していることが確認できます。さらに、開発中のアプリケーションをサイバー攻撃から守り、政府のコンプライアンス標準に準拠し、常に監査に備えられます。GitLab Flow で可能になる、これらすべてのセキュリティ指針の主な目標は、アプリケーションが本番環境に出ていった後ではなく、開発サイクルの早い段階で脆弱性を修正することにあります。本番環境で脆弱性の修復を行うことは、評判や収益面から非常に高価になるためです。\n\n脆弱性はGitLab Flow の内側フィードバックループでそのリスクが軽減できます。フィーチャーブランチでアプリケーションにさらなるアップデートを適用したら、関係者はアップデートを再度レビューして、アップデートの適用を確認し、誤って逆戻りするようなアップデートが導入されないようにする必要があります。\n\n### 継続的なレビュー\n\n![Reviews - fourth portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-reviewing-features-portion.png)\n\u003Ccenter>レビュー –  GitLab Flow の第 4 部\u003C/center>\u003Cp>\u003C/p>\n\nGitLab Flow の第 4 部はレビュー機能で、ここでアプリケーションの継続的なレビューを規定します。フィーチャーのレビューには、レビュー環境を立ち上げる機能が含まれます。ここでは、開発途中のアプリケーション (フィーチャーブランチ) がデプロイされるため、関係者はリアルタイムでレビューし、フィードバックを提供できます。開発途中のアプリケーションは、メインブランチにマージできるようになるまで継続的に調整を入れます。GitLab Flow では、マージリクエストがメインブランチにマージされる時点で、すべてのプロビジョニングされたレビュー環境リソースをクリーンアップすることも規定しています。\n\nこの反復的な自動化されたレビュープロセスは、GitLab Flow の内側フィードバックループの一部とされています。上述したとおり、内側フィードバックループ内では、「ソースコードの説明」、「推奨レビュアー」、「マージリクエスト変更の要約」、および「マージリクエストレビューの要約」などのGitLab Duo 機能はGitLab Flow によって規定されており、コード作成者とレビュアーの間の引き継ぎをよりスムーズに行ない、レビュープロセス全体を効率化することができます。\n\nGitLab Flow の内側フィードバックループは、すべてのレビュー項目が解決され、マージリクエストが承認されてメインブランチにマージされると終了します。これがトリガーとなって、アプリケーションが本番環境にデプロイされます。\n\n### アプリケーションとインフラストラクチャのデプロイ\n\n![Deploying - fifth portion of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/The-GitLab-Flow-2023-deploy-apps-portion.png)\n\u003Ccenter>デプロイ – GitLab Flow の第 5 部\u003C/center>\u003Cp>\u003C/p>\n\n組織のニーズに応じて、継続的デリバリーまたは継続的デプロイをGitLab Flow で規定します。継続的デリバリーはコードの頻繁なリリースで、その都度 (本番環境への) デプロイを手動でトリガーします。継続的デプロイは人間が関わることなく行われる、コードの (本番環境への) 自動リリースを意味します。では、継続的デリバリーを最初に見てみましょう。\n\n継続的デリバリーでソフトウェアをリリースする際は、いくつかのデプロイオプションがあります。フリーズウィンドウ（作業を一時停止する期間）を設定し、カナリアロールアウト、ブルー・グリーンロールアウト、タイムドロールアウト、インクリメンタルロールアウトなどの、高度なデプロイ技術が利用できます。インクリメンタルロールアウトは本番環境でのシステムダウンのリスクが低減できるため、よりよいユーザーエクスペリエンスと顧客満足度が得られます。各種の高度なデプロイ技術を用いると、開発とデリバリーの効率が改善できるため、リリースプロセスが効率化されます。\n\n継続的なデプロイでソフトウェアをリリースする際は、変更点やアップデートはすべて直接、本番環境に反映されます。フィーチャーフラグのような段階的なデリバリーアプローチを採用すると、特定のフィーチャーの提供をローンチから分離できるため、リスクを低減し、本番ユーザーに利用してもらえる機能性を管理できます。フィーチャーフラグは多くのプログラミング言語をサポートしているため、開発者は実験をしたり、管理環境下でのテストを可能にします。また、フィーチャーフラグを使うと、ある特定のユーザーだけにフィーチャーをロールアウトすることも可能になります。\n\nGitLab はこうしたデプロイアプローチのすべてをサポートしていますが、GitLab Flow では、組織や特定のプロジェクトのニーズに特化したアプローチの採用が可能です。\n\n### アプリケーションの監視と DevSecOps のプロセス\n\nアプリケーションを本番環境にデプロイしたら、安定性、パフォーマンス、可用性を保証するために継続的に監視する必要があります。また、DevSecOps プロセスが実行されると、それらが測定され、パフォーマンスと効率性を改善する機会が得られます。GitLab には監視機能があり、GitLab Flow でそれを活用できます。\n\n実行中のコンテナに対しては、GitLab はオペレーショナルコンテナスキャン (OCS) を行ないます。OCS は、クラスタ内のコンテナイメージをスキャンすることにより、セキュリティ脆弱性をチェックします。こういったスキャンは、実行するタイミングをスケジューリングすることで自動化でき、また、検出された脆弱性をセキュリティダッシュボードに自動的に表示します。OCS はクラスタアプリケーションをセキュアに保ち、個人データの流出や予期せぬシステム停止につながるサイバー攻撃を未然に防ぎます。\n\nエラーの追跡を行なえば、開発者は、開発しているアプリケーションで発生したエラーを検知したり、表示ができます。アプリケーション内で生成されたエラーはすべて、GitLab の「エラートラッキングリスト」に表示されます。エラートラッキングは、予期せぬアプリケーションの状態を迅速に見つけ出し、解決するので、アプリケーションの可用性とパフォーマンスをよりよいものにします。\n\nGitLab は、Webhookレシーバー経由でPrometheus を含むあらゆる監視ソースからのアラートを受け取れます。アラートが受信されると「GitLab アラート」リストに表示され、ここから手動で管理できます。アラートは自動的にインシデントや ChatOps を生成するようにしたり、適切な個人やグループにメッセージを送るよう、トリガー設定できます。こういった機能はすべて、アラートの解決策および管理プロセスを効率化します。\n\n本番環境で発生した問題のためにインシデントが作成されると、インシデント管理用に GitLab の「インシデントリスト」に表示されます。インシデントは 1 つまたは複数を一度に管理でき、ソートや、検索、割り当てを行なったり、ステータスを設定し、SLA プリセットカウントダウンタイマーを見ることもできます。さらに、インシデントを処理するために、オンコールのスケジュールやローテーション、エスカレーションポリシーを作成し、ページングや通知を設定することもできます。さらに、インシデントはアラートにリンクすることで、インシデントがクローズされるとそれに関連付けられていたアラートも自動的に解決されるよう設定可能です。インシデントのタイムラインは、役員や外部からの閲覧者がインシデント中に何が起きたのか、それを解決するためにどんな手順を踏んだのかを確認する機能です。こういった各種機能はすべて、インシデント管理プロセスを効率化し、インシデントを可能な限り迅速に解決するためのものです。\n\n監査イベントは、GitLab で誰がいつ関連する対応を行なったのか、など重要なイベントを追跡します。監査イベントは GitLab の「監査イベント」リストに表示され、オブジェクトに対して実行したアクション、実行者、実行日時などが表示されます。\n\nこれまで説明した、すべてのリストとダッシュボードは、コンプライアンス違反の事前対策を手助けし、ペナルティを回避するだけでなく、監査プロセスを効率化するのにも役立ちます。実行中のアプリケーションから生成されたデータやメトリクスは、GitLab Flow の外側のフィードバックループで使用できます。このため、アプリケーションの改善と最適化が促され、予定外の本番環境でのシステム停止のリスクが低減されます。\n\n### 継続的な改善\nGitLab Flow を適用すると、GitLabが提供するエンドツーエンドのプロセスメトリクスのダッシュボードから知見が得られます。そのため、アプリケーションだけでなくソフトウェアのデリバリーパフォーマンスも継続的に改善できます。これらのダッシュボードとそのメトリクスは GitLab によって自動生成され、常時利用可能です。\n\nアプリケーション開発のライフサイクルは「バリューストリーム分析ダッシュボード」を使い、追跡、監視できます。ここでは時間の経過によるプロジェクトやグループの統計が確認できます。このダッシュボードはカスタマイズできますが、GitLab が提供しているデフォルトのテンプレートを使って、バリューストリームを作成すれば、迅速に開始できます。デフォルトのダッシュボードには、事前定義されたバリューストリーム分析の各ステージのメトリクスが表示されます。メトリクスとは、イシュー、プラン、コード、テスト、レビュー、ステージングなどで、それぞれの完了までにかかる平均時間がグラフで表示されます。ここには、リードタイム、サイクルタイム、新規イシュー、コミット、デプロイなどバリューストリーム分析のキーメトリクスも表示されます。これらのメトリクスを利用すれば、バリューストリームの各ステージについて、改善可能な領域が見つかります。\n\nパフォーマンスメトリクスでは、組織の開発およびデリバリーの有効性や効果を測定しますが、こういったメトリクス用に、GitLab は DORA (DevOps Research and Assessment) メトリクスダッシュボードを提供しています。ここには「デプロイ頻度」、「変更のリードタイム」、「サービス復旧時間」、「変更失敗率」の、4 つの主なメトリクス（Four Keys）が表示されます。「デプロイ頻度」は組織がどのくらいの頻度で本番環境にコードをデプロイするのか、またはそれをエンドユーザーにリリースするのかを測定します。「変更のリードタイム」は、コードをコミットした時点から、本番環境で実行されるまで、どれくらいの時間がかかるのかを測定します。「サービス復旧時間」は、インシデントが発生した場合に、どれくらいの時間でサービスをインシデント以前の状態に復旧できるのかを測定します。「変更失敗率」は、本番環境への変更またはユーザーにリリースされた変更のうち、サービス改悪につながったもの (たとえばサービス障害や停止につながった変更) で、その後、復旧が必要になった (ホットフィックス、ロールバック、パッチが必要になったなど) 変更の割合を示します。これらの 4 つの主要メトリクスは現在のプロセスを表すものであり、これを分析すれば、いろいろな要因や能力を改善できるでしょう。\n\nもうひとつのダッシュボードは、カスタム化可能な「バリューストリームダッシュボード」で、意思決定者が、傾向、パターンやソフトウェア開発改善の機会を特定できるようにするものです。表示されるメトリクスは DORA メトリクスに続いて、バリューストリーム分析のフローメトリクスと直近 1 か月間、2 か月間、6 か月間の重大な脆弱性の件数です。\n\nGitLab Duo は、継続的な改善への取り組みにも役立ちます。たとえば、「**バリューストリーム予測**」機能は、過去のデータを取り込んで、開発ライフサイクル全体のデータ傾向を使い、組織のバリューストリームメトリクスの今後の動向を予測します。こういった予測解析は、最適化の取り組みに活用できます。\n\nこれまで説明してきたすべてのダッシュボードや、そこで報告されるメトリクスは、GitLab Flow の外側フィードバックループを構成しており、予定外の本番環境でのシステム停止のリスクを低減し、アプリケーションと DevSecOps ワークフローを改善し、かつ最適化するのに役に立ちます。\n\n## GitLab Flow を使う理由\nGitLab Flow は、手順が規定されたアプローチで、世界中のユーザーが実践しているもので、次のような利点があります。\n\n* GitLab Flow を活用することで、GitLab が提供する自動化機能や、単一ユーザーインターフェース、データモデルによって生産性が向上\n\n* 継続的な改善をサポートする、エンドツーエンドの DevSecOps ライフサイクルへの正確な洞察\n\n* アプリケーションと DevSecOps プロセスの最適化に役立つ組み込み型ダッシュボードとメトリクス\n\n* コード品質の向上、ならびにアプリケーションの信頼性・可用性の向上\n\n* 組み込みのセキュリティスキャナと各種機能によるアプリケーションセキュリティの向上\n\n* 組み込みのコンプライアンス機能によるコンプライアンスおよび監査への対応デプロイ頻度を高めるサイクル時間の短縮\n\n* GitLab Flow の内側フィードバックループによる継続的なレビュー\n\n* GitLab Flow の内側フィードバックループによる、アプリケーションのアップデートの最適化、コード品質向上、アプリケーションの信頼性と可用性の改善\n\n* GitLab Flow の外側フィードバックループによる、開発ライフサイクルそのものだけでなく、アプリケーションも改善\n\n* 組織内の関係者間での強力な共同体制の確立\n\n* セキュリティをシフトレフトすることにより、コードを本番環境に出す前に、アプリケーション内の脆弱性を見つけ、費用のかかる、予定外のシステム停止を回避\n\n* GitLab によりサポートされている高度なデプロイ技術やプログレッシブデリバリーアプローチにより、本番環境へのデプロイ時のリスクを低減\n\n* 開発ライフサイクル全体にわたり、生産性、コード品質、継続的改善、セキュリティやコンプライアンスなどを強化させるAI 搭載機能\n\n* クラウドネイティブと非クラウドネイティブのアプリケーションをサポート\n\n* ハイブリッド / マルチクラウドアプリケーション向けのマルチクラウドサポート\n\nGitLab Flow はどう始めたらよいのでしょう。GitLab Flow の原則をお使いのアプリケーション開発ライフサイクルに適用してみたい場合、GitLab Auto DevOpsやその一部を活用することから始めるのが良いかもしれません。\n\n## GitLab Flow と Auto DevOps\n\n![Auto DevOps - an instantiation of GitLab Flow](https://about.gitlab.com/images/blogimages/gitlab-flow-duo/ado-pipeline.png)\n\u003Ccenter>Auto DevOps – GitLab Flow のインスタンス化\u003C/center>\u003Cp>\u003C/p>\n\n[Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/) は、GitLab Flow の全ステージやジョブに適用されます。つまり、Auto DevOps は GitLab Flow のインスタンス化の好例と考えるとよいでしょう。\n\nAuto DevOps は事前定義済みの、すぐに使用可能な CI/CD テンプレートで、ソースコードを自動検出できます。ベストプラクティスに基づき、CI/CD テンプレートは自動的にアプリケーションを検出、ビルド、テスト、デプロイ、監視します。\n\nAuto DevOpsパイプラインは、ソフトウェアデリバリープロセスで、早期段階で欠陥を発見し、予防する作業をシフトレフトします。次にAuto DevOps パイプラインはアプリケーションを検証するためステージング環境にデプロイし、その後、本番環境に段階的に、または、タイミングを合わせてデプロイします。\n\nAuto DevOps は迅速に利用開始でき、開発者の生産性を向上できます。また、最も一般的なプログラミングフレームワークとプログラミング言語をサポートするので、ニーズに合わせて簡単にカスタマイズできます。Auto DevOps はモジュラーであり、カスタマイズができ、拡張可能です。そのため、パイプラインに Auto DevOps の一部を活用したり、アプリケーションにすべてを適用することもできます。\n\n## 今すぐ始めてみましょう\n[GitLab Flow と GitLab Duo を組み合わせる](https://gitlab.com/-/trials/new?glm\\_content=default-saas-trial\\&glm\\_source=about.gitlab.com%2Fblog%2F) と、エンドツーエンドのワークフロー効率が顕著に改善できます。それにより、生産性、デプロイ頻度、コード品質、セキュリティ全般、プロダクションの耐久性と可用性について、さらなる改善が実現できます。\n\nGitLab Flow と GitLab Duo を併用するアプリケーションでのワークフローの確認や、メリットの確認には、次のビデオをご覧ください。\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/0JQUf9UOAdo?si=ZxgI3_nIODV6Gijw\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n*\\*監修：伊藤 俊廷 [@toshitakaito](https://gitlab.com/toshitakaito) （GitLab合同会社 ソリューションアーキテクト本部 スタッフソリューションアーキテクト）*",[109,9,680],"2024-08-28",{"slug":1577,"featured":6,"template":685},"gitlab-flow-duo","content:ja-jp:blog:gitlab-flow-duo.yml","Gitlab Flow Duo","ja-jp/blog/gitlab-flow-duo.yml","ja-jp/blog/gitlab-flow-duo",{"_path":1583,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1584,"content":1590,"config":1596,"_id":1598,"_type":14,"title":1599,"_source":16,"_file":1600,"_stem":1601,"_extension":19},"/ja-jp/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants",{"title":1585,"description":1586,"ogTitle":1585,"ogDescription":1586,"noIndex":6,"ogImage":1587,"ogUrl":1588,"ogSiteName":669,"ogType":670,"canonicalUrls":1588,"schema":1589},"『2024 Gartner® Magic Quadrant™ 』のAIコードアシスタント部門でGitLabがリーダーの1社として評価されました","Gartner® Magic Quadrant™の同部門の第1回目の選出において、GitLabはAIコードアシスタント技術における実行能力とビジョンの完全性が評価されました。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664458/Blog/Hero%20Images/Gartner_AI_Code_Assistants_Blog_Post_Cover_Image_1800x945.png","https://about.gitlab.com/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"『2024 Gartner® Magic Quadrant™ 』のAIコードアシスタント部門でGitLabがリーダーの1社として評価されました\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Dave Steer\"}],\n        \"datePublished\": \"2024-08-22\",\n      }",{"title":1585,"description":1586,"authors":1591,"heroImage":1587,"date":1592,"body":1593,"category":10,"tags":1594},[674],"2024-08-22","[『2024 Gartner® Magic Quadrant™』のAIコードアシスタント部門](https://about.gitlab.com/ja-jp/gartner-mq-ai-code-assistants/)でGitLabがリーダーの1社として評価されました。この部門が導入された初年度において、このような評価をいただけたことを大変嬉しく思います。この評価は、当社が力を入れている、ソフトウェアデリバリを高速化して、セキュリティを強化し、顧客のイノベーションを促進するAI搭載機能の提供に対する、当社の取り組みが認められたのだと感じており、非常に重要な評価と認識しています。\n\nAIコードアシスタントは、単にコードを生成したりコードを補完するだけではありません。コード品質を向上させ、継続的な学習をサポートすることで、デベロッパーの効率を高める共同パートナーでもあるのです。当社のAIを搭載したGitLab Duoのようなアシスタントが、定型的な作業を自動化し、インテリジェントな提案を行うことで、デベロッパーをアシストし、より高度な問題解決に集中できるようにします。\n\n![Gartner MQ AIコードアシスタントの画像](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675964/Blog/Content%20Images/AI_Code_Assistants_MQ_graphic__1_.png)\n\n> [2024年AIコードアシスタントに関するGartner® Magic Quadrant™レポート](https://about.gitlab.com/ja-jp/gartner-mq-ai-code-assistants/)をダウンロードする\n\n## AIコードアシスタント：スピーディ、セキュア、シームレスな統合\n\nAIコードアシスタントは、あらゆる規模の組織にとって不可欠な存在であり、DevSecOpsチームがセキュアなソフトウェアを迅速に開発し、デプロイすることを支援します。しかし、AIの真の価値は、ソフトウェア開発ライフサイクル全体にわたって統合されたときに発揮されます。断片的なツールチェーンやデータのサイロ化を招く可能性のある限定的なAIポイントソリューションとは異なり、GitLabの包括的なプラットフォームは、計画段階から本番環境までの全体にAIを組み込み、メトリクスとダッシュボードを通じて全体的な可視性と洞察を提供します。\n\n##  GitLab Duoのパワー\n\n[GitLab Duo](https://about.gitlab.com/ja-jp/gitlab-duo/)は、デベロッパーのエクスペリエンスを向上して、開発サイクルのセキュリティをシフトレフトし、開発、セキュリティ、運用チーム間のコラボレーションを強化するために設計されたAI機能の包括的なツールボックスです。\n主な機能は次のとおりです：\n\n* コード生成やコード補完をするコード提案機能\n* コードの説明、コードリファクタリング、テスト生成において、アプリ内でコンテキストに応じたサポートをするチャット機能\n* コードの脆弱性をよく理解する脆弱性説明機能\n* 発見された脆弱性を軽減する脆弱性修正機能\n* パイプラインの問題をトラブルシューティングする根本原因分析機能\n* リアルタイムの洞察を得て、組織のAI投資利益率（ROI）を評価するAIインパクト分析ダッシュボード機能\n\n## AIによるROIの最大化\n\nビジネスリーダーやエンジニアリングリーダーは、テクノロジー投資のROIを評価するために、ソフトウェア開発ライフサイクル全体でAIがどのように使用されているかを可視化する必要があります。GitLabの[AIインパクト分析ダッシュボード](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/)は、AIの導入率やパフォーマンスの改善などを測定するメトリクスだけでなく、その可視性を提供します。\n\n## 柔軟性、プライバシー、透明性を重視\n\nAI搭載機能を検討中のGitLabのお客様は、GitLab Duoを使用することで、難しい設定なしで即座に、任意のIDEまたはリモート開発ワークスペースでAIのパワーを余すことなく活用できます。柔軟な価格体系と無料トライアルが用意されています。また、[GitLab AI Transparency Center](https://about.gitlab.com/ai-transparency-center/)では、当社のガバナンスと透明性の取り組みを完全に可視化しています。\n\n近い将来、組織はモデルのパーソナライズやセルフホスト型モデルのデプロイによって、戦略的要件や規制要件に合わせて[AIエクスペリエンスをカスタマイズ](https://about.gitlab.com/ja-jp/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development/)できるようになります。モデルのパーソナライズにより、企業はGitLab Duoをビジネス目標、運用ニーズ、顧客の期待に密接に合わせてカスタマイズし、AIの可能性を最大限に引き出せます。セルフホスト型モデルの導入により、データが組織のセキュアな環境外に出ることがなくなり、情報漏えいのリスクを低減し、規制の厳しい業界のコンプライアンスを確保できます。\n\n## DevSecOpsでAIの未来をリードする\n\nGitLabは、AIを活用したソフトウェア開発のパートナーです。 当社は、ソフトウェアをより迅速に構築、セキュリティ保護、デプロイできるツールを提供します。GitLabでは、お客様が常にAIの最前線に立てるよう、イノベーションに全力を注いでいます。DevSecOpsに革命を起こし続ける、当社のロードマップの最新情報にご注目ください。\n\n> [2024年AIコードアシスタントに関するGartner® Magic Quadrant™レポート](https://about.gitlab.com/ja-jp/gartner-mq-ai-code-assistants/)をダウンロードする\n\n***出典：2024年8月、Gartner、Magic Quadrant for AI Code Assistants、Arun Batchu、Haritha Khandabattu、Philip Walsh、Matt Brasier***\n\n***GARTNERは、米国および国際的なGartner, Inc.および/またはその関連会社の登録商標およびサービスマークであり、MAGIC QUADRANTはGartner, Inc.および/またはその関連会社の登録商標であり、許可を得てここで使用されています。無断転載は禁止されています。***\n\n***Gartnerは、調査出版物で言及されているベンダー、製品、またはサービスを推奨するものではありません。また、最高評価またはその他の認定を受けたベンダーのみを選択するようテクノロジーユーザーに助言するものでもありません。Gartnerリサーチの発行物は、同社の研究機関の意見で構成されており、事実を表明するものとして解釈されるべきではありません。Gartnerは、本調査に関して、明示的または黙示的を問わず、商品性や特定の目的への適合性をはじめ、いかなる保証も行いません。***\n\n***このグラフィックは、Gartner Incがより大規模なレポートの一部として発表したものであり、文書全体の文脈の中で評価されています。Gartnerの文書を参照するには、Gartner B.V. への開示リクエストが必要になります。***\n",[682,9,680,1595],"research",{"slug":1597,"featured":91,"template":685},"gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants","content:ja-jp:blog:gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants.yml","Gitlab Named A Leader In 2024 Gartner Magic Quadrant For Ai Code Assistants","ja-jp/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants.yml","ja-jp/blog/gitlab-named-a-leader-in-2024-gartner-magic-quadrant-for-ai-code-assistants",{"_path":1603,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1604,"content":1610,"config":1614,"_id":1616,"_type":14,"title":1617,"_source":16,"_file":1618,"_stem":1619,"_extension":19},"/ja-jp/blog/gitlab-premium-with-duo",{"title":1605,"description":1606,"ogTitle":1605,"ogDescription":1606,"noIndex":6,"ogImage":1607,"ogUrl":1608,"ogSiteName":669,"ogType":670,"canonicalUrls":1608,"schema":1609},"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":1605,"description":1606,"authors":1611,"heroImage":1607,"date":1300,"body":1612,"category":705,"tags":1613,"updatedDate":1299},[1473],"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/)の抄訳です。内容に相違がある場合は、原文が優先されます。*",[9,703,682,706,705],{"slug":1615,"featured":91,"template":685},"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":1621,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1622,"content":1628,"config":1634,"_id":1636,"_type":14,"title":1637,"_source":16,"_file":1638,"_stem":1639,"_extension":19},"/ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code",{"title":1623,"description":1624,"ogTitle":1623,"ogDescription":1624,"noIndex":6,"ogImage":1625,"ogUrl":1626,"ogSiteName":669,"ogType":670,"canonicalUrls":1626,"schema":1627},"GitLab Duo開発の現場から： AI生成コードに対するセキュリティ確保と徹底的なテスト","GitLab DuoとGitLab Pages、コードサンプルとプロンプトを使用して、AI生成コードの信頼性とセキュリティを強化する方法をステップごとにご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097183/Blog/Hero%20Images/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25_7JlF3WlEkswGQbcTe8DOTB_1750097183481.png","https://about.gitlab.com/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo開発の現場から： AI生成コードに対するセキュリティ確保と徹底的なテスト\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David O'Regan\"}],\n        \"datePublished\": \"2024-05-30\",\n      }",{"title":1623,"description":1624,"authors":1629,"heroImage":1625,"date":1630,"body":1631,"category":10,"tags":1632,"updatedDate":1633},[875],"2024-05-30","___生成系AIは、ソフトウェアの開発、保護、運用を容易にし、ソフトウェア開発業界に重要な変化をもたらしています。この新しいブログシリーズでは、GitLabの製品チームとエンジニアリングチームが、必要なAI機能をエンタープライズ全体に統合し、どのように作成、テスト、デプロイするかをご紹介します。GitLab\nDuoの新機能によってDevSecOpsチームがお客様にどんな価値をもたらせるようになるか、見ていきましょう！___\n\n\nソフトウェア開発でAIがますます重要な役割を果たすようになる中、AI生成コードに対するセキュリティ確保や、徹底したテストの実施は極めて重要です。本記事では、AI機能を活用してDevSecOpsワークフローを強化できる[GitLab\nDuo](https://about.gitlab.com/gitlab-duo/)と、[GitLab\nPages](https://docs.gitlab.com/ee/user/project/pages/)を組み合わせて、AI生成コードを安全にテストする手順をステップごとに説明しています。一般的なリスクを軽減する方法や、テストの自動生成、コードのテスト、テストレポートのデプロイなどのプロセスについても取り上げます。これらはすべて、AI生成コードの信頼性を高めるためのアプローチです。\n\n\n> デモ動画公開！GitLab\n17バーチャルローンチイベントで、AI主導のソフトウェア開発の未来を体験しませんか？[今すぐ登録する](https://about.gitlab.com/ja-jp/seventeen/)\n\n\n## AI生成コードの課題\n\n\nAI生成コードは、次のような問題に頻繁に直面します。\n\n\n- アルゴリズムの不一致：不適切または最適化されていないアルゴリズムが生成される場合があります。\n\n- 依存関係の問題： AIが生成するコードには、古い依存関係や互換性のない依存関係が含まれている可能性があります。\n\n- セキュリティ上の脆弱性：AIは、セキュリティ上の欠陥を伴うコードを生成することがあります。\n\n\n上記のように、AI生成コードは、アルゴリズムの不一致、依存関係の問題、セキュリティの脆弱性などの問題によく直面します。プログラミング関連の質問に対するChatGPTの回答について、[Association\nof Computing\nMachinery（計算機協会）が発表した最近の研究](https://dl.acm.org/doi/pdf/10.1145/3613904.3642596)（外部サイト）では、回答の52%に誤った情報が含まれており、77%が過度に冗長であることがわかりました。これらの欠点があるにもかかわらず、ユーザーはChatGPTの包括的でよく構成された回答を35%の割合で好み、誤情報が含まれていても39%の割合でそれを見過ごしました。これらの課題に対処するには、高度なツールとフレームワークを使用する必要があります。\n\n\n## AIセキュリティとテストに対するGitLabのアプローチ\n\n\nGitLabでは、開発ワークフロー内にセキュリティ対策を組み込むことに焦点を当てた、包括的なコンテンツ戦略を採用しています。GitLab\nDuoを活用してAIによるコード生成を応用したり、GitLab\nPagesを利用してテストレポートを（ウェブサイトに）埋め込んだりすることで、デベロッパーはAI生成コードのセキュリティと信頼性を確保できます。\n\n\n以下は、GitLab DuoとGitLab Pagesを組み合わせて、[Flask\nwebサーバー](https://flask.palletsprojects.com/en/3.0.x/)（外部サイト）を実装することでAI生成コードを安全かつ徹底的にテストするための手順ガイドになります。\n\n\n#### 1. GitLab.comで新しいプロジェクトを作成する\n\n\n- [GitLab.com](http://GitLab.com)にアクセスします。\n\n- 「新しいプロジェクト」ボタンをクリックします。\n\n- 「空白のプロジェクトを作成」を選択します。\n\n- プロジェクト名を入力します（例：AI_CODE_SECURITY）。\n\n- 表示レベル（公開、内部、非公開）を設定します。\n\n- 「プロジェクトを作成」をクリックします。\n\n\n#### 2. GitLab Duoのコード提案を有効にする\n\n\n- プロジェクトに移動します。\n\n- 「Web IDE」ボタンをクリックしてWeb IDEを開きます。\n\n- GitLab Duoの機能（コード提案、Duoチャットなど）が有効になっていることを確認します。\n\n- [Web\nIDE](https://docs.gitlab.com/ee/user/project/web_ide/)でコーディングを開始します。入力する際に、GitLab\nDuoによるコード提案が表示され、より効率的なコーディングを支援してくれます。\n\n\n#### 3. Flask Webサーバーを作成する\n\n\n下のスクリーンショットのコメント（緑色のテキスト）を使用して、Flask Webサーバーを作成できます。\n\n\n![DGDテスト -\n画像1](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image4_aHR0cHM6_1750097192520.png)\n\n\n#### 4. GitLab Duoでテストを生成する\n\n\nユニットテストは、生成されたコードの機能を検証する上で不可欠です。GitLab Duoの` /tests`コマンドを使用して、直接[Web\nIDE内でテストの提案を生成](https://docs.gitlab.com/ee/user/gitlab_duo_chat_examples.html#write-tests-in-the-ide)します。このコマンドは、具体的な側面（パフォーマンス、リグレッション、特定のフレームワークの使用など）に焦点を当てるために、指示を追加してカスタマイズできます。\n\n\n##### Web IDEでの使用例：\n\n\n- テストを生成したいコードを選択します。\n\n- `/tests`コマンドを使用し、必要に応じて指示を追加します。\n\n\n![DGDテスト -\n画像2](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097192521.png)\n\n\n#### 5. GitLab Duoチャットを使用してAI生成コードの問題を特定する\n\n\nGitLab Duoチャットを使用して、AIが生成したコードのレビューと修正を行います。たとえば、Flask\nWebサーバーのコードにセキュリティ脆弱性がないか確認する場合は、以下のプロンプトを使用します。\n\n\n```unset\n\nプロンプト：このコードをレビューして、潜在的なセキュリティ脆弱性と依存関係の問題を検証してください。\n\n\n```\n\n\n![DGDテスト -\n画像3](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097192523.png)\n\n\nGitLab Duoチャットを使用することで、上記のコード内の脆弱性を特定しやすくなります。\n\n\n#### 6. テストレポートを生成する\n\n\nテストを実行した後、GitLab Pagesを使用してデプロイするテストレポートを生成します。\n\n\n```unset\n\n\nプロンプト：GitLab Pagesを使用してデプロイするテストレポートを生成するPythonスクリプトを作成してください。\n\n\n```\n\n\n![DGDテスト -\n画像4](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097192/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750097192525.png)\n\n\nここでの処理内容は以下のとおりです。\n\n\n- スクリプトは、test_reportsディレクトリが存在することを確認します。\n\n- `subprocess.run()`を使用して`test_server.py`ファイルを実行し、出力（テスト結果）をキャプチャします。\n\n- 出力のRAWデータを`test_reports/test_output.txt`に保存します。\n\n-\nテスト結果を読みやすいように`\u003Cpre>`タグ内に埋め込んだHTMLレポートを生成し、`test_reports/index.html`として保存します。\n\n\n#### 7. GitLab Pagesを使用してテストレポートをデプロイする\n\n\n[GitLab\nPages](https://docs.gitlab.com/ee/user/project/pages/)を使用し、テストレポートを公開します。テストレポートをデプロイするための`.gitlab-ci.yml`ファイルの構成は次のとおりです。\n\n\n```python\n\n\nstages:\n  - test\n  - deploy\ntest_job:\n  stage: test\n  script:\n    - python generate_test_report.py\n  artifacts:\n    paths:\n      - test_reports/\npages:\n  stage: deploy\n  script:\n    - mv test_reports public\n  artifacts:\n    paths:\n      - public\n\n ```\n\nこの構成では、`test_job`ステージでPythonスクリプトを実行してテストレポートを生成します。`pages`ステージでは、`test_reports`ディレクトリが`public`に移動され、GitLab\nPagesがそのコンテンツを提供するために使用されます。\n\n\n#### 8. MRウィジェットにテストレポートを埋め込む\n\n\n[MRウィジェットにテストレポート](https://docs.gitlab.com/ee/ci/testing/unit_test_reports.html)を埋め込むことで、テストの結果を即座に確認でき、透明性と信頼性を確保できます。これは、次のように、CI/CDパイプラインの構成にテストレポートをアーティファクトとして含めることで実現できます。\n\n\n```python\n\n\nstages:\n  - build\n  - test\n  - deploy\n\nbuild_job:\n  stage: build\n  script:\n    - echo \"Building the project...\"\n    - # Your build commands here\n\ntest_job:\n  stage: test\n  script:\n    - mkdir -p test-reports\n    - python test_server.py > test-reports/results.xml\n  artifacts:\n    when: always\n    reports:\n      junit: test-reports/results.xml\n    paths:\n      - test-reports/results.xml\n\npages:\n  stage: deploy\n  script:\n    - mkdir .public\n    - mv test-reports .public/\n  artifacts:\n    paths:\n      - .public\n\n```\n\nテストレポートをアーティファクトとして含め、レポートセクションに指定することで、GitLabによってテスト結果が自動的にMRウィジェットに表示されます。これにより、テストの結果が即座に確認でき、透明性と信頼性が向上します。\n\n\n#### ケーススタディ：セキュリティポリシーとスキャナーによるAIの信頼性\n\n\nAI生成コードのスニペットが、既知の脆弱性を持つ依存関係を取り込んだ状況を想定してみましょう。GitLab\nDuoとそのセキュリティポリシーを使用することで、この依存関係はコード生成プロセス中に検出されます。AIによって生成された以下のスニペットの例を見てみましょう。\n\n\n```python\n\n\nimport os\n\nfrom flask import Flask, request\n\n\napp = Flask(__name__)\n\n\n@app.route('/search')\n\ndef search():\n    query = request.args.get('query')\n    execute_os_command(query)\n    return 'You searched for: ' + query\n\ndef execute_os_command(command):\n    os.system(command)\n\nif __name__ == '__main__':\n    app.run()\n\n```\n\n\nこの例では、検索エンドポイントがOSコマンドインジェクションの脆弱性を持っています。GitLabの静的アプリケーションセキュリティテスト（[SAST](https://docs.gitlab.com/ee/user/application_security/sast/)）コンポーネントを活用することで、この脆弱性はCI/CDパイプライン中に検出されます。\n\n\n##### SASTスキャンを統合して脆弱性を検出する\n\n\nGitLab\nSASTは、自動的にコードを分析してセキュリティ脆弱性を検出します。以下は、`.gitlab-ci.yml`ファイルに統合して問題をスキャンする方法です。\n\n\n```python\n\n\nstages:\n  - build\n  - test\n  - sast\n  - deploy\n\nbuild_job:\n  stage: build\n  script:\n    - echo \"Building the project...\"\n    - # Your build commands here\n\ntest_job:\n  stage: test\n  script:\n    - python test_server.py > test-reports/results.xml\n  artifacts:\n    when: always\n    reports:\n      junit: test-reports/results.xml\n    paths:\n      - test-reports/results.xml\n\nsast_job:\n  stage: sast\n  script:\n    - echo \"Running SAST...\"\n  artifacts:\n    reports:\n      sast: gl-sast-report.json\n  only:\n    - branches\n\npages:\n  stage: deploy\n  script:\n    - mv test-reports public\n  artifacts:\n    paths:\n      - public\n\n```\n\n\nこの設定では、`sast_job`ステージがSASTを実行してコードの脆弱性を検出し、パイプラインアーティファクトに含まれるレポート（`gl-sast-report.json`）を生成します。GitLab\nDuoは、セキュリティポリシーと強力なテストフレームワークを統合することで、お客様がAI生成コードの効率性とセキュリティを確保することを支援します。\n\n\n## 始めてみよう\n\nソフトウェア開発におけるAIの統合は大きなメリットをもたらしますが、新たな課題も伴います。GitLab DuoやGitLab\nPagesのようなツールを使用することで、デベロッパーはAI生成コードを徹底的にテストし、そのセキュリティと信頼性を確保できます。まずはこれらのツールをお試しになり、AIセキュリティとテストの強化を検討してみませんか？\u003Cbr>\n\n\u003Cbr>\n\n\n*監修：川瀬 洋平 [@ykawase](https://gitlab.com/ykawase)\n\n（GitLab合同会社 カスタマーサクセス本部 シニアカスタマーサクセスマネージャー）*\n\n\n> 今すぐ[GitLab\nUltimateのトライアルを開始](https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/blog&glm_content=default-saas-trial)して、GitLab\nDuoとGitLab Pagesをご利用ください。\n\n\n## 「GitLab Duo開発の現場から」シリーズをもっと読む\n\n\n- [GitLab\nDuo開発の現場から：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\nDuo開発の現場から：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\nDuo開発の現場から：GitLabにおけるAI機能のドッグフーディングの取り組み](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-how-we-are-dogfooding-our-ai-features/)\n\n- [GitLab\nDuo開発の現場から：AIと根本原因分析を併用したCI/CDパイプラインの修正](https://about.gitlab.com/ja-jp/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/)\n",[9,680,708,681],"2024-10-10",{"slug":1635,"featured":6,"template":685},"how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code","content:ja-jp:blog:how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","How Gitlab Duo Helps Secure And Thoroughly Test Ai Generated Code","ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code.yml","ja-jp/blog/how-gitlab-duo-helps-secure-and-thoroughly-test-ai-generated-code",{"_path":1641,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1642,"content":1648,"config":1655,"_id":1657,"_type":14,"title":1658,"_source":16,"_file":1659,"_stem":1660,"_extension":19},"/ja-jp/blog/introducing-the-source-insights-for-the-future-of-software-development",{"title":1643,"description":1644,"ogTitle":1643,"ogDescription":1644,"noIndex":6,"ogImage":1645,"ogUrl":1646,"ogSiteName":669,"ogType":670,"canonicalUrls":1646,"schema":1647},"The Sourceの紹介: ソフトウェア開発の未来への洞察","The Sourceでは、革新的なソフトウェア開発戦略や、新たなテクノロジーに関する専門的なアドバイスを記事にして掲載します。ぜひご覧ください。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749674616/Blog/Hero%20Images/blog-image-template-1800x945__1_.png","https://about.gitlab.com/blog/introducing-the-source-insights-for-the-future-of-software-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"The Sourceの紹介: ソフトウェア開発の未来への洞察\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Chandler Gibbons\"}],\n        \"datePublished\": \"2024-10-29\",\n      }",{"title":1643,"description":1644,"authors":1649,"heroImage":1645,"date":1651,"body":1652,"category":682,"tags":1653,"updatedDate":1654},[1650],"Chandler Gibbons","2024-10-29","最新のソフトウェア開発は、組織がビジネス価値を創造、提供、拡大する方法を変革しています。チームは、増大するセキュリティの脅威、新たなテクノロジー、ますます複雑化するコンプライアンスへの要求に対応しながら、迅速かつ効率的にソリューションを構築しなければなりません。 そこでGitLabは新たに、ビジネスの成功の実現に向けたソフトウェア開発の進化を取り上げる[『The Source』](https://about.gitlab.com/the-source/)をスタートし、GitLabの専門家やソートリーダー（その分野をけん引する第一人者のこと）による独自のリサーチや分析に裏打ちされた、ソフトウェア開発の未来に関する洞察を定期的にお届けします。『The Source』では、次のような疑問にお答えするコンテンツを提供します。\n\n* リーダーはソフトウェア開発ライフサイクル全体でAIの投資対効果（ROI）をどのように測定できるか？\n* ソフトウェアのサプライチェーン全体でセキュリティとコンプライアンスを確保する最適な方法とは？\n* プラットフォームやツールチェーンを統合することで、チームにおいてどのような効率化を実現できるか？\n\n現時点で『The Source』で取り上げている内容の一部を抜粋してご紹介します。\n\n**AIがもたらす影響を測定する4つのステップ**\n\n「AIにより強化されたコーディングの生産性を評価するには、コード行数やコードコミット数、タスク完了数といった従来のメトリクスよりも、より繊細なアプローチが必要となります。そのためには、開発速度、ソフトウェア品質、セキュリティのバランスを考慮した実際のビジネス成果に焦点を移す必要があります。」\n- [AIの専門家Taylor McCaslinがご紹介する4つのステップ](https://about.gitlab.com/the-source/ai/4-steps-for-measuring-the-impact-of-ai/)\n\n**一般的なセキュリティに関する不満の根本原因に対処するには**\n\n「DevSecOpsはエンジニアリングチームとセキュリティチーム間の連携の強化を保証するものですが、不満や食い違いがチーム間の溝として存在することも確かです。このような課題は、組織のセキュリティに対する考え方やチームの連携方法、セキュリティに割く時間の配分といった、より大きな問題の兆しとして発生しています。」\n- [GitLabの最高情報セキュリティ責任者Josh Lemosの力を借りて、チーム間の溝を解消する](https://about.gitlab.com/the-source/security/security-its-more-than-culture-addressing-the-root-cause-of-common-security/)\n\n**プラットフォームエンジニアリングでビジネス成果を推進する**\n\n「プラットフォームエンジニアリングの目的は、デベロッパーのワークフローを正常化・標準化することです。これは、大部分の作業に対しては最適化された「Golden Path」を提供し、残りの作業に対しては、例外的なケースを定義できるような柔軟性を持たせることで実現できます。」\n- [GitLabフィールド最高技術責任者Brian Waldによる、プラットフォームエンジニアリングを成功させるためのベストプラクティス](https://about.gitlab.com/the-source/platform/driving-business-results-with-platform-engineering/)\n\n## 『The Source』を意思決定の際の必読書に\n\n今すぐ[『The Source』](https://about.gitlab.com/the-source/)にアクセスし、最新の洞察や組織運営に関する疑問への答えを入手し、新たに学んだことをチームと共有しましょう。また、ニュースレターをご購読いただくと、定期的に最新情報をお届けします。先進的なテクノロジーリーダーが集うコミュニティに参加して、ともにソフトウェア開発の未来を形作りましょう。",[9,681,682,680],"2025-03-28",{"slug":1656,"featured":91,"template":685},"introducing-the-source-insights-for-the-future-of-software-development","content:ja-jp:blog:introducing-the-source-insights-for-the-future-of-software-development.yml","Introducing The Source Insights For The Future Of Software Development","ja-jp/blog/introducing-the-source-insights-for-the-future-of-software-development.yml","ja-jp/blog/introducing-the-source-insights-for-the-future-of-software-development",{"_path":1662,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1663,"content":1669,"config":1676,"_id":1678,"_type":14,"title":1679,"_source":16,"_file":1680,"_stem":1681,"_extension":19},"/ja-jp/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions",{"title":1664,"description":1665,"ogTitle":1664,"ogDescription":1665,"noIndex":6,"ogImage":1666,"ogUrl":1667,"ogSiteName":669,"ogType":670,"canonicalUrls":1667,"schema":1668},"AIを活用して学ぶ、Rustの高度なプログラミング","このガイド付きチュートリアルでは、AIを搭載したGitLab Duoのコード提案を活用しながら、Rustの高度なプログラミングを学ぶことができます。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662439/Blog/Hero%20Images/codewithheart.png","https://about.gitlab.com/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AIを活用して学ぶ、Rustの高度なプログラミング\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2023-10-12\",\n      }",{"title":1664,"description":1665,"authors":1670,"heroImage":1666,"date":1671,"body":1672,"category":10,"tags":1673,"updatedDate":1675},[919],"2023-10-12","20年以上前に新しいプログラミング言語を学び始めたとき、私たちは6枚のCD-ROMからインストールしたVisual Studio\n6のMSDNライブラリにアクセスしていました。ペンと紙でアルゴリズムを記録し、設計パターンの本を読み漁り、MSDNで正しい型を調べていましたが、こうした作業に時間がかかることが多々ありました。しかし、リモートコラボレーションや人工知能（AI）の時代が到来し、プログラミング言語の学び方は根本的に変わりました。今では[リモート開発環境](https://about.gitlab.com/blog/quick-start-guide-for-gitlab-workspaces/)をすばやく立ち上げて画面を共有し、グループでのプログラミングセッションを行えるようになりました。[GitLab\nDuoのコード提案](https://about.gitlab.com/ja-jp/gitlab-duo/)を使用すれば、AIというインテリジェントなパートナーにいつでも頼ることができます。コード提案機能は、ユーザーのプログラミングのスタイルと経験に基づいて学習します。この機能は、インプットとコンテキストさえあれば、最も効率的な提案を提供してくれるのです。\n\n\nこのチュートリアルでは、[入門編のブログ記事](/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/)（英語）からさらに一歩踏み込み、シンプルなフィードリーダーアプリケーションの設計と作成に取り組みます。\n\n\n- 準備\n    - コード提案\n- Rustの学習の継続\n    - 「Hello, Reader!」アプリ\n    - プロジェクトの初期化\n    - RSSフィードURLの定義\n- モジュール\n    - main() 関数によるモジュール関数の呼び出し\n- クレート\n    - feed-rs：XMLフィードの解析\n- ランタイム設定：プログラム引数\n    - ユーザー入力のエラーハンドリング\n- 永続性とデータ保存\n\n- 最適化\n    - 非同期実行\n    - スレッドの生成\n    - 関数スコープ、スレッド、クロージャ\n- フィードのXMLの解析およびオブジェクト型への変換\n    - 汎用的なフィードデータ型のマッピング\n    - Option::unwrap()によるエラーハンドリング\n- ベンチマーク\n    - 逐次実行と並列実行のベンチマークの比較\n    - Rustのキャッシュを使用したCI/CD\n- 次のステップ\n    - 非同期学習の演習\n    - フィードバックの共有\n\n## 準備\n\nソースコードを参照する前に、[VS\nCode](/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/#vs-code)と[Rustの開発環境](/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/#development-environment-for-rust)をセットアップしてください。\n\n\n### コード提案\n\n実際に提案機能を検証する前に、まずはこの機能の使い方を理解しましょう。GitLab\nDuoのコード提案は、特定のキーボードショートカットを必要とせず、キーを入力するだけで使用できます。たとえば、コード提案を受け入れるには、`Tab`\nキーを押します。また、新しく作成したコードの方が、既存のコードをリファクタリングしたものよりもエラー発生率が低くなる点も覚えておきましょう。AIは非決定的であるため、一度削除したコード提案は再び同じ形で提示されない可能性があります。コード提案は現在ベータ版であり、GitLabは、同機能が生成するコンテンツの全体的な精度向上に取り組んでいます。\n\n\n**ヒント**：コード提案の最新リリースでは、複数行の指示文に対応しています。ニーズに合わせて指示文を調整することで、よりよい提案を得ることができます。\n\n\n```rust\n    // Create a function that iterates over the source array\n    // and fetches the data using HTTP from the RSS feed items.\n    // Store the results in a new hash map.\n    // Print the hash map to the terminal.\n```\n\n\nVS Code拡張機能のオーバーレイは、提案を提示する際に表示されます。提案された行を受け入れるには `Tab` キーを使用し、一単語だけ受け入れるには\n`Cmd + 右カーソル` キーを使用します。さらに、三点リーダーメニューからツールバーを常に表示するオプションを選択することも可能です。\n\n\n![VS CodeにおけるGitLab\nDuoの指示文とコード提案のオーバーレイ](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_code_suggestions_options_overlay_keep_toolbar.png){:\n.shadow}\n\n\n## Rustの学習の継続\n\nでは、引き続きRustについて学んでいきましょう。Rustは[コード提案でサポートされている言語](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/)のひとつです。[Rust\nby\nExample](https://doc.rust-lang.org/rust-by-example/)（英語）では、初心者に最適なチュートリアルが提供されており、公式の[Rust\nBook](https://doc.rust-lang.org/book/)（英語）を確認しながら進めると効果的です。どちらのリソースもこのブログの執筆の際に参考にしています。\n\n\n### 「Hello, Reader!」アプリ\n\nアプリケーションの作成やRustの学習には、さまざまなアプローチがあります。その中には、既存のRustライブラリ、いわゆる `Crates`\nを利用するものがあり、このブログ記事の後半でも使用します。たとえば、画像を処理して、その結果をファイルに書き込むコマンドラインアプリを作成することができます。また、昔ながらの迷路をクリアしたり、数独を解いたりするアプリケーションを作成するのも楽しいでしょうし、ゲーム開発を行うこともできます。たとえば、[Hands-on\nRust](https://hands-on-rust.com/)（英語）というガイドブックでは、ダンジョンクローラー（迷宮探検）ゲームを作りながら、Rustを体系的に学習できるコースを提供しています。筆者の同僚であるFatima\nSarah Khalidは、[AIを活用してC++でDragon\nRealmの制作](/blog/building-a-text-adventure-using-cplusplus-and-code-suggestions/)（英語）を始めたそうです。ぜひそちらもご覧ください。\n\n\nここで、実際の問題を解決するのに役立つ実用的なユースケースをひとつご紹介します。それは、異なるソースから重要な情報をRSSフィードに集約するというものです。RSSフィードには、セキュリティリリース、ブログ記事、およびソーシャルディスカッションフォーラム（Hacker\nNewsなど）の最新情報が含まれます。アップデートに含まれる特定のキーワードやバージョンを絞り込んで検索したいと考えることがよくあります。こうしたニーズを基に、アプリケーションの要件をリスト化できます。具体的には、次のような要件です。\n\n\n1. HTTPウェブサイト、REST API、RSSフィードなどの異なるソースからデータをフェッチ（取得）する（最初の段階ではRSSフィードを使用）。\n\n1. データを解析する。\n\n1. データをユーザーに提示する、またはディスクに書き込む。\n\n1. パフォーマンスを最適化する。\n\n\nこのブログ記事の学習ステップを完了すると、以下のサンプルアプリケーションの出力が得られます。\n\n\n![VS Codeのターミナルでのcargo\nrunの実行と、形成されたフィードエントリの出力](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_cargo_run_formatted_output_final.png)\n\n\nアプリケーションはモジュール化されている必要があり、また、将来的にデータ型やフィルター、アクションをトリガーするフックを追加できる基盤も整えておく必要があります。\n\n\n### プロジェクトの初期化\n\nリマインダー：`cargo init` をプロジェクトのルートディレクトリで実行すると、 `main ()`\nエントリポイントを含んだファイル構造が作成されます。これを踏まえ、次のステップでは、Rustのモジュールの作成と使用方法を学びます。\n\n\n`learn-rust-ai-app-reader` という名前のディレクトリを新規作成し、そのディレクトリに移動したら、`cargo init`\nを実行します。このコマンドは、暗黙的に `git init`\nを実行し、新しいGitリポジトリをローカルで初期化します。残りのステップでは、Gitリモートリポジトリのパスを設定していきます。たとえば、`https://gitlab.com/gitlab-de/use-cases/ai/learn-with-ai/learn-rust-ai-app-reader`\nのように設定します（ご自身のネームスペースに合わせてパスを置き換えてください）。[Gitリポジトリをプッシュ](https://about.gitlab.com/ja-jp/blog/mastering-the-basics-of-git-push-tag/)すると、[GitLabで新しいプロジェクトが自動的に作成](https://docs.gitlab.com/ee/user/project/#create-a-new-project-with-git-push)されます。\n\n\n```shell\n\nmkdir learn-rust-ai-app-reader\n\ncd learn-rust-ai-app-reader\n\n\ncargo init\n\n\ngit remote add origin\nhttps://gitlab.com/gitlab-de/use-cases/ai/learn-with-ai/learn-rust-ai-app-reader.git\n\ngit push --set-upstream origin main\n\n```\n\n\n新しく作成されたディレクトリからVS Codeを開きます。`code` コマンドラインインターフェース（CLI）によって、macOS上で新しいVS\nCodeのウィンドウが起動します。\n\n\n```shell\n\ncode .\n\n```\n\n\n### RSSフィードURLの定義\n\n新しいHashMapを追加して、`src/main.rs` ファイル内の `main()`\n関数にRSSフィードのURLを保存します。複数行の指示コメントを入力することで、GitLab\nDuoのコード提案に対し、[`HashMap`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html)\nオブジェクトを作成して、Hacker\nNewsやTechCrunchのデフォルト値で初期化するよう指示できます。注：提案に含まれるURLが正しいことを確認してください。\n\n\n```rust\n\nfn main() {##$_0A$##    // Define RSS feed URLs in the variable\nrss_feeds##$_0A$##    // Use a HashMap##$_0A$##    // Add Hacker News and\nTechCrunch##$_0A$##    // Ensure to use String as type##$_0A$####$_0A$##}\n\n```\n\n\nコードコメントでは以下の点を指示しています。\n\n\n1. 変数名 `rss_feeds`\n\n2. `HashMap` タイプ\n\n3. 3. 初期のseedキー/バリューペア\n\n4. String 型（`to_string ()` 呼び出しで確認可能）\n\n\n考えられるコードの例は次の通りです。\n\n\n```rust\n\nuse std::collections::HashMap;\n\n\nfn main() {##$_0A$##    // Define RSS feed URLs in the variable\nrss_feeds##$_0A$##    // Use a HashMap##$_0A$##    // Add Hacker News and\nTechCrunch##$_0A$##    // Ensure to use String as type##$_0A$##    let\nrss_feeds = HashMap::from([##$_0A$##        (\"Hacker News\".to_string(),\n\"https://news.ycombinator.com/rss\".to_string()),##$_0A$##       \n(\"TechCrunch\".to_string(),\n\"https://techcrunch.com/feed/\".to_string()),##$_0A$##   \n]);##$_0A$####$_0A$##}\n\n```\n\n\n![VS Codeにおける、コード提案を活用したHacker\nNewsとTechCrunchのRSSフィードURLの提案](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_main_array_rss_feed_urls_suggested.png)\n\n\nVS Codeで新しいターミナルを開き（cmd + shift + p で `terminal` を検索）、`cargo build`\nを実行して変更をビルドします。エラーメッセージが表示され、`use std::collections::HashMap;`\nのインポートを追加するよう指示されます。\n\n\n次のステップでは、RSSフィードのURLを使用して操作を行います。[以前のブログ記事](/blog/learning-rust-with-a-little-help-from-ai-code-suggestions-getting-started/)（英語）では、コードを関数に分割する方法を解説しました。今回は、リーダーアプリケーションのコードをよりモジュール化して整理し、Rustのモジュールを使用します。\n\n\n## モジュール\n\n[モジュール](https://doc.rust-lang.org/rust-by-example/mod.html)は、\nコードの整理に役立ちます。また、関数をモジュールのスコープ内に隠し、main()スコープからのアクセスを制限することも可能です。リーダーアプリケーションでは、RSSフィードのコンテンツを取得し、XMLレスポンスを解析したいため、`main()`\nからは、`get_feeds()` 関数のみにアクセスできるようにし、それ以外の機能はモジュール内のみで使用できるように制限します。\n\n\n`src/` ディレクトリに `feed_reader.rs` という名前の新しいファイルを作成します。コード提案に、`feed_reader`\nという名前の公開モジュールと、String HashMapをインプットとして受け取る `get_feeds()`\nという公開関数を作成するよう指示します。重要：[Rustのモジュール構造](https://doc.rust-lang.org/book/ch07-02-defining-modules-to-control-scope-and-privacy.html)に従って、ファイル名とモジュール名を同じにする必要があります。\n\n\n![コード提案：関数と入力型を使った公開モジュールの作成](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_public_module_function_input.png){:\n.shadow}\n\n\nコード提案に入力変数名と型を指定すると、必要な `std::collections::HashMap`\nモジュールが自動的にインポートされます。ヒント：最適な結果を得られるよう、コメントを使って変数の型を調整してみましょう。また、Rustでは関数のパラメータをオブジェクト参照として渡すのがベストプラクティスとされています。以下に例を示します。\n\n\n```rust\n\n// Create public module feed_reader\n\n// Define get_feeds() function which takes rss_feeds as String HashMap\nreference as input\n\npub mod feed_reader {##$_0A$##    use\nstd::collections::HashMap;##$_0A$####$_0A$##    pub fn get_feeds(rss_feeds:\n&HashMap\u003CString, String>) {##$_0A$##        // Do something with the RSS\nfeeds##$_0A$##    }##$_0A$##}\n\n```\n\n\n![コード提案：`get_feeds()`\n関数と提案された入力変数を含む公開モジュール](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_public_module_function_input.png){:\n.shadow}\n\n\n関数内では、コード提案に以下の手順を指示します。\n\n\n1. `// Iterate over the RSS feed URLs` （RSSフィードURLを反復処理する）\n\n2. `// Fetch URL content` （URLコンテンツを取得する）\n\n3. `// Parse XML body` （XMLの本文を解析する）\n\n4. `// Print the result`  (結果を出力する)\n\n\n![コード提案：`get_feeds()`\n関数を含む公開モジュール、ステップ1：イテレート](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_module_function_01_iterate.png){:\n.shadow}\n\n\n![コード提案：`get_feeds()`\n関数を含む公開モジュール、ステップ2：URLコンテンツの取得](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_module_function_02_fetch_content.png){:\n.shadow}\n\n\n![コード提案：`get_feeds()`\n関数を含む公開モジュール、ステップ3：XML本文の解析](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_module_function_03_parse_body.png){:\n.shadow}\n\n\n![コード提案：`get_feeds()`\n関数を含む公開モジュール、ステップ4：結果の出力](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_module_function_04_print_result.png){:\n.shadow}\n\n\n次のコードが提案されます。\n\n\n```rust\n\n// Create public module feed_reader\n\n// Define get_feeds() function which takes rss_feeds as String HashMap\nreference as input\n\npub mod feed_reader {##$_0A$##    use\nstd::collections::HashMap;##$_0A$####$_0A$##    pub fn get_feeds(rss_feeds:\n&HashMap\u003CString, String>) {##$_0A$##        // Iterate over the RSS feed\nURLs##$_0A$##        for (name, url) in rss_feeds {##$_0A$##           \nprintln!(\"{}: {}\", name, url);##$_0A$####$_0A$##            // Fetch URL\ncontent##$_0A$##            let body =\nreqwest::blocking::get(url).unwrap().text().unwrap();##$_0A$####$_0A$##           \n// Parse XML body##$_0A$##            let parsed_body =\nroxmltree::Document::parse(&body).unwrap();##$_0A$####$_0A$##            //\nPrint the result##$_0A$##            println!(\"{:#?}\",\nparsed_body);##$_0A$##        }##$_0A$##    }##$_0A$##}\n\n```\n\n\nここで新しいキーワード\n[`unwrap()`](https://doc.rust-lang.org/rust-by-example/error/option_unwrap.html)が登場します。Rustは\n`null` 値をサポートしておらず、すべての値に対して [`Option`\n型](https://doc.rust-lang.org/rust-by-example/std/option.html)を使用します。たとえば、`Text`\nや `String` といった特定のラップされた型を使用することが確定している場合、`unwrap()`\nメソッドを呼び出してその値を取得できます。ただし、値が `None` の場合、`unwrap()` メソッドはパニックを起こします。\n\n\n**注意**：コード提案は、`// Fetch URL content` のコメント指示に従って、`reqwest::blocking::get`\n関数を参照します。[`reqwest`](https://docs.rs/reqwest/latest/reqwest/)というクレーと名は意図的なものであり、タイポではありません。非同期リクエストとブロッキングリクエストの処理に役立つ、優れた利便性と高レベルのHTTPクライアントの機能を提供します。\n\n\nXMLの本文の解析は難しく、異なる結果が得られることがあります。また、スキーマはRSSフィードURLごとに異なる可能性があります。まずは\n`get_feeds()` 関数を呼び出し、その後でコードの改善に取り組みましょう。\n\n\n### main() 関数によるモジュール関数の呼び出し\n\n\n現在、main() 関数は `get_feeds()`\n関数を認識していないため、まずそのモジュールをインポートする必要があります。他のプログラミング言語では `include` や `import`\nといったキーワードを目にすることがありますが、Rustのモジュールシステムは異なります。\n\n\nモジュールはパスディレクトリに整理されます。今回の例では、両方のソースファイルが同じディレクトリレベルに存在しています。`feed_reader.rs`\nはクレートとして解釈され、その中に `feed_reader` というモジュールがあり、そのモジュールが `get_feeds()`\n関数を定義しています。\n\n\n```\n\nsrc/\n  main.rs\n  feed_reader.rs\n```\n\n\n`feed_reader.rs` ファイルの `get_feeds()` 関数にアクセスするためには、まず `main.rs`\nのスコープに[モジュールパスを取り込み](https://doc.rust-lang.org/book/ch07-04-bringing-paths-into-scope-with-the-use-keyword.html)、その後フルパスで関数を呼び出します。\n\n\n```rust\n\nmod feed_reader;\n\n\nfn main() {\n\n    feed_reader::feed_reader::get_feeds(&rss_feeds);\n\n```\n\n\nあるいは、`use` キーワードを使って関数のフルパスをインポートし、その後短い関数名で呼び出すこともできます。\n\n\n```rust\n\nmod feed_reader;\n\nuse feed_reader::feed_reader::get_feeds;\n\n\nfn main() {\n\n    get_feeds(&rss_feeds);\n\n```\n\n\n**ヒント**：Rustのモジュールシステムを視覚的によりよく理解するために、[Rustモジュールシステムについてわかりやすく説明したブログ記事](https://www.sheshbabu.com/posts/rust-module-system/)（英語）をお読みください。\n\n\n```diff\n\n\nfn main() {\n    // ...\n\n    // Print feed_reader get_feeds() output\n    println!(\"{}\", feed_reader::get_feeds(&rss_feeds));\n```\n\n\n```rust\n\nuse std::collections::HashMap;\n\n\nmod feed_reader;\n\n// Alternative: Import full function path\n\n//use feed_reader::feed_reader::get_feeds;\n\n\nfn main() {##$_0A$##    // Define RSS feed URLs in the variable\nrss_feeds##$_0A$##    // Use a HashMap##$_0A$##    // Add Hacker News and\nTechCrunch##$_0A$##    // Ensure to use String as type##$_0A$##    let\nrss_feeds = HashMap::from([##$_0A$##        (\"Hacker News\".to_string(),\n\"https://news.ycombinator.com/rss\".to_string()),##$_0A$##       \n(\"TechCrunch\".to_string(),\n\"https://techcrunch.com/feed/\".to_string()),##$_0A$##   \n]);##$_0A$####$_0A$##    // Call get_feeds() from feed_reader\nmodule##$_0A$##   \nfeed_reader::feed_reader::get_feeds(&rss_feeds);##$_0A$##    // Alternative:\nImported full path, use short path here.##$_0A$##   \n//get_feeds(&rss_feeds);##$_0A$##}\n\n```\n\n\nターミナルで `cargo build` を再実行しコードをビルドします。\n\n\n```shell\n\ncargo build\n\n```\n\n\n以下は、HTTPリクエストやXML解析に関する一般的なコードを参照した際に発生する可能性のあるビルドエラーの例です。\n\n\n1. エラー： `could not find blocking in reqwest`\n\n解決策：`Config.toml` ファイルで `reqwest` クレートの `blocking` 機能を有効にします（`reqwest = {\nversion = \"0.11.20\", features = [\"blocking\"] }`）\n\n2. エラー：`failed to resolve: use of undeclared crate or module reqwest`\n\n解決策：`reqwest` クレートを追加します\n\n3. エラー：`failed to resolve: use of undeclared crate or module roxmltree`\n\n解決策：`roxmltree` クレートを追加します\n\n\n```shell\n\nvim Config.toml\n\n\nreqwest = { version = \"0.11.20\", features = [\"blocking\"] }\n\n```\n\n\n```shell\n\ncargo add reqwest\n\ncargo add roxmltree\n\n```\n\n\n**ヒント**：エラーメッセージの文字列を `Rust \u003Cerror message>`\nとしてブラウザで検索し、欠落しているクレートが利用可能であるかどうか確認しましょう。通常、検索結果に「crates.io」が表示され、そこから不足している依存関係を追加できます。\n\n\nビルドが成功したら、`cargo run` でコードを実行し、Hacker NewsのRSSフィードの出力を確認します。\n\n\n![VS Codeのターミナルでcargo runを実行して、Hacker\nNewsのXMLフィードを取得](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_fetch_rss_feed_output_hacker_news.png){:\n.shadow}\n\n\nXML本文を人間が読める形式に解析するにはどうすればいいでしょうか？次のセクションでは、既存の解決策とRustのクレートがどのように機能するかを説明します。\n\n\n## クレート\n\nRSSフィードは共通のプロトコルと仕様に基づいており、XMLを解析して下位のオブジェクト構造を理解するのは、例えば車輪のように、すでに存在しているものを再び深く掘り下げて再発明するかのようです。。こういったタスクに対するおすすめのアプローチは、過去に同じ問題に直面した人がいないか、また、その問題を解決するためのコードがすでに作られていないかを調べることです。\n\n\nRustでの再利用可能なライブラリコードは\n[`Crates`](https://doc.rust-lang.org/rust-by-example/crates.html)と呼ばれる単位で整理され、パッケージで提供されます。これらはcrates.ioのパッケージレジストリで利用可能です。これらの依存関係をプロジェクトに追加するには、`Config.toml`\nファイルの `[dependencies]` セクションを編集するか、`cargo add \u003Cname>` コマンドを使用します。\n\n\nリーダーアプリケーションでは、[feed-rs\nクレート](https://crates.io/crates/feed-rs)を使用したいため、新しいターミナルを開き、次のコマンドを実行してください。\n\n\n```shell\n\ncargo add feed-rs\n\n```\n\n\n![VS\nCodeのターミナル：クレートを追加し、Config.tomlで確認](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_rust_crate_add_feed-rs_explained.png)\n\n\n### feed-rs：XMLフィードの解析\n\n`src/feed_reader.rs` に移動し、XML本文を解析する部分に対して修正を加えます。コード提案は、`feed-rs` クレートの\n`parser::parse` 関数をどのように呼び出すか理解していますが、ひとつだけ特別な点があります。`feed-rs`\nは文字列をrawバイトとして入力し、自らエンコーディングを判断します。ただし、コメントに指示を追加することで、期待の結果を得ることは可能です。\n\n\n```rust\n            // Parse XML body with feed_rs parser, input in bytes\n            let parsed_body = feed_rs::parser::parse(body.as_bytes()).unwrap();\n```\n\n\n![コード提案：`get_feeds()`\n関数を含む公開モジュール、ステップ5：XMLパーサーをfeed-rsに変更](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_module_function_05_use_feed_rs_to_parse.png){:\n.shadow}\n\n\n`feed-rs` を使用するメリットは即座に可視化できるものでなく、`cargo run`\nで出力を確認するとその効果が明らかになります。すべてのキーと値がそれぞれのRustオブジェクト型にマッピングされ、さらに高度な処理に利用できるようになります。\n\n\n![VS Codeのターミナル、cargo runを実行してHacker\nNewsのXMLフィードを取得](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_fetch_rss_feed_output_hacker_news_feed_rs.png){:\n.shadow}\n\n\n## ランタイム設定：プログラム引数\n\nここまで、コンパイル時にバイナリに埋め込まれ、ハードコードされたRSSフィードの値を使用してプログラムを実行してきました。次のステップでは、実行時にRSSフィードを設定できるようにします。\n\n\nRustでは、標準miscライブラリに[プログラム引数](https://doc.rust-lang.org/rust-by-example/std_misc/arg.html)を処理するための機能が用意されています。[プログラム引数を解析](https://doc.rust-lang.org/rust-by-example/std_misc/arg/matching.html)することで、高度なプログラム引数パーサー（たとえば[clap](https://docs.rs/clap/latest/clap/)クレート）を使用したり、プログラムパラメータを構成ファイルやフォーマット（[TOML](https://toml.io/en/)やYAML）に移したりするよりも、簡単かつ効率的に学習を進めることができます。実際にいくつかの方法を試した結果、学習効果を最大限に高めるには、この方法が最適であると判断しましたが、唯一の方法ではありません。他の方法でRSSフィードの設定を試してみる価値もあります。\n\n\n単純な解決策としては、コマンドパラメータを `\"name,url\"` の文字列ペアとして渡してから、`,`\nで分割して名前とURLの値を抽出します。コード提案に、これらの操作を実行して新しい値で `rss_feeds`\nハッシュマップを拡張するようコメントで指示します。変数が変更可能でない可能性があるため、`let rss_feeds` を `let mut\nrss_feeds` に変更する必要がある点にご注意ください。\n\n\n`src/main.rs` に移動し、`rss_feeds` 変数の後に次のコードを `main()`\n関数の追加します。まずはコメントでプログラム引数を定義し、提案されたコードスニペットを確認します。\n\n\n```rust\n    // Program args, format \"name,url\"\n    // Split value by , into name, url and add to rss_feeds\n```\n\n\n![プログラム引数に関するコード提案、および rss_feeds\n変数のために名前とURLの値を分割するコード提案](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_program_args_boring_solution.png){:\n.shadow}\n\n\nコード全体の例は次のようになります。\n\n\n```rust\n\nfn main() {##$_0A$##    // Define RSS feed URLs in the variable\nrss_feeds##$_0A$##    // Use a HashMap##$_0A$##    // Add Hacker News and\nTechCrunch##$_0A$##    // Ensure to use String as type##$_0A$##    let mut\nrss_feeds = HashMap::from([##$_0A$##        (\"Hacker News\".to_string(),\n\"https://news.ycombinator.com/rss\".to_string()),##$_0A$##       \n(\"TechCrunch\".to_string(),\n\"https://techcrunch.com/feed/\".to_string()),##$_0A$##   \n]);##$_0A$####$_0A$##    // Program args, format \"name,url\"##$_0A$##    //\nSplit value by , into name, url and add to rss_feeds##$_0A$##    for arg in\nstd::env::args().skip(1) {##$_0A$##        let mut split =\narg.split(\",\");##$_0A$##        let name =\nsplit.next().unwrap();##$_0A$##        let url =\nsplit.next().unwrap();##$_0A$##        rss_feeds.insert(name.to_string(),\nurl.to_string());##$_0A$##    }##$_0A$####$_0A$##    // Call get_feeds()\nfrom feed_reader module##$_0A$##   \nfeed_reader::feed_reader::get_feeds(&rss_feeds);##$_0A$##    // Alternative:\nImported full path, use short path here.##$_0A$##   \n//get_feeds(&rss_feeds);##$_0A$##}\n\n```\n\n\nプログラムの引数を `cargo run` コマンドに直接渡すことができます。その際は引数の前に `--`をつけます。\nすべての引数をダブルクォートで囲み、名前の後にカンマを付けてRSSフィードのURLを引数として渡します。引数は空白で区切ります。\n\n\n```\n\ncargo build\n\n\ncargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n```\n\n\n![VS\nCodeターミナル、GitLabブログのRSSフィード出力例](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_gitlab_blog_rss_feed_example.png){:\n.shadow}\n\n\n### ユーザー入力のエラーハンドリング\n\n提供されたユーザー入力がプログラムで想定される内容と異なる場合、[エラーを発生](https://doc.rust-lang.org/rust-by-example/error.html)させ、呼び出し元がプログラム引数を修正できるようにする必要があります。たとえば、不正なURL形式が渡された場合、それをランタイムエラーとして処理する必要があります。コード提案に対し、URLが無効な場合はエラーをスローするようコメントで指示します。\n\n\n```rust\n    // Ensure that URL contains a valid format, otherwise throw an error\n```\n\n\nひとつの解決策として、`url` 変数が `http://` または `https://` で始まっているかを確認し、そうでなければ [panic!\nマクロ](https://doc.rust-lang.org/rust-by-example/std/panic.html)を使ってエラーをスローする方法があります。コード全体の例は次のようになります。\n\n\n```rust\n    // Program args, format \"name,url\"\n    // Split value by , into name, url and add to rss_feeds\n    for arg in std::env::args().skip(1) {\n        let mut split = arg.split(\",\");\n        let name = split.next().unwrap();\n        let url = split.next().unwrap();\n\n        // Ensure that URL contains a valid format, otherwise throw an error\n        if !url.starts_with(\"http://\") && !url.starts_with(\"https://\") {\n            panic!(\"Invalid URL format: {}\", url);\n        }\n\n        rss_feeds.insert(name.to_string(), url.to_string());\n    }\n```\n\n\n任意のURL文字列から `:` を削除してエラーハンドリングをテストします。`RUST_BACKTRACE=full`\n環境変数を追加すると、`panic()` 呼び出しが発生した際に詳細な出力を取得できます。\n\n\n```\n\nRUST_BACKTRACE=full cargo run -- \"GitLab\nBlog,https://about.gitlab.com/atom.xml\" \"CNCF,https//www.cncf.io/feed/\"\n\n```\n\n\n![間違ったURL形式によるパニックエラーのバックトレースが表示されたVS\nCodeターミナル](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_url_format_error_panic_backtrace.png){:\n.shadow}\n\n\n## 永続性とデータ保存\n\nフィードデータを保存する単純な解決策は、解析されたデータを新しいファイルに書き出すことです。コード提案に、RSSフィードの名前と現在のISO日付を含むパターンでファイルを保存するよう指示します。\n\n\n```rust\n    // Parse XML body with feed_rs parser, input in bytes\n    let parsed_body = feed_rs::parser::parse(body.as_bytes()).unwrap();\n\n    // Print the result\n    println!(\"{:#?}\", parsed_body);\n\n    // Dump the parsed body to a file, as name-current-iso-date.xml\n    let now = chrono::offset::Local::now();\n    let filename = format!(\"{}-{}.xml\", name, now.format(\"%Y-%m-%d\"));\n    let mut file = std::fs::File::create(filename).unwrap();\n    file.write_all(body.as_bytes()).unwrap();\n```\n\n\nこの処理の一例として、[chronoクレート](https://crates.io/crates/chrono)を使用する方法があります。`cargo\nadd chrono` を実行して追加し、その後 `cargo build` と `cargo run` を再度実行します。\n\n\nファイルは `cargo run` が実行されたディレクトリに保存されます。バイナリを `target/debug/`\nディレクトリで直接実行している場合、すべてのファイルはそのディレクトリにダンプされます。\n\n\n![CNCFのRSSフィード内容を含むファイルがディスクに保存された状態のVS Code](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_cncf_rss_feed_saved_on_disk.png)\n\n\n## 最適化\n\n`rss_feeds`\n変数内のエントリは逐次実行されています。もし100件以上のURLがリストに設定されている場合、データの取得と処理にはかなりの時間がかかるでしょう。複数のフェッチリクエストを並行して実行できたらどうでしょうか？\n\n\n### 非同期実行\n\nRustでは、[スレッド](https://doc.rust-lang.org/book/ch16-01-threads.html)を使用した非同期実行が可能です。\n\n\n最も簡単な解決策は、各RSSフィードURLごとにスレッドを生成することです。最適化戦略については後のセクションで説明します。並行実行を開始する前に、\n`time` コマンドの前に`cargo run` をつけて、逐次実行コードの実行時間を測定しましょう。\n\n\n```\n\ntime cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n\n0.21s user 0.08s system 10% cpu 2.898 total\n\n```\n\n\nなお、この演習では、手動のコーディング作業が多くなる場合があります。並列実行の影響をより効果的に比較するには、逐次実行の動作状態を新しいGitコミットとブランチ\n`sequential-exec` に保存してください。\n\n```shell\n\ngit commit -avm \"Sequential execution working\"\n\ngit checkout -b sequential-exec\n\ngit push -u origin sequential-exec\n\n\ngit checkout main\n\n```\n\n\n### スレッドの生成\n\n`src/feed_reader.rs` を開き、`get_feeds()`\n関数をリファクタリングします。まず、現在の状態をGitコミットで保存し、その後、関数のスコープ内の内容を削除します。次に、コード提案への指示と以下のコードコメントを入力します。\n\n\n1. `// Store threads in\nvector`：スレッドのハンドルをベクターに格納し、関数呼び出しの最後にスレッドが終了するまで待機できるようにします。\n\n2. `// Loop over rss_feeds and spawn\nthreads`：すべてのRSSフィードを反復処理するためのコードを作成し、新しいスレッドを作成します。\n\n\n`thread` モジュールと `time` モジュールを扱うには、次の `use` 文を追加します。\n\n\n```rust\n    use std::thread;\n    use std::time::Duration;\n```\n\n\nその後、forループを閉じるまでコードを書き進めます。コード提案は、自動的にスレッドハンドルを `threads`\nベクター変数に追加し、関数の最後でスレッドを結合（join）するよう提案します。\n\n\n```rust\n    pub fn get_feeds(rss_feeds: &HashMap\u003CString, String>) {\n\n        // Store threads in vector\n        let mut threads: Vec\u003Cthread::JoinHandle\u003C()>> = Vec::new();\n\n        // Loop over rss_feeds and spawn threads\n        for (name, url) in rss_feeds {\n            let thread_name = name.clone();\n            let thread_url = url.clone();\n            let thread = thread::spawn(move || {\n\n            });\n            threads.push(thread);\n        }\n\n        // Join threads\n        for thread in threads {\n            thread.join().unwrap();\n        }\n    }\n```\n\n\n次に、`thread` クレートを追加し、もう一度コードをビルドし実行します。\n\n\n```shell\n\ncargo add thread\n\n\ncargo build\n\n\ncargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n```\n\n\nこの段階では、データの処理や出力は行われていません。次のステップに移る前に、ここで新たに導入されたキーワードについて解説します。\n\n\n### 関数スコープ、スレッド、クロージャ\n\n提案されるコードには新しいキーワードやデザインパターンが含まれることもあるため、これらについて理解しておくことが重要になります。スレッドハンドルは\n`thread::JoinHandle`\nという型で、スレッドが終わるのを待機するために使用します（[join()](https://doc.rust-lang.org/book/ch16-01-threads.html#waiting-for-all-threads-to-finish-using-join-handles)メソッドを使います）。\n\n\n`thread::spawn()`\nは新しいスレッドを生成し、このスレッド内では、関数オブジェクトを渡すことができます。この場合、[クロージャ](https://doc.rust-lang.org/book/ch13-01-closures.html)式が無名関数として渡されます。また、クロージャ入力は\n`||` 構文を使用して渡されますが、この際には[`move`\nクロージャ](https://doc.rust-lang.org/book/ch16-01-threads.html#using-move-closures-with-threads)が関数スコープの変数をスレッドスコープに移動します。これにより、どの変数を新しい関数やクロージャスコープに渡すかを手動で指定する必要がなくなります。\n\n\nただし、これには制限があります。`rss_feeds` は参照 `&` で、`get_feeds()`\n関数の呼び出し元からパラメータとして渡されています。この変数は関数スコープ内でのみ有効です。このエラーを引き起こすには、次のコードスニペットを使用します。\n\n\n```rust\n\npub fn get_feeds(rss_feeds: &HashMap\u003CString, String>) {##$_0A$####$_0A$##   \n// Store threads in vector##$_0A$##    let mut threads:\nVec\u003Cthread::JoinHandle\u003C()>> = Vec::new();##$_0A$####$_0A$##    // Loop over\nrss_feeds and spawn threads##$_0A$##    for (key, value) in rss_feeds\n{##$_0A$##        let thread = thread::spawn(move || {##$_0A$##           \nprintln!(\"{}\", key);##$_0A$##        });##$_0A$##    }##$_0A$##}\n\n```\n\n\n![VS Codeターミナル、参照とスレッドのmoveクロージャに関する変数スコープエラー](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_cargo_build_error_function_threads_variable_scopes.png){:\n.shadow}\n\n\n`key` 変数は関数スコープ内で作成されていますが、`rss_feeds`\n変数を参照しているため、スレッドスコープに移動することはできません。関数パラメータ `rss_feeds`\nのハッシュマップからアクセスされる値は、`clone()` を使ってローカルコピーを作成する必要があります。\n\n\n![VS\nCodeターミナル、cloneを使用したスレッドの生成](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_rust_thread_spawn_clone.png){:\n.shadow}\n\n\n```rust\n\npub fn get_feeds(rss_feeds: &HashMap\u003CString, String>) {\n\n    // Store threads in vector\n    let mut threads: Vec\u003Cthread::JoinHandle\u003C()>> = Vec::new();\n\n    // Loop over rss_feeds and spawn threads\n    for (name, url) in rss_feeds {\n        let thread_name = name.clone();\n        let thread_url = url.clone();\n        let thread = thread::spawn(move || {\n            // Use thread_name and thread_url as values, see next chapter for instructions.\n```\n\n\n## フィードのXMLの解析およびオブジェクト型への変換\n\n次のステップは、スレッド内のクロージャでRSSフィードの解析手順を繰り返すことです。コード提案の指示とともに以下のコードコメントを追加します。\n\n\n1. `// Parse XML body with feed_rs parser, input in\nbytes`：コード提案に対し、RSSフィードのURLコンテンツを取得し、`feed_rs` クレートの関数で解析したいという要望を伝えます。\n\n2. `// Check feed_type attribute feed_rs::model::FeedType::RSS2 or Atom and\nprint its name`：`feed_type` 属性を\n[`feed_rs::model::FeedType`](https://docs.rs/feed-rs/latest/feed_rs/model/enum.FeedType.html)\nと照合してフィードの種類を抽出します。この場合、コード提案に対して、照合の対象とする正確なEnum値を指示する必要があります。\n\n\n![コード提案に特定のフィードタイプと照合するよう指示](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_feed_rs_type_condition.png){:\n.shadow}\n\n\n```rust\n            // Parse XML body with feed_rs parser, input in bytes\n            let body = reqwest::blocking::get(thread_url).unwrap().bytes().unwrap();\n            let feed = feed_rs::parser::parse(body.as_ref()).unwrap();\n\n            // Check feed_type attribute feed_rs::model::FeedType::RSS2 or Atom and print its name\n            if feed.feed_type == feed_rs::model::FeedType::RSS2 {\n                println!(\"{} is an RSS2 feed\", thread_name);\n            } else if feed.feed_type == feed_rs::model::FeedType::Atom {\n                println!(\"{} is an Atom feed\", thread_name);\n            }\n```\n\n\nプログラムをもう一度ビルドして実行し、出力を確認します。\n\n\n```\n\ntime cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n\nCNCF is an RSS2 feed\n\nTechCrunch is an RSS2 feed\n\nGitLab Blog is an Atom feed\n\nHacker News is an RSS2 feed\n\n```\n\n\nフィードURLをブラウザで開くか、以前にダウンロードしたファイルを調べて、この出力を確認します。\n\n\nHacker News はRSS\n2.0をサポートしており、`channel(title,link,description,item(title,link,pubDate,comments))`\nの構造を持っています。TechCrunchとCNCFブログは同様の構造をしています。\n\n```xml\n\n\u003Crss version=\"2.0\">\u003Cchannel>\u003Ctitle>Hacker\nNews\u003C/title>\u003Clink>https://news.ycombinator.com/\u003C/link>\u003Cdescription>Links for\nthe intellectually curious, ranked by\nreaders.\u003C/description>\u003Citem>\u003Ctitle>Writing a debugger from scratch:\nBreakpoints\u003C/title>\u003Clink>https://www.timdbg.com/posts/writing-a-debugger-from-scratch-part-5/\u003C/link>\u003CpubDate>Wed,\n27 Sep 2023 06:31:25\n+0000\u003C/pubDate>\u003Ccomments>https://news.ycombinator.com/item?id=37670938\u003C/comments>\u003Cdescription>\u003C![CDATA[\u003Ca\nhref=\"https://news.ycombinator.com/item?id=37670938\">Comments\u003C/a>]]>\u003C/description>\u003C/item>\u003Citem>\n\n```\n\n\nGitLabブログには[Atom](https://datatracker.ietf.org/doc/html/rfc4287)フィード形式が使用されています。RSSに類似していますが異なる解析ロジックが必要です。\n\n```xml\n\n\u003C?xml version='1.0' encoding='utf-8' ?>\n\n\u003Cfeed xmlns='http://www.w3.org/2005/Atom'>\n\n\u003C!-- / Get release posts -->\n\n\u003C!-- / Get blog posts -->\n\n\u003Ctitle>GitLab\u003C/title>\n\n\u003Cid>https://about.gitlab.com/blog\u003C/id>\n\n\u003Clink href='https://about.gitlab.com/blog/' />\n\n\u003Cupdated>2023-09-26T00:00:00+00:00\u003C/updated>\n\n\u003Cauthor>\n\n\u003Cname>The GitLab Team\u003C/name>\n\n\u003C/author>\n\n\u003Centry>\n\n\u003Ctitle>Atlassian Server ending: Goodbye disjointed toolchain, hello\nDevSecOps platform\u003C/title>\n\n\u003Clink\nhref='https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform/'\nrel='alternate' />\n\n\u003Cid>https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform/\u003C/id>\n\n\u003Cpublished>2023-09-26T00:00:00+00:00\u003C/published>\n\n\u003Cupdated>2023-09-26T00:00:00+00:00\u003C/updated>\n\n\u003Cauthor>\n\n\u003Cname>Dave Steer, Justin Farris\u003C/name>\n\n\u003C/author>\n\n```\n\n\n### 汎用的なフィードデータ型のマッピング\n\n[`roxmltree::Document::parse`](https://docs.rs/roxmltree/latest/roxmltree/struct.Document.html)\nを使用する場合、XMLノードツリーとその特定のタグ名を理解する必要があります。幸い、[`feed_rs::model::Feed`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Feed.html)\nはRSSとAtomフィードの統合モデルを提供しているため、引き続き `feed_rs` クレートを使用して進めましょう。\n\n\n1. Atom：Feed->Feed、Entry->Entry\n\n2. RSS：Channel->Feed、Item->Entry\n\n\n上記のマッピングに加えて、必要な属性を抽出し、それらのデータ型をマッピングする必要があります。[feed_rs::modelのドキュメント](https://docs.rs/feed-rs/latest/feed_rs/model/index.html)を開き、構造体やそのフィールド、実装について理解しながら進めることをお勧めします。これは、`feed_rs`\nの実装に特有の型変換エラーやコンパイルエラーが発生するのを防ぐためです。\n\n\n[`Feed`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Feed.html) 構造体は\n`title` を提供しますが、その型は `Option\u003CText>`\nで、値が設定されているか、何もないかのいずれかです。[`Entry`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Entry.html)\n構造体は以下の情報を提供します。\n\n\n1. `title`：`Option\u003CText>`\n型で、[`Text`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Text.html)\nには `content` フィールドが `String` 型として含まれています。\n\n2. `published`：`Option\u003CDateTime\u003CUtc>>`\n型で、[`DateTime`](https://docs.rs/chrono/latest/chrono/struct.DateTime.html) は\n[`format()`\nメソッド](https://docs.rs/chrono/latest/chrono/struct.DateTime.html#method.format)を持ちます。\n\n3. `summary`：`Option\u003CText>` \n型で、[`Text`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Text.html)\nには `content` フィールドが `String` 型として含まれています。\n\n4. `links`：`Vec\u003CLink>`\n型で、[`Link`](https://docs.rs/feed-rs/latest/feed_rs/model/struct.Link.html)\n項目のベクターです。`href` 属性が生のURL文字列を提供します。\n\n\n1から4に従って、フィードエントリから必要なデータを抽出します。繰り返しますが、すべての `Option` 型には `unwrap()`\nを呼び出す必要があります。このため、コード提案に対してより直接的な指示が求められます。\n\n\n```rust\n                // https://docs.rs/feed-rs/latest/feed_rs/model/struct.Feed.html\n                // https://docs.rs/feed-rs/latest/feed_rs/model/struct.Entry.html\n                // Loop over all entries, and print\n                // title.unwrap().content\n                // published.unwrap().format\n                // summary.unwrap().content\n                // links href as joined string\n                for entry in feed.entries {\n                    println!(\"Title: {}\", entry.title.unwrap().content);\n                    println!(\"Published: {}\", entry.published.unwrap().format(\"%Y-%m-%d %H:%M:%S\"));\n                    println!(\"Summary: {}\", entry.summary.unwrap().content);\n                    println!(\"Links: {:?}\", entry.links.iter().map(|link| link.href.clone()).collect::\u003CVec\u003CString>>().join(\", \"));\n                    println!();\n                }\n```\n\n\n![特定の要件に基づいてフィードエントリの型を出力するためのコード提案](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_print_feed_entries_fields_with_rust_type_specifics.png){:\n.shadow}\n\n\n### Option::unwrap()によるエラーハンドリング\n\nプログラムを再ビルドして実行した後、複数行の指示を引き続き処理します。補足：`unwrap()` は空の値に遭遇すると `panic!`\nマクロを呼び出し、プログラムを強制終了させます。これは、フィードデータ内に `summary` のようなフィールドが設定されていない場合に発生します。\n\n\n```shell\n\nGitLab Blog is an Atom feed\n\nTitle: How the Colmena project uses GitLab to support citizen journalists\n\nPublished: 2023-09-27 00:00:00\n\nthread '\u003Cunnamed>' panicked at 'called `Option::unwrap()` on a `None`\nvalue', src/feed_reader.rs:40:59\n\n```\n\n\n解決策のひとつとして、[`std::Option::unwrap_or_else`](https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap_or_else)\nを使用し、デフォルト値として空の文字列を設定することが挙げられます。この構文には、空の `Text` 構造体のインスタンスを返すクロージャが必要です。\n\n\n問題を解決する上で、正しい初期化方法を見つけるために試行錯誤を重ねました。単に空の文字列を渡すだけではカスタム型ではうまく機能しませんでした。以下に、筆者が試したすべてのアプローチとリサーチの過程をまとめました。\n\n\n```rust\n\n// Problem: The `summary` attribute is not always initialized. unwrap() will\npanic! then.\n\n// Requires use mime; and use feed_rs::model::Text;\n\n/*\n\n// 1st attempt: Use unwrap() to extraxt Text from Option\u003CText> type.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap().content);\n\n// 2nd attempt. Learned about unwrap_or_else, passing an empty string.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| \"\").content);\n\n// 3rd attempt. summary is of the Text type, pass a new struct\ninstantiation.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{}).content);\n\n// 4th attempt. Struct instantiation requires 3 field values.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{\"\", \"\",\n\"\"}).content);\n\n// 5th attempt. Struct instantation with public fields requires key: value\nsyntax\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{content_type:\n\"\", src: \"\", content: \"\"}).content);\n\n// 6th attempt. Reviewed expected Text types in\nhttps://docs.rs/feed-rs/latest/feed_rs/model/struct.Text.html and created\nMime and String objects\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{content_type:\nmime::TEXT_PLAIN, src: String::new(), content: String::new()}).content);\n\n// 7th attempt: String and Option\u003CString> cannot be casted automagically.\nCompiler suggested using `Option::Some()`.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{content_type:\nmime::TEXT_PLAIN, src: Option::Some(), content: String::new()}).content);\n\n*/\n\n\n// xth attempt: Solution. Option::Some() requires a new String object.\n\nprintln!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{content_type:\nmime::TEXT_PLAIN, src: Option::Some(String::new()), content:\nString::new()}).content);\n\n```\n\n\nこのアプローチは、コードが複雑で読みにくく、さらにコード提案の支援がなかったため、手動でコーディングする必要があり、満足のいくものではありませんでした。一旦立ち止まり、アプローチを見直しました。`Option`\nが `none` の場合に`unwrap()`\nはエラーをスローするのであれば、そのエラーを処理する簡単な方法があるのではと考え、コード提案に新しいコメントで質問しました。\n\n\n```\n                // xth attempt: Solution. Option::Some() requires a new String object.\n                println!(\"Summary: {}\", entry.summary.unwrap_or_else(|| Text{content_type: mime::TEXT_PLAIN, src: Option::Some(String::new()), content: String::new()}).content);\n\n                // Alternatively, use Option.is_none()\n```\n\n\n![コード提案によるOptions.is_noneを使った代替案](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/code_suggestions_after_complex_unwrap_or_else_ask_for_alternative_option.png){:\n.shadow}\n\n\n結果として、読みやすさが向上し、`unwrap()`\nによる無駄なCPUサイクルが減りました。複雑な問題を解決することから単純な解決策を使用することまでの学習過程を大幅に短縮できました。まさにウィンウィンです。\n\n\n忘れないうちに、XMLデータをディスクに保存する指示を再度追加して、リーダーアプリを完成させましょう。\n\n\n```rust\n                // Dump the parsed body to a file, as name-current-iso-date.xml\n                let file_name = format!(\"{}-{}.xml\", thread_name, chrono::Local::now().format(\"%Y-%m-%d-%H-%M-%S\"));\n                let mut file = std::fs::File::create(file_name).unwrap();\n                file.write_all(body.as_ref()).unwrap();\n```\n\n\nプログラムをビルドして実行し、出力を確認します。\n\n\n```shell\n\ncargo build\n\n\ntime cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n```\n\n\n![VS Codeターミナルでcargo\nrunを実行し、フォーマットされたフィードエントリの出力](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/vs_code_terminal_cargo_run_formatted_output_final.png)\n\n\n## ベンチマーク\n\n\n### 逐次実行と並列実行のベンチマークの比較\n\nそれぞれ5つのサンプルを作成して、実行時間のベンチマークを比較します。\n\n\n1. 逐次実行\n\n2. 並列実行\n\n\n```shell\n\n# Sequential\n\ngit checkout sequential-exec\n\n\ntime cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n\n0.21s user 0.08s system 10% cpu 2.898 total\n\n0.21s user 0.08s system 11% cpu 2.585 total\n\n0.21s user 0.09s system 10% cpu 2.946 total\n\n0.19s user 0.08s system 10% cpu 2.714 total\n\n0.20s user 0.10s system 10% cpu 2.808 total\n\n```\n\n\n```shell\n\n# Parallel\n\ngit checkout parallel-exec\n\n\ntime cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\"\n\"CNCF,https://www.cncf.io/feed/\"\n\n\n0.19s user 0.08s system 17% cpu 1.515 total\n\n0.18s user 0.08s system 16% cpu 1.561 total\n\n0.18s user 0.07s system 17% cpu 1.414 total\n\n0.19s user 0.08s system 18% cpu 1.447 total\n\n0.17s user 0.08s system 16% cpu 1.453 total\n\n```\n\n\n4つのRSSフィードスレッドを並列実行した場合、CPU使用率は増加しましたが、逐次実行に比べて全体の実行時間はほぼ半減しました。この点を踏まえて、Rustの学習を続け、コードと機能を最適化していきます。\n\n\nなお、ここではCargoを使ってデバッグビルドを実行しており、最適化されたリリースビルドはまだ実行していません。また、並列実行にはいくつか注意点があります。一部のHTTPエンドポイントはレート制限を設けており、並列処理がこの制限に引っかかりやすくなる可能性があります。\n\n\n複数のスレッドを並列実行するシステムも過負荷になる可能性があります。これは、カーネル内でのコンテキストスイッチ（スレッド間の切り替え）を通じて各スレッドにリソースを割り当てる必要があるためです。1つのスレッドが計算リソースを使用している間、他のスレッドは待機状態になります。スレッドが多すぎると、システム全体が遅くなり、処理がスピードアップするどころか逆に遅くなることもあります。解決策としては、呼び出し元がキューにタスクを追加し、定義された数のワーカースレッドが非同期実行のためにタスクを処理する[ワークキュー](https://docs.rs/work-queue/latest/work_queue/)などの設計パターンがあります。\n\n\nRustでは、スレッド間のデータ同期を行う[チャンネル](https://doc.rust-lang.org/rust-by-example/std_misc/channels.html)を利用することもできます。競合状態を防ぐために、セーフロックを提供する[ミューテックス](https://doc.rust-lang.org/std/sync/struct.Mutex.html)も利用可能です。\n\n\n### Rustのキャッシュを使用したCI/CD\n\n以下のCI/CD構成を `.gitlab-ci.yml` ファイルに追加します。この `run-latest` ジョブは `cargo run`\nをRSSフィードURLの例とともに呼び出し、実行時間を継続的に計測します。\n\n\n```\n\nstages:\n  - build\n  - test\n  - run\n\ndefault:\n  image: rust:latest\n  cache:\n    key: ${CI_COMMIT_REF_SLUG}\n    paths:\n      - .cargo/bin\n      - .cargo/registry/index\n      - .cargo/registry/cache\n      - target/debug/deps\n      - target/debug/build\n    policy: pull-push\n\n# Cargo data needs to be in the project directory for being cached.\n\nvariables:\n  CARGO_HOME: ${CI_PROJECT_DIR}/.cargo\n\nbuild-latest:\n  stage: build\n  script:\n    - cargo build --verbose\n\ntest-latest:\n  stage: build\n  script:\n    - cargo test --verbose\n\nrun-latest:\n  stage: run\n  script:\n    - time cargo run -- \"GitLab Blog,https://about.gitlab.com/atom.xml\" \"CNCF,https://www.cncf.io/feed/\"\n```\n\n\n![Rust用のGitLab CI/CDパイプライン、cargo\nrunの出力](https://about.gitlab.com/images/blogimages/learn-rust-with-ai-code-suggestions-advanced-programming/gitlab_cicd_pipeline_rust_cargo_run_output.png){:\n.shadow}\n\n\n## 次のステップ\n\nこのブログ記事の執筆は、筆者自身が高度なRustプログラミング技術を学びつつ、コード提案を使って最適な学習過程を見出すという点で難しいものでした。コード提案は、単なる定型的なコードだけでなく、ローカルコンテキストを理解し、記述されたコードが多いほどアルゴリズムの目的や範囲をよりよく把握した迅速なコード生成にも大いに役立ちます。このブログ記事を読むことで、全てではないにしろ、いくつかの課題や解決策についてご理解いただけたかと思います。\n\n\nRSSフィードの解析は、外部HTTPリクエストや並列最適化を伴うデータ構造が関わるため、ハードルが高めです。経験豊富なRustユーザーであれば、`なぜstd::rssクレートを使わなかったのか？`\nと疑問に思うかもしれません。その理由は、std::rssは高度な非同期実行に最適化されており、このブログ記事でご説明したさまざまなRustの機能を示したり説明したりすることができないためです。ぜひ、非同期の演習として、[`rss`\nクレート](https://docs.rs/rss/latest/rss/)を使ってコードを書き直してみてください。\n\n\n### 非同期学習のエクササイズ\n\nこのブログ記事で学んだ内容は、永続的なデータ保存やデータ表示に関する理解を今後も深めていく上で基礎となります。引き続きRustを学びながら、リーダーアプリを最適化していくためのアイデアをいくつかご紹介します。\n\n\n1. データ保存：sqliteなどのデータベースを使用し、RSSフィードの更新履歴を追跡する。\n\n2. 通知：子プロセスを生成して、Telegramなどに通知を送る機能を追加する。\n\n3. 機能：リーダータイプを拡張して、REST APIをサポートする。\n\n4. 構成：RSSフィードやAPIなどの構成ファイルのサポートを追加する。\n\n5. 効率性：フィルタリングやサブスクライブしたタグのサポートを追加する。\n\n6.\nデプロイ：Webサーバーを使用して、Prometheusメトリクスを収集して[Kubernetes](https://about.gitlab.com/ja-jp/blog/what-is-kubernetes/)にデプロイする。\n\n\n今後のブログ記事では、これらのアイデアのいくつかを取り上げ、その実装方法について説明します。既存のRSSフィードの実装を詳しく調べ、どのように既存のコードをリファクタリングしてRustのライブラリ（`crates`）を活用できるか学びましょう。\n\n\n### フィードバックの共有\n\n[GitLab\nDuo](https://about.gitlab.com/ja-jp/gitlab-duo/)のコード提案をご使用になった方は、ぜひ[ご意見をフィードバックイシューにお寄せください](https://gitlab.com/gitlab-org/gitlab/-/issues/405152)。\n\n\n*監修：佐々木 直晴 [@naosasaki](https://gitlab.com/naosasaki) \u003Cbr>\n\n（GitLab合同会社 ソリューションアーキテクト本部 シニアソリューションアーキテクト）*\n",[680,1674,708,814,9],"careers","2025-01-24",{"slug":1677,"featured":6,"template":685},"learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions","content:ja-jp:blog:learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions.yml","Learn Advanced Rust Programming With A Little Help From Ai Code Suggestions","ja-jp/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions.yml","ja-jp/blog/learn-advanced-rust-programming-with-a-little-help-from-ai-code-suggestions",{"_path":1683,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1684,"content":1689,"config":1694,"_id":1696,"_type":14,"title":1697,"_source":16,"_file":1698,"_stem":1699,"_extension":19},"/ja-jp/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development",{"title":1685,"description":1686,"ogTitle":1685,"ogDescription":1686,"noIndex":6,"ogImage":720,"ogUrl":1687,"ogSiteName":669,"ogType":670,"canonicalUrls":1687,"schema":1688},"GitLab Duo Workflowの紹介 - AI主導の開発の未来","自律型AIエージェントであるWorkflowは、チームがソフトウェアを構築してデリバリーする方法に変革をもたらします。Workflowの登場により、GitLabはAI主導のDevSecOpsの実現に向けた強力な最初の一歩を踏み出します。","https://about.gitlab.com/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"GitLab Duo Workflowの紹介 - AI主導の開発の未来\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"David DeSanto, Chief Product Officer, GitLab\"}],\n        \"datePublished\": \"2024-06-27\",\n      }",{"title":1685,"description":1686,"authors":1690,"heroImage":720,"date":1691,"body":1692,"category":10,"tags":1693,"updatedDate":1159},[1473],"2024-06-27","ソフトウェアのコードを、ソフトウェア自らが作成できるとしたらどうでしょう？それは遠い未来でしか実現できないことのように思えますが、絶えず成長する大規模言語モデル（LLM）とGitLabの一元化されたAI搭載のDevSecOpsプラットフォームにより、その未来は間近に迫っています。GitLabは、[GitLab 17のリリースイベント](https://about.gitlab.com/seventeen/)でGitLab Duo Workflowについて発表しました。GitLab Duo Workflowは、チームがソフトウェアのビルド、保護、デプロイ、モニタリングする方法に変革をもたらす自律型AIエージェントです。\n\nGitLab Duo Workflowは、ソフトウェア開発ライフサイクルのあらゆる側面の最適化に積極的に貢献する自律的なチームメンバーを作り出し、プロンプトベースで受け身でしかなかったAIアシスタントのこれまでの状況を刷新します。Workflowが特に優れている点は、関連するすべてのデータ、プロジェクト、リポジトリ、ドキュメントをシームレスにつなげるGitLabの統合されたデータストアを活用していることです。これにより、Workflowはインテリジェントで常時稼働するエージェントとして、プロジェクトの常時モニタリング、本番環境で起こりうる問題の予測、自動的な脆弱性の特定・修正、パフォーマンスの最大化を目的としたアプリケーションの最適化、カスタマイズされたリモート開発環境の迅速な構築によるオンボーディングの効率化をすることができます。\n\n今やAIにより、安全なソフトウェアの開発、メンテナンス、更新、デプロイ、モニタリングの方法が変容し、従来よりも多くのソフトウェアをデリバリーできるようになっています。GitLab Duo Workflowは、AI主導のDevSecOpsの実現に向けた強力な第一歩です。当社は、[GitLab Duo](https://about.gitlab.com/gitlab-duo/)によって繰り返しの作業を処理し、外からは見えない部分を最適化することで、デベロッパーが高度な問題解決や価値創造に注力できるようにすることを目指しています。\n\n## GitLab Duo Workflowのビジョン\nGitLab Duo Workflowでは、いくつかの主要なユースケースに重点的に取り組むことで、ソフトウェア開発プロセス全体を自動化および最適化しています。\n### 1. 開発の自動化\n\nGitLab Duo Workflowは、IDE上で直接、個々のプロジェクトや定義済みの組織プロセスに合わせたタスクを計画や、優先順位付けを支援します。特定の作業アイテム（エピックやイシュー、タスクなど）の要件に基づき、デベロッパーがレビューした上で改良できる実装計画を作成します。その後、Workflowは計画に沿って作業を進め、定義された要件を達成できるように、コードの生成または修正を行います。Workflowではこれらの処理が[GitLabリモート開発ワークスペース](https://about.gitlab.com/blog/quick-start-guide-for-gitlab-workspaces/)内で行われるため、安全かつ確実にコード変更の記述、評価、テストが実施されます。また、これにより、Workflowが要件を満たすだけでなく、セキュリティスキャンを含むすべてのCIパイプラインテストに通るコードを生成することも保証されます。パイプラインが失敗した場合、Workflowは自動的に問題に対処し、必要に応じてトラブルシューティングを行い、組織の基準を満たす高品質のコードのみが作成され、プロジェクトにコミットされるようにします。\n\n準備ができたら、Workflowはコード変更をまとめたマージリクエストを自動的に作成し、コードのレビュアーや管理者とのやり取りなど、マージリクエストの承認プロセスを実行します。人間のレビュアーが現在行っているように、Workflowにコードをレビューさせて、マージリクエストにコメントを残させるよう指示することすら可能です。さらに、必要に応じてWorkflowは提案内容を実装することもできます。そして、これはまだ始まりに過ぎません。\n\n### 2. インテリジェントな継続的改善\nGitLab Duo Workflowは、コードベースをリアルタイムで分析し、効率、パフォーマンス、コスト削減を向上させるためにアーキテクチャの最適化を提案します。さらに、デベロッパーに対して変更を提案したり、サンドボックス環境に変更を自動的に実装することで、スケーラビリティを向上させ、技術的負債に対処するためのコードリファクタリングの機会を積極的に特定します。また、Workflowはクラウドリソースを動的に管理して、オーバープロビジョニングを回避し、アプリケーションが常にパフォーマンス目標を満たせるようにします。\n\n### 3. 積極的なセキュリティとコンプライアンス対応\nどのような組織においても、セキュリティとコンプライアンスは最優先事項です。GitLab Duo Workflowは、パッチの適用や脆弱なコードのリファクタリングに加え、新たに出現する脅威にリアルタイムで対応するよう、デベロッパーに対して自動的に指示を出します。さらに、アプリケーションと本番環境に関連するセキュリティリスクを継続的に評価し、軽減策の実装を支援します。\n\n### 4. パフォーマンスの向上に向けた自己最適化\nGitLab Duo Workflowには、継続的な学習と改善を行うために高度なフィードバックループが組み込まれています。モニタリングツールやユーザーとのやり取り、ビジネス成果から得たデータの分析を通じて、アプリケーションのアーキテクチャがビジネスニーズに常に合致するように、コードベースを絶えず改善します。すべてのAIと同様、Workflowは絶えず改善され、組織のパートナーとして成長しながら、自らのミスを見つけて、修正できるようになります。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://player.vimeo.com/video/967982166?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allowfullscreen=\"true\" title=\"GitLab Duo Workflow the future of AI-driven DevSecOps\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n## 未来のAIはすでに現実に\nGitLab Duo Workflowの登場は、常に人間が指示する必要があったAIから、必要なときにのみ人間の指示を受けて開発のワークフローとプロセスを推進するAIへと移行する、大きな前進を意味します。DevSecOpsライフサイクルをカバーするGitLabの統一されたAI主導のインターフェイスを利用することで、最高水準のセキュリティとコンプライアンスを維持しながら、他に類を見ないスピード、効率性、イノベーションを実現して、新世代のAI搭載型アプリケーションを開発できます。その際に、トレードオフが生じることはありません。\n\nGitLabでは今後もソフトウェア開発においてAIができることの範囲を広げていきますので、インサイトや最新情報をお見逃しなく。一緒にAI主導のDevSecOpsの未来に進み、チームと組織の可能性を最大限に解き放ちましょう。\n\n*監修：大井 雄介 [@yoi_gl](https://gitlab.com/yoi_gl)\n（GitLab合同会社 ソリューションアーキテクト本部 本部長）*\n\n> AI主導のDevSecOpsに関心があり、ぜひプレリリースプログラムに参加して体験してみたいという方は、[GitLab Duo Workflowウェイティングリスト](https://forms.gle/5ppRuNVb8LwSPNVJA)にご登録ください。\n",[9,703,680,682,814],{"slug":1695,"featured":91,"template":685},"meet-gitlab-duo-workflow-the-future-of-ai-driven-development","content:ja-jp:blog:meet-gitlab-duo-workflow-the-future-of-ai-driven-development.yml","Meet Gitlab Duo Workflow The Future Of Ai Driven Development","ja-jp/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development.yml","ja-jp/blog/meet-gitlab-duo-workflow-the-future-of-ai-driven-development",{"_path":1701,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1702,"content":1708,"config":1713,"_id":1715,"_type":14,"title":1716,"_source":16,"_file":1717,"_stem":1718,"_extension":19},"/ja-jp/blog/monday-merge-2025-april-7",{"title":1703,"description":1704,"ogTitle":1703,"ogDescription":1704,"noIndex":6,"ogImage":1705,"ogUrl":1706,"ogSiteName":669,"ogType":670,"canonicalUrls":1706,"schema":1707},"🌞 4月のMonday Merge: AIとDevSecOpsの魔法が融合！","4月のMonday Mergeでは、AIの力を活かしたコミュニティ主導のセキュリティ強化、GitLab 17.10の注目機能、さらにサウスウエスト航空がどのようにDevOpsを活用させているのかご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663178/Blog/Hero%20Images/LinkedIn_Header_Images_April_-04.png","https://about.gitlab.com/blog/monday-merge-2025-april-7","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"🌞 4月のMonday Merge: AIとDevSecOpsの魔法が融合！\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-04-07\",\n      }",{"title":1703,"description":1704,"authors":1709,"heroImage":1705,"date":1710,"body":1711,"category":682,"tags":1712},[853],"2025-04-07","GitLabコミュニティのみなさん、こんにちは！春と共に、今回のアップデートはかなりワクワクする内容のものが届いています。今月は、AIの力を活かしたコミュニティ主導のセキュリティ強化、GitLab 17.10の注目機能、さらにサウスウエスト航空がどのようにDevOpsを活用させているのかご紹介します。\n\n### 注目ポイントはこちら：\n- 📊 AIインパクト分析ダッシュボード – AIがただのトレンドじゃなく、生産性を劇的に向上させることを証明。\n- 🔒 オープンソースセキュリティハブ登場 – 脅威は単独ではなく、みんなで協力して防ぎましょう。\n- 🚀 GitLab 17.10が登場 – Duoコードレビュー、根本原因分析、DORAメトリクスで、DevOpsをもっと強力に。\n\n準備はOKですか？詳しく見ていきましょう！\n\n## GitLab Duo AIインパクト分析ダッシュボード: データで見るDevSecOpsの進化\n\n![03 Header Images April GitLab Duo AI Impact Dashboard](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687561/Blog/Content%20Images/03_LinkedIn_Header_Images_April__GitLab_Duo_AI_Impact_Dashboard.png)\n\nAIのROIが測定できる時代が来ました。新しいダッシュボードでは、AIがどのようにワークフローを変えているかを確認できます。\n\n✅ コードによるDuoの提案を使ったチームは、マージサイクルが15%速くなっています。\n✅ チャットを使った Duo Chatの文脈に基づくヘルプで、クエリ解決は2倍速く。\n✅ パイプライン効率向上：AIによるテスト生成で、早期導入者のCI時間が30％短縮されます。\n\n🔗 [GitLab DuoがSDLCに与える影響をどう測っているかを見る（英語）\n](https://www.youtube.com/watch?v=FxSWX64aUOE&list=PLFGfElNsQthZGazU1ZdfDpegu0HflunXW&index=2)\n\n## オープンソースセキュリティハブ: みんなで強く\n\n![04 Header Images April Open Source Security Hub](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687562/Blog/Content%20Images/04_LinkedIn_Header_Images_April_Open_Source_Security_Hub.png)\n\nサイバー攻撃者たちは互いに協力しています。私たちも連携すべきではないでしょうか。GitLabのオープンソースセキュリティハブはその答えとなります。GitLabのセキュリティチームが作成したツールキットを、世界中で公開しています。\n\nなぜこれが重要なのかは次の通りです。\n- StORMテンプレート: GitLab内で使われるフレームワークで、リスクを標準化。\n- GUARDフレームワーク: 検出コードを自動化し、脅威対応を効率化。\n- CISベンチマークスキャナー: セキュリティ基準に照らしてプロジェクトを監査。\n\n私たちは、Crowdstrikeのようなリーダーにインスピレーションを受けています。オープンソースのツールがエコシステム全体を強化するのです。\n\n🔗 [GitLabがデベロッパーとセキュリティ担当者をどう支援しているかを知る（英語）\n](https://about.gitlab.com/blog/introducing-gitlabs-open-source-security-center/)\n\n## GitLab 17.10: よりスマートで、より速く、より繋がる\n![05 Header Images April GitLab 17.10](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687562/Blog/Content%20Images/05_LinkedIn_Header_Images_April_GitLab_17.10.png)\n\nDevSecOpsツールが強力に進化しました。\n\n🔎 Duoコードレビュー（ベータ版） `@GitLabDuo` をMRでタグ付けすると、AIによるバグ発見と最適化提案が受けられます。\n\n🛠️ 根本原因分析（Self-Hosted） CI/CD失敗の原因をAIが数秒で解析。エアギャップ環境にも対応（Mistral、Anthropic、OpenAIをサポート）。\n\n📈 DORAメトリクスを視覚化 クロスプロジェクトダッシュボードでボトルネックを特定。実例：あるチームは、テストの不安定さを解決してデプロイ頻度を40%向上。\n\n🎨 GitLabクエリ言語（GLQL）ビュー＆Markdown Wikiにライブデータクエリを埋め込み、ピクセル完璧なメディア制御でドキュメントを作成。\n\n🔗 [リリースノートはこちら](https://about.gitlab.com/ja-jp/blog/gitlab-17-10-release/)\n\n## 📅 今後のイベント: ぜひご参加ください！\n\n![06 Header Images April Upcoming Events](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687562/Blog/Content%20Images/06_LinkedIn_Header_Images_April_Upcoming_Events.png)\n\nロンドンからラスベガスまで、DevSecOpsの知見を共有しに各地を巡回します。\n\n- KubeCon（4月1日〜4日、イギリス・ロンドン） – Cloud Native Computing Foundation（CNCF）主催のイベントで、オープンソースやクラウドネイティブの専門家たちが一堂に会しました。KubernetesやDevOps、クラウドネイティブの最新トレンドについて、業界のリーダーたちによって議論されました。\n\n👉 セッションの録画は、イベント終了後2週間以内にCNCFのYouTubeチャンネルに公開される予定です。[見逃した方はぜひチェックしてみてください！](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/)\n\n- Google Cloud Next（4月9日〜11日、ネバダ・ラスベガス） – Google主催のプレミアイベントにてAIやクラウド、セキュリティのトップ専門家と交流ができます。ライトニングトークやハンズオンのデモ、ワークショップを通してあなたのクラウドの知識レベルアップに。 さらに、ラスベガスのアレジアント・スタジアムでのThe Killers、Wyclef Jean、Tate Rennerのライブパフォーマンスも！\n\n👉 [ラスベガスで参加しよう！](https://cloud.withgoogle.com/next/25)\n\n- RSAC 2025（4月28日〜5月1日、カリフォルニア・サンフランシスコ） – サイバーセキュリティの最新脅威や戦略、イノベーションを学び、業界のリーダーと協力して未来のセキュリティを形作りましょう。\n\n👉 [参加しよう！](https://www.rsaconference.com/usa)\n\n## 事例のご紹介: サウスウエスト航空のDevOps活用\n![07 Header Images April Customer Spotlight](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687562/Blog/Content%20Images/07_LinkedIn_Header_Images_April_Customer_Spotlight.png)\n\nサウスウエスト航空は、デベロッパーのためにボトルネックを排除し、繰り返しの作業を減らして、より大きな革新に集中できる時間を提供しています🚀\nサウスウエスト航空のVP＆CISOであるJim Dayton氏はこう言います。\n\n「人がソフトウェア開発に携わるのは、その創造性が好きだからです。問題を解決することが好きです。私たちはその邪魔をしないようにするべきです」。 GitLabにコードを集中させ、セルフサービスツールを使うことで、サウスウエスト航空はデベロッパーがより早く答えを見つけ、効率的に作業できるようサポートしています。\n\n次に目指すのは？AIを使ったワークフローの自動化。Dayton氏は、AIが脆弱性の説明や、コードレビュアーへの提案などの日常的な作業を効率化し、チームが本当に重要なことに集中できるようになると考えています。\n\n🎯 キー・メッセージ: AIはデベロッパーを置き換えるのではなく、より良く、より速く作れるようにサポートするのです。\n\n🔗 [サウスウエスト航空事例に関する本文を読む](https://about.gitlab.com/ja-jp/blog/southwest-looking-to-help-developers-take-flight/)\n\n## おすすめ読書\n![08 Header Images April What We’re Reading](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/08_LinkedIn_Header_Images_April_What_We_re_Reading.png)\n\n- Emilio Salvador：AI’s Next Chapter： 2025年のソフトウェア開発における4つの変化。GitLabの戦略VPが、AIがコードをコストやコンプライアンスに最適化する方法について説明します。\n\n👉 [Geekwireの記事を読む](https://www.geekwire.com/sponsor-post/ais-next-chapter-four-major-shifts-in-software-development-for-2025/)\n\n- Sabrina Farmer: The tech giants are wrong: GitLabのCTOが、開発者がAIの恩恵を受ける方法を解説。（GitLabのDevSecOpsレポートを用いて）\n\n👉 [Raconteurの記事を読む](https://www.raconteur.net/technology/ai-replace-engineers)\n\n- Joel Krooswyk: Creating a cybersecurity standard of care: ソフトウェアに関する責任の未来。GitLabの連邦CTOが、SBOM（ソフトウェア部品表）とオープンソース監査がどのように責任を守る手段になっているかを解説。\n\n👉 [Federal News Networkの記事を読む](https://federalnewsnetwork.com/commentary/2025/03/creating-a-cybersecurity-standard-of-care-the-future-of-software-liability/)\n\n## 💡 本日のインスピレーション\n\n変化の速い世界で、故Susan Wojcickiの言葉がますます真実味を帯びています。\n\n「最高のアイデアはしばしば予期しない場所から生まれる」\n\nそれでは、次回まで、好奇心を持ち続け、つながりを大切にし、Happy Merging！\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/) | GitLab Developer Advocate\n![SignOffBanner](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/SignOffBanner.png)\n\nP.S. DevSecOpsの最新情報を逃さないように、ぜひ来月も読んでくださいね！\n",[9,1082,705],{"slug":1714,"featured":6,"template":685},"monday-merge-2025-april-7","content:ja-jp:blog:monday-merge-2025-april-7.yml","Monday Merge 2025 April 7","ja-jp/blog/monday-merge-2025-april-7.yml","ja-jp/blog/monday-merge-2025-april-7",{"_path":1720,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1721,"content":1725,"config":1732,"_id":1734,"_type":14,"title":1735,"_source":16,"_file":1736,"_stem":1737,"_extension":19},"/ja-jp/blog/monday-merge-2025-august-11",{"config":1722,"title":1723,"description":1724},{"noIndex":6},"Monday Merge 8月号","Monday Merge8月号では、",{"date":1726,"title":1723,"category":682,"tags":1727,"body":1728,"authors":1729,"description":1730,"heroImage":1731},"2025-08-11",[109,9,707,813,270,1023,680,280,706,682,1082,681,1024],"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)",[853],"AIエージェント、新機能、そして7,500億ドルの可能性に注目\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1754368844/vagh8krfgft9cghbknod.png",{"featured":91,"template":685,"slug":1733},"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":1739,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1740,"content":1744,"config":1748,"_id":1750,"_type":14,"title":1751,"_source":16,"_file":1752,"_stem":1753,"_extension":19},"/ja-jp/blog/monday-merge-2025-july-14",{"noIndex":6,"ogImage":1741,"title":1742,"description":1743},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752204420/ccdkkhlyrjmyjxsicf7d.jpg","Monday Merge 7月号","Monday Merge７月号では、GitLab 18の最新トピックのほか、AWS Summit、新しいライブ番組のスタート、そして注目のカスタマーストーリーをご紹介します。",{"date":807,"body":1745,"title":1742,"category":682,"heroImage":1741,"authors":1746,"description":1743,"tags":1747},"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)",[853],[109,9,707,813,270,1023,680,280,706,682,1082,681,1024],{"featured":6,"template":685,"slug":1749},"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":1755,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1756,"content":1762,"config":1767,"_id":1769,"_type":14,"title":1770,"_source":16,"_file":1771,"_stem":1772,"_extension":19},"/ja-jp/blog/monday-merge-2025-june-9",{"title":1757,"description":1758,"ogTitle":1757,"ogDescription":1758,"noIndex":6,"ogImage":1759,"ogUrl":1760,"ogSiteName":669,"ogType":670,"canonicalUrls":1760,"schema":1761},"🌞 6月のMonday Merge：GitLab 18登場！ ただのアップデートじゃない、その理由とは？","6月のMonday Mergeでは、大規模アップデートや新しいAI機能、次のスプリントに役立つDevSecOpsインサイトが満載です。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659951/Blog/Hero%20Images/image4.png","https://about.gitlab.com/blog/monday-merge-2025-june-9","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"🌞 6月のMonday Merge：GitLab 18登場！ ただのアップデートじゃない、その理由とは？\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-06-09\",\n      }",{"title":1757,"description":1758,"authors":1763,"heroImage":1759,"date":1764,"body":1765,"category":682,"tags":1766},[853],"2025-06-09","みなさん、こんにちは！6月のMonday Mergeにようこそ。今回も最新情報をお届けします！\n\n大規模アップデートや新しいAI機能、次のスプリントに役立つDevSecOpsインサイトが満載です。今月の注目ポイント？それは GitLab 18の正式リリースです。しかも今回から、PremiumおよびUltimateのすべてのお客様が、GitLab Duoの主要なAI機能を追加料金なしでご利用可能になりました。\n\nそれでは、さっそく見ていきましょう👇\n\n## GitLab 18：GitLabにとっての小さな一歩、DevSecOpsにとっての大きな飛躍\n![gitlab 18](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/image6.png)\n\nGitLab 18.0のリリースでは、PremiumとUltimateプランにGitLab Duoが標準搭載され、AIネイティブなDevSecOpsの新たな時代が始まります。\n\n### 新機能ハイライト\n\n* Duoコード提案 & GitLab Duo ChatがIDEで利用可能に：コードの記述から理解、リファクタリング、テストまでリアルタイムで支援します。  \n* リポジトリX-Ray（Self-Hostedはベータ版）：リポジトリ構造とコードの健全性を可視化します。  \n* GitLab Duoコードレビューの自動有効化：すべてのマージリクエストにAIレビューを適用。  \n* プロンプトキャッシュ機能：AI応答の遅延を軽減し、スムーズなやり取りを実現。\n\n最新のグローバルDevSecOps調査では、デベロッパーがコード以外の作業に79％もの時間を費やしていることが明らかになりました。つまり、AIを“コード支援”のみに使っているだけでは、AIの真の力を活かしきれていません。GitLab 18では、ソフトウェア開発ライフサイクル全体にAIを組み込み、面倒な作業を減らして本質的なイノベーションに集中できる環境を提供します。\n\nこのリリースを可能にしたのは、世界中の素晴らしいコミュニティの力です。328件のコントリビュートにより支えられたGitLab 18は、まさに「使う人たちによって作られた」リリースです。\n\n今月の注目コントリビューターは、Adfinis社CTOのMichael Hoferさん。GitLabのGeo機能やSecrets Managerの改善など、本当にたくさんの貢献をしてくださいました。オープンソースにかける想いと、周囲を巻き込む力に、私たちもたくさんの学びをもらっています。\n\n👉 [GitLab 18 リリースノート全文を読む](https://about.gitlab.com/ja-jp/blog/gitlab-18-0-release/)\n\n## 事例のご紹介：Ignite by FORVIA HELLA\n![ignite](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/image3.png)\n\nソフトウェアが自動車産業の中核となる今、[Ignite by FORVIA HELLA](https://www.linkedin.com/company/ignite-by-forvia-hella/)は次世代車両開発のために、ベルリンを拠点とするソフトウェア・イノベーションハブ Ignite を立ち上げました。\n\nCTOのFelix Kortmann氏はGitLab Duoについてこう語ります。\n\n「Duoのインテリジェントなコード提案は、デベロッパーにとって日常の必需品です。チャット機能と組み合わせることで、即座のフィードバックと反復が可能になり、開発サイクルが短縮され、コードの安全性も向上しました。私たちのワークフローに、シームレスかつ強力に統合されています」\n\nGitLab CI/CDとAI機能を組み合わせることで、Igniteは反復テストや品質チェックを自動化。コードがpushされた瞬間に自動処理が走り、早期の課題検出とスピーディーなデリバリーを実現しています。\n\n## GitLab 18のローンチイベントがバーチャルで開催！しかもアジア時間に！さらに日本語字幕付き！\n\n2025年6月24日（火）13時より、GitLab 18の新機能を紹介するグローバルオンラインイベントを開催します。\n\n### ✨ イベント内容\n\n* GitLab 18の新機能を実演するライブデモ  \n* GitLabのリーダーたち（Bill Staples、Sabrina Farmer、Josh Lemos、David DeSantoほか）によるインサイト共有  \n* 新ライブシリーズ「The Developer Show」の初公開： コーディングデモ、プロダクト解説、コミュニティのストーリーをお届け！\n\nご都合の良い時間帯を選んでぜひご参加ください。質問も大歓迎です！\n\n👉 [今すぐイベント登録する](https://about.gitlab.com/eighteen/)\n\n## GitLab Duo、Premiumにも標準搭載\n\nGitLab 18のリリースにより、Duoの主要機能がPremiumおよびUltimateで標準提供されます。追加ツールも、追加費用も不要。IDE上でスマートな開発がすぐに始められます。\n\n### 機能ハイライト\n\n* GitLab Duoコード提案：20以上のプログラミング言語で高速なコード作成・リファクタリング  \n* GitLab Duo Chat：コードの解説、テスト生成、トラブル対応を簡単に\n\nさらに、より高度な機能を求めるチームには、Ultimate限定だったDuo EnterpriseがPremiumでも利用可能に。[GitLab Duo根本原因分析](https://docs.gitlab.com/user/gitlab_duo/use_cases/#root-cause-analysis-use-cases)、GitLab Duo Self-Hosted、AIコードレビューなどが利用できます。\n\n👉 [Duoを有効にして、開発を始めましょう](https://about.gitlab.com/ja-jp/blog/gitlab-premium-with-duo/)\n\n## AWS Summit で直接お会いしましょう！\n![aws summit](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687124/Blog/Content%20Images/image1.png)\n\n東京をはじめ、世界各地のAWS SummitにGitLabも出展します！GitLabとAWSの連携機能を体験できるほか、安全なクラウドネイティブ開発の事例もご紹介。もちろん、ノベルティもご用意しています！\n\n🗓️ 6月のイベント予定\n\n* シドニー｜6月4日〜5日  \n* ストックホルム｜6月4日  \n* ハンブルク｜6月5日  \n* マドリード｜6月11日  \n* ミラノ｜6月18日  \n* ムンバイ｜6月19日  \n* 東京｜6月25日〜26日\n\n👉 [AWS Summit 2025でお会いできるのを楽しみにしています！](https://about.gitlab.com/ja-jp/events/aws-summits/)\n\n## 今月のおすすめ読書\n![08 Header Images April What We’re Reading](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/08_LinkedIn_Header_Images_April_What_We_re_Reading.png)\n\n* **A Practical Roadmap for Adopting Vibe Coding（Vibe Coding 導入のための実践ロードマップ）**\nスピードを重視するあまり、品質や保守性が犠牲にならないよう、適切なガバナンスが必要だとGitLabの戦略VPであるEmilio Salvadorが解説。\n\n🔗 [The New Stackの記事を読む（英語）](https://thenewstack.io/a-practical-roadmap-for-vibe-coding-adoption/)\n\n* **3 ways APAC engineering teams can operationalise AI（APACの開発チームがAIを活用する3つの方法）**  \nAPACのエンジニアリングチームによる日常業務へのAI統合、業務効率化、抵抗感の軽減、ビジネス価値の可視化についてGitLabのCTOであるSabrina Farmerが説明します。  \n🔗 [Frontier Enterpriseの記事を読む](https://www.frontier-enterprise.com/3-ways-apac-engineering-teams-can-operationalise-ai/)  \n\n* **Beyond Culture: Addressing Common Security Frustrations（文化を越えて：セキュリティ課題の根本に向き合うには）**  \n文化づくりも重要ですが、開発とセキュリティの基本設計から見直す必要があります。GitLab最高情報セキュリティ責任者のJosh Lemosによる解説記事。  \n🔗 [The New Stackの記事を読む（英語）](https://thenewstack.io/beyond-culture-addressing-common-security-frustrations/)  \n\n* **The Field CTO View: AI, Vibe Coding, and Developer Skillsets（フィールドCTOの視点：AIとVibe Coding、デベロッパーのスキルセットのこれから）**\n企業のIT部門ではAIがどう実装されているのか？ デベロッパーの適応はどう進んでいるのか？GitLabのフィールドCTO部門責任者が答えています。  \n🔗 [The New Stackの記事を読む（英語）](https://thenewstack.io/the-field-cto-view-ai-vibe-coding-and-developer-skillsets/)\n\n## 今月のひとこと\n\n最後に、私が心に留めている言葉をシェアします。完璧を目指すよりも、まずは一歩を踏み出すこと。大きなアイデアは、小さな行動から始まります。\n\n「何かを始める方法は、話すのをやめて行動することだ」– ウォルト・ディズニー\n\nこれからも、ひとつずつマージを重ねながら、学び、作り、そして成長していきましょう 💜\n\n🦊 また次回まで！\n\nGitLabコミュニティの一員でいてくださり、ありがとうございます！みなさんがGitLab 18でどんなものを作ってくださるのか、私たちも楽しみにしています。バーチャルイベントの登録と、AI機能の活用開始もお忘れなく。それではまた次回のMonday Mergeでお会いしましょう。Happy Merging!\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/) | GitLab Developer Advocate\n![SignOffBanner](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/SignOffBanner.png)",[1082,680,9,705,681,682,280,234,707,1024,813,270],{"slug":1768,"featured":6,"template":685},"monday-merge-2025-june-9","content:ja-jp:blog:monday-merge-2025-june-9.yml","Monday Merge 2025 June 9","ja-jp/blog/monday-merge-2025-june-9.yml","ja-jp/blog/monday-merge-2025-june-9",{"_path":1774,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1775,"content":1781,"config":1786,"_id":1788,"_type":14,"title":1789,"_source":16,"_file":1790,"_stem":1791,"_extension":19},"/ja-jp/blog/monday-merge-2025-may-9",{"title":1776,"description":1777,"ogTitle":1776,"ogDescription":1777,"noIndex":6,"ogImage":1778,"ogUrl":1779,"ogSiteName":669,"ogType":670,"canonicalUrls":1779,"schema":1780},"🌞 5月のMonday Merge：RSAでの発見、AIアシスタント、 さらに広がるDevSecOpsの世界！","5月のMonday Mergeでは、ARSACでの学びから、GitLab Duo with Amazon Q の一般提供開始、GitLab 17.11、そしてシーメンス社の事例をご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662427/Blog/Hero%20Images/image1.png","https://about.gitlab.com/blog/monday-merge-2025-may-9","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"🌞 5月のMonday Merge：RSAでの発見、AIアシスタント、 さらに広がるDevSecOpsの世界！\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"GitLab Japan Team\"}],\n        \"datePublished\": \"2025-05-09\",\n      }",{"title":1776,"description":1777,"authors":1782,"heroImage":1778,"date":1783,"body":1784,"category":682,"tags":1785},[853],"2025-05-09","GitLabコミュニティのみなさん、こんにちは！\n\n5月がやってきて、勢いも加速中！RSACでの学びから、GitLab Duo with Amazon Q の一般提供開始、GitLab 17.11、そしてシーメンス社の素晴らしいカスタマーストーリーまで、今月のMonday Mergeはイノベーションとインサイト、インスピレーションが満載です。\n\nさっそく見ていきましょう！\n\n## 🗞️ RSAカンファレンス2025 特別レポート\n\n![monday merge may fatima](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687422/Blog/Content%20Images/image8.png)\n\n先週のサンフランシスコは、霧とコーヒーだけでなく、サイバーセキュリティの熱気にも包まれていました。RSAカンファレンス2025では業界のトップが集結し、GitLabもブース\\#4324で参加しました。イベントでは、AIアシスタント、組み込み型セキュリティ、透明性の高いDevSecOpsの実践などを通して、「協業こそがセキュリティの鍵」という明確なメッセージが示されていました。\n\n## 🤝 GitLab Duo with Amazon Q：ついに一般提供開始、とっても便利です！\n![monday merge may gitlab duo with amazon q](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687422/Blog/Content%20Images/image3.png)\n\n新しいAIコンビにご注目を！GitLab Duo with Amazon Qが一般提供となり、AWSでの開発のあり方が大きく変わります。コードを書くとき、マージリクエストのレビュー時、そして古いJavaの更新（リファクタリング戦士たち、ありがとう！）も、AIアシスタントが重荷を引き受けます。\n\nGitLabに組み込まれたAmazon Qを使えば、`/q dev`や`/q transform`のような直感的なプロンプトで、課題から実装までを数分で完了できます。Volkswagen Digital Solutions社やAvaility社のような早期導入企業は、すでにワークフローの高速化や複雑な環境のモダナイゼーションに活用中です。\n\n🔗 [GitLab Duo with Amazon Qの詳細を見る](https://about.gitlab.com/ja-jp/blog/gitlab-duo-with-amazon-q-agentic-ai-optimized-for-aws/)\n\n🔗 [アイデアを数分でコードに変える方法（英語）](https://about.gitlab.com/blog/gitlab-duo-amazon-q-transform-ideas-into-code-in-minutes/)\n\n## 🚀 GitLab 17.11：コンプライアンス、カスタマイズ、さらなるAIの進化\n![monday merge may GitLab release 17.11](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687423/Blog/Content%20Images/image2.png)\n\n今月のリリースでは60以上の機能改善があり、セキュリティ管理の強化、柔軟性の向上、AIを使った精密なワークフローの高速化を実現。規制のある環境での運用から、カスタムプロセスの拡張、AIアシスタントの活用まで、GitLab 17.11は必要な管理機能、ダッシュボード、統合機能を提供します。\n\n### ✨ 主なハイライト\n\n* **カスタムコンプライアンスフレームワーク**：要件定義、50以上のコントロールとのマッピング、詳細なレポートの生成\n\n* **Duo Self-Hosted新機能（ベータ）**：根本原因分析、AIによる要約、脆弱性インサイトなど\n\n* **Eclipseプラグイン（ベータ）**：DuoがEclipseに対応し、さらに統合されたコーディング体験が可能に\n\n* **パッケージとタグの保護**：重要な資産を万全に保護\n\n* **カスタムフィールドとイシュー画面の改善**：構造化されたメタデータの追加、タスクの整理、管理効率向上\n\n* **CI/CDパイプライン入力**：動的なコンテンツを柔軟かつ安全に注入\n\n🎉 さらに、GitLabコミュニティによる284件の貢献に感謝します！Mavenパッケージ保護やDuo、CI/CD改善など、世界中のコントリビューターの創造力と献身が反映されています。みなさんの協力がなくては実現できませんでした 🙌\n\n🔗 [17.11のリリースノートを見る](https://about.gitlab.com/ja-jp/blog/gitlab-17-11-release/)\n\n## ☁️ AWSサミットで直接お会いしましょう！\n\n![monday merge may aws summit](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687423/Blog/Content%20Images/image4.png)\nGitLabはAWSサミットのグローバルスポンサーとして、各地にDevSecOpsを届けます。  \nぜひブースにお立ち寄りください：\n\n* ライトニングトークやハンズオンデモ  \n* GitLabのAI・セキュリティ専門家との対話  \n* AWS上での開発をより高速・安全に進めるヒント\n\n📍[AWS Summit Japan 2025](https://aws.amazon.com/jp/summits/japan/)（2025年6月25日、26日）、[その他開催地をみる](https://about.gitlab.com/events/aws-summits/)\n\n## 🏗️ 事例のご紹介：シーメンス社がGitLabで協業をスケール\n![monday merge may siemens 事例](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687423/Blog/Content%20Images/image6.png)\n\n世界有数のエンジニアリング企業が、開発者の協業の在り方を見直すとどうなるか？ それを体現しているのが、シーメンス社の驚くべきDevSecOpsストーリーです。\n\n2014年、組み込みLinux開発において、より良い協業方法を模索していた小さな先進的チームから全ては始まりました。今では、シーメンス社の75,000人以上の開発者がGitLabを中心となるプラットフォームとして利用し、1日あたり20万件以上のビルドを実施。GitLab導入は単なる技術的な実装にとどまらず、チームをつなげ、インナーソース文化を育み、企業全体のイノベーションを促進しました。\n\nさらに、シーメンス社はGitLabのユーザーであると同時に構築者でもあります。300以上のマージリクエスト、12件のMVP受賞を誇り、プラットフォームの進化にも貢献しながら、自社のDevOps力も強化しています。\n\n現在はAIアシスタントを自社モデルで活用し、マージリクエストを強化する独自の「CodeAI」ボットを導入。AIを“代替”ではなく“創造性と協業の鍵”として未来に備えています。\n\n🔗 [シーメンス社のストーリー全文を読む（ドイツ語）](https://www.computerwoche.de/article/3963808/eine-neue-ara-der-entwicklerzusammenarbeit.html)\n\n## 📚 おすすめ読みもの：AI、リスク、そしてGitLabリーダーたちの見解\n\n![08 Header Images April What We’re Reading](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/08_LinkedIn_Header_Images_April_What_We_re_Reading.png)\n\n* **AIアシスタント：開発者の可能性をスケールさせる**  \nEmilio Salvadorが語る、「未来のソフトウェア開発は一人ではできない」理由。専任のAIアシスタントは新しいチームメイトと語ります。\n\n🔗 [続きを読む（英語）](https://about.gitlab.com/the-source/ai/agentic-ai-unlocking-developer-potential-at-scale/)\n\n* **リスクインテリジェンスをソフトウェアサプライチェーンに組み込む**  \n[Lee Faus](https://www.linkedin.com/in/leefaus/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3B4GSpHonESSme7Hfb1%2BuxeQ%3D%3D)が、リスク対策を単なる後付けではなく、パイプライン全体に組み込む方法を解説します。\n\n🔗 [続きを読む（英語）](https://about.gitlab.com/the-source/security/embedding-risk-intelligence-into-your-software-supply-chain/)\n\n* **セキュリティ対策を公開するメリットとデメリット**  \n[Josh Lemos](https://www.linkedin.com/in/joshlemos/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3B4GSpHonESSme7Hfb1%2BuxeQ%3D%3D)が[Tines](https://www.linkedin.com/company/tines-io/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3B4GSpHonESSme7Hfb1%2BuxeQ%3D%3D)で、透明性のあるセキュリティ、AIの脅威、コーヒーチャットの重要性について語ります。\n\n🔗 [続きを読む（英語）](https://www.tines.com/blog/gitlab-josh-lemos/)\n\n* **エンジニアリングチームにAIを導入する3つの方法**  \n[Sabrina Farmer](https://www.linkedin.com/in/sabrinafarmer/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3B4GSpHonESSme7Hfb1%2BuxeQ%3D%3D)が、AIをチームの味方にするステップバイステップガイドを紹介します。\n\n🔗 [続きを読む（英語）](https://www.forbes.com/councils/forbestechcouncil/2025/04/25/three-ways-to-operationalize-ai-for-engineering-teams/)\n\n* **精密にGo-To-Market戦略を進めるには**  \n[Brian Robins](https://www.linkedin.com/in/brian-robins-5254864/?lipi=urn%3Ali%3Apage%3Ad_flagship3_pulse_read%3B4GSpHonESSme7Hfb1%2BuxeQ%3D%3D)がGitLabの、市場戦略、「Ultimate」が成長を牽引する理由、そして財務の“人間らしさ”について語ります。\n\n🔗 [続きを読む（英語）](https://cfothoughtleader.com/cfopodcasts/1083-navigating-the-go-to-market-roadmap-with-precision-brian-robins-cfo-gitlab/)\n\n## 💬 本日のインスピレーション\n\n> 「セキュリティとは、新たな技術的フロンティアへ安全に渡るための架け橋である。」\u003Cbr>– Magda Chelly\n\nAIアシスタント、コンプライアンス管理、コラボレーションのワークフローなど、新たなフロンティアへ進んでいく中で、セキュリティは単なるチェックポイントではなく、イノベーションを可能にする土台だということを忘れずに。架け橋を丁寧に築き、自信を持って渡り、素晴らしいものを創り出していきましょう。\n\nそれでは、次回まで、好奇心を持ち続け、つながりを大切にし、Happy Merging！\n\n[Fatima Sarah Khalid](https://www.linkedin.com/in/sugaroverflow/) | GitLab Developer Advocate\n![SignOffBanner](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687125/Blog/Content%20Images/SignOffBanner.png)\n\nP.S. DevSecOpsの最新情報を逃さないように、ぜひ来月も読んでくださいね！\n",[1082,680,9,705,681,682,280,234,707,1024,813,270],{"slug":1787,"featured":91,"template":685},"monday-merge-2025-may-9","content:ja-jp:blog:monday-merge-2025-may-9.yml","Monday Merge 2025 May 9","ja-jp/blog/monday-merge-2025-may-9.yml","ja-jp/blog/monday-merge-2025-may-9",{"_path":1793,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1794,"content":1799,"config":1806,"_id":1808,"_type":14,"title":1809,"_source":16,"_file":1810,"_stem":1811,"_extension":19},"/ja-jp/blog/monday-merge-2025-september-8",{"config":1795,"title":1796,"ogImage":1797,"description":1798},{"noIndex":6},"Monday Merge 9月号","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756904278/ov1n66vq8dnikcjyu0iw.png","最新リリース、注目のホワイトペーパー、そして大規模なDevSecOpsの取り組み事例をお届け。",{"title":1800,"authors":1801,"heroImage":1797,"date":1802,"category":682,"tags":1803,"body":1804,"description":1805},"Monday Merge 9月号：より速いパイプライン、もっと賢いエージェント、そしてより大きな成果を！",[853],"2025-09-08",[9,109,813,270,1023,680,280,706,682,1082,681,1024],"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":685,"slug":1807},"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":1813,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1814,"content":1820,"config":1826,"_id":1828,"_type":14,"title":1829,"_source":16,"_file":1830,"_stem":1831,"_extension":19},"/ja-jp/blog/quickly-resolve-broken-ci-cd-pipelines-with-ai",{"title":1815,"description":1816,"ogTitle":1815,"ogDescription":1816,"noIndex":6,"ogImage":1817,"ogUrl":1818,"ogSiteName":669,"ogType":670,"canonicalUrls":1818,"schema":1819},"破損した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":1815,"description":1816,"authors":1821,"heroImage":1817,"date":1533,"body":1823,"category":10,"tags":1824,"updatedDate":1825},[1822],"Itzik Gan Baruch","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",[9,703,708,706],"2025-03-12",{"slug":1827,"featured":6,"template":685},"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":1833,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1834,"content":1840,"config":1846,"_id":1848,"_type":14,"title":1849,"_source":16,"_file":1850,"_stem":1851,"_extension":19},"/ja-jp/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo",{"title":1835,"description":1836,"ogTitle":1835,"ogDescription":1836,"noIndex":6,"ogImage":1837,"ogUrl":1838,"ogSiteName":669,"ogType":670,"canonicalUrls":1838,"schema":1839},"AI搭載のGitLab Duoでコードをモダンな言語にリファクタリング","この詳細なチュートリアルでは、デベロッパーがAIを活用し、コードを新しいプログラミング言語に移行してモダナイゼーションを進めるプロセスや、同じ言語における新機能についても学べる内容を紹介しています。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662465/Blog/Hero%20Images/GitLab_Duo_Workflow_Unified_Data_Store__1_.png","https://about.gitlab.com/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"AI搭載のGitLab Duoでコードをモダンな言語にリファクタリング\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Michael Friedrich\"}],\n        \"datePublished\": \"2024-08-26\",\n      }",{"title":1835,"description":1836,"authors":1841,"heroImage":1837,"date":1842,"body":1843,"category":10,"tags":1844,"updatedDate":1845},[919],"2024-08-26","コードベースやフレームワークのモダナイゼーションを行うために新しいプログラミング言語へ移行する必要があったり、同じ言語内の新しい機能の知識を深めたい場合は、AI搭載の[GitLab Duo](https://about.gitlab.com/gitlab-duo/)が有効です。ここでは、筆者が過去20年にわたるコーディングキャリアで培ったベストプラクティスをもとに、コードリファクタリングの際に直面する課題への効果的なアプローチ方法をご紹介します。\n\nこの記事では、VS CodeとJetBrains IDE（IntelliJ IDEA、PyCharm、CLion）を使用したプロンプトと例を紹介します。いずれのIDEにも[GitLab Duo拡張機能やプラグイン](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html)がインストールされています。開発環境としてはGitLab.comが使用されています。ここでは大規模言語モデル（LLM）がAnthropic Claude 3.5にアップデートされており、GitLab Duoの[コード提案](https://docs.gitlab.com/ee/user/gitlab_duo/#code-suggestions)と[Duo Chat](https://docs.gitlab.com/ee/user/gitlab_duo/#gitlab-duo-chat)に適用されています。これらの機能は卓越したパフォーマンスと効率性を発揮します。\n\nこの記事では必要なセクションだけを確認しても良いですし、上から順を追って読んでも構いません。また、自己学習に役立つソースコードや演習問題も用意しています。\n\n- モダンなプログラミング言語標準に合わせたコードのリファクタリング\n    - Java 7のコードを生成し、Java 8にリファクタリング\n    - C++標準に基づいたリファクタリング\n        - 移行：C++03をC++14にリファクタリング\n        - ダウングレード：C++23をC++11にリファクタリング\n    - COBOLの説明とリファクタリング\n- 異なる言語間でのリファクタリング\n    - CをRustにリファクタリング\n    - PerlをPythonにリファクタリング\n- その他のリファクタリング実践例\n    - JavaScriptのリファクタリング\n    - BashをZSHやSHにリファクタリング\n    - その他のユースケースやチュートリアル\n- 重要なポイント\n\n## モダンなプログラミング言語標準に合わせたコードのリファクタリング\n\n次のセクションでは、特定のプログラミング言語におけるリファクタリングの方法、言語固有の違いの説明、および理解の仕方について解説します。\n\n### Java 7のコードを生成し、Java 8にリファクタリング\n\nあるお客様から、GitLab DuoがJava 7をサポートしているかどうかのご質問が寄せられました。Java 7固有のコードを生成するためのコード提案とGitLab Chatのプロンプトをテストしている際、移行支援についても考えました。Anthropic Claude 3.5と同様に、GitLab Duoも言語固有の違いを理解できます。\n\n次の例では、コード提案を使用してJava 7のコードを生成するプロンプトを示しています。\n\n```java\n// Generate a new class for a File Manager. Use Java 7 features only.\nimport java.io.*;\nimport java.nio.file.*;\nimport java.util.*;\n\npublic class FileManager {\n    private Path rootDirectory;\n\n    public FileManager(String rootPath) throws IOException {\n        this.rootDirectory = Paths.get(rootPath);\n        if (!Files.exists(rootDirectory)) {\n            Files.createDirectories(rootDirectory);\n        }\n    }\n\n    public void createFile(String fileName, String content) throws IOException {\n        Path filePath = rootDirectory.resolve(fileName);\n        Files.write(filePath, content.getBytes(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING);\n    }\n\n    public String readFile(String fileName) throws IOException {\n        Path filePath = rootDirectory.resolve(fileName);\n        return new String(Files.readAllBytes(filePath));\n    }\n\n    public void deleteFile(String fileName) throws IOException {\n        Path filePath = rootDirectory.resolve(fileName);\n        Files.delete(filePath);\n    }\n\n    public List\u003CString> listFiles() throws IOException {\n        List\u003CString> fileList = new ArrayList\u003C>();\n        try (DirectoryStream\u003CPath> stream = Files.newDirectoryStream(rootDirectory)) {\n            for (Path file : stream) {\n                fileList.add(file.getFileName().toString());\n            }\n        }\n        return fileList;\n    }\n\n    public void copyFile(String sourceFileName, String destinationFileName) throws IOException {\n        Path sourcePath = rootDirectory.resolve(sourceFileName);\n        Path destinationPath = rootDirectory.resolve(destinationFileName);\n        Files.copy(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);\n    }\n\n    public void moveFile(String sourceFileName, String destinationFileName) throws IOException {\n        Path sourcePath = rootDirectory.resolve(sourceFileName);\n        Path destinationPath = rootDirectory.resolve(destinationFileName);\n        Files.move(sourcePath, destinationPath, StandardCopyOption.REPLACE_EXISTING);\n    }\n\n    public long getFileSize(String fileName) throws IOException {\n        Path filePath = rootDirectory.resolve(fileName);\n        return Files.size(filePath);\n    }\n\n    public boolean fileExists(String fileName) {\n        Path filePath = rootDirectory.resolve(fileName);\n        return Files.exists(filePath);\n    }\n}\n```\n\nご自身のIDEで次の手順を進めてください。\n\n1. 生成されたコードを理解する：エディタでコード部分を選択（スクリーンショットの青色部分）し、GitLab Duo Chatに切り替えて、`/explain` スラッシュ(/) コマンドをプロンプトとして送信します。\n\n![GitLab Duo Chatで `/explain` スラッシュ(/) コマンドを使用して生成したコードを検証する](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/intellij_java7_generate_refactor.png)\n\n2. Java 7のコードをJava 8にリファクタリングする：エディタでコードを選択し、Chatに切り替えて、プロンプトを `/refactor using Java 8 features` に変更して送信します。\n3. リファクタリングの代替方法を練習する：新しいファイル `java8.java` を作成し、コード提案を使って `// Generate a new class for a File Manager. Use Java 8 features only.` というプロンプトでJava 8固有のコードを生成します。\n4. AI搭載のコード補完機能を使って、同じコンテキストでJava 8のコードの続きを記述します。\n\n次の録画ですべての手順をご覧になれます。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/XKRv6uBkD2I\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\nソースコードは[GitLab Duo Challenge - Generate and refactor Java 7 to 8 project ]( https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-generate-refactor-java-7-to-8)で取得できます。\n\n### C++標準に基づいたリファクタリング\n\nC++の標準には長い歴史があり、安定性と成熟度には信頼があります。ターゲットとなるアーキテクチャやプラットフォームに応じて、サポートされる標準はホストのオペレーティングシステム上のコンパイラに依存します。\n\n筆者は自身のキャリアを通して、25種類の異なるLinuxおよびWindowsディストリビューションをサポートするオープンソースプロジェクトに関わり、新しい言語機能やC++標準に対するコンパイラのサポートが多様であることを実感してきました。2015年にはC++11の機能を採用し、それ以降C++14やC++17に触れることはありませんでした。\n\n関数やアルゴリズムを新しいC++標準にリファクタリングするのには多大な労力がかかり、その違いを説明する支援が必要でした。当時は、リファクタリングの調べものを、書籍やオンライン検索、Stack Overflow、そして時にはツールの助けを借りて行っていました。\n\nしかし、AI搭載のアシストやGitLab Duoの登場で状況は変わりました。コード提案やDuo Chatに、特定のC++標準に準拠したソースコードを提示するよう指示したり、異なる出力を比較したりできるようになったのです。\nしかし、AI搭載のアシストやGitLab Duoの登場で状況は変わりました。コード提案やDuo Chatに、特定のC++標準に準拠したソースコードを提示するよう指示したり、異なる出力を比較したりできるようになったのです。\n\n次の例では、C++03標準に特化したプロンプトを使用してソースコードを生成しています。これは、`.ini` 構成フォーマット用のシンプルなコンフィグパーサー（configparser）を実装しています。\n\n```c++\n/* iniフォーマットを解析できるconfigparserを作成\nC++03標準のみを使用\n */\n\n#include \u003Ciostream>\n#include \u003Cfstream>\n#include \u003Cstring>\n#include \u003Cmap>\n#include \u003Csstream>\n\nclass ConfigParser {\nprivate:\n    std::map\u003Cstd::string, std::map\u003Cstd::string, std::string> > config;\n\npublic:\n    ConfigParser() {}\n\n    bool parse(const std::string& filename) {\n        std::ifstream file(filename.c_str());\n        if (!file.is_open()) {\n            return false;\n        }\n\n        std::string line;\n        std::string currentSection;\n\n        while (std::getline(file, line)) {\n            // Trim whitespace\n            size_t first = line.find_first_not_of(\" \\t\");\n            size_t last = line.find_last_not_of(\" \\t\");\n            if (first == std::string::npos) continue; // Skip empty lines\n            line = line.substr(first, (last - first + 1));\n\n            if (line[0] == '[' && line[line.length() - 1] == ']') {\n                // This is a section\n                currentSection = line.substr(1, line.length() - 2);\n            } else {\n                // This is a key-value pair\n                size_t delimiterPos = line.find('=');\n                if (delimiterPos != std::string::npos) {\n                    std::string key = line.substr(0, delimiterPos);\n                    std::string value = line.substr(delimiterPos + 1);\n                    config[currentSection][key] = value;\n                }\n            }\n        }\n\n        file.close();\n        return true;\n    }\n\n    std::string getValue(const std::string& section, const std::string& key) const {\n        std::map\u003Cstd::string, std::map\u003Cstd::string, std::string> >::const_iterator sectionIt = config.find(section);\n        if (sectionIt != config.end()) {\n            std::map\u003Cstd::string, std::string>::const_iterator keyIt = sectionIt->second.find(key);\n            if (keyIt != sectionIt->second.end()) {\n                return keyIt->second;\n            }\n        }\n        return \"\";\n    }\n\n    void printConfig() const {\n        std::map\u003Cstd::string, std::map\u003Cstd::string, std::string> >::const_iterator sectionIt;\n        for (sectionIt = config.begin(); sectionIt != config.end(); ++sectionIt) {\n            std::cout \u003C\u003C \"[\" \u003C\u003C sectionIt->first \u003C\u003C \"]\" \u003C\u003C std::endl;\n            std::map\u003Cstd::string, std::string>::const_iterator keyIt;\n            for (keyIt = sectionIt->second.begin(); keyIt != sectionIt->second.end(); ++keyIt) {\n                std::cout \u003C\u003C keyIt->first \u003C\u003C \" = \" \u003C\u003C keyIt->second \u003C\u003C std::endl;\n            }\n            std::cout \u003C\u003C std::endl;\n        }\n    }\n};\n\nint main() {\n    ConfigParser parser;\n    if (parser.parse(\"config.ini\")) {\n        std::cout \u003C\u003C \"Config file parsed successfully.\" \u003C\u003C std::endl;\n        parser.printConfig();\n\n        std::cout \u003C\u003C \"Value of 'key1' in 'section1': \" \u003C\u003C parser.getValue(\"section1\", \"key1\") \u003C\u003C std::endl;\n    } else {\n        std::cout \u003C\u003C \"Failed to parse config file.\" \u003C\u003C std::endl;\n    }\n    return 0;\n}\n```\n\n同じプロンプトを、[コードの説明](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#explain-code-in-the-ide)、[テスト生成](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#write-tests-in-the-ide)、さらには[コードのリファクタリング](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#refactor-code-in-the-ide)にも適用できます。たとえば、`/explain focus on C++03 features`、`/tests for C++03 features`、`/refactor into C++03` などです。 \n\n次のC++標準は、GitLab Duoのコード提案を使用して動作を確認済みです。\n\n- C++03\n- C++11\n- C++14\n- C++17\n- C++20\n- C++23\n\nソースコードは、[Challenge - Refactor Cpp Standards Config Parser project](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-cpp-standards-config-parser)で取得できます。\n\nC++標準間でソースコードをリファクタリングする組み合わせは数多く存在します。次の例では、C++コードを最新バージョンにアップグレードするケースに焦点を当てています。一方、熱心なデベロッパーがC++20を使用したいものの、エンタープライズな顧客環境をサポートするためにC++11にダウングレードしなければならなかったというシナリオもテストしています。\n\n#### 移行：C++03をC++14にリファクタリング\n\nここでは、コードのモダナイゼーションを行い、C++03からC++14への変更点を理解することを目標とします。IDEで[03.cpp](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-cpp-standards-config-parser/-/blob/main/03.cpp?ref_type=heads)のソースコードを開き、選択した後、次のChatプロンプトを使用します。\n\n```markdown\n/refactor into C++14 and explain the changes\n（日本語訳：/C++14にリファクタリングし、変更を説明してください）\n```\n\nChatの回答例：\n\n```markdown\n…\n\n変更点の説明：\n\n1. デフォルトコンストラクタ: `ConfigParser() {}` を `ConfigParser() = default;` に変更し、デフォルトコンストラクタを使用しました。\n2. ファイルオープン: ファイルを開く際、`.c_str()` を削除しました。C++11以降では、`std::string` が直接サポートされています。\n3. ラムダ関数: 文字列のトリミング処理を行うラムダ関数trimを導入し、コードの可読性と再利用性を向上させました。\n4. 自動キーワード: 型推論のために様々な箇所で `auto` を使用し、コードの可読性を改善しました。\n5. 範囲ベースのforループ:  `printConfig` メソッド内で従来のforループを範囲ベースのforループに置き換え、より簡潔でエラーが少ない構造にしました。\n6. 構造化束縛: 範囲ベースのforループで構造化束縛を使用し、キーと値のペアに直接アクセスできるようにしました。\n7. 初期化付きif文: `getValue` メソッド内で、検索操作と条件チェックを1行で行える初期化付きif文を使用しました。\n8. 文字列メンバー関数: 文字列の最初と最後の文字を取得する際に、配列風のアクセスではなく `front()` と `back()` を使用しました。\n9. 初期化の統一: オブジェクトの生成時に `()` ではなく `{}` を使用する統一された初期化を採用しました。\n10. `std::endl` の削除： `std::endl` を `'\\n'` に置き換え、パフォーマンスを向上させました。`std::endl` は出力バッファーを強制的にフラッシュするためです。\n\nこれらの変更により、コードはよりモダンで簡潔になり、同じ機能を維持しつつ効率性が向上しています。\n\n```\n\n![コードに反映された変更](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/duo_refactor_cpp_clion_chat_cpp03_to_14_01.png)\n\n![コードに反映された変更2](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675060/Blog/Content%20Images/duo_refactor_cpp_clion_chat_cpp03_to_14_02.png)\n\n#### ダウングレード：C++23をC++11にリファクタリング\n\n時に、デベロッパーはC++20のようなモダンなC++標準で新しい機能の概念実証を開始しますが、エンタープライズな顧客環境で実際にサポートされているバージョンでは、C++11をサポートする古いコンパイラが必要になる場合があります。バージョンをダウングレードするにはコストがかかるほか、どの言語機能がまだサポートされているかを確認し、潜在的なデメリットを検討する必要があります。\n\nIDEで[23.cpp](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-cpp-standards-config-parser/-/blob/main/23.cpp?ref_type=heads)のソースコードを開き、選択した後、次のChatプロンプトを使用します。\n\n```markdown\n/refactor into C++11, explain the necessary changes and potential problems\n（日本語訳：/C++14にリファクタリングし、必要な変更点と潜在的な問題点を説明してください）\n```\n\nDuo Chatの回答例：\n\n```markdown\nこのコードをC++11に対応させるために必要な主な変更点は次の通りです：\n\n1. C++23標準のコメントを削除しました。これはもう適用されないためです。\n2. trim関数内で `std::string::find_first_not_of` と  `std::string::find_last_not_of` をC++11対応の代替方法に置き換えました。\n3. ループ変数には `auto` の代わりに `const auto&` を使用し、不要なコピーを避けました。\n\nオリジナルのコードにおける潜在的な問題点は次の通りです：\n\n1. オリジナルのコードはC++23の機能を使用しており、まだ広くサポートされていない可能性があります。\n2. `trim` 関数では `std::string::find_first_not_of` と `std::string::find_last_not_of` を使用しており、これらはC++11には存在しません。\n3. 一部のループで `const auto&` の代わりに `auto` を使用していないと、複雑なオブジェクトが不必要にコピーされる可能性があります。\n\nこれらの問題はリファクタリング版で解決されています。`trim` 関数は、C++11対応の場合と同じ結果を得るために、ラムダ関数を使った `std::find_if_not` を利用するように変更されました。また、 `const auto&` を使用することで、設定マップを反復処理する際に不要なコピーが行われないようにしました。\n```\n\n![`trim` 関数は、C++11に対応する形で、ラムダ関数を使った `std::find_if_not` を使用して同じ結果をもたらすようになりました](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/duo_refactor_cpp_clion_chat_cpp23_to_11_01.png)\n\n![`const auto&` を使用することで、configマップを反復処理する際の不要なコピーの生成を防ぎ、パフォーマンスを最適化できます](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/duo_refactor_cpp_clion_chat_cpp23_to_11_02.png)\n\n**非同期練習**：他のバージョンのリファクタリングシナリオをテストしてみましょう。\n\n### COBOLの説明とリファクタリング\n\nGitLab Duoを使用して、COBOLプログラムのソースコードを説明させたり、解析、修正、リファクタリングを実行してもらえます。筆者はCOBOLを書いたことも学んだこともありませんでしたが、この[COBOL Programming Course](https://github.com/openmainframeproject/cobol-programming-course)では豊富な例が紹介されていて有用だと感じました。\n\nその後、次のように、Chatに「COBOLの始め方」「COBOLプログラムの作成方法」「macOSでのCOBOLプログラムのコンパイル方法」について質問しました。\n\n```markdown\nPlease explain what COBOL is and its syntax\n（日本語訳：COBOLとは何か、その構文について説明してください。）\n\nPlease create a COBOL program that shows the first steps\n（日本語訳：COBOLプログラムを作成し、最初のステップを示してください。）\n\nTell me more about the COBOL compiler. Which system do I need? Can I do it on my macOS?\n（日本語訳：COBOLコンパイラについて教えてください。どのようなシステムが必要ですか？ macOSで実行できますか？）\n```\t\n\n![GitLab Duo Chatに説明とその構文を求める](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/vscode_chat_cobol_generate_example.png)\n\nCOBOLプログラムを開き、ソースコードを選択したら、Duo Chatに切り替えて、`/explain` プロンプトを送信し、目的や機能を説明してもらいましょう。\n\nまた、プロンプトをさらに洗練して、全体像をより反映したサマリーを取得することもできます。\n\n```markdown \n/explain like I am five\n（日本語訳：/explain ５歳児にもわかるように説明してください。）\n```\n\n> ヒント：プログラミング言語は、類似したアルゴリズムや機能を共有しています。COBOLについては、ChatによるPythonを介した説明が提供されたため、以降のプロンプトではPythonでの説明を求めるように調整しました。\n\n```markdown\n/explain in a different programming language\n（日本語訳：/explain 異なるプログラミング言語で説明してください。）\n```\n\nChatでは、`/refactor` スラッシュ（/）コマンドを使用して、コード品質の改善、潜在的な問題の修正、およびCOBOLのPythonへのリファクタリングを実行できます。\n\n```markdown\n/refactor fix the environment error\n（日本語訳：/refactor 環境上のエラーを修正してください。）\n\n/refactor fix potential problems\n（日本語訳：/refactor 潜在的な問題を修正してください。）\n\n/refactor into Python\n（日本語訳：/refactor Pythonにリファクタリングしてください。）\n```\n\n次の[GitLab Duo Coffee Chat - Challenge: Explain and Refactor COBOL programs](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-explain-refactor-cobol-program)の録画では、欠落しているピリオドの見つけ方など、すべての手順が実際のユースケースをもとに説明されています。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/pwlDmLQMMPo\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n## 異なる言語間でのリファクタリング\n\nモダナイゼーションとコード品質の改善には、プログラミング言語の変更が必要になる場合があります。GitLab Duoのリファクタリングプロンプトを使用して、移行プロセスを迅速に進められますCOBOLとPythonの例は、エンタープライズ環境において一般的な要件のひとつに過ぎません。その他のユースケースを詳しく見ていきましょう。\n\n### CをRustにリファクタリング\n\n2024年初頭に、Cを始めとするいくつかのプログラミング言語は、メモリの安全性に問題があると指摘されました。今後のプロジェクトでは、Rustのような[メモリ安全な言語](https://about.gitlab.com/blog/memory-safe-vs-unsafe/)（英語）が推奨されています。ここでは、移行へのアプローチや、想定すべき課題について理解しましょう。\n\n簡単なCの例で試してみましょう。このコードはコード提案を使用して生成されており、オペレーティングシステムの基本情報（名前、バージョン、プラットフォームなど）を表示します。このCコードは、Windows、Linux、macOSでクロスプラットフォームにコンパイルできます。\n\n```c\n// OSファイルを読み込み、プラットフォーム、名前、バージョンを特定する\n// ターミナルに出力する\n#include \u003Cstdio.h>\n#include \u003Cstdlib.h>\n#include \u003Cstring.h>\n\n#ifdef _WIN32\n    #include \u003Cwindows.h>\n#elif __APPLE__\n    #include \u003Csys/utsname.h>\n#else\n    #include \u003Csys/utsname.h>\n#endif\n\nvoid get_os_info() {\n    #ifdef _WIN32\n        OSVERSIONINFOEX info;\n        ZeroMemory(&info, sizeof(OSVERSIONINFOEX));\n        info.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);\n        GetVersionEx((OSVERSIONINFO*)&info);\n\n        printf(\"Platform: Windows\\n\");\n        printf(\"Version: %d.%d\\n\", info.dwMajorVersion, info.dwMinorVersion);\n        printf(\"Build: %d\\n\", info.dwBuildNumber);\n    #elif __APPLE__\n        struct utsname sys_info;\n        uname(&sys_info);\n\n        printf(\"Platform: macOS\\n\");\n        printf(\"Name: %s\\n\", sys_info.sysname);\n        printf(\"Version: %s\\n\", sys_info.release);\n    #else\n        struct utsname sys_info;\n        uname(&sys_info);\n\n        printf(\"Platform: %s\\n\", sys_info.sysname);\n        printf(\"Name: %s\\n\", sys_info.nodename);\n        printf(\"Version: %s\\n\", sys_info.release);\n    #endif\n}\n\nint main() {\n    get_os_info();\n    return 0;\n}\n```\n\nここでは、JetBrains CLionなどを使用して [`os.c`](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-c-to-rust/-/blob/897bf57a14bb7be07d842e7f044f93a61456d611/c/os.c) のソースコードを開きます。 ソースコードを選択し、Chatプロンプトで `/explain` を使用して目的や機能を説明します。次に、Chatプロンプトで `/refactor` を使用してCコードをリファクタリングし、さらに `/refactor into Rust` を使用してRustにリファクタリングします。\n\n新しいRustプロジェクトを初期化（ヒント：Duo Chatに質問してみましょう）し、生成されたソースコードを `src/main.rs` ファイルにコピーします。`cargo build` を実行してコードをコンパイルします。\n\n![新しいRustプロジェクトを初期化し、生成されたソースコードを `src/main.rs` ファイルにコピーします。`cargo build` を実行してコードをコンパイルします。](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/jetbrains_clion_c_rust.png)\n\n[GitLab Duo Coffee Chat: Challenge - Refactor C into Rust ]( https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-c-to-rust)の録画では、の録画では、すべての手順を確認できるほか、コンパイルエラーが発生し、それがChatと `/refactor` スラッシュ(/) コマンドによって修正される様子もご覧になれます。また、このセッションでは、新しいRustコードのメンテナンス性を向上させるために、エラーハンドリングを追加する方法も紹介されています。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/nf8g2ucqvkI\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n### PerlをPythonにリファクタリング\n\n本番環境サーバーでジョブを実行するスクリプトがありますが、作成者は10年前に退社しており、誰もそのスクリプトに手を付けたがりません。この問題は、複数のスクリプトや、さらにはアプリケーション全体にも影響している可能性があります。そこで、すべてをモダンなPython 3に移行する決定が下されました。ここでは、コードのモダナイゼーションを行い、PerlからPythonへの変更点を理解することを目標とします。\n\n最近、GitLab Duoのワークショップに参加したお客様から、GitLab Duoを使って直接移行が可能かどうかという質問がありました。一言でお答えすれば、「可能」です。これを詳しく説明するならば、この記事にある他の例と同様に、洗練されたChatプロンプトを使用することで、PerlコードをPythonにリファクタリングすることができます。\n\n`script.pl` ソースコードをIDEで開き、選択して、Chatを開きます。\n\n```perl\n#!/usr/bin/perl\nuse strict;\nuse warnings;\n\nopen my $md_fh, '\u003C', 'file.md' or die \"Could not open file.md: $!\";\n\nmy $l = 0;\nmy $e = 0;\nmy $h = 0;\n\nwhile (my $line = \u003C$md_fh>) {\n  $l++;\n  if ($line =~ /^\\s*$/) {\n    $e++;\n    next;\n  }\n  if ($line =~ /^#+\\s*(.+)/) {\n    print \"$1\\n\";\n    $h++; \n  }\n}\n\nprint \"\\nS:\\n\"; \nprint \"L: $l\\n\";\nprint \"E: $e\\n\"; \nprint \"H: $h\\n\";\n```\n\n次のプロンプトを使用できます：\n\n1. `/explain` でその目的を説明させ、 `/refactor` でコードを改善させます。\n2. `/refactor into Python`：実行可能なPythonスクリプトを取得します。\n\n![Pythonへのリファクタリング](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/pycharm_duo_refactor_perl_python.png)\n\n> ヒント：Perlコードは、より多くのターゲット言語にリファクタリングできます。[GitLab Duo Coffee Chat：チャレンジ - PerlからPythonへのリファクタリング](https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-perl-python)の録画では、PHP、Ruby、Rust、Go、Java、VB.NET、C#などの言語も取り上げています。\n>\n> Perlスクリプトの使用を継続するには、Duoのコード提案で[Perlを追加言語として](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#add-support-for-more-languages)設定できます。ChatはすでにPerlを理解しており、質問やスラッシュ（/） コマンドのプロンプトにも対応できます。次の録画でこれについて確認できます。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/03HGhxXg9lw\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n## その他のリファクタリング実践例\n\n### JavaScriptのリファクタリング\n\nJavaScriptをリファクタリングしてコード品質を向上させたり、機能を追加したりする方法について、Eddie Jaoudeが実用的な例を交えて紹介しています。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/mHn8KOzpPNY\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n### BashをZSHやSHにリファクタリング\n\n筆者はBashをShellとして20年間使用していましたが、最近になってmacOSのZSHに移行しました。この移行に伴い、スクリプトが機能しなくなったり、端末に不明なエラーが発生したりしました。リファクタリングの別のユースケースとして、Shellの制約があります。たとえば、一部のオペレーティングシステムやLinux/Unixディストリビューション（Alpineなど）では、Bashが提供されておらず、SHしか使用できません。\n\n![シェルスクリプトのリファクタリング](https://res.cloudinary.com/about-gitlab-com/image/upload/v1749675059/Blog/Content%20Images/intellj_refactor_shell_scripts.png)\n\n[GitLab Duo Coffee Chat: Challenge - Refactor Shell Scripts ]( https://gitlab.com/gitlab-da/use-cases/ai/ai-workflows/gitlab-duo-challenges/code-challenges/challenge-refactor-shell-scripts)では、syslogファイルを追跡するCプログラムと、Bashで記述されたビルドスクリプトの例が紹介されています。このチャレンジの中では、コードの改善を目的として、Chatに対して `/explain` や `/refactor` のプロンプトが使用されます。また、BashをPOSIX準拠のSHやZSHにリファクタリングすることもできます。セッションの最後では、Chatに5つの異なるShellスクリプトの実装を提供させ、そのサマリーについて説明するようリクエストしています。\n\n\u003C!-- 空白行 -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/mssqYjlKGzU\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- 空白行 -->\n\n### その他のユースケースとチュートリアル\n\n- [ドキュメント：GitLab Duoのユースケース](https://docs.gitlab.com/ee/user/gitlab_duo/use_cases.html)\n- [チュートリアル：AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】](https://about.gitlab.com/blog/top-tips-for-efficient-ai-powered-code-suggestions-with-gitlab-duo/)\n- [チュートリアル：AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】](https://about.gitlab.com/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/)\n\n## 重要なポイント\n\n1. GitLab Duoは、コードの説明やリファクタリングにおいて効率的なサポートを提供します。\n1. 言語標準間でコードをリファクタリングしたり、Chatで追加の質問をしたりできます。\n1. コード提案のプロンプトは、特定の言語標準に基づいたコードを生成できます。また、コード補完は現行のコードのコンテキストを尊重します。\n1. 新しいプログラミング言語へのリファクタリングは、長期的な移行プロセスやモダナイゼーションの計画に有効です。\n1. コードは、古いシステムがサポートする言語標準に「ダウングレード」することもできます。\n1. GitLab Duoは、複雑なコードやプログラミング言語について、異なるプログラミング言語の例を用いて説明できます。\n1. GitLab.comにおけるAnthropic Claude 3.5へのアップデートにより、コード提案およびChatの質と速度がさらに向上しました（Self-Managed版では17.3へのアップグレードを推奨しています）。\n1. 本番環境における問題がある場合を除き、ユースケースはアイデア次第で無限に広がります。\n\nコード提案とChatを活用した効率的なワークフローについて理解を深めましょう。GitLab DuoのAI搭載コードリファクタリングを、今すぐお試しいただけます。\n\n> [GitLab Duoのの無料トライアルを開始しましょう！](https://about.gitlab.com/ja-jp/solutions/gitlab-duo-pro/sales/?type=free-trial&toggle=gitlab-duo-pro_)\n\n*監修：知念 梨果 [@rikachinen](https://gitlab.com/rikachinen)* \u003Cbr>\n*（GitLab合同会社 カスタマーサクセス本部 カスタマーサクセスエンジニア）*\n",[9,708,680],"2025-02-10",{"slug":1847,"featured":6,"template":685},"refactor-code-into-modern-languages-with-ai-powered-gitlab-duo","content:ja-jp:blog:refactor-code-into-modern-languages-with-ai-powered-gitlab-duo.yml","Refactor Code Into Modern Languages With Ai Powered Gitlab Duo","ja-jp/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo.yml","ja-jp/blog/refactor-code-into-modern-languages-with-ai-powered-gitlab-duo",{"_path":1853,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1854,"content":1860,"config":1870,"_id":1872,"_type":14,"title":1873,"_source":16,"_file":1874,"_stem":1875,"_extension":19},"/ja-jp/blog/southwest-looking-to-help-developers-take-flight",{"title":1855,"description":1856,"ogTitle":1855,"ogDescription":1856,"noIndex":6,"ogImage":1857,"ogUrl":1858,"ogSiteName":669,"ogType":670,"canonicalUrls":1858,"schema":1859},"ソフトウェア開発効率化に成功したサウスウエスト航空の事例","GitLabのDevSecOpsプラットフォームによって業務削減と開発効率化に成功したサウスウエスト航空の事例をご紹介します。ぜひ参考にしてください。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665272/Blog/Hero%20Images/AdobeStock_380312133.jpg","https://about.gitlab.com/blog/southwest-looking-to-help-developers-take-flight","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"ソフトウェア開発効率化に成功したサウスウエスト航空の事例\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Sharon Gaudin\"}],\n        \"datePublished\": \"2024-01-30\",\n      }",{"title":1855,"description":1856,"authors":1861,"heroImage":1857,"date":1863,"body":1864,"category":1865,"tags":1866,"updatedDate":1869},[1862],"Sharon Gaudin","2024-01-30","世界最大の格安航空会社「サウスウエスト航空」のITリーダーは、デベロッパーのワークフローから時間のかかる反復作業を取り除き、時間に余裕を持たせることで、より大きなプロジェクトに集中できる環境を作り上げています。特に意識しているのは、デベロッパーの仕事を「容易」にすることです。\n\n航空会社のDevOpsチームが、GitLabの導入と運用によって問題の検出力と解決力を飛躍的に向上させている事例についてご紹介します。\n\nサウスウエスト航空の副社長兼最高情報責任者であるJim Dayton氏は、次のように述べています。\n「デベロッパーを阻害する要因をできる限り取り除くことが、当社のやり方です。彼らがソフトウェア開発に携わるのは、その創造性が好きで、問題解決が大好きだからだと確信しています。よって、私たちの役割は、彼らの邪魔をしているものを排除することなのです。」\n\nDayton氏がこの考えを実現するために利用しているものが[GitLabのプラットフォーム](https://about.gitlab.com/ja-jp/platform/)です。\n\nDayton氏は、GitLabがダラスで開催した「[DevSecOps World Tour](https://about.gitlab.com/events/devsecops-world-tour/)」の舞台上インタビューで、デベロッパーの立場に立ちながら彼らの業務を滞りなく進行させるサウスウエスト航空の取り組みについて語りました。また、GitLabのエンタープライズソリューションアーキテクチャのディレクターであるReshmi Krishnaとの対談では、人工知能機能がチームにもたらすメリットについて意見を述べました。\n\nサウスウエスト航空の幹部は、アプリケーション開発にDevOpsアプローチを導入していると述べ、同社がデベロッパーにより多くの自己解決型ツールとナレッジマネジメントプロセスを提供していると語りました。\n\n「私たちは、デベロッパーが問題をより素早く調べ、解決策を発見できるようにして、頭の切り替えをできる限り減らしたいと考えています。幹部の私たちが、彼らに求めることを正確に把握し、何が彼らの生産性を妨げているのかを見極めなければなりません。」\n\nDayton氏によると、サウスウエスト航空は2019年にGitLabとの関係を確立して以来、ソフトウェア開発プロセスの一貫性確保に注力しています。これは、コードをGitLabの共有リポジトリに移すことを意味します。すべてのコードがどこに保管されているのかを把握することで、チームはより簡単に指標を評価し、コードの再利用による効率化を目指せるようになります。\n\nDayton氏は次のように付け加えました。  \n「弊社は現在、エンタープライズ・パイプラインを完成させる過程にあり、チームの移行を開始する準備が整っています。様々なアプリケーション開発チームと緊密に協力しており、新たに構築中のパイプラインに必要なものを理解し、移行する準備を進めています。年末までにはほとんどのプロセスが完了すると想定しています。」\n\n### AIの将来性\n\nDayton氏は、AIの利用はデベロッパーがより大きく、より革新的なタスクに集中できるようにする方法の1つだと述べています。\n\n生成AIは、脆弱性の説明やコードの提案、コード補完のいずれにおいても、ソフトウェア開発におけるライフサイクル全体のワークフローに多大な影響を与える能力を備えています。プラットフォームに組み込まれたAIツールを活用することで、セキュリティを強化し、コードレビューやアプリケーション開発に費やす時間を短縮できます。\n\nDayton氏は、AI機能を使用することで開発とデプロイを迅速かつ容易にできるようになると期待を寄せています。\n\n「私たちは、凡庸で形式的な作業をできる限り排除したいと思っています。AIを使えば、それが実現できるかもしれません。AIについては大きな話題性がある一方で、実際に大きな可能性も秘めています。特定されたばかりの脆弱性に対するソリューションを即座に提供できること、コードの一部がどのような処理を行っているかを教えてくれることなどは、そのすばらしい例です。これが何と統合しているのか、アクセスしているデータは何か、その理由などもAIが教えてくれます。例えば、このアプリケーションで過去1年間に発生したインシデントの20%が、この特定のコーディングセットによるものであることの理由を英語でわかりやすく説明してとAIに依頼もできます。AIの力が発揮されるのはこういうところでしょう。」\n\nDayton氏は、AIがデベロッパーに取って代わることはないが、彼らの仕事をスムーズに進められるよう支援するだろうと考えます。AIがもたらすもう一つのメリットは、コロナ後に多くの人がリモートで仕事をしている時代に、デベロッパーをつなぐことも挙げられます。\n\n「GitLabのロードマップにある便利な機能のひとつが『レビュアーの推奨』です。以前であればコードレビューを依頼する際には、壁越しや別の部屋に向けて『誰か私のコードを見てくれないか』と叫ぶ必要がありましたが、リモートの環境においてはそれは不可能です。AIは、そのコードで実際に作業したことがある人や、そのコードでインシデントを解決したことがある人を見つけ出し、提案してくれます。これがレビュープロセスにどのくらいの価値をもたらすのかは容易に想像できるでしょう。自動化が進めば進むほど、手動のステップや待機時間が少なくなると思います。」\n\n\u003C!-- blank line -->\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/UnUfp7pKnEQ?si=qcX2Qm3zpgQOV4xy\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\n*サウスウエスト航空はテキサス州ダラスに拠点を置く、およそ240億ドル規模の企業です。72,000人の従業員を擁し、120の目的地に1日4,000便を運航しています。サウスウエスト航空は他のどの航空会社よりも国内線を多く運行しています。GitLabのさらなる魅力については、 [GitLabを選ぶ10の理由](https://about.gitlab.com/customers/)をご覧ください。*","customer-stories",[1867,1868,9,1023],"DevOps","DevOps platform","2024-11-25",{"slug":1871,"featured":6,"template":685},"southwest-looking-to-help-developers-take-flight","content:ja-jp:blog:southwest-looking-to-help-developers-take-flight.yml","Southwest Looking To Help Developers Take Flight","ja-jp/blog/southwest-looking-to-help-developers-take-flight.yml","ja-jp/blog/southwest-looking-to-help-developers-take-flight",{"_path":1877,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1878,"content":1884,"config":1890,"_id":1892,"_type":14,"title":1893,"_source":16,"_file":1894,"_stem":1895,"_extension":19},"/ja-jp/blog/use-gitlab-duo-workflow-to-improve-application-quality-assurance",{"title":1879,"description":1880,"ogTitle":1879,"ogDescription":1880,"noIndex":6,"ogImage":1881,"ogUrl":1882,"ogSiteName":669,"ogType":670,"canonicalUrls":1882,"schema":1883},"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":1879,"description":1885,"authors":1886,"heroImage":1881,"date":1887,"body":1888,"category":10,"tags":1889},"自律型AIを使用してJavaアプリケーションに単体テストを追加する方法をステップ別にご説明します。動画チュートリアル（英語版）もご覧いただけます。",[699],"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",[9,703,708,705,706],{"slug":1891,"featured":6,"template":685},"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":1897,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1898,"content":1902,"config":1907,"_id":1909,"_type":14,"title":1910,"_source":16,"_file":1911,"_stem":1912,"_extension":19},"/ja-jp/blog/vibe-coding-with-gitlab-duo-agent-platform-issue-to-mr-flow",{"config":1899,"title":1900,"description":1901},{"noIndex":6},"GitLab Duo Agent Platform：イシューからMRフロー","デベロッパーが数分でアイデアを実際のコードに変換。最新のエージェントフローでアプリケーションを素早く更新する方法をご紹介します。",{"heroImage":1837,"body":1903,"authors":1904,"updatedDate":1905,"date":1396,"title":1900,"tags":1906,"description":1901,"category":10},"[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",[699],"2025-09-05",[9,705,706,708],{"featured":91,"template":685,"slug":1908},"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":1914,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1915,"content":1920,"config":1926,"_id":1928,"_type":14,"title":1929,"_source":16,"_file":1930,"_stem":1931,"_extension":19},"/ja-jp/blog/what-is-local-llm",{"config":1916,"title":1917,"description":1918,"ogImage":1919},{"noIndex":6},"ローカルLLMとは？開発での活用メリットと注意点","ローカルLLMの意味やクラウドLLMとの違い、ソフトウェア開発における導入メリットなどを解説します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1757577836/qjcz9aubvivrn4zy1kqr.jpg",{"title":1917,"description":1918,"authors":1921,"heroImage":1919,"date":1922,"body":1923,"category":1924,"tags":1925},[978],"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合同会社ソリューションアーキテクト本部シニアパートナーソリューションアーキテクト）*","engineering",[9,680,706,708,681],{"featured":6,"template":685,"slug":1927},"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":1933,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1934,"content":1938,"config":1945,"_id":1947,"_type":14,"title":1948,"_source":16,"_file":1949,"_stem":1950,"_extension":19},"/ja-jp/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops",{"config":1935,"title":1936,"description":1937},{"noIndex":6},"DevSecOpsにおける企業の独立性がこれまで以上に重要な理由","開発インフラを誰がコントロールしているのか、リーダーたちが疑問を持つ中、GitLabの独立性と透明性の優位性はかつてないほど注目されています。",{"heroImage":1939,"body":1940,"authors":1941,"updatedDate":1396,"date":1397,"title":1936,"tags":1943,"description":1937,"category":10},"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/)",[1942],"Robin Schulman",[9,680,705,706,1944],"open source",{"featured":91,"template":685,"slug":1946},"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":1952,"_dir":247,"_draft":6,"_partial":6,"_locale":7,"seo":1953,"content":1958,"config":1964,"_id":1966,"_type":14,"title":1967,"_source":16,"_file":1968,"_stem":1969,"_extension":19},"/ja-jp/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat",{"title":1954,"description":825,"ogTitle":1954,"ogDescription":825,"noIndex":6,"ogImage":1955,"ogUrl":1956,"ogSiteName":669,"ogType":670,"canonicalUrls":1956,"schema":1957},"AI搭載のGitLab Duoチャットを使用するためのベストプラクティス【10選】","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":1954,"description":825,"authors":1959,"heroImage":1955,"date":1960,"body":1961,"category":10,"tags":1962,"updatedDate":1963},[919],"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",[9,708,703,706],"2024-05-23",{"slug":1965,"featured":91,"template":685},"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",8,[662,690,715,737,759,779,799,821,843],1758292870611]