Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-06-03. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

将数据迁移到企业

生成迁移存档后,您可以将数据导入目� � GitHub Enterprise Server 实例。 在将变更永久应用到目� �实例之前,您需要检查变更,查看有� 潜在的冲突。

在 GitHub Enterprise Server 上应用导入的数据

在将数据迁移到企业之前,您必须准备数据并解决任何冲突。 更多信息请参阅“准备迁移数据到企业”。

在准备数据并解决冲突后,您可以将导入的数据应用于 GitHub Enterprise Server。

  1. 以站点管理员身份通过 SSH 连接到目� � GitHub Enterprise Server 实例

    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator import 命令启动导入过程。 您需要:

    • 迁移 GUID. 更多信息请参阅“准备迁移数据到企业”。
    • 用于身份验证的个人访问令牌。 您使用的个人访问令牌仅用于站点管理员身份验证,不需要任何特定范围。 更多信息请参阅“创建个人访问令牌”。
    $ 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 将返回每一条记录。 它还可以让您按以下方式筛选记录:

  • 记录的类型。
  • 记录的状态。

记录类型与迁移的数据中的类型匹配。

记录类型筛选器

记录类型筛选器名称
用户用户
组织组织
仓库仓库
团队团队
里程碑里程碑
项目板project
议题议题
问题评论issue_comment
拉取请求pull_request
拉取请求审查pull_request_review
提交注释commit_comment
拉取请求审查评论pull_request_review_comment
版本发布发行版
在拉取请求或问题上进行的操作issue_event
受保护分支protected_branch

记录状态筛选器

记录状态描述
export将导出记录。
import将导入记录。
map将� 射记录。
rename将重命名记录。
合并将合并记录。
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 上完成导入

在迁移应用到目� �实例并且您已审查迁移后,您需要解锁仓库并将其从源中� 除。 我们建议等待两周再� 除您的源数据,以便确保所有数据都能按预期运行。

在目� �实例上解锁仓库

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 shell (SSH)。”
    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator unlock 命令解锁所有导入的仓库。 您将需要迁移 GUID:
    $ ghe-migrator unlock -g MIGRATION_GUID
    > Unlocked octo-org/octo-project

在源上解锁仓库

从 GitHub.com 上的组织解锁仓库

要在 GitHub.com 组织中解锁仓库,您需要向迁移解锁端点发送 DELETE 请求。 您需要:

  • 身份验证的访问令牌
  • 迁移的唯一 id
  • 要解锁的仓库的名称
    curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \
      -H "Accept: application/vnd.github.wyandotte-preview+json" \
      https://api.github.com/orgs/orgname/migrations/id/repos/repo_name/lock

从 GitHub.com 上的组织中� 除仓库

在解锁 GitHub.com 组织的仓库后,您应当使用仓库� 除端点� 除之前迁移的每一个仓库。 您需要身份验证的访问令牌:

curl -H "Authorization: token GITHUB_ACCESS_TOKEN" -X DELETE \
  https://api.github.com/repos/orgname/repo_name

从 GitHub Enterprise Server 实例解锁仓库

  1. SSH 连接到 您的 GitHub Enterprise Server 实例。 更多信息请参阅“访问管理 shell (SSH)。”
    $ ssh -p 122 admin@HOSTNAME
  2. 使用 ghe-migrator unlock 命令解锁所有导入的仓库。 您将需要迁移 GUID:
    $ ghe-migrator unlock -g MIGRATION_GUID
    > Unlocked octo-org/octo-project