在 GitHub Enterprise Server 上应用导入的数据
在将数据迁移到 GitHub Enterprise Server 之前,必须准备数据并解决任何冲突。 有关详细信息,请参阅“准备将数据迁移到 GitHub Enterprise Server”。
在准备数据并解决冲突后,您可以将导入的数据应用于 GitHub Enterprise Server。
-
作为站点管理员,通过 SSH 连接到目标 GitHub Enterprise Server 实例。
$ ssh -p 122 admin@HOSTNAME
-
使用
ghe-migrator import
命令启动导入过程。 需要:- 迁移 GUID。 有关详细信息,请参阅“准备将数据迁移到 GitHub Enterprise Server”。
- 使用 personal access token 进行身份验证。 你使用的 personal access token 仅用于以站点管理员身份进行身份验证,不需要设定任何特定范围。 有关详细信息,请参阅“Managing your personal access tokens”。
$ ghe-migrator import /home/admin/MIGRATION-GUID.tar.gz -g MIGRATION-GUID -u USERNAME -p TOKEN > Starting GitHub::Migrator > Import 100% complete /
- 要指定迁移文件的暂存位置,请在命令后附加
--staging-path=/full/staging/path
。 默认为/data/user/tmp
。
检查迁移数据
默认情况下,ghe-migrator audit
返回每条记录。 它还可以让您按以下方式筛选记录:
- 记录的类型。
- 记录的状态。
记录类型与迁移数据中的记录类型相匹配。
记录类型筛选器
记录类型 | 筛选器名称 |
---|---|
用户 | user |
组织 | organization |
存储库 | repository |
Teams | team |
里程碑 | milestone |
项目板 | project |
问题 | issue |
问题评论 | issue_comment |
拉取请求 | pull_request |
拉取请求审查 | pull_request_review |
提交注释 | commit_comment |
拉取请求审查评论 | pull_request_review_comment |
版本 | release |
在拉取请求或问题上进行的操作 | issue_event |
受保护的分支 | protected_branch |
记录状态筛选器
记录状态 | 说明 |
---|---|
export | 将导出记录。 |
import | 将导入记录。 |
map | 将映射记录。 |
rename | 将重命名记录。 |
merge | 将合并记录。 |
exported | 已成功导出记录。 |
imported | 已成功导入记录。 |
mapped | 已成功映射记录。 |
renamed | 已成功重命名记录。 |
merged | 已成功合并记录。 |
failed_export | 记录导出失败。 |
failed_import | 记录导入失败。 |
failed_map | 记录映射失败。 |
failed_rename | 记录重命名失败。 |
failed_merge | 记录合并失败。 |
筛选审核的记录
通过 ghe-migrator audit
命令,可以使用 -m
标志根据记录类型进行筛选。 同样,可以使用 -s
标志筛选导入状态。 命令如下所示:
$ ghe-migrator audit -m RECORD_TYPE -s STATE -g MIGRATION-GUID
例如,要查看每个成功导入的组织和团队,您可以输入:
$ ghe-migrator audit -m organization,team -s mapped,renamed -g MIGRATION-GUID
> model_name,source_url,target_url,state
> organization,https://gh.source/octo-org/,https://ghe.target/octo-org/,renamed
我们强烈建议审核每个失败的导入。 为此,你将输入:
$ ghe-migrator audit -s failed_import,failed_map,failed_rename,failed_merge -g MIGRATION-GUID
> model_name,source_url,target_url,state
> user,https://gh.source/octocat,https://gh.target/octocat,failed
> repository,https://gh.source/octo-org/octo-project,https://ghe.target/octo-org/octo-project,failed
如果您对失败的导入有任何疑问,请联系 GitHub Enterprise 支持。
在 GitHub Enterprise Server 上完成导入
在迁移应用到目标实例并且您已审查迁移后,您需要解锁仓库并将其从源中删除。 我们建议等待两周再删除您的源数据,以便确保所有数据都能按预期运行。
在目标实例上解锁仓库
-
通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问权限的详细信息,请参阅“访问管理 shell (SSH)”。
$ ssh -p 122 admin@HOSTNAME
-
使用
ghe-migrator unlock
命令解锁所有导入的存储库。 您将需要迁移 GUID:$ ghe-migrator unlock -g MIGRATION-GUID > Unlocked octo-org/octo-project
在源上解锁仓库
从 GitHub.com 上的组织解锁仓库
若要解锁 GitHub.com 组织上的存储库,你需要向迁移解锁终结点发送 DELETE
请求。 需要:
- 身份验证的访问令牌
- 迁移的唯一
id
- 要解锁的仓库的名称
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
-H "Accept: application/vnd.github.wyandotte-preview+json" \
https://api.github.com/orgs/ORG-NAME/migrations/ID/repos/REPO_NAME/lock
从 GitHub.com 上的组织中删除仓库
解锁 GitHub.com 组织的存储库后,应该删除之前使用存储库删除终结点迁移的每个存储库。 您需要身份验证的访问令牌:
curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" -X DELETE \
https://api.github.com/repos/ORG-NAME/REPO_NAME
从 GitHub Enterprise Server 实例解锁仓库
-
通过 SSH 连接到 你的 GitHub Enterprise Server 实例。 如果实例包含多个节点,例如,如果配置了高可用性或异地复制,则通过 SSH 连接到主节点。 如果使用群集,则可以通过 SSH 连接到任何节点。 有关 SSH 访问权限的详细信息,请参阅“访问管理 shell (SSH)”。
$ ssh -p 122 admin@HOSTNAME
-
使用
ghe-migrator unlock
命令解锁所有导入的存储库。 您将需要迁移 GUID:$ ghe-migrator unlock -g MIGRATION-GUID > Unlocked octo-org/octo-project