导出 GitHub.com 组织的仓库
使用 Migrations API,您可以导出组织的仓库。 在导出仓库后,您可以下载能够用于导入过程的迁移存档。
Note: Fork relationships do not persist after a migration.
要从 GitHub.com 导出仓库数据,请使用 Migrations API。
Migrations API 目前正处于预览阶段,这意味着端点和参数未来可能发生变化。 要访问 Migrations API,您必须在 Accept
标头中提供自定义媒体类型:application/vnd.github.wyandotte-preview+json
。 以下示例包括自定义媒体类型。
生成迁移存档
Note: Locking a repository prevents users from pushing to the repository or modifying a repository's resources, like issues, labels, milestones, wikis, and comments. New teams and collaborators can't be associated with a locked repository.
If you're performing a trial run, you don't need to lock repositories. Otherwise, it's highly recommended. 更多信息请参阅“关于迁移”。
-
向您的组织的成员发送通知,告诉他们您将执行迁移。 导出可能需要数分钟的时间,具体取决于要导出的仓库数量。 包括导入的完整迁移可能需要数小时的时间,因此我们建议执行试运行,以便确定完整过程所需的时间。 更多信息请参阅“关于迁移”。
-
向迁移端点发送
POST
请求,开始迁移。 您需要: 身份验证的访问令牌。 想要迁移的仓库列表:<pre><code class="hljs language-shell">curl -H "Authorization: token <em>GITHUB_ACCESS_TOKEN</em>" -X POST \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ -d'{"lock_repositories":true,"repositories":["<em>orgname</em>/<em>reponame</em>", "<em>orgname</em>/<em>reponame</em>"]}' \ https://api.github.com/orgs/<em>orgname</em>/migrations</code></pre> * 如果您想在迁移仓库之前先将其锁定,请确保 `lock_repositories` 设为 `true`。 强烈建议执行此操作。 * 您可以向端点传递 `exclude_attachments: true`,排除文件附件。 文件附件可能很大,可能不必要地胀大您的最终迁移存档。
存档的最终大小必须小于 5 GB。
此请求将返回一个独一无二的
id
,用于表示您的迁移。 后续调用 Migrations API 时需要使用此 id。 -
向迁移状态端点发送
GET
请求以提取迁移的状态。 您需要:- 身份验证的访问令牌。
-
迁移的唯一
id
:curl -H "Authorization: token GITHUB_ACCESS_TOKEN" \ -H "Accept: application/vnd.github.wyandotte-preview+json" \ https://api.github.com/orgs/orgname/migrations/id
迁移可能处于以下状态之一:
pending
,表示迁移尚未开始。exporting
,表示迁移正在进行。exported
,表示迁移已成功完成。failed
,表示迁移失败。
-
在导出您的迁移后,请向迁移下载端点发送
GET
请求,下载迁移存档。 您需要:- 身份验证的访问令牌。
-
迁移的唯一
id
:curl -H "Accept: application/vnd.github.wyandotte-preview+json" \ -u GITHUB_USERNAME:GITHUB_ACCESS_TOKEN \ -L -o migration_archive.tar.gz \ https://api.github.com/orgs/orgname/migrations/id/archive
-
迁移存档将在七天后自动删除。 如果您更喜欢提前删除,可以向迁移存档删除端点发送
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/archive
-
To import the archived migration data to a GitHub Enterprise Server instance, see "Importing migration data to GitHub Enterprise Server".