[{"data":1,"prerenderedAt":730},["ShallowReactive",2],{"/en-us/blog/tags/google/":3,"navigation-ja-jp":19,"banner-ja-jp":436,"footer-ja-jp":449,"google-tag-page-ja-jp":659},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"content":8,"config":10,"_id":12,"_type":13,"title":14,"_source":15,"_file":16,"_stem":17,"_extension":18},"/en-us/blog/tags/google","tags",false,"",{"tag":9,"tagSlug":9},"google",{"template":11},"BlogTag","content:en-us:blog:tags:google.yml","yaml","Google","content","en-us/blog/tags/google.yml","en-us/blog/tags/google","yml",{"_path":20,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"data":22,"_id":432,"_type":13,"title":433,"_source":15,"_file":434,"_stem":435,"_extension":18},"/shared/ja-jp/main-navigation","ja-jp",{"logo":23,"freeTrial":28,"sales":33,"login":38,"items":43,"search":376,"minimal":410,"duo":423},{"config":24},{"href":25,"dataGaName":26,"dataGaLocation":27},"/ja-jp/","gitlab logo","header",{"text":29,"config":30},"無料トライアルを開始",{"href":31,"dataGaName":32,"dataGaLocation":27},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":34,"config":35},"お問い合わせ",{"href":36,"dataGaName":37,"dataGaLocation":27},"/ja-jp/sales/","sales",{"text":39,"config":40},"サインイン",{"href":41,"dataGaName":42,"dataGaLocation":27},"https://gitlab.com/users/sign_in/","sign in",[44,88,187,192,298,358],{"text":45,"config":46,"cards":48,"footer":71},"プラットフォーム",{"dataNavLevelOne":47},"platform",[49,55,63],{"title":45,"description":50,"link":51},"最も包括的かつAIで強化されたDevSecOpsプラットフォーム",{"text":52,"config":53},"プラットフォームを詳しく見る",{"href":54,"dataGaName":47,"dataGaLocation":27},"/ja-jp/platform/",{"title":56,"description":57,"link":58},"GitLab Duo（AI）","開発のすべてのステージでAIを活用し、ソフトウェアをより迅速にビルド",{"text":59,"config":60},"GitLab Duoのご紹介",{"href":61,"dataGaName":62,"dataGaLocation":27},"/ja-jp/gitlab-duo/","gitlab duo ai",{"title":64,"description":65,"link":66},"GitLabが選ばれる理由","GitLabが大企業に選ばれる理由10選",{"text":67,"config":68},"詳細はこちら",{"href":69,"dataGaName":70,"dataGaLocation":27},"/ja-jp/why-gitlab/","why gitlab",{"title":72,"items":73},"利用を開始：",[74,79,84],{"text":75,"config":76},"プラットフォームエンジニアリング",{"href":77,"dataGaName":78,"dataGaLocation":27},"/ja-jp/solutions/platform-engineering/","platform engineering",{"text":80,"config":81},"開発者の経験",{"href":82,"dataGaName":83,"dataGaLocation":27},"/ja-jp/developer-experience/","Developer experience",{"text":85,"config":86},"MLOps",{"href":87,"dataGaName":85,"dataGaLocation":27},"/ja-jp/topics/devops/the-role-of-ai-in-devops/",{"text":89,"left":90,"config":91,"link":93,"lists":97,"footer":169},"製品",true,{"dataNavLevelOne":92},"solutions",{"text":94,"config":95},"すべてのソリューションを表示",{"href":96,"dataGaName":92,"dataGaLocation":27},"/ja-jp/solutions/",[98,124,147],{"title":99,"description":100,"link":101,"items":106},"自動化","CI/CDと自動化でデプロイを加速",{"config":102},{"icon":103,"href":104,"dataGaName":105,"dataGaLocation":27},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[107,111,115,120],{"text":108,"config":109},"CI/CD",{"href":110,"dataGaLocation":27,"dataGaName":108},"/ja-jp/solutions/continuous-integration/",{"text":112,"config":113},"AIアシストによる開発",{"href":61,"dataGaLocation":27,"dataGaName":114},"AI assisted development",{"text":116,"config":117},"ソースコード管理",{"href":118,"dataGaLocation":27,"dataGaName":119},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":121,"config":122},"自動化されたソフトウェアデリバリー",{"href":104,"dataGaLocation":27,"dataGaName":123},"Automated software delivery",{"title":125,"description":126,"link":127,"items":132},"セキュリティ","セキュリティを損なうことなくコードをより迅速に完成",{"config":128},{"href":129,"dataGaName":130,"dataGaLocation":27,"icon":131},"/ja-jp/solutions/security-compliance/","security and compliance","ShieldCheckLight",[133,138,143],{"text":134,"config":135},"Application Security Testing",{"href":136,"dataGaName":137,"dataGaLocation":27},"/solutions/application-security-testing/","Application security testing",{"text":139,"config":140},"ソフトウェアサプライチェーンの安全性",{"href":141,"dataGaLocation":27,"dataGaName":142},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":144,"config":145},"Software Compliance",{"href":146,"dataGaName":144,"dataGaLocation":27},"/solutions/software-compliance/",{"title":148,"link":149,"items":154},"測定",{"config":150},{"icon":151,"href":152,"dataGaName":153,"dataGaLocation":27},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[155,159,164],{"text":156,"config":157},"可視性と測定",{"href":152,"dataGaLocation":27,"dataGaName":158},"Visibility and Measurement",{"text":160,"config":161},"バリューストリーム管理",{"href":162,"dataGaLocation":27,"dataGaName":163},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":165,"config":166},"分析とインサイト",{"href":167,"dataGaLocation":27,"dataGaName":168},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":170,"items":171},"GitLabが活躍する場所",[172,177,182],{"text":173,"config":174},"Enterprise",{"href":175,"dataGaLocation":27,"dataGaName":176},"/ja-jp/enterprise/","enterprise",{"text":178,"config":179},"スモールビジネス",{"href":180,"dataGaLocation":27,"dataGaName":181},"/ja-jp/small-business/","small business",{"text":183,"config":184},"公共機関",{"href":185,"dataGaLocation":27,"dataGaName":186},"/ja-jp/solutions/public-sector/","public sector",{"text":188,"config":189},"価格",{"href":190,"dataGaName":191,"dataGaLocation":27,"dataNavLevelOne":191},"/ja-jp/pricing/","pricing",{"text":193,"config":194,"link":196,"lists":200,"feature":285},"関連リソース",{"dataNavLevelOne":195},"resources",{"text":197,"config":198},"すべてのリソースを表示",{"href":199,"dataGaName":195,"dataGaLocation":27},"/ja-jp/resources/",[201,234,257],{"title":202,"items":203},"はじめに",[204,209,214,219,224,229],{"text":205,"config":206},"インストール",{"href":207,"dataGaName":208,"dataGaLocation":27},"/ja-jp/install/","install",{"text":210,"config":211},"クイックスタートガイド",{"href":212,"dataGaName":213,"dataGaLocation":27},"/ja-jp/get-started/","quick setup checklists",{"text":215,"config":216},"学ぶ",{"href":217,"dataGaLocation":27,"dataGaName":218},"https://university.gitlab.com/","learn",{"text":220,"config":221},"製品ドキュメント",{"href":222,"dataGaName":223,"dataGaLocation":27},"https://docs.gitlab.com/","product documentation",{"text":225,"config":226},"ベストプラクティスビデオ",{"href":227,"dataGaName":228,"dataGaLocation":27},"/ja-jp/getting-started-videos/","best practice videos",{"text":230,"config":231},"インテグレーション",{"href":232,"dataGaName":233,"dataGaLocation":27},"/ja-jp/integrations/","integrations",{"title":235,"items":236},"検索する",[237,242,247,252],{"text":238,"config":239},"お客様成功事例",{"href":240,"dataGaName":241,"dataGaLocation":27},"/ja-jp/customers/","customer success stories",{"text":243,"config":244},"ブログ",{"href":245,"dataGaName":246,"dataGaLocation":27},"/ja-jp/blog/","blog",{"text":248,"config":249},"リモート",{"href":250,"dataGaName":251,"dataGaLocation":27},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":253,"config":254},"TeamOps",{"href":255,"dataGaName":256,"dataGaLocation":27},"/ja-jp/teamops/","teamops",{"title":258,"items":259},"つなげる",[260,265,270,275,280],{"text":261,"config":262},"GitLabサービス",{"href":263,"dataGaName":264,"dataGaLocation":27},"/ja-jp/services/","services",{"text":266,"config":267},"コミュニティ",{"href":268,"dataGaName":269,"dataGaLocation":27},"/community/","community",{"text":271,"config":272},"フォーラム",{"href":273,"dataGaName":274,"dataGaLocation":27},"https://forum.gitlab.com/","forum",{"text":276,"config":277},"イベント",{"href":278,"dataGaName":279,"dataGaLocation":27},"/events/","events",{"text":281,"config":282},"パートナー",{"href":283,"dataGaName":284,"dataGaLocation":27},"/ja-jp/partners/","partners",{"backgroundColor":286,"textColor":287,"text":288,"image":289,"link":293},"#2f2a6b","#fff","ソフトウェア開発の未来への洞察",{"altText":290,"config":291},"ソースプロモカード",{"src":292},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":294,"config":295},"最新情報を読む",{"href":296,"dataGaName":297,"dataGaLocation":27},"/ja-jp/the-source/","the source",{"text":299,"config":300,"lists":302},"Company",{"dataNavLevelOne":301},"company",[303],{"items":304},[305,310,316,318,323,328,333,338,343,348,353],{"text":306,"config":307},"GitLabについて",{"href":308,"dataGaName":309,"dataGaLocation":27},"/ja-jp/company/","about",{"text":311,"config":312,"footerGa":315},"採用情報",{"href":313,"dataGaName":314,"dataGaLocation":27},"/jobs/","jobs",{"dataGaName":314},{"text":276,"config":317},{"href":278,"dataGaName":279,"dataGaLocation":27},{"text":319,"config":320},"経営陣",{"href":321,"dataGaName":322,"dataGaLocation":27},"/company/team/e-group/","leadership",{"text":324,"config":325},"チーム",{"href":326,"dataGaName":327,"dataGaLocation":27},"/company/team/","team",{"text":329,"config":330},"ハンドブック",{"href":331,"dataGaName":332,"dataGaLocation":27},"https://handbook.gitlab.com/","handbook",{"text":334,"config":335},"投資家向け情報",{"href":336,"dataGaName":337,"dataGaLocation":27},"https://ir.gitlab.com/","investor relations",{"text":339,"config":340},"トラストセンター",{"href":341,"dataGaName":342,"dataGaLocation":27},"/ja-jp/security/","trust center",{"text":344,"config":345},"AI Transparency Center",{"href":346,"dataGaName":347,"dataGaLocation":27},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":349,"config":350},"ニュースレター",{"href":351,"dataGaName":352,"dataGaLocation":27},"/company/contact/","newsletter",{"text":354,"config":355},"プレス",{"href":356,"dataGaName":357,"dataGaLocation":27},"/press/","press",{"text":34,"config":359,"lists":360},{"dataNavLevelOne":301},[361],{"items":362},[363,366,371],{"text":34,"config":364},{"href":36,"dataGaName":365,"dataGaLocation":27},"talk to sales",{"text":367,"config":368},"サポートを受ける",{"href":369,"dataGaName":370,"dataGaLocation":27},"/support/","get help",{"text":372,"config":373},"カスタマーポータル",{"href":374,"dataGaName":375,"dataGaLocation":27},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":377,"login":378,"suggestions":385},"閉じる",{"text":379,"link":380},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":381,"config":382},"GitLab.com",{"href":41,"dataGaName":383,"dataGaLocation":384},"search login","search",{"text":386,"default":387},"提案",[388,391,396,398,402,406],{"text":56,"config":389},{"href":61,"dataGaName":390,"dataGaLocation":384},"GitLab Duo (AI)",{"text":392,"config":393},"コード提案（AI）",{"href":394,"dataGaName":395,"dataGaLocation":384},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":108,"config":397},{"href":110,"dataGaName":108,"dataGaLocation":384},{"text":399,"config":400},"GitLab on AWS",{"href":401,"dataGaName":399,"dataGaLocation":384},"/ja-jp/partners/technology-partners/aws/",{"text":403,"config":404},"GitLab on Google Cloud",{"href":405,"dataGaName":403,"dataGaLocation":384},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":407,"config":408},"GitLabを選ぶ理由",{"href":69,"dataGaName":409,"dataGaLocation":384},"Why GitLab?",{"freeTrial":411,"mobileIcon":415,"desktopIcon":420},{"text":29,"config":412},{"href":413,"dataGaName":32,"dataGaLocation":414},"https://gitlab.com/-/trials/new/","nav",{"altText":416,"config":417},"GitLabアイコン",{"src":418,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":416,"config":421},{"src":422,"dataGaName":419,"dataGaLocation":414},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"freeTrial":424,"mobileIcon":428,"desktopIcon":430},{"text":425,"config":426},"GitLab Duoの詳細について",{"href":61,"dataGaName":427,"dataGaLocation":414},"gitlab duo",{"altText":416,"config":429},{"src":418,"dataGaName":419,"dataGaLocation":414},{"altText":416,"config":431},{"src":422,"dataGaName":419,"dataGaLocation":414},"content:shared:ja-jp:main-navigation.yml","Main Navigation","shared/ja-jp/main-navigation.yml","shared/ja-jp/main-navigation",{"_path":437,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"title":438,"button":439,"config":444,"_id":446,"_type":13,"_source":15,"_file":447,"_stem":448,"_extension":18},"/shared/ja-jp/banner","GitLab Duo Agent Platformがパブリックベータ版で利用可能になりました！",{"text":440,"config":441},"ベータ版を試す",{"href":442,"dataGaName":443,"dataGaLocation":27},"/ja-jp/gitlab-duo/agent-platform/","duo banner",{"layout":445},"release","content:shared:ja-jp:banner.yml","shared/ja-jp/banner.yml","shared/ja-jp/banner",{"_path":450,"_dir":21,"_draft":6,"_partial":6,"_locale":7,"data":451,"_id":655,"_type":13,"title":656,"_source":15,"_file":657,"_stem":658,"_extension":18},"/shared/ja-jp/main-footer",{"text":452,"source":453,"edit":459,"contribute":464,"config":469,"items":474,"minimal":647},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":454,"config":455},"ページのソースを表示",{"href":456,"dataGaName":457,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":460,"config":461},"このページを編集",{"href":462,"dataGaName":463,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":465,"config":466},"ご協力をお願いします",{"href":467,"dataGaName":468,"dataGaLocation":458},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":470,"facebook":471,"youtube":472,"linkedin":473},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[475,498,552,585,619],{"title":45,"links":476,"subMenu":481},[477],{"text":478,"config":479},"DevSecOpsプラットフォーム",{"href":54,"dataGaName":480,"dataGaLocation":458},"devsecops platform",[482],{"title":188,"links":483},[484,488,493],{"text":485,"config":486},"プランの表示",{"href":190,"dataGaName":487,"dataGaLocation":458},"view plans",{"text":489,"config":490},"Premiumを選ぶ理由",{"href":491,"dataGaName":492,"dataGaLocation":458},"/ja-jp/pricing/premium/","why premium",{"text":494,"config":495},"Ultimateを選ぶ理由",{"href":496,"dataGaName":497,"dataGaLocation":458},"/ja-jp/pricing/ultimate/","why ultimate",{"title":499,"links":500},"ソリューション",[501,506,509,511,516,521,525,528,531,536,538,540,542,547],{"text":502,"config":503},"デジタルトランスフォーメーション",{"href":504,"dataGaName":505,"dataGaLocation":458},"/ja-jp/topics/digital-transformation/","digital transformation",{"text":507,"config":508},"セキュリティとコンプライアンス",{"href":136,"dataGaName":137,"dataGaLocation":458},{"text":121,"config":510},{"href":104,"dataGaName":105,"dataGaLocation":458},{"text":512,"config":513},"アジャイル開発",{"href":514,"dataGaName":515,"dataGaLocation":458},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":517,"config":518},"クラウドトランスフォーメーション",{"href":519,"dataGaName":520,"dataGaLocation":458},"/ja-jp/topics/cloud-native/","cloud transformation",{"text":522,"config":523},"SCM",{"href":118,"dataGaName":524,"dataGaLocation":458},"source code management",{"text":108,"config":526},{"href":110,"dataGaName":527,"dataGaLocation":458},"continuous integration & delivery",{"text":160,"config":529},{"href":162,"dataGaName":530,"dataGaLocation":458},"value stream management",{"text":532,"config":533},"GitOps",{"href":534,"dataGaName":535,"dataGaLocation":458},"/ja-jp/solutions/gitops/","gitops",{"text":173,"config":537},{"href":175,"dataGaName":176,"dataGaLocation":458},{"text":178,"config":539},{"href":180,"dataGaName":181,"dataGaLocation":458},{"text":183,"config":541},{"href":185,"dataGaName":186,"dataGaLocation":458},{"text":543,"config":544},"教育",{"href":545,"dataGaName":546,"dataGaLocation":458},"/ja-jp/solutions/education/","education",{"text":548,"config":549},"金融サービス",{"href":550,"dataGaName":551,"dataGaLocation":458},"/ja-jp/solutions/finance/","financial services",{"title":193,"links":553},[554,556,558,560,563,565,569,571,573,575,577,579,581,583],{"text":205,"config":555},{"href":207,"dataGaName":208,"dataGaLocation":458},{"text":210,"config":557},{"href":212,"dataGaName":213,"dataGaLocation":458},{"text":215,"config":559},{"href":217,"dataGaName":218,"dataGaLocation":458},{"text":220,"config":561},{"href":222,"dataGaName":562,"dataGaLocation":458},"docs",{"text":243,"config":564},{"href":245,"dataGaName":246},{"text":566,"config":567},"お客様の成功事例",{"href":568,"dataGaLocation":458},"/customers/",{"text":238,"config":570},{"href":240,"dataGaName":241,"dataGaLocation":458},{"text":248,"config":572},{"href":250,"dataGaName":251,"dataGaLocation":458},{"text":261,"config":574},{"href":263,"dataGaName":264,"dataGaLocation":458},{"text":253,"config":576},{"href":255,"dataGaName":256,"dataGaLocation":458},{"text":266,"config":578},{"href":268,"dataGaName":269,"dataGaLocation":458},{"text":271,"config":580},{"href":273,"dataGaName":274,"dataGaLocation":458},{"text":276,"config":582},{"href":278,"dataGaName":279,"dataGaLocation":458},{"text":281,"config":584},{"href":283,"dataGaName":284,"dataGaLocation":458},{"title":299,"links":586},[587,589,591,593,595,597,599,603,608,610,612,614],{"text":306,"config":588},{"href":308,"dataGaName":301,"dataGaLocation":458},{"text":311,"config":590},{"href":313,"dataGaName":314,"dataGaLocation":458},{"text":319,"config":592},{"href":321,"dataGaName":322,"dataGaLocation":458},{"text":324,"config":594},{"href":326,"dataGaName":327,"dataGaLocation":458},{"text":329,"config":596},{"href":331,"dataGaName":332,"dataGaLocation":458},{"text":334,"config":598},{"href":336,"dataGaName":337,"dataGaLocation":458},{"text":600,"config":601},"Sustainability",{"href":602,"dataGaName":600,"dataGaLocation":458},"/sustainability/",{"text":604,"config":605},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":606,"dataGaName":607,"dataGaLocation":458},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":339,"config":609},{"href":341,"dataGaName":342,"dataGaLocation":458},{"text":349,"config":611},{"href":351,"dataGaName":352,"dataGaLocation":458},{"text":354,"config":613},{"href":356,"dataGaName":357,"dataGaLocation":458},{"text":615,"config":616},"現代奴隷制の透明性に関する声明",{"href":617,"dataGaName":618,"dataGaLocation":458},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":34,"links":620},[621,623,625,627,632,637,642],{"text":34,"config":622},{"href":36,"dataGaName":37,"dataGaLocation":458},{"text":367,"config":624},{"href":369,"dataGaName":370,"dataGaLocation":458},{"text":372,"config":626},{"href":374,"dataGaName":375,"dataGaLocation":458},{"text":628,"config":629},"ステータス",{"href":630,"dataGaName":631,"dataGaLocation":458},"https://status.gitlab.com/","status",{"text":633,"config":634},"利用規約",{"href":635,"dataGaName":636,"dataGaLocation":458},"/terms/","terms of use",{"text":638,"config":639},"プライバシーに関する声明",{"href":640,"dataGaName":641,"dataGaLocation":458},"/ja-jp/privacy/","privacy statement",{"text":643,"config":644},"Cookieの設定",{"dataGaName":645,"dataGaLocation":458,"id":646,"isOneTrustButton":90},"cookie preferences","ot-sdk-btn",{"items":648},[649,651,653],{"text":633,"config":650},{"href":635,"dataGaName":636,"dataGaLocation":458},{"text":638,"config":652},{"href":640,"dataGaName":641,"dataGaLocation":458},{"text":643,"config":654},{"dataGaName":645,"dataGaLocation":458,"id":646,"isOneTrustButton":90},"content:shared:ja-jp:main-footer.yml","Main Footer","shared/ja-jp/main-footer.yml","shared/ja-jp/main-footer",{"allPosts":660,"featuredPost":709,"totalPagesCount":728,"initialPosts":729},[661,685],{"_path":662,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":663,"content":671,"config":678,"_id":681,"_type":13,"title":682,"_source":15,"_file":683,"_stem":684,"_extension":18},"/ja-jp/blog/partner-cloud-ace",{"title":664,"description":665,"ogTitle":664,"ogDescription":665,"noIndex":6,"ogImage":666,"ogUrl":667,"ogSiteName":668,"ogType":669,"canonicalUrls":667,"schema":670},"Cloud Source RepositoriesからGitLabへの移行で開発の未来を掴もう：Google CloudのCloud Workstations + GitLab","この記事では、Google CloudのCloud Source RepositoriesのソースコードリポジトリからGitLabへの移行と、Cloud Workstationsの導入がもたらす価値を詳しく解説し、次のステップへの道筋を提示します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665703/Blog/Hero%20Images/AdobeStock_617141001_Editorial_Use_Only.jpg","https://about.gitlab.com/blog/partner-cloud-ace","https://about.gitlab.com","article","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Cloud Source RepositoriesからGitLabへの移行で開発の未来を掴もう：Google CloudのCloud Workstations + GitLab\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tsukasa Komatsubara\"}],\n        \"datePublished\": \"2024-10-31\",\n      }",{"title":664,"description":665,"authors":672,"heroImage":666,"date":674,"body":675,"category":676,"tags":677},[673],"Tsukasa Komatsubara","2024-10-31","[Google Cloudの**Cloud Source Repositories**の縮小により、ユーザーは新たな開発環境への移行を迫られています](https://about.gitlab.com/ja-jp/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab/)。しかし、これは単なるツールの変更ではなく、開発プロセス全体を見直し、次世代のプラットフォームへ進化するチャンスです。**GitLab**は、ソースコード管理から[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)、[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)、セキュリティ統合までを一貫してサポートする強力なプラットフォームとして、多くの企業から移行先として選ばれています。\n\nさらに、**Cloud Workstations**との組み合わせは、開発者にとってこれまでにない快適で生産性の高い開発環境を提供します。そして、その移行と運用を支えるのが、Google CloudとGitLabの専門知識を兼ね備えた**クラウドエース株式会社**です。本記事では、GitLabへの移行とCloud Workstationsの導入がもたらす価値を詳しく解説し、次のステップへの道筋を提示します。\n\n### **1\\. Cloud Source Repositoriesの縮小がもたらす影響**\n\nCloud Source Repositoriesのサービス縮小に伴い、多くの開発チームが移行を検討しています。これまでの開発プロジェクトや[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)パイプラインの維持が必要ですが、選択する移行先によって、今後の開発体験が大きく左右されます。\n\n* **既存のプロジェクトとデータの移行**：すべてのリポジトリや開発履歴を失うことなく、安全に新しいプラットフォームへ移行する必要があります。  \n* **[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)パイプラインの継続運用**：新しいツール上で自動化を再構築し、開発の停滞を防ぐことが求められます。  \n* **セキュリティと運用管理の向上**：新たなプラットフォームでの運用を、より安全で効率的なものにすることが重要です。\n\nこの課題に対し、**GitLab**が提供する高度な機能は、理想的な解決策となります。\n\n### **2\\. なぜGitLabが理想的な移行先なのか**\n\n#### **オールインワンプラットフォーム**\n\nGitLabは、**ソースコード管理、[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)の自動化、セキュリティ（[DevSecOps](https://about.gitlab.com/ja-jp/topics/devsecops/)）を一つのプラットフォーム上で統合して提供します。これにより、分散したチームでも円滑に開発を進められ、生産性の向上と運用コストの削減**が期待できます。\n\n#### **シームレスな移行**\n\nGitLabは、**GitHub、Bitbucket、Cloud Source Repositories**からの移行ツールを提供しており、リポジトリのデータとプロジェクト管理を安全に移行できます。さらに、GitLabの自動化機能を活用することで、**[CI/CD](https://about.gitlab.com/ja-jp/topics/ci-cd/)パイプラインの再構築**もスムーズに行えます。\n\n#### **Google Cloudとの統合とクラウドネイティブ開発**\n\nGitLabは、**Google Cloud** **Kubernetes（GKE）やCloud Run**を活用し、コンテナベースの開発を効率化します。Google Cloudとの密接な連携により、クラウドネイティブな環境を活用した開発が可能です。\n\n### **3\\. 次世代の開発環境：Google CloudのCloud Workstations \\+ GitLab**\n\n移行後にお勧めしたいのが、**Cloud Workstations**とGitLabの組み合わせです。Cloud Workstationsは、完全管理型のクラウド開発環境を提供し、どこからでも快適に開発が行えます。\n\n#### **Cloud Workstationsの特徴**\n\n* **VS CodeやJetBrains IDE**をリモートで利用し、開発者が慣れ親しんだツールで作業を続けられます。  \n* **IAM（Identity and Access Management）** による厳格なアクセス管理で、セキュリティと権限管理を統合。  \n* **GKEとの連携**により、開発したアプリケーションの迅速なデプロイが可能です。\n\n#### **具体的なワークフロー**\n\n1. **Cloud Workstations**で開発者がコードを作成し、GitLabにプッシュします。  \n2. **GitLabのCI/CDパイプライン**が自動でテストを実行し、GKE上にデプロイします。  \n3. 開発から運用までのプロセスが自動化され、**迅速なフィードバックループ**が実現します。\n\n### **4\\. クラウドエース株式会社によるスムーズな移行と運用サポート**\n\n**クラウドエース株式会社**は、Google CloudとGitLabの両方に精通したパートナーであり、日本国内の企業向けに多くの移行プロジェクトを支援しています。クラウドエース株式会社の支援を受けることで、**移行プロセスの負担を最小限**に抑え、最適な環境を構築できます。\n\n#### **クラウドエース株式会社の技術サポートのポイント**\n\n* **TerraformやGoogle Cloud Deployment Manager**による自動化された環境構築。  \n* **セキュリティとコンプライアンス**を考慮したGitLabの運用支援。  \n* **継続的なサポート**により、バージョンアップや環境改善もスムーズに行えます。\n\n### **5\\. 次のステップ：新しい開発環境への第一歩を踏み出そう！**\n\nCloud Source RepositoriesからGitLabへの移行は、**次世代の開発環境への進化**を意味します。GitLabの強力な機能に加え、Google CloudのCloud Workstationsとの組み合わせは、開発者にとって最適なデベロッパーエクスペリエンスを提供します。\n\n* **[今すぐGitLabのトライアルを申し込む](https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com%2Fja-jp%2Fblog%2F2024%2F08%2F28%2Ftutorial-migrate-from-google-cloud-source-repositories-to-gitlab%2F)**  \n* **[クラウドエース株式会社経由での無料相談を申し込む](https://cloud-ace.jp/contact/?ref=top_header)**\n\n### **6\\. まとめ：未来の開発スタイルを体験しよう**\n\nCloud Source Repositoriesの縮小により、新しい環境への移行が不可避となっています。しかし、これは新たな可能性を開くチャンスです。**GitLabとGoogle CloudのCloud Workstations**の組み合わせにより、開発者は柔軟で安全な環境の中で、より高速にプロジェクトを推進できるようになります。\n\n**クラウドエース株式会社の支援**を受けることで、移行の不安を解消し、次世代の開発スタイルをいち早く体験しましょう。新しい開発環境で、これまでにない生産性と快適さを手に入れてください。\n\n---\n\n**Google CloudのCloud Workstations \\+ GitLabで、未来の開発を今すぐ始めましょう！**\n","news",[284,9],{"slug":679,"featured":90,"template":680},"partner-cloud-ace","BlogPost","content:ja-jp:blog:partner-cloud-ace.yml","Partner Cloud Ace","ja-jp/blog/partner-cloud-ace.yml","ja-jp/blog/partner-cloud-ace",{"_path":686,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":687,"content":693,"config":703,"_id":705,"_type":13,"title":706,"_source":15,"_file":707,"_stem":708,"_extension":18},"/ja-jp/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab",{"title":688,"description":689,"ogTitle":688,"ogDescription":689,"noIndex":6,"ogImage":690,"ogUrl":691,"ogSiteName":668,"ogType":669,"canonicalUrls":691,"schema":692},"Google Cloud Source RepositoriesからGitLabへの移行ガイド【決定版】","Google CloudでCloud Source Repositoriesが非推奨になります。この記事では、Cloud Source RepositoriesのソースコードリポジトリをGitLabに移行する方法と、ベストプラクティスをご紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097739/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2813%29_1zdtbfPDHZVe6JC2AbdHmb_1750097738370.png","https://about.gitlab.com/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab","\n                        {\n        \"@context\": \"https://schema.org\",\n        \"@type\": \"Article\",\n        \"headline\": \"Google Cloud Source RepositoriesからGitLabへの移行ガイド【決定版】\",\n        \"author\": [{\"@type\":\"Person\",\"name\":\"Tsukasa Komatsubara\"},{\"@type\":\"Person\",\"name\":\"Regnard Raquedan\"}],\n        \"datePublished\": \"2024-08-28\",\n      }",{"title":688,"description":689,"authors":694,"heroImage":690,"date":696,"body":697,"category":698,"tags":699,"updatedDate":702},[673,695],"Regnard Raquedan","2024-08-28","Google Cloudの[Cloud Source\nRepositories（またはCSR）が非推奨](https://cloud.google.com/source-repositories/docs/release-notes)（外部サイト）となることで、ソフトウェア開発者は自社のソースコードリポジトリ向けにフル機能を備えた代替製品を探す必要がでてきました。[Google\nCloudテクノロジーパートナー](https://cloud.google.com/find-a-partner/partner/gitlab-inc)（外部サイト）であり、包括的なDevSecOps機能を提供しているGitLabは、有力な選択肢の一つになるでしょう。\n\n\nこのガイドでは、GitLab.comを使用している方、またGoogle\nCloud上のSelf-Managedインスタンスを使用している方を対象に、CSRからGitLabにスムーズに移行するための手順をご紹介します。\n\n\n## GitLabがオススメの理由\n\nGoogle Cloud Source RepositoriesからGitLabへの移行がオススメな理由はお勧めの方法です。GitLabはGoogle\nCloudの戦略的パートナーであり、既存のインフラストラクチャと簡単かつシームレスに統合でき、次のような方法でお客様に価値をもたらします。\n\n- **DevSecOpsプラットフォームの統合**\n    - 計画からモニタリングまで、開発ライフサイクル全体を単一アプリケーションに統合します。これにより、個別ツールの乱立が解消され、劇的に生産性を向上できます。\n\n- **Google Cloudとのシームレスな統合**\n    - Google Kubernetes Engine（GKE）やCloud Build、Cloud Storageと簡単に接続できるため、Google Cloudエコシステム内でのスムーズな移行および効率的な運用が期待できます。\n\n- **高度なCI/CD機能**\n    - [Auto DevOps](https://docs.gitlab.com/ee/topics/autodevops/)を活用して、セキュリティスキャンからデプロイまであらゆるプロセスを自動化し、開発サイクルを加速します。\n- **業界屈指のAIによるコーディング支援**\n    - [GitLab Duo](https://about.gitlab.com/gitlab-duo/)に組み込まれたAIアシスト開発を活用することで、安全かつ効率的なコーディング環境を促進できます。\n\n## 前提要件\n\n\n移行を開始する前に、以下の2点を必ず用意してください。\n\n- GitLabアカウント：GitLab.comまたはセルフホスト型インスタンス上でアカウントを設定します。\n\n- GitLabプロジェクト：CSRリポジトリの移行先として、GitLabで空のプロジェクトを作成します。\n\n\n## 移行手順\n\n\n1.\n空のGitLabプロジェクトを作成する：このプロジェクトをCSRリポジトリの移行先として使用します。作成したプロジェクトは今のところ、空のままにしておきます。\n\n2.\nパーソナルアクセストークン（PAT）を生成する：GitLabの設定に移動し、`read_repository`と`write_repository`スコープを有効にして[PATを生成](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)します。移行プロセス中にGitの操作を認証する際に、このトークンを使用します。\n\n3. Cloud Shellエディタでコードを編集する：CSRリポジトリで「コードを編集」ボタンをクリックして、Cloud\nShellエディタを開きます。続行するには、Cloud Shellを認証して「リポジトリを信頼する」を選択する必要があります。\n\n\n![Google Cloud\nShellエディタ](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097750/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097750517.png)\n\n\n4. Gitのステータスを調べる：Cloud Shellで`git\nstatus`を実行して、現在のブランチを確認し、GitLabにプッシュする前にすべてが正常であることを確かめます。\n\n\n![Gitのステータスを調査する](https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097750/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097750518.png)\n\n\n5. リモートリポジトリを設定する：次のコマンドを実行して、GitLabプロジェクトをリモートリポジトリとして追加します。\n\n\n```\n\ngit remote add origin [GITLAB_PROJECT_URL]\n\n\n```\n\n\n6. `[GITLAB_PROJECT_URL]`の部分をGitLabプロジェクトの実際のURLに置き換えます。\n\nGitLabにプッシュする：最後に次のコマンドを実行して、ローカルリポジトリを[GitLabにプッシュ](https://about.gitlab.com/ja-jp/blog/mastering-the-basics-of-git-push-tag/)します。 \n\n\n```\n\ngit push -u origin [BRANCH_NAME]\n\n\n```\n\n\n7. `[BRANCH_NAME]`の部分を先程確認した現在のブランチ名に置き換えます。\n\nプロンプトが表示されたら、GitLabのユーザー名に加え、パスワードとしてPATを使用して認証を行い、プッシュを完了します。\n\n\n## ベストプラクティス\n\n\n- 開始前にバックアップする：移行プロセスをはじめる前に、必ずCSRリポジトリをバックアップしてください。\n\n- 移行後にテストする：ブランチやCI/CDパイプラインなど、リポジトリのすべての要素が想定どおりに、GitLabで動作することを確認しましょう。\n\n-\nGitLabの機能を活用する：[AI](https://about.gitlab.com/gitlab-duo/)や[CI/CD](https://docs.gitlab.com/ee/ci/)、[GitLab\nEnterprise Agile\nPlanning](https://about.gitlab.com/solutions/agile-delivery/)など、GitLabで提供される高度なDevSecOps機能を活用して、開発ワークフローを強化しましょう。\n\n\nGoogle Cloud Source\nRepositoriesからGitLabへの移行は容易に実施でき、単なるソースコードの管理以上に多くのメリットがあります。移行後にワークフローを強化したいと考えているデベロッパーにとって、GitLabをGoogle\nCloudと統合させることは非常に効果的な選択肢になると言えるでしょう。\n\n\n> [GitLabのGoogle\nCloudとの統合について詳しくは、こちら](https://about.gitlab.com/blog/gitlab-google-cloud-integrations-now-in-public-beta/)をお読みください。\n\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)\u003Cbr>\n\n（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n","product",[700,9,701],"tutorial","DevSecOps platform","2024-09-12",{"slug":704,"featured":6,"template":680},"tutorial-migrate-from-google-cloud-source-repositories-to-gitlab","content:ja-jp:blog:tutorial-migrate-from-google-cloud-source-repositories-to-gitlab.yml","Tutorial Migrate From Google Cloud Source Repositories To Gitlab","ja-jp/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab.yml","ja-jp/blog/tutorial-migrate-from-google-cloud-source-repositories-to-gitlab",{"_path":710,"_dir":246,"_draft":6,"_partial":6,"_locale":7,"seo":711,"content":715,"config":722,"_id":724,"_type":13,"title":725,"_source":15,"_file":726,"_stem":727,"_extension":18},"/ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",{"noIndex":6,"title":712,"description":713,"ogImage":714},"GitLabで自律型AIをGoogle Cloudに安全・高速デプロイ","デモアプリ付きの詳細なガイドに従って、自律型AIの使い方を、GitLabのネイティブインテグレーションやCI/CDコンポーネントとあわせて学びましょう。","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,w_1640,h_1000,c_lfill/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg",{"title":712,"description":713,"authors":716,"heroImage":717,"date":718,"body":719,"category":720,"tags":721},[695],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670563/Blog/Hero%20Images/cloudcomputing.jpg","2025-07-07","[自律型AI](https://about.gitlab.com/ja-jp/topics/agentic-ai/)の登場により、インテリジェントなアプリケーションの構築方法は大きく変わりつつありますが、\n\nAIエージェントを安全かつ効率的にデプロイするのは簡単ではありません。\n\nこのチュートリアルでは、\n\nGoogleのAgent Development Kit（[ADK](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-development-kit/quickstart)）で構築したAIエージェントを、\n\n[GitLabのネイティブインテグレーション](https://cloud.google.com/blog/topics/partners/understand-the-google-cloud-gitlab-integration)と[CI/CDコンポーネント](https://docs.gitlab.com/ci/components/)を使って\n\nCloud Runにデプロイする方法を\n\n学びます。\n\n\n## AIエージェントの基礎知識と注目される理由\n\n\n自律型AIは、人工知能の分野における大きな進化と言えるでしょう。従来の生成AIツールが常に人間からの指示を必要とするのに対し、AIエージェントは高度な言語モデルや自然言語処理を活用して、自律的に行動を起こします。自律型AIはリクエストを理解し、意思決定を行い、複数のステップからなる計画を実行して、目標を自ら達成できます。\n\n\nこのチュートリアルでは、GoogleのADKを使用します。ADKは、AIエージェントの開発とデプロイに対応した、柔軟でモジュール化されたフレームワークです。GeminiやGoogleのエコシステム向けに最適化されていますが、モデルやデプロイ方法に依存せず、他のフレームワークとの互換性も考慮して設計されています。\n\n\n## デモアプリの紹介：Canada City Advisor\n\n\nデプロイプロセスを実演するための実用的な例として「Canada City Advisor」を使います。ユーザーの希望や条件に基づいて、理想的なカナダの都市を提案するAIエージェントです。\n\n\nその仕組みは以下の通りです。\n\n\n* ユーザーが予算条件やライフスタイルの希望を入力します。\n\n* ルートエージェントが以下2つのサブエージェントを統括します。\n\n  * 経済的な制約を評価する予算分析エージェント。カナダ住宅金融公社から取得したデータを使用します。\n  * ユーザーの希望に合う都市を提案するライフスタイル分析エージェント。[Open-Meteo](https://open-meteo.com/)から取得した適切な都市情報に基づく天気情報サービスも提供します。\n* システムがユーザーに合った都市の候補を生成します。\n\n\n異なる専門性を持つAIエージェントが連動して複雑な問題を解決するこのマルチエージェント構成により、自律型AIの強みが活かされます。サブエージェントは、ルートエージェントが予算やライフスタイルの分析が必要と判断したときにのみ呼び出されます。\n\n\n![自律型AIを活用したデモアプリ開発のマルチエージェント構成](https://res.cloudinary.com/about-gitlab-com/image/upload/v1751576568/obgxpxvlnxtzifddrrz1.png)\n\n\n## 前提条件\n\n\n始める前に、以下のものが準備できていることを確認してください。\n\n\n* 以下のAPIが有効になっているGoogle Cloudプロジェクト\n\n  * Cloud Run API  \n  * Artifact Registry API  \n  * Vertex AI API  \n* ソースコード用のGitLabプロジェクト\n\n* GitLabとGoogle Cloudの両方に対する適切な権限\n\n\n**ステップ1：ワークロードアイデンティティフェデレーションによるIAMインテグレーションを設定する**\n\n\n最初のステップでは、[Workload Identity連携](https://cloud.google.com/iam/docs/workload-identity-federation)を使用して、GitLabとGoogle Cloudの間で安全なキーレス認証を確立します。これにより、サービスアカウントキーが不要となり、セキュリティが向上します。\n\n\nGitLabプロジェクトでの手順は以下のとおりです。\n\n\n1. **設定 > インテグレーション > Google Cloud IAM**の順に移動します。\n\n2. 以下の情報を入力します。\n\n   * **プロジェクトID**：使用しているGoogle CloudプロジェクトのID\n   * **プロジェクト番号**：Google Cloudコンソールで確認できるプロジェクト番号\n     Workload Identityプールの固有識別子\n   * **プロバイダーID**：アイデンティティプロバイダーの固有識別子\n\nGitLabがスクリプトを生成します。このスクリプトをコピーして、Google Cloud Shellで実行し、Workload Identity連携を作成します。\n\n\n**ステップ2：Google Artifact Registryのインテグレーションを設定する**\n\n\n次に、コンテナイメージを保存するGoogle Artifact Registryとの接続を設定します。\n\n\n1. GitLabで、**設定 > インテグレーション > Google Artifact Registry**の順に移動します。\n\n2. 以下の情報を入力します。\n\n   * **Google CloudプロジェクトID**：ステップ1と同じプロジェクトID\n   * **リポジトリ名**：既存のArtifact Registryリポジトリの名前\n   * **場所**：リポジトリが存在するリージョン\n\n**重要**：リポジトリはすでにArtifact Registryに存在している必要があります。この設定操作では、GitLabが新しいリポジトリを自動で作成することはありません。\n\n\nGitLabは、必要な権限を設定するためのコマンドを生成します。これをGoogle Cloud Shellで実行します。\n\n\nさらに、Cloud Runへのデプロイのために、サービスプリンシパルに以下のロールを追加します。\n\n\n* `roles/run.admin`\n\n* `roles/iam.serviceAccountUser`\n\n* `roles/cloudbuild.builds.editor`\n\n\n以下のgcloudコマンドを使用して、これらのロールを追加できます。\n\n\n```shell\n\nGCP_PROJECT_ID=\"\u003Cyour-project-id>\" #replace\n\n\nGCP_PROJECT_NUMBER=\"\u003Cyour-project-number>\" #replace\n\n\nGCP_WORKLOAD_IDENTITY_POOL=\"\u003Cyour-pool-id>\" #replace\n\n\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/run.admin'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/iam.serviceAccountUser'\n\ngcloud projects add-iam-policy-binding ${GCP_PROJECT_ID} \\\n  --member=\"principalSet://iam.googleapis.com/projects/${GCP_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GCP_WORKLOAD_IDENTITY_POOL}/attribute.developer_access/true\" \\\n  --role='roles/cloudbuild.builds.editor'\n```\n\n\n**ステップ3：CI/CDパイプラインを作成する**\n\n\nここからが本番です。デプロイ用のパイプラインを構築しましょう！GitLabのCI/CDコンポーネントを使用すると、非常に簡単に作成できます。\n\n\nプロジェクトのルートに `.gitlab-ci.yml` ファイルを作成します。\n\n\n```unset\n\nstages:\n  - build\n  - test\n  - upload\n  - deploy\n\nvariables:\n  GITLAB_IMAGE: $CI_REGISTRY_IMAGE/main:$CI_COMMIT_SHORT_SHA\n  AR_IMAGE: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/main:$CI_COMMIT_SHORT_SHA\n\nbuild:\n  image: docker:24.0.5\n  stage: build\n  services:\n    - docker:24.0.5-dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker build -t $GITLAB_IMAGE .\n    - docker push $GITLAB_IMAGE\n\ninclude:\n  - template: Jobs/Dependency-Scanning.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.gitlab-ci.yml\n  - template: Jobs/SAST.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml\n  - template: Jobs/Secret-Detection.gitlab-ci.yml  # https://gitlab.com/gitlab-org/gitlab/blob/master/lib/gitlab/ci/templates/Jobs/Secret-Detection.gitlab-ci.yml\n  - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main\n    inputs:\n      stage: upload\n      source: $GITLAB_IMAGE\n      target: $AR_IMAGE\n  - component: gitlab.com/google-gitlab-components/cloud-run/deploy-cloud-run@main\n    inputs:\n      stage: deploy\n      project_id: \"\u003Cyour-project-id>\" #replace\n      service: \"canadian-city\"\n      region: \"us-central1\"\n      image: $AR_IMAGE\n```\n\n\nこのパイプラインは、以下の4つのステージで構成されています。\n\n\n1. **Build**：AIエージェントを使用してDockerコンテナを作成します\n\n2. **Test**：セキュリティスキャン（コンテナスキャン、依存関係スキャン、SAST）を実行します\n\n3. **Upload**：コンテナをArtifact Registryにプッシュします\n\n4. **Deploy**：Cloud Runにデプロイします\n\n\n[GitLabのCI/CDコンポーネント](https://docs.gitlab.com/ci/components/)を使う大きなメリットは、いくつかのパラメーターを指定するだけで、認証やデプロイの複雑な処理をすべてコンポーネント側が自動で行ってくれる点です。\n\n\n**ステップ4：デプロイとテスト**\n\n\nすべての設定が完了したら、いよいよデプロイの実行です。\n\n\n1. コードと `.gitlab-ci.yml` をGitLabリポジトリにコミットします。\n\n2. パイプラインは自動的に実行されます。\n\n3. GitLabのCI/CDインターフェースでパイプラインの進行状況を確認します。\n\n4. 完了後、Google CloudコンソールでCloud RunのURLを確認できます。\n\n\n各ステージが順番に実行される様子を確認できます。\n\n\n* Buildステージでコンテナが作成されます。\n\n* Testステージで包括的なセキュリティスキャンが実行されます。\n\n* UploadステージでArtifact Registryにプッシュされます。\n\n* DeployステージでCloud Runのサービスが作成または更新されます。\n\n\n## セキュリティ上のメリット\n\n\nこの手法には、以下のようなセキュリティ上の利点があります。\n\n\n* **長期間有効な認証情報が不要**：Workload identity連携により、サービスアカウントキーが不要になります。\n\n* **自動セキュリティスキャン**：すべてのデプロイで脆弱性がスキャンされます。\n\n* **監査証跡**：誰が何をいつデプロイしたのかを完全に可視化します。\n\n* **最小権限の原則**：きめ細かなIAMロールによりアクセスが制限されます。\n\n\n## まとめ\n\n\nGitLabのセキュリティ機能とGoogle Cloudの強力なAIおよびサーバーレスプラットフォームを組み合わせることで、安全でスケーラブルなAIエージェントをデプロイできます。GitLabとGoogle Cloudのインテグレーションによって、従来こうしたデプロイに伴っていた複雑さの多くが解消されます。\n\n\n> このチュートリアルの[サンプルコード\n\n> 全文](https://gitlab.com/gitlab-partners-public/google-cloud/demos/ai-agent-deployment)を使えば、\n\n> すぐに始められます。GitLabをまだご利用でない場合は、ぜひ[無料トライアル](https://about.gitlab.com/ja-jp/free-trial/?hosted=saas)でDevSecOpsプラットフォームをご体験ください。\n\n\n\n\n*監修：小松原 つかさ [@tkomatsubara](https://gitlab.com/tkomatsubara)*\n\n\n*（GitLab合同会社 ソリューションアーキテクト本部 シニアパートナーソリューションアーキテクト）*\n","ai-ml",[9],{"featured":6,"template":680,"slug":723},"fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab","content:ja-jp:blog:fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","Fast And Secure Ai Agent Deployment To Google Cloud With Gitlab","ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab.yml","ja-jp/blog/fast-and-secure-ai-agent-deployment-to-google-cloud-with-gitlab",1,[661,685],1758326317280]