このトピックでは、Codeup-CLI ツールを使用して、既存のローカルリポジトリから Git データをバッチ移行する方法について説明します。この方法により、移行コストを削減し、ビジネスへの影響を最小限に抑えることができます。
前提条件
開始する前に、移行ツールがインストールされ、正しく実行されていることを確認してください。詳細については、「移行ツールのインストール」をご参照ください。
移行の準備
このツールは、ソースコード、ブランチ、コミット、タグなど、ローカルリポジトリからの Git データのバッチ移行に役立ちます。
本番リポジトリを移行する前に、非本番リポジトリを使用してテスト移行を実行します。これにより、実際の移行に向けて構成が正しいことを確認できます。
移行中は、ローカルリポジトリへの変更や書き込み操作を避けてください。リポジトリが正常に移行された後、移行を再実行しても、ローカルリポジトリからの新しい変更は Codeup に同期されません。
ステップ1:移行構成ファイルの定義
構成ファイルは、移行元、移行先、および範囲を定義します。HTTP または SSH のいずれかのクローン情報を提供するだけで済みます。
source - 移行元プラットフォームのパラメーター | 必須 | 説明 |
platform | 必須 | 「local」と入力します。 |
target - 移行先プラットフォームのパラメーター | 必須 | 説明 |
host | 必須 | Apsara DevOps のドメイン名 (例:https://***.devops.alibabacloudcs.com)。 |
accessKey | 必須 | リポジトリとグループに対する読み取り/書き込み権限を持つ有効なパーソナルアクセストークン。詳細については、「パーソナルアクセストークンの取得」をご参照ください。 |
username | HTTP クローンのみ | Codeup で HTTP クローンを使用する場合のユーザー名。 |
password | HTTP クローンのみ | Codeup で HTTP クローンを使用する場合のパスワード。 |
localSSHKeyPath | SSH クローンのみ | Codeup で構成された SSH キーに対応するローカル秘密鍵の完全なパス。例:/Users/my/.ssh/id_rsa。 秘密鍵が保存されているパスを入力します。 |
次のサンプルは、SSH を使用した移行のための簡略化された config.yaml ファイルです:
# 必須。現在の構成バージョンを識別するバージョン番号 v2。
version: "v2"
import:
source:
platform: "local"
target:
host: "https://***.devops.alibabacloudcs.com"
# リポジトリとグループに対する読み取り/書き込み権限を持つパーソナルアクセストークン。
accessKey: "pt-******03GFpdmIedUgug****_******-3734-484a-9b4b-248569f78c9d"
localSSHKeyPath: "/Users/****/.ssh/id_rsa"
# projectListPath は、ステップ2で定義されたリポジトリ移行範囲のファイルパスを指定します。
projectListPath: "projects.csv" ステップ2:移行コードリポジトリ範囲の定義
移行するリポジトリのリストを指定するための構成ファイルを作成する必要があります。
次のコマンドを実行して、範囲構成ファイルを生成します。ファイルパスは、ステップ1で projectListPath に指定したパスと一致する必要があります。
./codeup-cli import --gen projectコマンドを実行すると、現在のディレクトリに projects.csv ファイルが生成されます。このファイルでは、各行が移行するリポジトリを次のフォーマットで定義します:[ローカルリポジトリの絶対パス],[Codeup リポジトリの相対パス],[Codeup リポジトリの可視性]。次のコードは例です:
#ローカルリポジトリの絶対パス,Codeup リポジトリの相対パス (ネストされたサブディレクトリをサポート),Codeup リポジトリの可視性
/Users/my/ダウンロード/groupname/demo,groupname/demo,10リポジトリの可視性について、0 はプライベート、10 は内部を示します。0 以外の値を入力した場合、可視性は自動的に 10 (内部) に設定されます。
これで、移行対象のリポジトリの範囲が定義されました。
ステップ3:移行の実行
移行構成ファイル、リポジトリ範囲ファイル、およびリポジトリフォルダが作業ディレクトリにあることを確認してください。次に、以下のコマンドを実行して移行を開始します:
./codeup-cli import --run true --config=./config.yaml
# 移行の詳細はプロセス中に表示されます。問題が発生した場合は、エラーメッセージが表示されます。リポジトリの Git データ移行が失敗した場合、そのステータスは「失敗」とマークされます。
インポートプロセスを再度実行すると、ツールは正常にインポートされたリポジトリをスキップし、失敗したリポジトリのインポートを再試行します。
移行が完了したら、Codeup 組織に移動して移行されたリポジトリを表示し、移行が成功したことを確認します。
移行中に問題が発生した場合は、DingTalk グループ 32027065 に参加してテクニカルサポートを受けることができます。