对于大多数客户,我们建议使用 GitHub-owned blob storage.. 这是最简单的路径,不需要任何额外的配置。
但是,如果具有防火墙要求,或者需要在迁移完成后保留存档,则可能需要使用外部提供程序配置存储。
选择要暂存存档的位置
将 GL2GH extension 每个 GitLab 项目导出到存档,然后将存档上传到可从中读取的 GitHub Blob 存储。 运行迁移时,可以选择存储后端。
| 存储选项 | 如何选择它 | 备注 |
|---|
GitHub-owned blob storage(推荐) | --use-github-storage | 无需设置。
GitHub 在成功迁移后或在迁移失败后的七天后自动删除存档。
AWS S3 |
--aws-bucket-name (使用 AWS_REGION、 AWS_ACCESS_KEY_ID环境变量 AWS_SECRET_ACCESS_KEY 和环境变量(可选 AWS_SESSION_TOKEN) | 你拥有存储桶及其生命周期。
GitHub 不会从存储中删除存档。
Azure Blob 存储 |
AZURE_STORAGE_CONNECTION_STRING 环境变量(对于单个 migrate-repo 命令,可以改用 --azure-storage-connection-string) | 仅支持存储帐户访问密钥连接字符串(而不是 SAS)。
GitHub 不会从存储中删除存档。
配置 Blob 存储
如果使用 GitHub-owned blob storage,则无需配置任何内容。 将使用 --use-github-storage 标志通过 CLI 选择此方法。 但是,如果连接缓慢或代理连接,可能需要将 GITHUB_OWNED_STORAGE_MULTIPART_MEBIBYTES 变量(默认为 100 MiB,最小 5 MiB)设置为较低的数字。
如果使用外部 Blob 存储,则需要设置此存储。
设置 AWS S3 存储桶
在 AWS 中,设置 S3 Bucket。 有关详细信息,请参阅 AWS 文档中的创建 Bucket。
还需要具有以下权限的 AWS 访问密钥和密钥:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucketMultipartUploads",
"s3:AbortMultipartUpload",
"s3:ListBucket",
"s3:DeleteObject",
"s3:ListMultipartUploadParts"
],
"Resource": [
"arn:aws:s3:::github-migration-bucket",
"arn:aws:s3:::github-migration-bucket/*"
]
}
]
}
注意
迁移完成后,GitHub Enterprise Importer 不会从 AWS 中删除存档。 为了降低存储成本,建议配置在一段时间后自动删除存档。 有关详细信息,请参阅 AWS 文档中的 Bucket 生命周期配置。
准备好运行迁移后,你将需要向 GitHub CLI 提供 AWS 凭据:区域、访问密钥、密钥和会话令牌(如果需要)。 可以将它们作为参数传递,或设置名为 AWS_REGION、AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 的环境变量。
你还需要使用 --aws-bucket-name 参数传入 S3 Bucket 的名称。
设置 Azure Blob 存储存储帐户
在 Azure 中,创建存储帐户并记下连接字符串。 有关详细信息,请参阅 Microsoft Docs 中的管理存储帐户访问密钥。
注意
迁移完成后,GitHub Enterprise Importer 不会从 Azure Blob 存储中删除存档。 为了降低存储成本,建议配置为在一段时间后自动删除存档。 有关详细信息,请参阅 Microsoft Docs 中的通过自动管理数据生命周期来优化成本。
准备好运行迁移时,可以将连接字符串作为参数传递到 GitHub CLI,或使用名为 AZURE_STORAGE_CONNECTION_STRING 的环境变量将其传入。
允许网络访问
如果您已在存储帐户上配置了防火墙规则,请确保您已允许访问迁移目标的 IP 范围。 请参阅“管理从 GitLab 迁移到 GitHub的访问”。