跳至主要内容

从 GitHub.com 导出迁移数据

您可以通过使用 API 选择要迁移的仓库,从 GitHub.com 上的组织导出迁移数据,然后生成可导入到 GitHub Enterprise Server 实例的迁移归档。

在 GitHub 上准备源组织

  1. 确保您在源组织的仓库上拥有所有者权限

  2. 生成个人访问令牌,并授予 repoadmin:org 范围,在 GitHub.com 上使用。

  3. 为尽量减少停机时间,请列出您希望从源实例导出的仓库清单。您可以使用文本文件一次性将多个仓库添加到导出中,文件中每行列出一个仓库的 URL。

导出组织的仓库

注意

迁移后,派生(fork)关系将不再保留。

要从 GitHub.com 导出仓库数据,请使用迁移 API

迁移 API 目前处于预览阶段,这意味着其端点和参数将来可能会更改。

生成迁移归档

注意

锁定仓库会阻止对该仓库的所有写入访问。锁定后,您无法为仓库关联新的团队或协作者。

如果您在进行试运行,则无需锁定仓库。当从正在使用的仓库迁移数据时,GitHub 强烈建议锁定该仓库。更多信息,请参阅关于 ghe-migrator

  1. 通知组织成员您将进行迁移。导出所需时间取决于导出仓库的数量,可能需要几分钟。完整的迁移(包括导入)可能需要数小时,因此我们建议先进行试运行,以评估整个过程所需时间。更多信息,请参阅关于 ghe-migrator

  2. 通过向POST请求迁移端点发送请求来启动迁移。您需要

    • 用于身份验证的访问令牌。

    • 您想迁移的仓库列表

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -d'{"lock_repositories":true,"repositories":["ORG_NAME/REPO_NAME", "ORG_NAME/REPO_NAME"]}' \
      https://api.github.com/orgs/ORG_NAME/migrations
      
    • 如果您希望在迁移前锁定仓库,请确保 lock_repositories 设置为 true。强烈建议这样做。

    • 您可以通过向端点传递 exclude_attachments: true 来排除文件附件。文件附件可能体积较大,导致最终迁移归档臃肿。最终归档大小必须小于 20 GB。

    此请求返回唯一的 id,代表您的迁移。后续调用迁移 API 时需要使用该 ID。

  3. 发送 GET 请求至迁移状态端点以获取迁移状态。您需要

    • 用于身份验证的访问令牌。

    • 迁移的唯一 id

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID
      

    迁移可能处于以下状态之一

    • pending,表示迁移尚未开始。
    • exporting,表示迁移正在进行中。
    • exported,表示迁移已成功完成。
    • failed,表示迁移失败。
  4. 迁移导出完成后,发送 GET 请求至迁移下载端点以下载迁移归档。您需要

    • 用于身份验证的访问令牌。

    • 迁移的唯一 id

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -H "Accept: application/vnd.github+json" \
      -L -o migration_archive.tar.gz \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  5. 迁移归档将在七天后自动删除。如需更早删除,可向DELETE端点发送请求。您需要

    • 用于身份验证的访问令牌。

    • 迁移的唯一 id

      curl -H "Authorization: Bearer GITHUB_ACCESS_TOKEN" \
      -X DELETE \
      -H "Accept: application/vnd.github+json" \
      https://api.github.com/orgs/ORG_NAME/migrations/ID/archive
      
  6. 要为导入到 GitHub Enterprise Server 实例准备归档的迁移数据,请参阅迁移数据到 GitHub Enterprise Server

© . This site is unofficial and not affiliated with GitHub, Inc.