Azure DevOps サービス
この記事では、enterprise Live Migrations (ELM) の実行に使用する Azure DevOps CLI コマンドとパラメーターと、移行中に CLI が返す状態とステージ値の一覧を示します。
Commands
移行コマンド
| 命令 | 必須のパラメーター | 省略可能なパラメーター | HTTP | Description |
|---|---|---|---|---|
list |
--org |
--project、--include-all、--detect |
GET | 移行を一覧表示します。 既定では、CLI は各リポジトリのアクティブな移行のみを返します。
--include-allを使用して、完了した移行、失敗した移行、中断された移行を含めます。 |
status |
--org、--repository-id |
--detect |
GET | 1 回の移行の詳細な状態を取得します。 |
create |
--org、--repository-id、--target-repository、--agent-pool |
--target-owner-user-id、--service-endpoint-id、--github-token、--validate-only、--cutover-date、--skip-validation、--enable-boards-github-connection、--enable-auto-discover-pipelines、--pipeline-service-connection-id、--detect |
投稿 | 新しい移行を作成します。
--service-endpoint-idに合格しない場合、CLI はELM_GITHUB_TOKENをチェックし、デバイス フロー GitHub実行してターゲットに対して認証します。 |
pause |
--org、--repository-id |
--detect |
PUT | アクティブな移行を一時停止します。 |
resume |
--org、--repository-id |
--validate-only、--migration、--detect |
PUT | 停止した移行を再開します。 |
cutover set |
--org、--repository-id、--date |
--detect |
PUT | カットオーバーの日付と時刻をスケジュールします。 値は将来である必要があります。 |
cutover cancel |
--org、--repository-id |
--detect |
PUT | スケジュールされたカットオーバーを取り消します。 ステージが Synchronizationされている間のみ有効です。ステージが Cutoverに進むと拒否されます。 サーバーがDateTimeOffset.MinValueの0001-01-01T00:00:00+00:00を無視するため、null sentinel (scheduledCutoverDate) を送信します。 |
cutover review |
--org、--repository-id |
--detect |
GET | 承認を待っている未処理の項目とパイプライン検証の要件を一覧表示します。 |
cutover approve |
--org、--repository-id |
--accept-failures、--pipelines-verified、--detect |
PUT | 未処理の項目を受け入れるか、再配線されたパイプラインを確認して、カットオーバーを承認します。 少なくとも 1 つの --accept-failures または --pipelines-verifiedを指定します。 元に戻せない — 取り消し API なし。 abandon + 再作成を使用して回復します。 |
abandon |
--org、--repository-id |
--remove-read-only、--yes、--detect |
DELETE | 移行を中止します。 移行レコードは消去されず、パイプラインの再同期データは保持されるため、後で移行で再利用できます。
--yesに合格しない限り、確認を求めるメッセージが表示されます。 |
パイプラインの再配線コマンド (プレビュー)
移行されたGitHub リポジトリのソース Azure Repos リポジトリを参照するパイプラインの再配線。 再配線は、次の 2 つのモードのいずれかで、常に移行に使用できます。
-
自動検出 —
createの--pipeline-service-connection-idと共に--enable-auto-discover-pipelinesを渡します。 ELM 同期ジョブは、ソース リポジトリをウォークし、それを参照するすべてのパイプラインのクローン定義を作成します。 -
手動 —
pipelines submitを使用してcreateした後に特定のパイプラインを登録します。pipelines updateでは、両方のモードを混在させ、登録をいつでも調整できます。
| 命令 | 必須のパラメーター | 省略可能なパラメーター | HTTP | Description |
|---|---|---|---|---|
pipelines list |
--org、--repository-id |
--detect |
GET | パイプラインの再配線構成とパイプラインごとの状態を一覧表示します。 |
pipelines submit |
--org、--repository-id、--pipeline-ids |
--service-connection-id、--repository-mapping、--detect |
投稿 | 再配線のために特定のパイプラインを登録します。 |
pipelines update |
--org、--repository-id |
--add-ids、 --remove-ids、 --retry-ids、 --service-connection-id、 --repository-mapping、 --detect |
PUT | 登録されたパイプラインのサービス接続を一括追加、削除、再試行、または変更します。 少なくとも 1 つの更新フラグが必要です。 |
pipelines retry |
--org、--repository-id、--pipeline-ids |
--detect |
PUT | 失敗したパイプラインの再スワイプ エントリを再試行します。 |
pipelines delete |
--org、--repository-id、--migration-id |
--yes、--detect |
DELETE | 移行のパイプラインの再配線データ (構成と複製された定義) を削除します。 これを使用して、失敗した移行の再同期データをクリーンアップします。 abandon だけでは削除されません。 |
パラメーターの詳細
| パラメーター | タイプ | によって使用される | Description |
|---|---|---|---|
--org |
URL | All | Azure DevOps組織の URL (例: https://dev.azure.com/<org>)。 この値を既定値として設定します。 |
--repository-id |
GUID | すべて (除く) list |
リポジトリ GUID をAzure Reposします。
az repos show --query idから値を取得します。 移行は repositoryId によってのみ識別されます。API 応答には個別の移行 ID フィールドがなく、リポジトリごとに最大 1 つのアクティブな移行が存在する可能性があります。 |
--target-repository |
URL | create |
ターゲット リポジトリの URL ( https://<enterprise>.ghe.com/<org>/<repo>など)。
http://またはhttps://で始める必要があります。 サーバーはこの値を検証します。 |
--target-owner-user-id |
文字列 | create |
ターゲット リポジトリ所有者のユーザー ID (ハンドル) をGitHubします。 サーバー側のトークン ベースの所有者解決が有効になっている場合、非推奨と無視されます。 |
--service-endpoint-id |
GUID | create |
オプション。 Azure DevOpsターゲットへのコミットの同期に使用されるGitHub Enterprise Server 接続のサービス接続 ID です。 設定すると、GitHubデバイス フローはスキップされます。 ユーザー ID 検証とは無関係に、 --github-token や ELM_GITHUB_TOKEN を同時に指定することもできます。 |
--github-token |
文字列 | create |
ターゲット ホストでのユーザー ID 検証用の省略可能なGitHubユーザー トークン (または PAT)。 省略して--service-endpoint-idを指定しない場合、CLI はELM_GITHUB_TOKENをチェックし、デバイス フロー GitHub実行します。 |
--agent-pool |
文字列 | create |
移行作業のエージェント プール名。 |
--validate-only |
フラグ |
create、resume |
create: 移行前チェックのみを実行します。
resume: 検証専用モードに切り替えます。 検証のみの結果は、実行が成功してから 24 時間後に期限切れになります。そのウィンドウ内で完全な移行を開始 (または昇格) します。 |
--migration |
フラグ | resume |
成功した検証のみの実行を完全な移行に昇格させます ( validateOnly=false と statusRequested=activeを設定します)。 前の検証のみの実行が status: Succeededで完了した場合にのみ有効です。
--validate-onlyと相互に排他的です。 |
--cutover-date |
ISO 8601 | create |
2030-12-31T11:59:00Zなど、作成時にカットオーバーを事前にスケジュールします。 |
--date |
ISO 8601 | cutover set |
2030-12-31T11:59:00Zなど、カットオーバーの日付と時刻をスケジュールします。 将来の予定である必要があります。 |
--skip-validation |
文字列 | create |
検証ポリシー名のコンマ区切りリスト、または負以外の整数ビットマスク。 ポリシー名 (大文字と小文字を区別しない): None、 ActivePullRequestCount、 PullRequestDeltaSize、 AgentPoolExists、 MaxFileSize、 MaxPullRequestSize、 MaxPushPackSize、 MaxReferenceNameLength、 TargetRepositoryDoesNotExist、 SourceRepositoryContainsLfsObjects、 SourceRepositoryNotReadOnly、 BoardsGitHubConnectionProvisioning、 All。 |
--enable-boards-github-connection (--enable-boards-gh) |
フラグ | create |
カットオーバー時にAzure Boards GitHub接続をプロビジョニングすることを選択します。 既定ではオフです。 移行を実行する前に、Azure Boards GitHub アプリをターゲット GitHub組織にインストールする必要があります。 |
--enable-auto-discover-pipelines (--auto-discover) |
フラグ | create |
カットオーバー時に自動パイプライン検出にオプトインします。 既定ではオフです。
--pipeline-service-connection-idが必要です。サービス接続なしでこのフラグを渡すと、CLI によってコマンドが拒否されます。 |
--pipeline-service-connection-id (--pipeline-sc-id) |
GUID | create |
パイプラインの再配線のために作成時にアタッチされるProjectスコープのGitHubサービス接続 ID。 自動検出に必要です。手動モードではオプションです。接続を事前にアタッチするため、後で呼び出 pipelines submit 必要なのは --pipeline-idsだけです。 |
--accept-failures |
整数 | cutover approve |
カットオーバーを続行する前に受け入れる未処理の移行リソースの数。 この値や --pipelines-verifiedを指定します。 |
--pipelines-verified |
フラグ | cutover approve |
再配線されたすべてのパイプラインが検証されたことを確認します。
cutover reviewがrequiresPipelineVerificationAcknowledgment: trueを返す場合に必要です。 1 回の呼び出しで --accept-failures と組み合わせることができます。 |
--pipeline-ids |
int list |
pipelines submit、pipelines retry |
パイプライン定義 ID。 スペース区切り (42 43 44) またはコンマ区切り (42,43,44) の値を受け入れます。 |
--service-connection-id |
GUID |
pipelines submit、pipelines update |
ProjectスコープのGitHubサービス接続 ID。 作成時またはpipelines update経由で接続が既に接続されている場合は、submitでは省略可能です。 |
--add-ids / --remove-ids / --retry-ids |
int list | pipelines update |
再配線セット内で追加、削除、または再試行するパイプライン ID。 |
--repository-mapping |
文字列 |
pipelines submit、pipelines update |
<sourceRepoId>=<targetOwner>/<targetRepo>形式のリポジトリ マッピング。 ターゲットは、URL ではなく owner/repo 形式である必要があります。 複数回指定できます。 |
--migration-id |
整数 | pipelines delete |
パイプラインの再配線のクリーンアップに使用される移行 ID。
migrations statusのvalidationIssuesテキストのMigration NN: プレフィックスから読み取る。 |
--remove-read-only |
フラグ | abandon |
カットオーバー後、ソース Azure DevOps リポジトリは読み取り専用に設定されます。 書き込みアクセスを復元するには、このフラグを追加します。 カットオーバー後にのみ適用されます。 |
--yes (-y) |
フラグ |
abandon、pipelines delete |
対話型の確認プロンプトをスキップします。 スクリプト化されたクリーンアップに役立ちます。 |
--include-all |
フラグ | list |
完了した移行、失敗した移行、中断された移行など、リポジトリごとの完全な移行履歴を返します。 (--include-inactive は非推奨のエイリアスです)。 |
--detect |
フラグ | All | Git リモートから組織を自動検出します (既定値: true)。
--detect falseを使用して無効にします。 |
移行ステージ
| 段階 | Description |
|---|---|
| キューに登録済み | 移行は受け入れられます。作業はまだ開始されていません。 |
| Validation | 移行前チェックの実行。 |
| Synchronization | リポジトリコンテンツのコピーと同期。 |
| 切り替え | 最終的な同期を実行し、GitHubに移行します。 |
| ReviewForCutover | カットオーバーが未解決のエラーでスケジュールされた時刻に達し、 cutover approve (または再スケジュール) を待機しています。 |
| ReadyForCutover | 承認され、次の ELM ジョブが最終的なカットオーバーを実行するのを待機しています。 |
| 移行済み | 移行が完了しました。 GitHubはレコードのシステムです。 |
移行の状態
| 地位 | 意味 |
|---|---|
| Active | 移行が実行されています。 |
| 成功しました | 現在のフェーズは正常に完了しました。 |
| 完了 | 移行がターミナル Migrated ステージに達しました。 |
| 失敗 | エラーが発生しました。 問題を解決した後、移行を再開できます。 |
| 停止中 | 手動で一時停止しました。 移行を再開できます。 |