本文为您介绍使用Codeup-CLI工具批量迁移本地已有代码库Git数据,削减企业迁移成本,最小化对业务的影响。
一、前提条件
操作前,请确认工具已安装并运行正常,参见安装迁移工具。
二、迁移准备
本工具可以帮助你进行本地代码库Git数据的批量迁移,包括源代码、分支、提交、标签信息。
在正式迁移生产库前,建议使用非正式库进行试迁移,保障配置正确后正式迁移。
在迁移操作时建议控制本地代码库的库变更和写入行为,一旦仓库迁移成功后,重复迁移不会刷新变更的代码数据,即本地库的新增内容不会更新至Codeup。
三、定义迁移配置文件
配置文件主要用于配置迁移来源、迁移目标和迁移范围,其中 HTTP 或 SSH 克隆二选一填写即可。
source - 源平台参数配置 | 是否必填 | 参数说明 |
platform | 必填 | 请填写 "local"。 |
target - 目标平台参数配置 | 是否必填 | 参数说明 |
host | 可选 | 为空时默认值为https://codeup.aliyun.com。 |
organizationID | 必填 | 期望迁移到的 Codeup 组织ID,可在云效管理后台查看。 |
accessKey | 必填 | 具有代码仓库和代码组读写权限的有效个人访问令牌,获取个人访问令牌。 |
username | HTTP克隆必填 | Codeup 可用于HTTP克隆的用户名。 |
password | HTTP克隆必填 | Codeup 可用于HTTP克隆的密码。 |
localSSHKeyPath | SSH克隆必填 | Codeup 已配置的 SSH key 对应的本地私钥 key 路径,注意需填写完整路径,如 /Users/my/.ssh/id_rsa。 具体路径请根据实际本机私钥存放路径填写。 |
以SSH方式为例,简化的配置文件congfig.yaml内容如下:
# 必填版本号v2,用于标识当前配置版本
version: "v2"
import:
source:
platform: "local"
target:
host: "https://codeup.aliyun.com"
# 要同步到的目标组织ID
organizationID: "60d54f3daccf2bbd******ad"
# 个人访问令牌,需要有代码仓库、代码组的读写权限
accessKey: "pt-******03GFpdmIedUgug****_******-3734-484a-9b4b-248569f78c9d"
localSSHKeyPath: "/Users/****/.ssh/id_rsa"
# projectListPath 指定步骤四里迁移库范围文件路径;
projectListPath: projects.csv
四、定义迁移代码库范围
您需要告知迁移工具要迁移的代码库列表范围,这需要一个配置文件。
可以通过以下命令,生成迁移库范围的配置文件,文件需要和步骤三中 projectListPath
指定路径一致:
./codeup-cli import --gen project
命令执行完成后会在当前目录下生成一个projects.csv的配置文件,打开文件,其内容格式是每一行都是[本地仓库绝对路径],[Codeup代码库相对路径],[Codeup代码库可见性],示例如下:
#本地仓库绝对路径,Codeup代码库相对路径(支持嵌套多级目录),Codeup代码库可见性
/Users/my/Downloads/groupname/demo,groupname/demo,10
其中代码库可见性 0 表示公开性为「私有」,10 表示公开性为「企业内公开」。若自定义时输入任意非 0 的数字将被自动转换为 10,即企业内公开。
至此,您明确了迁移的代码库范围。
五、执行迁移
请确认工作目录下的迁移配置文件、代码库范围文件和代码库文件夹已准备完毕后,通过以下命令启动执行迁移:
./codeup-cli import --run true --config=./config.yaml
# 迁移过程中会展示迁移的细节,如果有问题会显示报错信息
如Git数据迁移失败,该库状态为迁移失败。
若重复执行导入,历史已导入成功的代码库将提示已存在跳过执行,未导入成功的代码库可继续尝试导入。
工具执行完后,如果一切正常,您便可以前往Codeup组织查看已迁移的代码库信息,确认迁移无误。
迁移过程中遇到无法处理的问题,请添加钉钉群咨询技术支持:32027065。