[{"data":1,"prerenderedAt":2794},["ShallowReactive",2],{"/ja-jp/blog/migration-from-azure-devops-to-gitlab":3,"navigation-ja-jp":2003,"banner-ja-jp":2432,"footer-ja-jp":2441,"blog-post-authors-ja-jp-Evgeny Rudinsky|Michael Leopard":2683,"blog-related-posts-ja-jp-migration-from-azure-devops-to-gitlab":2709,"blog-promotions-ja-jp":2732,"next-steps-ja-jp":2785},{"id":4,"title":5,"authors":6,"body":9,"category":1980,"date":1981,"description":1982,"extension":1983,"externalUrl":1984,"faq":1984,"featured":223,"heroImage":1985,"meta":1986,"navigation":223,"path":1987,"seo":1988,"slug":1994,"stem":1995,"tags":1996,"template":2000,"updatedDate":2001,"__hash__":2002},"blogPosts/ja-jp/blog/migration-from-azure-devops-to-gitlab.md","ガイド: Azure DevOpsからGitLabへの移行",[7,8],"Evgeny Rudinsky","Michael Leopard",{"type":10,"value":11,"toc":1974},"minimark",[12,16,20,48,51,64,67,279,282,288,305,308,313,327,336,339,354,362,367,401,404,408,411,422,440,444,447,574,577,602,607,610,630,633,640,643,651,656,669,695,704,707,1210,1490,1495,1515,1518,1521,1524,1535,1538,1549,1551,1559,1562,1568,1576,1581,1592,1597,1605,1610,1624,1635,1640,1645,1653,1658,1670,1674,1970],[13,14,15],"p",{},"Azure DevOpsからGitLabへの移行は困難な作業のように思えるかもしれませんが、適切なアプローチとツールを使用すれば、スムーズかつ効率的に進められます。このガイドでは、Azure DevOpsからGitLabへプロジェクト、リポジトリ、パイプラインを正常に移行するために必要な手順を説明します。",[17,18,19],"h2",{"id":19},"概要",[13,21,22,23,29,30,35,36,41,42,47],{},"GitLabは、Azure DevOps（ADO）からプロジェクトを移行するための",[24,25,28],"a",{"href":26,"rel":27},"https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/",[],"Congregate","(",[24,31,34],{"href":32,"rel":33},"https://about.gitlab.com/ja-jp/professional-services/",[],"GitLabプロフェッショナルサービス（PS）","によって管理）と",[24,37,40],{"href":38,"rel":39},"https://docs.gitlab.com/ja-jp/user/project/import/repo_by_url/",[],"組み込みのGitリポジトリインポート","の両方を提供しています。これらのオプションは、リポジトリごとまたは一括移行をサポートし、Gitコミット履歴、ブランチ、タグを保持します。Congregateとプロフェッショナルサービスのツールを使用すると、Wiki、作業アイテム、CI/CD変数、コンテナイメージ、パッケージ、パイプラインなどの追加アセットもサポートされます（この",[24,43,46],{"href":44,"rel":45},"https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/customer/ado-migration-features-matrix.md",[],"機能マトリクス","を参照）。このガイドを参照すれば、移行を計画・実行し、移行後のフォローアップタスクを完了できます。",[13,49,50],{},"ADOからGitLabへ移行する企業は、一般的に複数フェーズのアプローチに従います：",[52,53,54,58,61],"ul",{},[55,56,57],"li",{},"CongregateまたはGitLabの組み込みリポジトリ移行を使用して、ADOからGitLabにリポジトリを移行します。",[55,59,60],{},"AzureパイプラインからGitLab CI/CDにパイプラインを移行します。",[55,62,63],{},"ボード、作業アイテム、アーティファクトなどの残りのアセットを、GitLabのイシュー、エピック、パッケージレジストリ、コンテナレジストリに移行します。",[13,65,66],{},"移行フェーズの概要:",[68,69,74],"pre",{"className":70,"code":71,"language":72,"meta":73,"style":73},"language-mermaid shiki shiki-themes github-light","graph LR\n    subgraph Prerequisites\n        direction TB\n        A[\"IDプロバイダー（IdP）を設定し\u003Cbr/>ユーザーをプロビジョニング\"]\n        A --> B[\"Runnerとサードパーティ\u003Cbr/>インテグレーションを設定\"]\n        B --> I[\"ユーザーの有効化と\u003Cbr/>変更管理\"]\n    end\n    \n    subgraph MigrationPhase[\"移行フェーズ\"]\n        direction TB\n        C[\"ソースコードを移行\"]\n        C --> D[\"コントリビューションを保持し\u003Cbr/>履歴をフォーマット\"]\n        D --> E[\"作業アイテムを移行し\u003Cbr/>\u003Ca href=\"https://docs.gitlab.com/ja-jp/topics/plan_and_track/\">GitLab Plan\u003Cbr/>および作業追跡\u003C/a>にマッピング\"]\n    end\n    \n    subgraph PostMigration[\"移行後の手順\"]\n        direction TB\n        F[\"ADOパイプラインを\u003Cbr/>GitLab CIに作成または変換\"]\n        F --> G[\"その他のアセット、パッケージ、\u003Cbr/>コンテナイメージを移行\"]\n        G --> H[\"\u003Ca href=\"https://docs.gitlab.com/ja-jp/user/application_security/secure_your_application/\">セキュリティ\u003C/a>と\u003Cbr/>SDLC改善を導入\"]\n    end\n    \n    Prerequisites --> MigrationPhase\n    MigrationPhase --> PostMigration\n\n    style A fill:#FC6D26\n    style B fill:#FC6D26\n    style I fill:#FC6D26\n    style C fill:#8C929D\n    style D fill:#8C929D\n    style E fill:#8C929D\n    style F fill:#FFA500\n    style G fill:#FFA500\n    style H fill:#FFA500\n","mermaid","",[75,76,77,86,92,98,104,110,116,122,128,134,139,145,151,157,162,167,173,178,184,190,196,201,206,212,218,225,231,237,243,249,255,261,267,273],"code",{"__ignoreMap":73},[78,79,82],"span",{"class":80,"line":81},"line",1,[78,83,85],{"class":84},"sgsFI","graph LR\n",[78,87,89],{"class":80,"line":88},2,[78,90,91],{"class":84},"    subgraph Prerequisites\n",[78,93,95],{"class":80,"line":94},3,[78,96,97],{"class":84},"        direction TB\n",[78,99,101],{"class":80,"line":100},4,[78,102,103],{"class":84},"        A[\"IDプロバイダー（IdP）を設定し\u003Cbr/>ユーザーをプロビジョニング\"]\n",[78,105,107],{"class":80,"line":106},5,[78,108,109],{"class":84},"        A --> B[\"Runnerとサードパーティ\u003Cbr/>インテグレーションを設定\"]\n",[78,111,113],{"class":80,"line":112},6,[78,114,115],{"class":84},"        B --> I[\"ユーザーの有効化と\u003Cbr/>変更管理\"]\n",[78,117,119],{"class":80,"line":118},7,[78,120,121],{"class":84},"    end\n",[78,123,125],{"class":80,"line":124},8,[78,126,127],{"class":84},"    \n",[78,129,131],{"class":80,"line":130},9,[78,132,133],{"class":84},"    subgraph MigrationPhase[\"移行フェーズ\"]\n",[78,135,137],{"class":80,"line":136},10,[78,138,97],{"class":84},[78,140,142],{"class":80,"line":141},11,[78,143,144],{"class":84},"        C[\"ソースコードを移行\"]\n",[78,146,148],{"class":80,"line":147},12,[78,149,150],{"class":84},"        C --> D[\"コントリビューションを保持し\u003Cbr/>履歴をフォーマット\"]\n",[78,152,154],{"class":80,"line":153},13,[78,155,156],{"class":84},"        D --> E[\"作業アイテムを移行し\u003Cbr/>\u003Ca href=\"https://docs.gitlab.com/ja-jp/topics/plan_and_track/\">GitLab Plan\u003Cbr/>および作業追跡\u003C/a>にマッピング\"]\n",[78,158,160],{"class":80,"line":159},14,[78,161,121],{"class":84},[78,163,165],{"class":80,"line":164},15,[78,166,127],{"class":84},[78,168,170],{"class":80,"line":169},16,[78,171,172],{"class":84},"    subgraph PostMigration[\"移行後の手順\"]\n",[78,174,176],{"class":80,"line":175},17,[78,177,97],{"class":84},[78,179,181],{"class":80,"line":180},18,[78,182,183],{"class":84},"        F[\"ADOパイプラインを\u003Cbr/>GitLab CIに作成または変換\"]\n",[78,185,187],{"class":80,"line":186},19,[78,188,189],{"class":84},"        F --> G[\"その他のアセット、パッケージ、\u003Cbr/>コンテナイメージを移行\"]\n",[78,191,193],{"class":80,"line":192},20,[78,194,195],{"class":84},"        G --> H[\"\u003Ca href=\"https://docs.gitlab.com/ja-jp/user/application_security/secure_your_application/\">セキュリティ\u003C/a>と\u003Cbr/>SDLC改善を導入\"]\n",[78,197,199],{"class":80,"line":198},21,[78,200,121],{"class":84},[78,202,204],{"class":80,"line":203},22,[78,205,127],{"class":84},[78,207,209],{"class":80,"line":208},23,[78,210,211],{"class":84},"    Prerequisites --> MigrationPhase\n",[78,213,215],{"class":80,"line":214},24,[78,216,217],{"class":84},"    MigrationPhase --> PostMigration\n",[78,219,221],{"class":80,"line":220},25,[78,222,224],{"emptyLinePlaceholder":223},true,"\n",[78,226,228],{"class":80,"line":227},26,[78,229,230],{"class":84},"    style A fill:#FC6D26\n",[78,232,234],{"class":80,"line":233},27,[78,235,236],{"class":84},"    style B fill:#FC6D26\n",[78,238,240],{"class":80,"line":239},28,[78,241,242],{"class":84},"    style I fill:#FC6D26\n",[78,244,246],{"class":80,"line":245},29,[78,247,248],{"class":84},"    style C fill:#8C929D\n",[78,250,252],{"class":80,"line":251},30,[78,253,254],{"class":84},"    style D fill:#8C929D\n",[78,256,258],{"class":80,"line":257},31,[78,259,260],{"class":84},"    style E fill:#8C929D\n",[78,262,264],{"class":80,"line":263},32,[78,265,266],{"class":84},"    style F fill:#FFA500\n",[78,268,270],{"class":80,"line":269},33,[78,271,272],{"class":84},"    style G fill:#FFA500\n",[78,274,276],{"class":80,"line":275},34,[78,277,278],{"class":84},"    style H fill:#FFA500\n",[17,280,281],{"id":281},"移行の計画",[13,283,284],{},[285,286,287],"strong",{},"移行を計画するにあたり、次の質問を検討します:",[52,289,290,293,296,299,302],{},[55,291,292],{},"移行をいつまでに完了する必要があるか?",[55,294,295],{},"何が移行されるかを理解しているか?",[55,297,298],{},"誰が移行を実行するか?",[55,300,301],{},"GitLabでどのような組織構造を望むか?",[55,303,304],{},"考慮すべき制約、制限、落とし穴はあるか?",[13,306,307],{},"タイムラインを決定します。これは移行アプローチを大きく左右します。ADOとGitLabの両プラットフォームに精通したチャンピオンやグループ（アーリーアダプターなど）を特定し、導入を推進してアドバイスを提供してもらいます。",[13,309,310],{},[285,311,312],{},"移行が必要なものをインベントリ化:",[52,314,315,318,321,324],{},[55,316,317],{},"リポジトリ、プルリクエスト、コントリビューターの数",[55,319,320],{},"作業アイテムとパイプラインの数と複雑さ",[55,322,323],{},"リポジトリのサイズと依存関係",[55,325,326],{},"重要なインテグレーションとRunner要件（特定の機能を持つエージェントプール）",[13,328,329,330,335],{},"GitLab プロフェッショナルサービスの",[24,331,334],{"href":332,"rel":333},"https://gitlab.com/gitlab-org/professional-services-automation/tools/utilities/evaluate#beta-azure-devops",[],"Evaluate","ツールを使用して、リポジトリ、PR数、コントリビューターリスト、パイプライン数、作業アイテム、CI/CD変数などを含むAzure DevOps組織全体の完全なインベントリを作成します。GitLabプロフェッショナルサービスチームと連携している場合は、このレポートをエンゲージメントマネージャーまたはテクニカルアーキテクトと共有し、移行計画に役立ててください。",[13,337,338],{},"移行のタイミングは、主にプルリクエスト数、リポジトリサイズ、コントリビューション量（PRのコメント、作業アイテムなど）によって決まります。たとえば、PRが少なくコントリビューターが限られた1,000の小規模リポジトリは、数万のPRと数千のコントリビューターを含む少数のリポジトリよりもはるかに高速に移行できます。インベントリデータを使用して作業量を見積もり、本番移行を進める前にテスト実行を計画します。",[13,340,341,342,347,348,353],{},"インベントリを希望のタイムラインと比較し、すべてのリポジトリを一度に移行するか、バッチで移行するかを決定します。チームが同時に移行できない場合は、チームのスケジュールに合わせて移行をバッチ化し、段階的に実行します。たとえば、プロフェッショナルサービスのエンゲージメントでは、複雑さを管理し、",[24,343,346],{"href":344,"rel":345},"https://docs.gitlab.com/ja-jp/security/rate_limits/",[],"GitLab","と",[24,349,352],{"href":350,"rel":351},"https://learn.microsoft.com/en-us/azure/devops/integrate/concepts/rate-limits?view=azure-devops",[],"ADO","の両方のAPIレート制限を尊重するために、200〜300プロジェクト単位の段階に分割して移行を実施します。",[13,355,356,357,361],{},"GitLabの組み込み",[24,358,360],{"href":38,"rel":359},[],"リポジトリインポーター","は、Gitリポジトリ（コミット、ブランチ、タグ）を1つずつ移行します。Congregateは、可能な限りプルリクエスト（GitLabではマージリクエストとして知られています）、コメント、関連メタデータを保持するように設計されています。シンプルな組み込みリポジトリインポートは、Gitデータ（履歴、ブランチ、タグ）のみに焦点を当てています。",[13,363,364],{},[285,365,366],{},"通常、個別の移行または手動での再作成が必要な項目:",[52,368,369,384,387,390,393],{},[55,370,371,372,377,378,383],{},"Azureパイプライン - 同等のGitLab CI/CDパイプラインを作成(",[24,373,376],{"href":374,"rel":375},"https://docs.gitlab.com/ja-jp/ci/yaml/",[],"CI/CD YAML","または",[24,379,382],{"href":380,"rel":381},"https://docs.gitlab.com/ja-jp/ci/components/",[],"CI/CDコンポーネント","を参照)。または、CongregateのAIベースのパイプライン変換を使用することを検討してください。",[55,385,386],{},"作業アイテムとボード - GitLabのイシュー、エピック、イシュー ボードにマッピング。",[55,388,389],{},"アーティファクト、コンテナイメージ(ACR) - GitLabパッケージレジストリまたはコンテナレジストリに移行。",[55,391,392],{},"サービスフックと外部インテグレーション - GitLabで再作成。",[55,394,395,400],{},[24,396,399],{"href":397,"rel":398},"https://docs.gitlab.com/ja-jp/user/permissions/",[],"権限モデル","はADOとGitLabで異なります。完全な保持を想定するのではなく、権限マッピングを確認および計画してください。",[13,402,403],{},"各ツール（Congregateと組み込みインポート）が何を移行するかを確認し、ニーズに合ったものを選択します。手動で移行または再作成する必要があるデータやインテグレーションのリストを作成します。",[13,405,406],{},[285,407,298],{},[13,409,410],{},"移行は通常、GitLabグループオーナーまたはインスタンス管理者、または移行先グループ/プロジェクトに必要な権限を付与された指定の移行担当者によって実行されます。CongregateとGitLabインポートAPIには、Azure DevOpsとGitLabの両方の有効な認証トークンが必要です。",[52,412,413,416,419],{},[55,414,415],{},"グループオーナー/管理者が移行を実行するか、特定のチーム/個人に委任アクセスを付与するかを決定します。",[55,417,418],{},"移行担当者が、選択した移行ツールに必要なスコープ（api/read_repositoryスコープやツール固有の要件など）を持つ個人アクセストークン（Azure DevOpsとGitLab）を正しく設定していることを確認します。",[55,420,421],{},"小規模なパイロット移行でトークンと権限をテストします。",[13,423,424,427,428,433,434,439],{},[285,425,426],{},"注:"," CongregateはADO移行のためにファイルベースのインポート機能を活用し、実行にはインスタンス管理者権限が必要です（",[24,429,432],{"href":430,"rel":431},"https://docs.gitlab.com/ja-jp/user/project/settings/import_export/#migrate-projects-by-uploading-an-export-file",[],"ドキュメントを参照","）。GitLab.comに移行する場合は、プロフェッショナルサービスの利用を検討してください。詳細については、",[24,435,438],{"href":436,"rel":437},"https://about.gitlab.com/professional-services/catalog/",[],"Professional Services Full Catalog","を参照してください。管理者以外のアカウントでは、コントリビューションの帰属を保持できません。",[13,441,442],{},[285,443,301],{},[13,445,446],{},"ADO構造をGitLab構造に直接マッピングすることは可能ですが、移行中に構造を合理化および簡素化することをお勧めします。チームがGitLabでどのように作業するかを検討し、コラボレーションとアクセス管理を促進する構造を設計します。ADO構造をGitLab構造にマッピングする方法は次のとおりです。",[68,448,450],{"className":70,"code":449,"language":72,"meta":73,"style":73},"graph TD\n    subgraph GitLab\n        direction TB\n        A[\"トップレベルグループ\"]\n        B[\"サブグループ（オプション）\"]\n        C[\"プロジェクト\"]\n        A --> B\n        A --> C\n        B --> C\n    end\n\n    subgraph AzureDevOps[\"Azure DevOps\"]\n        direction TB\n        F[\"組織\"]\n        G[\"プロジェクト\"]\n        H[\"リポジトリ\"]\n        F --> G\n        G --> H\n    end\n\n    style A fill:#FC6D26\n    style B fill:#FC6D26\n    style C fill:#FC6D26\n    style F fill:#8C929D\n    style G fill:#8C929D\n    style H fill:#8C929D\n",[75,451,452,457,462,466,471,476,481,486,491,496,500,504,509,513,518,523,528,533,538,542,546,550,554,559,564,569],{"__ignoreMap":73},[78,453,454],{"class":80,"line":81},[78,455,456],{"class":84},"graph TD\n",[78,458,459],{"class":80,"line":88},[78,460,461],{"class":84},"    subgraph GitLab\n",[78,463,464],{"class":80,"line":94},[78,465,97],{"class":84},[78,467,468],{"class":80,"line":100},[78,469,470],{"class":84},"        A[\"トップレベルグループ\"]\n",[78,472,473],{"class":80,"line":106},[78,474,475],{"class":84},"        B[\"サブグループ（オプション）\"]\n",[78,477,478],{"class":80,"line":112},[78,479,480],{"class":84},"        C[\"プロジェクト\"]\n",[78,482,483],{"class":80,"line":118},[78,484,485],{"class":84},"        A --> B\n",[78,487,488],{"class":80,"line":124},[78,489,490],{"class":84},"        A --> C\n",[78,492,493],{"class":80,"line":130},[78,494,495],{"class":84},"        B --> C\n",[78,497,498],{"class":80,"line":136},[78,499,121],{"class":84},[78,501,502],{"class":80,"line":141},[78,503,224],{"emptyLinePlaceholder":223},[78,505,506],{"class":80,"line":147},[78,507,508],{"class":84},"    subgraph AzureDevOps[\"Azure DevOps\"]\n",[78,510,511],{"class":80,"line":153},[78,512,97],{"class":84},[78,514,515],{"class":80,"line":159},[78,516,517],{"class":84},"        F[\"組織\"]\n",[78,519,520],{"class":80,"line":164},[78,521,522],{"class":84},"        G[\"プロジェクト\"]\n",[78,524,525],{"class":80,"line":169},[78,526,527],{"class":84},"        H[\"リポジトリ\"]\n",[78,529,530],{"class":80,"line":175},[78,531,532],{"class":84},"        F --> G\n",[78,534,535],{"class":80,"line":180},[78,536,537],{"class":84},"        G --> H\n",[78,539,540],{"class":80,"line":186},[78,541,121],{"class":84},[78,543,544],{"class":80,"line":192},[78,545,224],{"emptyLinePlaceholder":223},[78,547,548],{"class":80,"line":198},[78,549,230],{"class":84},[78,551,552],{"class":80,"line":203},[78,553,236],{"class":84},[78,555,556],{"class":80,"line":208},[78,557,558],{"class":84},"    style C fill:#FC6D26\n",[78,560,561],{"class":80,"line":214},[78,562,563],{"class":84},"    style F fill:#8C929D\n",[78,565,566],{"class":80,"line":220},[78,567,568],{"class":84},"    style G fill:#8C929D\n",[78,570,571],{"class":80,"line":227},[78,572,573],{"class":84},"    style H fill:#8C929D\n",[13,575,576],{},"推奨アプローチ:",[52,578,579,582,585,588],{},[55,580,581],{},"各ADO組織をGitLabグループ（または少数のグループ）にマッピングし、多数の小さなグループには分割しないでください。ADOチームプロジェクトごとにGitLabグループを作成することは避けてください。移行をGitLab構造を合理化する機会として活用してください。",[55,583,584],{},"サブグループとプロジェクトレベルの権限を使用して、関連リポジトリをグループ化します。",[55,586,587],{},"GitLabグループとグループメンバーシップ（グループとサブグループ）を使用してプロジェクトのセットへのアクセスを管理し、チームプロジェクトごとに1つのグループを作成しないでください。",[55,589,590,591,595,596,601],{},"GitLabの",[24,592,594],{"href":397,"rel":593},[],"権限","を確認し、",[24,597,600],{"href":598,"rel":599},"https://docs.gitlab.com/ja-jp/user/group/saml_sso/group_sync/",[],"SAML Group Links","を検討して、GitLabインスタンス（またはGitLab.comネームスペース）のエンタープライズRBACモデルを実装します。",[13,603,604],{},[285,605,606],{},"ADOボードと作業アイテム: 移行の状態",[13,608,609],{},"作業アイテムがADOからGitLab Plan（イシュー、エピック、ボード）にどのように移行されるかを理解することが重要です。",[52,611,612,615,618,621,624,627],{},[55,613,614],{},"ADOボードと作業アイテムは、GitLabのイシュー、エピック、イシューボードにマッピングされます。ワークフローとボード設定がどのように変換されるかを計画します。",[55,616,617],{},"ADOのエピックと機能は、GitLabのエピックになります。",[55,619,620],{},"その他の作業アイテムタイプ（ユーザーストーリー、タスク、バグなど）は、プロジェクトスコープのイシューになります。",[55,622,623],{},"ほとんどの標準フィールドが保持されます。サポートされている場合、選択したカスタムフィールドを移行できます。",[55,625,626],{},"親子関係が保持されるため、エピックはすべての関連イシューを参照します。",[55,628,629],{},"プルリクエストへのリンクはマージリクエストリンクに変換され、開発のトレーサビリティが維持されます。",[13,631,632],{},"例: 個別の作業アイテムのGitLabイシューへの移行（フィールドの正確性と関係性を含む）:",[13,634,635],{},[636,637],"img",{"alt":638,"src":639},"例: 個別の作業アイテムのGitLabイシューへの移行","https://res.cloudinary.com/about-gitlab-com/image/upload/v1764769188/ztesjnxxfbwmfmtckyga.png",[13,641,642],{},"バッチ処理のガイダンス:",[52,644,645,648],{},[55,646,647],{},"バッチで移行を実行する必要がある場合は、新しいグループ/サブグループ構造を使用してバッチを定義します（たとえば、ADO組織ごと、または製品領域ごと）。",[55,649,650],{},"インベントリレポートを使用してバッチ選択を推進し、スケールアップする前に各バッチをパイロット移行でテストします。",[13,652,653],{},[285,654,655],{},"パイプライン移行",[13,657,658,659,664,665,668],{},"Congregateは最近、Azure DevOpsからGitLab CI/CDへのマルチステージYAMLパイプラインのAI搭載変換を",[24,660,663],{"href":661,"rel":662},"https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/merge_requests/1298",[],"導入しました","。この自動変換は、シンプルな単一ファイルパイプラインに最適で、本番環境対応の",[75,666,667],{},".gitlab-ci.yml","ファイルではなく、動作する出発点を提供するように設計されています。このツールは、機能的に同等のGitLabパイプラインを生成し、その後特定のニーズに合わせて調整および最適化できます。",[52,670,671,677,680,683,686],{},[55,672,673,674,676],{},"Azureパイプライン YAMLを",[75,675,667],{},"形式に自動変換します。",[55,678,679],{},"シンプルな単一ファイルパイプライン設定に最適です。",[55,681,682],{},"移行を加速するためのボイラープレートを提供し、最終的な本番環境アーティファクトではありません。",[55,684,685],{},"複雑なシナリオ、カスタムタスク、エンタープライズ要件については、レビューや調整が必要です。",[55,687,688,689,694],{},"Azure DevOpsのクラシックリリースパイプラインはサポートしていません — 最初に",[24,690,693],{"href":691,"rel":692},"https://learn.microsoft.com/en-us/azure/devops/pipelines/release/from-classic-pipelines?view=azure-devops",[],"マルチステージYAMLに変換","してください。",[13,696,697,698,703],{},"リポジトリオーナーは、初期変換後にパイプラインをさらに最適化および強化するために、",[24,699,702],{"href":700,"rel":701},"https://docs.gitlab.com/ja-jp/ci/",[],"GitLab CI/CDドキュメント","を確認する必要があります。",[13,705,706],{},"変換されたパイプラインの例:",[68,708,712],{"className":709,"code":710,"language":711,"meta":73,"style":73},"language-yml shiki shiki-themes github-light","# azure-pipelines.yml\n\ntrigger:\n  - main\n\nvariables:\n  imageName: myapp\n\nstages:\n  - stage: Build\n    jobs:\n      - job: Build\n        pool:\n          vmImage: 'ubuntu-latest'\n        steps:\n          - checkout: self\n\n          - task: Docker@2\n            displayName: Build Docker image\n            inputs:\n              command: build\n              repository: $(imageName)\n              Dockerfile: '**/Dockerfile'\n              tags: |\n                $(Build.BuildId)\n\n  - stage: Test\n    jobs:\n      - job: Test\n        pool:\n          vmImage: 'ubuntu-latest'\n        steps:\n          - checkout: self\n\n          # Example: run tests inside the container\n          - script: |\n              docker run --rm $(imageName):$(Build.BuildId) npm test\n            displayName: Run tests\n\n  - stage: Push\n    jobs:\n      - job: Push\n        pool:\n          vmImage: 'ubuntu-latest'\n        steps:\n          - checkout: self\n\n          - task: Docker@2\n            displayName: Login to ACR\n            inputs:\n              command: login\n              containerRegistry: '\u003Cyour-acr-service-connection>'\n\n          - task: Docker@2\n            displayName: Push image to ACR\n            inputs:\n              command: push\n              repository: $(imageName)\n              tags: |\n                $(Build.BuildId)\n","yml",[75,713,714,720,724,733,742,746,753,764,768,775,787,794,806,813,823,830,843,847,859,869,876,886,896,906,917,922,926,937,943,953,959,967,973,983,987,993,1005,1011,1021,1026,1038,1045,1056,1063,1072,1079,1090,1095,1106,1116,1123,1133,1144,1149,1160,1170,1177,1187,1196,1205],{"__ignoreMap":73},[78,715,716],{"class":80,"line":81},[78,717,719],{"class":718},"sAwPA","# azure-pipelines.yml\n",[78,721,722],{"class":80,"line":88},[78,723,224],{"emptyLinePlaceholder":223},[78,725,726,730],{"class":80,"line":94},[78,727,729],{"class":728},"shJU0","trigger",[78,731,732],{"class":84},":\n",[78,734,735,738],{"class":80,"line":100},[78,736,737],{"class":84},"  - ",[78,739,741],{"class":740},"sYBdl","main\n",[78,743,744],{"class":80,"line":106},[78,745,224],{"emptyLinePlaceholder":223},[78,747,748,751],{"class":80,"line":112},[78,749,750],{"class":728},"variables",[78,752,732],{"class":84},[78,754,755,758,761],{"class":80,"line":118},[78,756,757],{"class":728},"  imageName",[78,759,760],{"class":84},": ",[78,762,763],{"class":740},"myapp\n",[78,765,766],{"class":80,"line":124},[78,767,224],{"emptyLinePlaceholder":223},[78,769,770,773],{"class":80,"line":130},[78,771,772],{"class":728},"stages",[78,774,732],{"class":84},[78,776,777,779,782,784],{"class":80,"line":136},[78,778,737],{"class":84},[78,780,781],{"class":728},"stage",[78,783,760],{"class":84},[78,785,786],{"class":740},"Build\n",[78,788,789,792],{"class":80,"line":141},[78,790,791],{"class":728},"    jobs",[78,793,732],{"class":84},[78,795,796,799,802,804],{"class":80,"line":147},[78,797,798],{"class":84},"      - ",[78,800,801],{"class":728},"job",[78,803,760],{"class":84},[78,805,786],{"class":740},[78,807,808,811],{"class":80,"line":153},[78,809,810],{"class":728},"        pool",[78,812,732],{"class":84},[78,814,815,818,820],{"class":80,"line":159},[78,816,817],{"class":728},"          vmImage",[78,819,760],{"class":84},[78,821,822],{"class":740},"'ubuntu-latest'\n",[78,824,825,828],{"class":80,"line":164},[78,826,827],{"class":728},"        steps",[78,829,732],{"class":84},[78,831,832,835,838,840],{"class":80,"line":169},[78,833,834],{"class":84},"          - ",[78,836,837],{"class":728},"checkout",[78,839,760],{"class":84},[78,841,842],{"class":740},"self\n",[78,844,845],{"class":80,"line":175},[78,846,224],{"emptyLinePlaceholder":223},[78,848,849,851,854,856],{"class":80,"line":180},[78,850,834],{"class":84},[78,852,853],{"class":728},"task",[78,855,760],{"class":84},[78,857,858],{"class":740},"Docker@2\n",[78,860,861,864,866],{"class":80,"line":186},[78,862,863],{"class":728},"            displayName",[78,865,760],{"class":84},[78,867,868],{"class":740},"Build Docker image\n",[78,870,871,874],{"class":80,"line":192},[78,872,873],{"class":728},"            inputs",[78,875,732],{"class":84},[78,877,878,881,883],{"class":80,"line":198},[78,879,880],{"class":728},"              command",[78,882,760],{"class":84},[78,884,885],{"class":740},"build\n",[78,887,888,891,893],{"class":80,"line":203},[78,889,890],{"class":728},"              repository",[78,892,760],{"class":84},[78,894,895],{"class":740},"$(imageName)\n",[78,897,898,901,903],{"class":80,"line":208},[78,899,900],{"class":728},"              Dockerfile",[78,902,760],{"class":84},[78,904,905],{"class":740},"'**/Dockerfile'\n",[78,907,908,911,913],{"class":80,"line":214},[78,909,910],{"class":728},"              tags",[78,912,760],{"class":84},[78,914,916],{"class":915},"sD7c4","|\n",[78,918,919],{"class":80,"line":220},[78,920,921],{"class":740},"                $(Build.BuildId)\n",[78,923,924],{"class":80,"line":227},[78,925,224],{"emptyLinePlaceholder":223},[78,927,928,930,932,934],{"class":80,"line":233},[78,929,737],{"class":84},[78,931,781],{"class":728},[78,933,760],{"class":84},[78,935,936],{"class":740},"Test\n",[78,938,939,941],{"class":80,"line":239},[78,940,791],{"class":728},[78,942,732],{"class":84},[78,944,945,947,949,951],{"class":80,"line":245},[78,946,798],{"class":84},[78,948,801],{"class":728},[78,950,760],{"class":84},[78,952,936],{"class":740},[78,954,955,957],{"class":80,"line":251},[78,956,810],{"class":728},[78,958,732],{"class":84},[78,960,961,963,965],{"class":80,"line":257},[78,962,817],{"class":728},[78,964,760],{"class":84},[78,966,822],{"class":740},[78,968,969,971],{"class":80,"line":263},[78,970,827],{"class":728},[78,972,732],{"class":84},[78,974,975,977,979,981],{"class":80,"line":269},[78,976,834],{"class":84},[78,978,837],{"class":728},[78,980,760],{"class":84},[78,982,842],{"class":740},[78,984,985],{"class":80,"line":275},[78,986,224],{"emptyLinePlaceholder":223},[78,988,990],{"class":80,"line":989},35,[78,991,992],{"class":718},"          # Example: run tests inside the container\n",[78,994,996,998,1001,1003],{"class":80,"line":995},36,[78,997,834],{"class":84},[78,999,1000],{"class":728},"script",[78,1002,760],{"class":84},[78,1004,916],{"class":915},[78,1006,1008],{"class":80,"line":1007},37,[78,1009,1010],{"class":740},"              docker run --rm $(imageName):$(Build.BuildId) npm test\n",[78,1012,1014,1016,1018],{"class":80,"line":1013},38,[78,1015,863],{"class":728},[78,1017,760],{"class":84},[78,1019,1020],{"class":740},"Run tests\n",[78,1022,1024],{"class":80,"line":1023},39,[78,1025,224],{"emptyLinePlaceholder":223},[78,1027,1029,1031,1033,1035],{"class":80,"line":1028},40,[78,1030,737],{"class":84},[78,1032,781],{"class":728},[78,1034,760],{"class":84},[78,1036,1037],{"class":740},"Push\n",[78,1039,1041,1043],{"class":80,"line":1040},41,[78,1042,791],{"class":728},[78,1044,732],{"class":84},[78,1046,1048,1050,1052,1054],{"class":80,"line":1047},42,[78,1049,798],{"class":84},[78,1051,801],{"class":728},[78,1053,760],{"class":84},[78,1055,1037],{"class":740},[78,1057,1059,1061],{"class":80,"line":1058},43,[78,1060,810],{"class":728},[78,1062,732],{"class":84},[78,1064,1066,1068,1070],{"class":80,"line":1065},44,[78,1067,817],{"class":728},[78,1069,760],{"class":84},[78,1071,822],{"class":740},[78,1073,1075,1077],{"class":80,"line":1074},45,[78,1076,827],{"class":728},[78,1078,732],{"class":84},[78,1080,1082,1084,1086,1088],{"class":80,"line":1081},46,[78,1083,834],{"class":84},[78,1085,837],{"class":728},[78,1087,760],{"class":84},[78,1089,842],{"class":740},[78,1091,1093],{"class":80,"line":1092},47,[78,1094,224],{"emptyLinePlaceholder":223},[78,1096,1098,1100,1102,1104],{"class":80,"line":1097},48,[78,1099,834],{"class":84},[78,1101,853],{"class":728},[78,1103,760],{"class":84},[78,1105,858],{"class":740},[78,1107,1109,1111,1113],{"class":80,"line":1108},49,[78,1110,863],{"class":728},[78,1112,760],{"class":84},[78,1114,1115],{"class":740},"Login to ACR\n",[78,1117,1119,1121],{"class":80,"line":1118},50,[78,1120,873],{"class":728},[78,1122,732],{"class":84},[78,1124,1126,1128,1130],{"class":80,"line":1125},51,[78,1127,880],{"class":728},[78,1129,760],{"class":84},[78,1131,1132],{"class":740},"login\n",[78,1134,1136,1139,1141],{"class":80,"line":1135},52,[78,1137,1138],{"class":728},"              containerRegistry",[78,1140,760],{"class":84},[78,1142,1143],{"class":740},"'\u003Cyour-acr-service-connection>'\n",[78,1145,1147],{"class":80,"line":1146},53,[78,1148,224],{"emptyLinePlaceholder":223},[78,1150,1152,1154,1156,1158],{"class":80,"line":1151},54,[78,1153,834],{"class":84},[78,1155,853],{"class":728},[78,1157,760],{"class":84},[78,1159,858],{"class":740},[78,1161,1163,1165,1167],{"class":80,"line":1162},55,[78,1164,863],{"class":728},[78,1166,760],{"class":84},[78,1168,1169],{"class":740},"Push image to ACR\n",[78,1171,1173,1175],{"class":80,"line":1172},56,[78,1174,873],{"class":728},[78,1176,732],{"class":84},[78,1178,1180,1182,1184],{"class":80,"line":1179},57,[78,1181,880],{"class":728},[78,1183,760],{"class":84},[78,1185,1186],{"class":740},"push\n",[78,1188,1190,1192,1194],{"class":80,"line":1189},58,[78,1191,890],{"class":728},[78,1193,760],{"class":84},[78,1195,895],{"class":740},[78,1197,1199,1201,1203],{"class":80,"line":1198},59,[78,1200,910],{"class":728},[78,1202,760],{"class":84},[78,1204,916],{"class":915},[78,1206,1208],{"class":80,"line":1207},60,[78,1209,921],{"class":740},[68,1211,1215],{"className":1212,"code":1213,"language":1214,"meta":73,"style":73},"language-yaml shiki shiki-themes github-light","# .gitlab-ci.yml\n\nvariables:\n  imageName: myapp\n\nstages:\n  - build\n  - test\n  - push\n\nbuild:\n  stage: build\n  image: docker:latest\n  services:\n    - docker:dind\n  script:\n    - docker build -t $imageName:$CI_PIPELINE_ID -f $(find . -name Dockerfile) .\n  only:\n    - main\n\ntest:\n  stage: test\n  image: docker:latest\n  services:\n    - docker:dind\n  script:\n    - docker run --rm $imageName:$CI_PIPELINE_ID npm test\n  only:\n    - main\n\npush:\n  stage: push\n  image: docker:latest\n  services:\n    - docker:dind\n  before_script:\n    - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n  script:\n    - docker tag $imageName:$CI_PIPELINE_ID $CI_REGISTRY/$CI_PROJECT_PATH/$imageName:$CI_PIPELINE_ID\n    - docker push $CI_REGISTRY/$CI_PROJECT_PATH/$imageName:$CI_PIPELINE_ID\n  only:\n    - main\n","yaml",[75,1216,1217,1222,1226,1232,1240,1244,1250,1256,1263,1269,1273,1280,1289,1299,1306,1314,1321,1328,1335,1341,1345,1352,1360,1368,1374,1380,1386,1393,1399,1405,1409,1416,1424,1432,1438,1444,1451,1458,1464,1471,1478,1484],{"__ignoreMap":73},[78,1218,1219],{"class":80,"line":81},[78,1220,1221],{"class":718},"# .gitlab-ci.yml\n",[78,1223,1224],{"class":80,"line":88},[78,1225,224],{"emptyLinePlaceholder":223},[78,1227,1228,1230],{"class":80,"line":94},[78,1229,750],{"class":728},[78,1231,732],{"class":84},[78,1233,1234,1236,1238],{"class":80,"line":100},[78,1235,757],{"class":728},[78,1237,760],{"class":84},[78,1239,763],{"class":740},[78,1241,1242],{"class":80,"line":106},[78,1243,224],{"emptyLinePlaceholder":223},[78,1245,1246,1248],{"class":80,"line":112},[78,1247,772],{"class":728},[78,1249,732],{"class":84},[78,1251,1252,1254],{"class":80,"line":118},[78,1253,737],{"class":84},[78,1255,885],{"class":740},[78,1257,1258,1260],{"class":80,"line":124},[78,1259,737],{"class":84},[78,1261,1262],{"class":740},"test\n",[78,1264,1265,1267],{"class":80,"line":130},[78,1266,737],{"class":84},[78,1268,1186],{"class":740},[78,1270,1271],{"class":80,"line":136},[78,1272,224],{"emptyLinePlaceholder":223},[78,1274,1275,1278],{"class":80,"line":141},[78,1276,1277],{"class":728},"build",[78,1279,732],{"class":84},[78,1281,1282,1285,1287],{"class":80,"line":147},[78,1283,1284],{"class":728},"  stage",[78,1286,760],{"class":84},[78,1288,885],{"class":740},[78,1290,1291,1294,1296],{"class":80,"line":153},[78,1292,1293],{"class":728},"  image",[78,1295,760],{"class":84},[78,1297,1298],{"class":740},"docker:latest\n",[78,1300,1301,1304],{"class":80,"line":159},[78,1302,1303],{"class":728},"  services",[78,1305,732],{"class":84},[78,1307,1308,1311],{"class":80,"line":164},[78,1309,1310],{"class":84},"    - ",[78,1312,1313],{"class":740},"docker:dind\n",[78,1315,1316,1319],{"class":80,"line":169},[78,1317,1318],{"class":728},"  script",[78,1320,732],{"class":84},[78,1322,1323,1325],{"class":80,"line":175},[78,1324,1310],{"class":84},[78,1326,1327],{"class":740},"docker build -t $imageName:$CI_PIPELINE_ID -f $(find . -name Dockerfile) .\n",[78,1329,1330,1333],{"class":80,"line":180},[78,1331,1332],{"class":728},"  only",[78,1334,732],{"class":84},[78,1336,1337,1339],{"class":80,"line":186},[78,1338,1310],{"class":84},[78,1340,741],{"class":740},[78,1342,1343],{"class":80,"line":192},[78,1344,224],{"emptyLinePlaceholder":223},[78,1346,1347,1350],{"class":80,"line":198},[78,1348,1349],{"class":728},"test",[78,1351,732],{"class":84},[78,1353,1354,1356,1358],{"class":80,"line":203},[78,1355,1284],{"class":728},[78,1357,760],{"class":84},[78,1359,1262],{"class":740},[78,1361,1362,1364,1366],{"class":80,"line":208},[78,1363,1293],{"class":728},[78,1365,760],{"class":84},[78,1367,1298],{"class":740},[78,1369,1370,1372],{"class":80,"line":214},[78,1371,1303],{"class":728},[78,1373,732],{"class":84},[78,1375,1376,1378],{"class":80,"line":220},[78,1377,1310],{"class":84},[78,1379,1313],{"class":740},[78,1381,1382,1384],{"class":80,"line":227},[78,1383,1318],{"class":728},[78,1385,732],{"class":84},[78,1387,1388,1390],{"class":80,"line":233},[78,1389,1310],{"class":84},[78,1391,1392],{"class":740},"docker run --rm $imageName:$CI_PIPELINE_ID npm test\n",[78,1394,1395,1397],{"class":80,"line":239},[78,1396,1332],{"class":728},[78,1398,732],{"class":84},[78,1400,1401,1403],{"class":80,"line":245},[78,1402,1310],{"class":84},[78,1404,741],{"class":740},[78,1406,1407],{"class":80,"line":251},[78,1408,224],{"emptyLinePlaceholder":223},[78,1410,1411,1414],{"class":80,"line":257},[78,1412,1413],{"class":728},"push",[78,1415,732],{"class":84},[78,1417,1418,1420,1422],{"class":80,"line":263},[78,1419,1284],{"class":728},[78,1421,760],{"class":84},[78,1423,1186],{"class":740},[78,1425,1426,1428,1430],{"class":80,"line":269},[78,1427,1293],{"class":728},[78,1429,760],{"class":84},[78,1431,1298],{"class":740},[78,1433,1434,1436],{"class":80,"line":275},[78,1435,1303],{"class":728},[78,1437,732],{"class":84},[78,1439,1440,1442],{"class":80,"line":989},[78,1441,1310],{"class":84},[78,1443,1313],{"class":740},[78,1445,1446,1449],{"class":80,"line":995},[78,1447,1448],{"class":728},"  before_script",[78,1450,732],{"class":84},[78,1452,1453,1455],{"class":80,"line":1007},[78,1454,1310],{"class":84},[78,1456,1457],{"class":740},"docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY\n",[78,1459,1460,1462],{"class":80,"line":1013},[78,1461,1318],{"class":728},[78,1463,732],{"class":84},[78,1465,1466,1468],{"class":80,"line":1023},[78,1467,1310],{"class":84},[78,1469,1470],{"class":740},"docker tag $imageName:$CI_PIPELINE_ID $CI_REGISTRY/$CI_PROJECT_PATH/$imageName:$CI_PIPELINE_ID\n",[78,1472,1473,1475],{"class":80,"line":1028},[78,1474,1310],{"class":84},[78,1476,1477],{"class":740},"docker push $CI_REGISTRY/$CI_PROJECT_PATH/$imageName:$CI_PIPELINE_ID\n",[78,1479,1480,1482],{"class":80,"line":1040},[78,1481,1332],{"class":728},[78,1483,732],{"class":84},[78,1485,1486,1488],{"class":80,"line":1047},[78,1487,1310],{"class":84},[78,1489,741],{"class":740},[13,1491,1492],{},[285,1493,1494],{},"最終チェックリスト:",[52,1496,1497,1500,1503,1506,1509,1512],{},[55,1498,1499],{},"タイムラインとバッチ戦略を決定します。",[55,1501,1502],{},"リポジトリ、PR、コントリビューターの完全なインベントリを作成します。",[55,1504,1505],{},"スコープ（PRとメタデータ vs Gitデータのみ）に基づいて、Congregateまたは組み込みインポートを選択します。",[55,1507,1508],{},"誰が移行を実行するかを決定し、トークン/権限が設定されていることを確認します。",[55,1510,1511],{},"個別に移行する必要があるアセット（パイプライン、作業アイテム、アーティファクト、フック）を特定し、それらの取り組みを計画します。",[55,1513,1514],{},"パイロット移行を実行し、結果を検証してから、計画に従ってスケールします。",[17,1516,1517],{"id":1517},"移行の実行",[13,1519,1520],{},"計画後、トライアル実行から始めて、段階的に移行を実行します。トライアル移行は、組織固有の問題を早期に明らかにし、期間を測定し、結果を検証し、本番環境前にアプローチを微調整する上で役立ちます。",[13,1522,1523],{},"トライアル移行が検証する内容:",[52,1525,1526,1529,1532],{},[55,1527,1528],{},"特定のリポジトリと関連アセットが正常に移行されるかどうか（履歴、ブランチ、タグ。Congregateを使用する場合はMR/コメントも含む）",[55,1530,1531],{},"移行先がすぐに使用可能かどうか（権限、Runner、CI/CD変数、インテグレーション）",[55,1533,1534],{},"スケジュールとステークホルダーの期待値を設定するため、各バッチにかかる時間。",[13,1536,1537],{},"ダウンタイムのガイダンス:",[52,1539,1540,1543,1546],{},[55,1541,1542],{},"GitLabの組み込みGitインポートとCongregateは、本質的にダウンタイムを必要としません。",[55,1544,1545],{},"本番環境の場合では、ADOの変更を凍結（ブランチ保護または読み取り専用）して、移行中に見逃されたコミット、PR更新、作業アイテムの作成を回避します。",[55,1547,1548],{},"トライアル実行では凍結は必要なく、いつでも実行できます。",[13,1550,642],{},[52,1552,1553,1556],{},[55,1554,1555],{},"経過時間を短縮するために、トライアルバッチを連続して実行します。チームは非同期で結果を検証できます。",[55,1557,1558],{},"計画したグループ/サブグループ構造を使用してバッチを定義し、APIレート制限を遵守します。",[13,1560,1561],{},"推奨手順:",[1563,1564,1565],"ol",{},[55,1566,1567],{},"GitLabでトライアル用のテスト先を作成:",[52,1569,1570,1573],{},[55,1571,1572],{},"GitLab.com: 専用グループ/ネームスペースを作成（例: my-org-sandbox）",[55,1574,1575],{},"Self-managed: トップレベルグループまたは必要に応じて別のテストインスタンスを作成",[1563,1577,1578],{"start":88},[55,1579,1580],{},"認証の準備:",[52,1582,1583,1586,1589],{},[55,1584,1585],{},"必要なスコープを持つAzure DevOps PAT",[55,1587,1588],{},"apiとread_repositoryを持つGitLabパーソナルアクセストークン（Congregateで使用されるファイルベースのインポートの場合は管理者アクセスも含む）```suggestion:-0+0",[55,1590,1591],{},"apiとread_repositoryを持つGitLabパーソナルアクセストークン（Congregateで使用されるファイルベースのインポートの場合は管理者アクセスも含む）",[1563,1593,1594],{"start":94},[55,1595,1596],{},"トライアル移行の実行:",[52,1598,1599,1602],{},[55,1600,1601],{},"リポジトリのみ: GitLabの組み込みインポート（URLによるレポジトリインポート）を使用",[55,1603,1604],{},"リポジトリ + PR/MRおよび追加アセット: Congregateを使用",[1563,1606,1607],{"start":100},[55,1608,1609],{},"トライアル後のフォローアップ:",[52,1611,1612,1615,1618],{},[55,1613,1614],{},"リポジトリ履歴、ブランチ、タグ、マージリクエスト（移行された場合）、イシュー/エピック（移行された場合）、ラベル、関係性を確認します。",[55,1616,1617],{},"権限/ロール、保護ブランチ、必要な承認、Runner/タグ、変数/シークレット、インテグレーション/Webhookを確認します。",[55,1619,1620,1621,1623],{},"パイプライン（",[75,1622,667],{},"）または（該当する場合は）変換されたパイプラインを検証します。",[1563,1625,1626,1629,1632],{"start":106},[55,1627,1628],{},"ユーザーに機能とデータの正確性を検証してもらいます。",[55,1630,1631],{},"トライアル中に発見された問題を解決し、実行手順を更新します。",[55,1633,1634],{},"ネットワークとセキュリティ:",[52,1636,1637],{},[55,1638,1639],{},"移行先の環境がIP許可リストを使用している場合、インポートが成功するように、移行ホストと必要なRunner/インテグレーションのIPを追加します。",[1563,1641,1642],{"start":124},[55,1643,1644],{},"本番環境への移行は段階的に実行:",[52,1646,1647,1650],{},[55,1648,1649],{},"各段階で、ADOで変更凍結を実施します。",[55,1651,1652],{},"進捗とログを監視します。レート制限に達した場合は、再試行するか、バッチサイズを調整します。",[1563,1654,1655],{"start":130},[55,1656,1657],{},"オプション: 完了後、サンドボックスグループを削除またはアーカイブします。",[1659,1660,1663,1664],"figure",{"className":1661},[1662],"video_container","\n  ",[1665,1666],"iframe",{"src":1667,"frameBorder":1668,"allowFullScreen":1669},"https://www.youtube.com/embed/ibIXGfrVbi4?si=ZxOVnXjCF-h4Ne0N","0","true",[17,1671,1673],{"id":1672},"gitlabとazure-devopsの用語リファレンス","GitLabとAzure DevOpsの用語リファレンス",[1675,1676,1677,1692],"table",{},[1678,1679,1680],"thead",{},[1681,1682,1683,1686,1689],"tr",{},[1684,1685,346],"th",{},[1684,1687,1688],{},"Azure DevOps",[1684,1690,1691],{},"類似点と主な違い",[1693,1694,1695,1707,1718,1729,1740,1751,1762,1772,1783,1794,1805,1816,1827,1838,1849,1860,1871,1882,1893,1904,1915,1926,1937,1948,1959],"tbody",{},[1681,1696,1697,1701,1704],{},[1698,1699,1700],"td",{},"グループ",[1698,1702,1703],{},"組織",[1698,1705,1706],{},"トップレベルのネームスペース、メンバーシップ、ポリシー。ADO組織にはプロジェクトが含まれ、GitLabグループにはサブグループとプロジェクトが含まれます。",[1681,1708,1709,1712,1715],{},[1698,1710,1711],{},"グループまたはサブグループ",[1698,1713,1714],{},"プロジェクト",[1698,1716,1717],{},"論理コンテナ、権限境界。ADOプロジェクトは多数のリポジトリを保持し、GitLabグループ/サブグループは多数のプロジェクトを整理します。",[1681,1719,1720,1723,1726],{},[1698,1721,1722],{},"Project（Gitリポジトリを含む）",[1698,1724,1725],{},"リポジトリ（プロジェクト内）",[1698,1727,1728],{},"Git履歴、ブランチ、タグ。GitLabでは、「プロジェクト」はリポジトリとイシュー、CI/CD、Wikiなどを含みます。プロジェクトごとに1つのリポジトリ。",[1681,1730,1731,1734,1737],{},[1698,1732,1733],{},"マージリクエスト（MR）",[1698,1735,1736],{},"プルリクエスト（PR）",[1698,1738,1739],{},"コードレビュー、ディスカッション、承認。MRルールには、承認、必要なパイプライン、コードオーナーが含まれます。",[1681,1741,1742,1745,1748],{},[1698,1743,1744],{},"保護されたブランチ、MR承認ルール、ステータスチェック",[1698,1746,1747],{},"ブランチポリシー",[1698,1749,1750],{},"レビューとチェックを強制。GitLabは保護 + 承認ルール + 必要なステータスチェックを組み合わせます。",[1681,1752,1753,1756,1759],{},[1698,1754,1755],{},"GitLab CI/CD",[1698,1757,1758],{},"Azureパイプライン",[1698,1760,1761],{},"YAMLパイプライン、ステージ/ジョブ、ログ。ADOにはクラシックUIパイプラインもあり、GitLabは.gitlab-ci.ymlを中心にしています。",[1681,1763,1764,1766,1769],{},[1698,1765,667],{},[1698,1767,1768],{},"azure-pipelines.yml",[1698,1770,1771],{},"ステージ/ジョブ/トリガーを定義。構文/機能が異なります。ジョブ、変数、アーティファクト、トリガーをマッピングします。",[1681,1773,1774,1777,1780],{},[1698,1775,1776],{},"Runner（共有/特定）",[1698,1778,1779],{},"エージェント/エージェントプール",[1698,1781,1782],{},"マシン/コンテナでジョブを実行。デマンド（ADO）対タグ（GitLab）でターゲット。登録/スコーピングが異なります。",[1681,1784,1785,1788,1791],{},[1698,1786,1787],{},"CI/CD変数（プロジェクト/グループ/インスタンス）、保護/マスク",[1698,1789,1790],{},"パイプライン変数、変数グループ、ライブラリ",[1698,1792,1793],{},"設定/シークレットをジョブに渡します。GitLabはグループ継承とマスキング/保護フラグをサポートします。",[1681,1795,1796,1799,1802],{},[1698,1797,1798],{},"インテグレーション、CI/CD変数、デプロイキー",[1698,1800,1801],{},"サービス接続",[1698,1803,1804],{},"サービス/クラウドへの外部認証。インテグレーションまたは変数にマッピング。クラウド固有のヘルパーが利用可能。",[1681,1806,1807,1810,1813],{},[1698,1808,1809],{},"環境とデプロイメント（保護された環境）",[1698,1811,1812],{},"環境（承認付き）",[1698,1814,1815],{},"デプロイターゲット/履歴を追跡。GitLabでは保護された環境と手動ジョブを介した承認。",[1681,1817,1818,1821,1824],{},[1698,1819,1820],{},"リリース（タグ + ノート）",[1698,1822,1823],{},"リリース（クラシックまたはパイプライン）",[1698,1825,1826],{},"バージョン管理されたノート/アーティファクト。GitLabリリースはタグに結び付けられ、デプロイメントは個別に追跡されます。",[1681,1828,1829,1832,1835],{},[1698,1830,1831],{},"ジョブアーティファクト",[1698,1833,1834],{},"パイプラインアーティファクト",[1698,1836,1837],{},"ジョブ出力を保持。保持/有効期限はジョブまたはプロジェクトごとに設定されます。",[1681,1839,1840,1843,1846],{},[1698,1841,1842],{},"パッケージレジストリ（NuGet/npm/Maven/PyPI/Composerなど）",[1698,1844,1845],{},"Azureアーティファクト（NuGet/npm/Mavenなど）",[1698,1847,1848],{},"パッケージホスティング。認証/ネームスペースが異なります。パッケージタイプごとに移行します。",[1681,1850,1851,1854,1857],{},[1698,1852,1853],{},"GitLabコンテナレジストリ",[1698,1855,1856],{},"Azureコンテナレジストリ（ACR）または他",[1698,1858,1859],{},"OCIイメージ。GitLabはプロジェクト/グループごとのレジストリを提供します。",[1681,1861,1862,1865,1868],{},[1698,1863,1864],{},"イシューボード",[1698,1866,1867],{},"ボード",[1698,1869,1870],{},"列で作業を視覚化。GitLabボードはラベル駆動型で、プロジェクト/グループごとに複数のボードがあります。",[1681,1872,1873,1876,1879],{},[1698,1874,1875],{},"イシュー（タイプ/ラベル）、エピック",[1698,1877,1878],{},"作業アイテム（ユーザーストーリー/バグ/タスク）",[1698,1880,1881],{},"作業単位を追跡。ADOタイプ/フィールドをラベル/カスタムフィールドにマッピング。エピックはグループレベルです。",[1681,1883,1884,1887,1890],{},[1698,1885,1886],{},"エピック、親子イシュー",[1698,1888,1889],{},"エピック/機能",[1698,1891,1892],{},"作業の階層。スキーマが異なります。エピックとイシュー関係を使用します。",[1681,1894,1895,1898,1901],{},[1698,1896,1897],{},"マイルストーンとイテレーション",[1698,1899,1900],{},"イテレーションパス",[1698,1902,1903],{},"タイムボックス化。GitLabイテレーション（グループ機能）またはプロジェクト/グループごとのマイルストーン。",[1681,1905,1906,1909,1912],{},[1698,1907,1908],{},"ラベル（スコープ付きラベル）",[1698,1910,1911],{},"エリアパス",[1698,1913,1914],{},"分類/所有権。階層エリアをスコープ付きラベルに置き換えます。",[1681,1916,1917,1920,1923],{},[1698,1918,1919],{},"プロジェクト/グループWiki",[1698,1921,1922],{},"プロジェクトWiki",[1698,1924,1925],{},"マークダウンWiki。両方ともリポジトリでバックアップされます。レイアウト/認証がわずかに異なります。",[1681,1927,1928,1931,1934],{},[1698,1929,1930],{},"CI経由のテストレポート、要件/テスト管理、インテグレーション",[1698,1932,1933],{},"テストプラン/ケース/実行",[1698,1935,1936],{},"QA証拠/トレーサビリティ。ADOテストプランとの1対1対応はありません。多くの場合、CIレポート + イシュー/要件を使用します。",[1681,1938,1939,1942,1945],{},[1698,1940,1941],{},"ロール（オーナー/メンテナー/デベロッパー/レポーター/ゲスト） + カスタムロール",[1698,1943,1944],{},"アクセスレベル + きめ細かい権限",[1698,1946,1947],{},"読み取り/書き込み/管理を制御。モデルが異なります。グループ継承と保護されたリソースを活用します。",[1681,1949,1950,1953,1956],{},[1698,1951,1952],{},"Webhook",[1698,1954,1955],{},"サービスフック",[1698,1957,1958],{},"イベント駆動型インテグレーション。イベント名/ペイロードが異なります。エンドポイントを再設定します。",[1681,1960,1961,1964,1967],{},[1698,1962,1963],{},"高度な検索",[1698,1965,1966],{},"コードサーチ",[1698,1968,1969],{},"フルテキストリポジトリ検索。Self-managed版のGitLabでは、高度な機能にElasticsearch/OpenSearchが必要な場合があります。",[1971,1972,1973],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":73,"searchDepth":88,"depth":88,"links":1975},[1976,1977,1978,1979],{"id":19,"depth":88,"text":19},{"id":281,"depth":88,"text":281},{"id":1517,"depth":88,"text":1517},{"id":1672,"depth":88,"text":1673},"engineering","2025-12-03","GitLabプロフェッショナルサービスの移行ツールを使用してAzure DevOpsからGitLabへの完全な移行を実行する方法を学びます — 計画、実行から移行後のフォローアップタスクまで。","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658924/Blog/Hero%20Images/securitylifecycle-light.png",{},"/ja-jp/blog/migration-from-azure-devops-to-gitlab",{"ogTitle":1989,"ogImage":1985,"ogDescription":1990,"ogSiteName":1991,"ogType":1992,"ogUrl":1993,"title":1989,"canonicalUrls":1993,"description":1990},"Azure DevOpsからGitLabへの移行ガイド","GitLabプロフェッショナルサービスの移行ツールを使用してAzure DevOpsからGitLabに完全に移行する方法を学びます — 計画、実行から移行後のフォローアップタスクまでカバーします。","https://about.gitlab.com","article","https://about.gitlab.com/blog/migration-from-azure-devops-to-gitlab","migration-from-azure-devops-to-gitlab","ja-jp/blog/migration-from-azure-devops-to-gitlab",[1997,1998,1999],"tutorial","git","CI/CD","BlogPost","2025-12-08","laJr5qNyl8a2VcCll5tglFasI3GllfsN0CR_OHsqocc",{"logo":2004,"freeTrial":2009,"sales":2014,"login":2019,"items":2024,"search":2352,"minimal":2385,"duo":2402,"switchNav":2411,"pricingDeployment":2422},{"config":2005},{"href":2006,"dataGaName":2007,"dataGaLocation":2008},"/ja-jp/","gitlab logo","header",{"text":2010,"config":2011},"無料トライアルを開始",{"href":2012,"dataGaName":2013,"dataGaLocation":2008},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp&glm_content=default-saas-trial/","free trial",{"text":2015,"config":2016},"デモをリクエスト",{"href":2017,"dataGaName":2018,"dataGaLocation":2008},"/ja-jp/sales/?contact-topic=request-demo","sales",{"text":2020,"config":2021},"サインイン",{"href":2022,"dataGaName":2023,"dataGaLocation":2008},"https://gitlab.com/users/sign_in/","sign in",[2025,2054,2155,2160,2274,2330],{"text":2026,"config":2027,"menu":2029},"プラットフォーム",{"dataNavLevelOne":2028},"platform",{"type":2030,"columns":2031},"cards",[2032,2038,2046],{"title":2026,"description":2033,"link":2034},"DevSecOpsに特化したインテリジェントオーケストレーションプラットフォーム",{"text":2035,"config":2036},"プラットフォームの詳細はこちら",{"href":2037,"dataGaName":2028,"dataGaLocation":2008},"/ja-jp/platform/",{"title":2039,"description":2040,"link":2041},"GitLab Duo Agent Platform","ソフトウェアライフサイクル全体を支えるエージェント型AI",{"text":2042,"config":2043},"GitLab Duoのご紹介",{"href":2044,"dataGaName":2045,"dataGaLocation":2008},"/ja-jp/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":2047,"description":2048,"link":2049},"GitLabが選ばれる理由","エンタープライズがGitLabを選ぶ主な理由をご覧ください",{"text":2050,"config":2051},"詳細はこちら",{"href":2052,"dataGaName":2053,"dataGaLocation":2008},"/ja-jp/why-gitlab/","why gitlab",{"text":2055,"left":223,"config":2056,"menu":2058},"製品",{"dataNavLevelOne":2057},"solutions",{"type":2059,"link":2060,"columns":2064,"feature":2134},"lists",{"text":2061,"config":2062},"すべてのソリューションを表示",{"href":2063,"dataGaName":2057,"dataGaLocation":2008},"/ja-jp/solutions/",[2065,2089,2112],{"title":2066,"description":2067,"link":2068,"items":2073},"自動化","CI/CDと自動化でデプロイを加速",{"config":2069},{"icon":2070,"href":2071,"dataGaName":2072,"dataGaLocation":2008},"AutomatedCodeAlt","/ja-jp/solutions/delivery-automation/","automated software delivery",[2074,2077,2080,2085],{"text":1999,"config":2075},{"href":2076,"dataGaLocation":2008,"dataGaName":1999},"/ja-jp/solutions/continuous-integration/",{"text":2039,"config":2078},{"href":2044,"dataGaLocation":2008,"dataGaName":2079},"gitlab duo agent platform - product menu",{"text":2081,"config":2082},"ソースコード管理",{"href":2083,"dataGaLocation":2008,"dataGaName":2084},"/ja-jp/solutions/source-code-management/","Source Code Management",{"text":2086,"config":2087},"自動化されたソフトウェアデリバリー",{"href":2071,"dataGaLocation":2008,"dataGaName":2088},"Automated software delivery",{"title":2090,"description":2091,"link":2092,"items":2097},"セキュリティ","セキュリティを犠牲にすることなくコード作成を高速化",{"config":2093},{"href":2094,"dataGaName":2095,"dataGaLocation":2008,"icon":2096},"/ja-jp/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[2098,2102,2107],{"text":2099,"config":2100},"アプリケーションセキュリティテスト",{"href":2094,"dataGaName":2101,"dataGaLocation":2008},"Application security testing",{"text":2103,"config":2104},"ソフトウェアサプライチェーンセキュリティ",{"href":2105,"dataGaLocation":2008,"dataGaName":2106},"/ja-jp/solutions/supply-chain/","Software supply chain security",{"text":2108,"config":2109},"ソフトウェアコンプライアンス",{"href":2110,"dataGaName":2111,"dataGaLocation":2008},"/ja-jp/solutions/software-compliance/","software compliance",{"title":2113,"link":2114,"items":2119},"測定",{"config":2115},{"icon":2116,"href":2117,"dataGaName":2118,"dataGaLocation":2008},"DigitalTransformation","/ja-jp/solutions/visibility-measurement/","visibility and measurement",[2120,2124,2129],{"text":2121,"config":2122},"可視性と測定",{"href":2117,"dataGaLocation":2008,"dataGaName":2123},"Visibility and Measurement",{"text":2125,"config":2126},"バリューストリーム管理",{"href":2127,"dataGaLocation":2008,"dataGaName":2128},"/ja-jp/solutions/value-stream-management/","Value Stream Management",{"text":2130,"config":2131},"分析とインサイト",{"href":2132,"dataGaLocation":2008,"dataGaName":2133},"/ja-jp/solutions/analytics-and-insights/","Analytics and insights",{"title":2135,"type":2059,"items":2136},"GitLabが活躍する場所",[2137,2143,2149],{"text":2138,"config":2139},"大企業",{"icon":2140,"href":2141,"dataGaLocation":2008,"dataGaName":2142},"Building","/ja-jp/enterprise/","enterprise",{"text":2144,"config":2145},"スモールビジネス",{"icon":2146,"href":2147,"dataGaLocation":2008,"dataGaName":2148},"Work","/ja-jp/small-business/","small business",{"text":2150,"config":2151},"公共部門",{"icon":2152,"href":2153,"dataGaLocation":2008,"dataGaName":2154},"Organization","/ja-jp/solutions/public-sector/","public sector",{"text":2156,"config":2157},"価格",{"href":2158,"dataGaName":2159,"dataGaLocation":2008,"dataNavLevelOne":2159},"/ja-jp/pricing/","pricing",{"text":2161,"config":2162,"menu":2164},"関連リソース",{"dataNavLevelOne":2163},"resources",{"type":2059,"link":2165,"columns":2169,"feature":2263},{"text":2166,"config":2167},"すべてのリソースを表示",{"href":2168,"dataGaName":2163,"dataGaLocation":2008},"/ja-jp/resources/",[2170,2203,2230],{"title":2171,"items":2172},"はじめに",[2173,2178,2183,2188,2193,2198],{"text":2174,"config":2175},"インストール",{"href":2176,"dataGaName":2177,"dataGaLocation":2008},"/ja-jp/install/","install",{"text":2179,"config":2180},"クイックスタートガイド",{"href":2181,"dataGaName":2182,"dataGaLocation":2008},"/ja-jp/get-started/","quick setup checklists",{"text":2184,"config":2185},"学ぶ",{"href":2186,"dataGaLocation":2008,"dataGaName":2187},"https://university.gitlab.com/","learn",{"text":2189,"config":2190},"製品ドキュメント",{"href":2191,"dataGaName":2192,"dataGaLocation":2008},"https://docs.gitlab.com/ja-jp/","product documentation",{"text":2194,"config":2195},"ベストプラクティスビデオ",{"href":2196,"dataGaName":2197,"dataGaLocation":2008},"/ja-jp/getting-started-videos/","best practice videos",{"text":2199,"config":2200},"インテグレーション",{"href":2201,"dataGaName":2202,"dataGaLocation":2008},"/ja-jp/integrations/","integrations",{"title":2204,"items":2205},"検索する",[2206,2211,2216,2221,2225],{"text":2207,"config":2208},"お客様成功事例",{"href":2209,"dataGaName":2210,"dataGaLocation":2008},"/ja-jp/customers/","customer success stories",{"text":2212,"config":2213},"ブログ",{"href":2214,"dataGaName":2215,"dataGaLocation":2008},"/ja-jp/blog/","blog",{"text":2217,"config":2218},"Demo Hub",{"href":2219,"dataGaName":2220,"dataGaLocation":2008},"/ja-jp/demo-hub/","demo hub",{"text":2222,"config":2223},"The Source",{"href":2224,"dataGaName":2215,"dataGaLocation":2008},"/ja-jp/the-source/",{"text":2226,"config":2227},"リモート",{"href":2228,"dataGaName":2229,"dataGaLocation":2008},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":2231,"items":2232},"つなげる",[2233,2238,2243,2248,2253,2258],{"text":2234,"config":2235},"GitLabサービス",{"href":2236,"dataGaName":2237,"dataGaLocation":2008},"/ja-jp/services/","services",{"text":2239,"config":2240},"コントリビュート",{"href":2241,"dataGaName":2242,"dataGaLocation":2008},"https://contributors.gitlab.com","contribute",{"text":2244,"config":2245},"コミュニティ",{"href":2246,"dataGaName":2247,"dataGaLocation":2008},"/community/","community",{"text":2249,"config":2250},"フォーラム",{"href":2251,"dataGaName":2252,"dataGaLocation":2008},"https://forum.gitlab.com/","forum",{"text":2254,"config":2255},"イベント",{"href":2256,"dataGaName":2257,"dataGaLocation":2008},"/events/","events",{"text":2259,"config":2260},"パートナー",{"href":2261,"dataGaName":2262,"dataGaLocation":2008},"/ja-jp/partners/","partners",{"config":2264,"title":2267,"text":2268,"link":2269},{"background":2265,"textColor":2266},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","GitLabの最新情報","最新の機能と改善点に関する情報をお届けします。",{"text":2270,"config":2271},"最新情報を読む",{"href":2272,"dataGaName":2273,"dataGaLocation":2008},"/ja-jp/whats-new/","whats new",{"text":2275,"config":2276,"menu":2278},"企業情報",{"dataNavLevelOne":2277},"company",{"type":2059,"columns":2279},[2280],{"items":2281},[2282,2287,2293,2295,2300,2305,2310,2315,2320,2325],{"text":2283,"config":2284},"GitLabについて",{"href":2285,"dataGaName":2286,"dataGaLocation":2008},"/ja-jp/company/","about",{"text":2288,"config":2289,"footerGa":2292},"採用情報",{"href":2290,"dataGaName":2291,"dataGaLocation":2008},"/jobs/","jobs",{"dataGaName":2291},{"text":2254,"config":2294},{"href":2256,"dataGaName":2257,"dataGaLocation":2008},{"text":2296,"config":2297},"経営陣",{"href":2298,"dataGaName":2299,"dataGaLocation":2008},"/company/team/e-group/","leadership",{"text":2301,"config":2302},"ハンドブック",{"href":2303,"dataGaName":2304,"dataGaLocation":2008},"https://handbook.gitlab.com/","handbook",{"text":2306,"config":2307},"投資家向け情報",{"href":2308,"dataGaName":2309,"dataGaLocation":2008},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":2311,"config":2312},"トラストセンター",{"href":2313,"dataGaName":2314,"dataGaLocation":2008},"/ja-jp/security/","trust center",{"text":2316,"config":2317},"AI Transparency Center",{"href":2318,"dataGaName":2319,"dataGaLocation":2008},"/ja-jp/ai-transparency-center/","ai transparency center",{"text":2321,"config":2322},"ニュースレター",{"href":2323,"dataGaName":2324,"dataGaLocation":2008},"/company/contact/#contact-forms","newsletter",{"text":2326,"config":2327},"プレス",{"href":2328,"dataGaName":2329,"dataGaLocation":2008},"/press/","press",{"text":2331,"config":2332,"menu":2333},"お問い合わせ",{"dataNavLevelOne":2277},{"type":2059,"columns":2334},[2335],{"items":2336},[2337,2342,2347],{"text":2338,"config":2339},"お問い合わせはこちら",{"href":2340,"dataGaName":2341,"dataGaLocation":2008},"/ja-jp/sales/","talk to sales",{"text":2343,"config":2344},"サポートを受ける",{"href":2345,"dataGaName":2346,"dataGaLocation":2008},"https://support.gitlab.com/hc/en-us","support portal",{"text":2348,"config":2349},"カスタマーポータル",{"href":2350,"dataGaName":2351,"dataGaLocation":2008},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":2353,"login":2354,"suggestions":2361},"閉じる",{"text":2355,"link":2356},"リポジトリとプロジェクトを検索するには、次にログインします",{"text":2357,"config":2358},"GitLab.com",{"href":2022,"dataGaName":2359,"dataGaLocation":2360},"search login","search",{"text":2362,"default":2363},"提案",[2364,2366,2371,2373,2377,2381],{"text":2039,"config":2365},{"href":2044,"dataGaName":2039,"dataGaLocation":2360},{"text":2367,"config":2368},"コード提案（AI）",{"href":2369,"dataGaName":2370,"dataGaLocation":2360},"/ja-jp/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1999,"config":2372},{"href":2076,"dataGaName":1999,"dataGaLocation":2360},{"text":2374,"config":2375},"GitLab on AWS",{"href":2376,"dataGaName":2374,"dataGaLocation":2360},"/ja-jp/partners/technology-partners/aws/",{"text":2378,"config":2379},"GitLab on Google Cloud",{"href":2380,"dataGaName":2378,"dataGaLocation":2360},"/ja-jp/partners/technology-partners/google-cloud-platform/",{"text":2382,"config":2383},"GitLabを選ぶ理由",{"href":2052,"dataGaName":2384,"dataGaLocation":2360},"Why GitLab?",{"freeTrial":2386,"mobileIcon":2390,"desktopIcon":2395,"secondaryButton":2398},{"text":2010,"config":2387},{"href":2388,"dataGaName":2013,"dataGaLocation":2389},"https://gitlab.com/-/trials/new/","nav",{"altText":2391,"config":2392},"GitLabアイコン",{"src":2393,"dataGaName":2394,"dataGaLocation":2389},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":2391,"config":2396},{"src":2397,"dataGaName":2394,"dataGaLocation":2389},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":2171,"config":2399},{"href":2400,"dataGaName":2401,"dataGaLocation":2389},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/ja-jp/get-started/","get started",{"freeTrial":2403,"mobileIcon":2407,"desktopIcon":2409},{"text":2404,"config":2405},"GitLab Duoの詳細について",{"href":2044,"dataGaName":2406,"dataGaLocation":2389},"gitlab duo",{"altText":2391,"config":2408},{"src":2393,"dataGaName":2394,"dataGaLocation":2389},{"altText":2391,"config":2410},{"src":2397,"dataGaName":2394,"dataGaLocation":2389},{"button":2412,"mobileIcon":2417,"desktopIcon":2419},{"text":2413,"config":2414},"/switch",{"href":2415,"dataGaName":2416,"dataGaLocation":2389},"#contact","switch",{"altText":2391,"config":2418},{"src":2393,"dataGaName":2394,"dataGaLocation":2389},{"altText":2391,"config":2420},{"src":2421,"dataGaName":2394,"dataGaLocation":2389},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":2423,"mobileIcon":2428,"desktopIcon":2430},{"text":2424,"config":2425},"料金ページに戻る",{"href":2158,"dataGaName":2426,"dataGaLocation":2389,"icon":2427},"back to pricing","GoBack",{"altText":2391,"config":2429},{"src":2393,"dataGaName":2394,"dataGaLocation":2389},{"altText":2391,"config":2431},{"src":2397,"dataGaName":2394,"dataGaLocation":2389},{"title":2433,"button":2434,"config":2438},"GitLab Orbitが登場: AIエージェントのためのコンテキストレイヤー",{"text":2050,"config":2435},{"href":2436,"dataGaName":2437,"dataGaLocation":2008},"/ja-jp/gitlab-orbit/","orbit",{"layout":2439,"disabled":2440},"release",false,{"data":2442},{"text":2443,"source":2444,"edit":2450,"contribute":2455,"config":2460,"items":2465,"minimal":2674},"GitはSoftware Freedom Conservancyの商標です。当社は「GitLab」をライセンスに基づいて使用しています",{"text":2445,"config":2446},"ページのソースを表示",{"href":2447,"dataGaName":2448,"dataGaLocation":2449},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":2451,"config":2452},"このページを編集",{"href":2453,"dataGaName":2454,"dataGaLocation":2449},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":2456,"config":2457},"ご協力をお願いします",{"href":2458,"dataGaName":2459,"dataGaLocation":2449},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":2461,"facebook":2462,"youtube":2463,"linkedin":2464},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[2466,2511,2564,2607,2641],{"title":2156,"links":2467,"subMenu":2482},[2468,2472,2477],{"text":2469,"config":2470},"プランの表示",{"href":2158,"dataGaName":2471,"dataGaLocation":2449},"view plans",{"text":2473,"config":2474},"Premiumを選ぶ理由",{"href":2475,"dataGaName":2476,"dataGaLocation":2449},"/ja-jp/pricing/premium/","why premium",{"text":2478,"config":2479},"Ultimateを選ぶ理由",{"href":2480,"dataGaName":2481,"dataGaLocation":2449},"/ja-jp/pricing/ultimate/","why ultimate",[2483],{"title":2331,"links":2484},[2485,2487,2489,2491,2496,2501,2506],{"text":2331,"config":2486},{"href":2340,"dataGaName":2018,"dataGaLocation":2449},{"text":2343,"config":2488},{"href":2345,"dataGaName":2346,"dataGaLocation":2449},{"text":2348,"config":2490},{"href":2350,"dataGaName":2351,"dataGaLocation":2449},{"text":2492,"config":2493},"ステータス",{"href":2494,"dataGaName":2495,"dataGaLocation":2449},"https://status.gitlab.com/","status",{"text":2497,"config":2498},"利用規約",{"href":2499,"dataGaName":2500,"dataGaLocation":2449},"/terms/","terms of use",{"text":2502,"config":2503},"プライバシーに関する声明",{"href":2504,"dataGaName":2505,"dataGaLocation":2449},"/ja-jp/privacy/","privacy statement",{"text":2507,"config":2508},"Cookie 優先設定",{"dataGaName":2509,"dataGaLocation":2449,"id":2510,"isOneTrustButton":223},"cookie preferences","ot-sdk-btn",{"title":2055,"links":2512,"subMenu":2521},[2513,2517],{"text":2514,"config":2515},"DevSecOpsプラットフォーム",{"href":2037,"dataGaName":2516,"dataGaLocation":2449},"devsecops platform",{"text":2518,"config":2519},"AI支援開発",{"href":2044,"dataGaName":2520,"dataGaLocation":2449},"ai-assisted development",[2522],{"title":2523,"links":2524},"トピック",[2525,2529,2534,2539,2544,2549,2554,2559],{"text":1999,"config":2526},{"href":2527,"dataGaName":2528,"dataGaLocation":2449},"/ja-jp/topics/ci-cd/","cicd",{"text":2530,"config":2531},"GitOps",{"href":2532,"dataGaName":2533,"dataGaLocation":2449},"/ja-jp/topics/gitops/","gitops",{"text":2535,"config":2536},"DevOps",{"href":2537,"dataGaName":2538,"dataGaLocation":2449},"/ja-jp/topics/devops/","devops",{"text":2540,"config":2541},"バージョン管理",{"href":2542,"dataGaName":2543,"dataGaLocation":2449},"/ja-jp/topics/version-control/","version control",{"text":2545,"config":2546},"DevSecOps",{"href":2547,"dataGaName":2548,"dataGaLocation":2449},"/ja-jp/topics/devsecops/","devsecops",{"text":2550,"config":2551},"クラウドネイティブ",{"href":2552,"dataGaName":2553,"dataGaLocation":2449},"/ja-jp/topics/cloud-native/","cloud native",{"text":2555,"config":2556},"コーディングのためのAI",{"href":2557,"dataGaName":2558,"dataGaLocation":2449},"/ja-jp/topics/devops/ai-for-coding/","ai for coding",{"text":2560,"config":2561},"エージェント型AI",{"href":2562,"dataGaName":2563,"dataGaLocation":2449},"/ja-jp/topics/agentic-ai/","agentic ai",{"title":2565,"links":2566},"ソリューション",[2567,2570,2572,2577,2581,2584,2587,2590,2592,2594,2597,2602],{"text":2099,"config":2568},{"href":2094,"dataGaName":2569,"dataGaLocation":2449},"Application Security Testing",{"text":2086,"config":2571},{"href":2071,"dataGaName":2072,"dataGaLocation":2449},{"text":2573,"config":2574},"アジャイル開発",{"href":2575,"dataGaName":2576,"dataGaLocation":2449},"/ja-jp/solutions/agile-delivery/","agile delivery",{"text":2578,"config":2579},"SCM",{"href":2083,"dataGaName":2580,"dataGaLocation":2449},"source code management",{"text":1999,"config":2582},{"href":2076,"dataGaName":2583,"dataGaLocation":2449},"continuous integration & delivery",{"text":2125,"config":2585},{"href":2127,"dataGaName":2586,"dataGaLocation":2449},"value stream management",{"text":2530,"config":2588},{"href":2589,"dataGaName":2533,"dataGaLocation":2449},"/ja-jp/solutions/gitops/",{"text":2138,"config":2591},{"href":2141,"dataGaName":2142,"dataGaLocation":2449},{"text":2144,"config":2593},{"href":2147,"dataGaName":2148,"dataGaLocation":2449},{"text":2595,"config":2596},"公共機関",{"href":2153,"dataGaName":2154,"dataGaLocation":2449},{"text":2598,"config":2599},"教育",{"href":2600,"dataGaName":2601,"dataGaLocation":2449},"/ja-jp/solutions/education/","education",{"text":2603,"config":2604},"金融サービス",{"href":2605,"dataGaName":2606,"dataGaLocation":2449},"/ja-jp/solutions/finance/","financial services",{"title":2608,"links":2609},"リソース",[2610,2612,2614,2616,2620,2622,2625,2627,2629,2631,2633,2635,2637,2639],{"text":2174,"config":2611},{"href":2176,"dataGaName":2177,"dataGaLocation":2449},{"text":2179,"config":2613},{"href":2181,"dataGaName":2182,"dataGaLocation":2449},{"text":2184,"config":2615},{"href":2186,"dataGaName":2187,"dataGaLocation":2449},{"text":2189,"config":2617},{"href":2618,"dataGaName":2619,"dataGaLocation":2449},"https://docs.gitlab.com/ja-jp","docs",{"text":2212,"config":2621},{"href":2214,"dataGaName":2215,"dataGaLocation":2449},{"text":2623,"config":2624},"最新リリース",{"href":2272,"dataGaName":2273,"dataGaLocation":2449},{"text":2207,"config":2626},{"href":2209,"dataGaName":2210,"dataGaLocation":2449},{"text":2226,"config":2628},{"href":2228,"dataGaName":2229,"dataGaLocation":2449},{"text":2234,"config":2630},{"href":2236,"dataGaName":2237,"dataGaLocation":2449},{"text":2239,"config":2632},{"href":2241,"dataGaName":2242,"dataGaLocation":2449},{"text":2244,"config":2634},{"href":2246,"dataGaName":2247,"dataGaLocation":2449},{"text":2249,"config":2636},{"href":2251,"dataGaName":2252,"dataGaLocation":2449},{"text":2254,"config":2638},{"href":2256,"dataGaName":2257,"dataGaLocation":2449},{"text":2259,"config":2640},{"href":2261,"dataGaName":2262,"dataGaLocation":2449},{"title":2642,"links":2643},"会社情報",[2644,2646,2648,2650,2652,2654,2658,2663,2665,2667,2669],{"text":2283,"config":2645},{"href":2285,"dataGaName":2277,"dataGaLocation":2449},{"text":2288,"config":2647},{"href":2290,"dataGaName":2291,"dataGaLocation":2449},{"text":2296,"config":2649},{"href":2298,"dataGaName":2299,"dataGaLocation":2449},{"text":2301,"config":2651},{"href":2303,"dataGaName":2304,"dataGaLocation":2449},{"text":2306,"config":2653},{"href":2308,"dataGaName":2309,"dataGaLocation":2449},{"text":2655,"config":2656},"Sustainability",{"href":2657,"dataGaName":2655,"dataGaLocation":2449},"/sustainability/",{"text":2659,"config":2660},"ダイバーシティ、インクルージョン、ビロンギング（DIB）",{"href":2661,"dataGaName":2662,"dataGaLocation":2449},"/ja-jp/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":2311,"config":2664},{"href":2313,"dataGaName":2314,"dataGaLocation":2449},{"text":2321,"config":2666},{"href":2323,"dataGaName":2324,"dataGaLocation":2449},{"text":2326,"config":2668},{"href":2328,"dataGaName":2329,"dataGaLocation":2449},{"text":2670,"config":2671},"現代奴隷制の透明性に関する声明",{"href":2672,"dataGaName":2673,"dataGaLocation":2449},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2675},[2676,2678,2681],{"text":2497,"config":2677},{"href":2499,"dataGaName":2500,"dataGaLocation":2449},{"text":2679,"config":2680},"Cookieの設定",{"dataGaName":2509,"dataGaLocation":2449,"id":2510,"isOneTrustButton":223},{"text":2502,"config":2682},{"href":2504,"dataGaName":2505,"dataGaLocation":2449},[2684,2697],{"id":2685,"title":7,"body":1984,"config":2686,"content":2688,"description":1984,"extension":711,"meta":2692,"navigation":223,"path":2693,"seo":2694,"stem":2695,"__hash__":2696},"blogAuthors/en-us/blog/authors/evgeny-rudinsky.yml",{"template":2687},"BlogAuthor",{"name":7,"config":2689},{"ctfId":2690,"headshot":2691},"erudinsky","https://res.cloudinary.com/about-gitlab-com/image/upload/v1761069206/yppyhhdmdrw4u1nz7het.jpg",{},"/en-us/blog/authors/evgeny-rudinsky",{},"en-us/blog/authors/evgeny-rudinsky","OtgSXy1cMxWS2khqtu-PdUFWhG9Eck_jUQfH5JUwzWM",{"id":2698,"title":8,"body":1984,"config":2699,"content":2700,"description":1984,"extension":711,"meta":2704,"navigation":223,"path":2705,"seo":2706,"stem":2707,"__hash__":2708},"blogAuthors/en-us/blog/authors/michael-leopard.yml",{"template":2687},{"name":8,"config":2701},{"ctfId":2702,"headshot":2703},"leopardm","https://res.cloudinary.com/about-gitlab-com/image/upload/v1761069206/tjpzzunnzhen77u6tf5s.jpg",{},"/en-us/blog/authors/michael-leopard",{},"en-us/blog/authors/michael-leopard","Yavr1VB0sBdgyY2GfU8OYVm_Byiv9EzriWbuDzn6Al4",[2710,2717,2724],{"title":2711,"description":2711,"heroImage":2712,"category":1980,"date":2713,"authors":2714,"slug":2716,"externalUrl":1984},"MCPサーバーとは？仕組みやソフトウェア開発の活用例をわかりやすく解説","https://res.cloudinary.com/about-gitlab-com/image/upload/v1786001428/qedvughylmeposoqm5zs.jpg","2026-08-07",[2715],"GitLab Team","what-is-mcp-server",{"title":2718,"description":2719,"heroImage":2720,"category":1980,"date":2721,"authors":2722,"slug":2723,"externalUrl":1984},"イテレーションとは？意味や進め方、おすすめの支援ツールを紹介","イテレーションとは、アジャイル開発における「反復」を意味する開発単位です。本記事では、イテレーションの意味やスプリントとの違い、具体的な進め方、成功のポイントをわかりやすく解説します。アジャイル開発を支援するツールもあわせて紹介します。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785816755/mj23yaguu0gxvbztd6pl.jpg","2026-08-06",[2715],"what-is-iteration",{"title":2725,"description":2726,"heroImage":2727,"category":1980,"date":2721,"authors":2728,"slug":2731,"externalUrl":1984},"GitLab Self-Hostedで実現するコンフィデンシャルAI","ソースコードをハードウェアで暗号化された境界の外に出すことなく、GitLab DuoのAIコーディングエージェントを開発者に提供します。GPUは不要です。","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png",[2729,2730],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"promotions":2733},[2734,2748,2760,2772],{"id":2735,"categories":2736,"header":2738,"text":2739,"button":2740,"image":2745},"ai-modernization",[2737],"ai","AIの真価、組織全体で発揮できていますか？","所要時間は5分以内です",{"text":2741,"config":2742},"AI成熟度スコアを確認する",{"href":2743,"dataGaName":2744,"dataGaLocation":2215},"/ja-jp/assessments/ai-modernization-assessment/","modernization assessment",{"config":2746},{"src":2747},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2749,"categories":2750,"header":2752,"text":2739,"button":2753,"image":2757},"devops-modernization",[2751,2548],"product","単にツールを管理するだけでなく、イノベーションを提供していますか？",{"text":2754,"config":2755},"DevOps成熟度スコアを確認しましょう",{"href":2756,"dataGaName":2744,"dataGaLocation":2215},"/ja-jp/assessments/devops-modernization-assessment/",{"config":2758},{"src":2759},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2761,"categories":2762,"header":2764,"text":2739,"button":2765,"image":2769},"security-modernization",[2763],"security","スピードのためにセキュリティを犠牲にしていませんか？",{"text":2766,"config":2767},"セキュリティ成熟度スコアを確認しましょう",{"href":2768,"dataGaName":2744,"dataGaLocation":2215},"/ja-jp/assessments/security-modernization-assessment/",{"config":2770},{"src":2771},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2773,"paths":2774,"header":2776,"text":2777,"button":2778,"image":2783},"github-azure-migration",[1994,2775],"integrating-azure-devops-scm-and-gitlab","チームはGitHubのAzure移行に対応できていますか？","GitHubはすでにAzureを基盤として再構築を進めています。それがあなたのチームにとって何を意味するのか、ご確認ください。",{"text":2779,"config":2780},"GitLabとGitHubの比較を見る",{"href":2781,"dataGaName":2782,"dataGaLocation":2215},"/ja-jp/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2784},{"src":2759},{"header":2786,"blurb":2787,"button":2788,"secondaryButton":2792},"今すぐ開発をスピードアップ","DevSecOpsに特化したインテリジェントオーケストレーションプラットフォームで実現できることをご確認ください。\n",{"text":2010,"config":2789},{"href":2790,"dataGaName":2013,"dataGaLocation":2791},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/ja-jp/","feature",{"text":2331,"config":2793},{"href":2340,"dataGaName":2018,"dataGaLocation":2791},1786803783043]