将您的项目从 Bitbucket Cloud 导入极狐GitLab
轻松将您的项目从 Bitbucket Cloud 导入极狐GitLab。
Bitbucket 导入器可以导入:
- 仓库描述
- Git 仓库数据
- 议题,包括评论
- 拉取请求,包括评论
- 里程碑
- Wiki
- 标签
- LFS 对象
Bitbucket 导入器不能够导入:
- 拉取请求审核者
- 审批规则
导入时:
- 保留对拉取请求和议题的引用。
- 保留仓库公共访问权限。如果仓库在 Bitbucket 中是私有的,它也会在极狐GitLab 中创建为私有的。
- 导入的议题、合并请求和评论会在极狐GitLab 中有一个 导入的 徽章。
当导入议题、拉取请求和评论时,Bitbucket 导入器使用作者/受让人的 Bitbucket 昵称,并尝试在极狐GitLab 中找到相同的 Bitbucket 身份。如果它们不匹配或在极狐GitLab 数据库中找不到用户,则将项目创建者(大多数情况下是启动导入过程的当前用户)设置为作者,但有关原始 Bitbucket 议题的作者的引用被保留。
对拉取请求:
- 如果源 SHA 在仓库中并不存在,则导入器会尝试将源提交设置为合并提交的 SHA。
- 合并请求的指派者会设置为作者。审阅者设置为 Bitbucket 用户名与极狐GitLab 用户名匹配的用户。
- 极狐GitLab 中的合并请求可能是
opened
、closed
或merged
。
对议题:
- 会添加一个与 Bitbucket 上问题类型相对应的标签。可以是
bug
、enhancement
、proposal
或task
。 - 如果 Bitbucket 上的议题是
resolved
、invalid
、duplicate
、wontfix
或closed
的其中之一,则议题在极狐GitLab 上被关闭。
如果命名空间不存在或命名空间被占用,则导入器会创建任意新的命名空间(群组),存储库将导入到启动导入流程的用户的命名空间下。
先决条件
- 需要维护者角色而不是开发者角色,引入于极狐GitLab 16.0,并在 GitLab 15.11.1 和 GitLab 15.10.5 中进行了回退。
- 必需启用了Bitbucket Cloud 集成。如果集成未启用,联系您的管理员启用它。Bitbucket Cloud 集成在 JihuLab.com 上默认启用。
- 必需启用了Bitbucket Cloud 导入源。如果未启用,联系您的管理员启用它。Bitbucket Cloud 导入源在 JihuLab.com 上默认启用。
- 必需至少具有目标群组的维护者角色。
- Bitbucket 上的拉取请求必须具有相同的源和目标项目,而不是从项目的派生。否则,拉取请求将作为空合并请求导入。
用户映射贡献的前提
对于用户贡献的映射,每个用户都必须在导入前完成以下工作:
-
验证Bitbucket 账号设置中的用户名要能够和Atlassian 账号设置中的项匹配。如果不匹配,修改 Atlassian 账号设置中的用户名以匹配 Bitbucket 账号设置中的用户名。
-
在极狐GitLab 个人资料服务登录中连接您的 Bitbucket 账号。
导入您的 Bitbucket 仓库
- 重新导入项目的能力引入于极狐GitLab 15.9。
- 登录极狐GitLab。
- 在导航栏左侧,在顶部,选择 创建新的 () 和 新的项目/仓库。
- 选择 导入项目。
- 选择 Bitbucket Cloud。
-
登录 Bitbucket 并赋予极狐GitLab 访问您 Bitbucket 账号的权限。
-
选择你想要导入的项目,或者所有项目。您可以通过名称进行项目过滤并为每个导入的项目选择命名空间。
- 要导入一个项目:
- 首次导入:选择 导入。
- 再次导入:选择 重导入。指定新的名称并再次选择 重导入。重导入会为源项目创建一个新的副本。
生成 Bitbucket Cloud app 密码
如果您想使用极狐GitLab REST API来导入 Bitbucket Cloud 仓库,则您必需创建一个 Bitbucket Cloud app 密码。
要生成一个 Bitbucket Cloud app 密码:
- 前往 https://bitbucket.org/account/settings/。
- 在 访问管理 中,选择 App 密码。
- 选择 创建 app 密码。
- 输入密码名称。
-
至少选择以下权限:
Account: Email, Read Projects: Read Repositories: Read Pull Requests: Read Issues: Read Wiki: Read and Write
- 选择 创建。
故障排查
如果您有多个 Bitbucket 账号
请确保使用正确的账号登录。
如果您已经使用错误的账号进行导入流程,请遵循以下步骤:
-
撤销极狐GitLab 对 Bitbucket 账号的访问,本质上就是逆转以下流程中的操作。
- 撤销极狐GitLab 对 Bitbucket 账号的访问,本质上就是逆转以下流程中的操作:导入您的 Bitbucket 仓库。
- 登出 Bitbucket 账号。遵循上一步链接的流程操作。
尽管名称匹配但是用户映射失败
要让用户映射工作,Bitbucket 账号设置中的用户名必需要和 Atlassian 账号设置中的公开名称匹配。如果这些名称匹配但是用户映射仍然失败,可能是用户在极狐GitLab 个人资料服务登录中连接到他们的 Bitbucket 账号后修改了他们的 Bitbucket 用户名。
要修复此问题,用户必需验证他们在极狐GitLab 数据库中的 Bitbucket 外部 UID 要能够和他们当前的 Bitbucket 公共名称相匹配,如果存在不匹配则需要重新连接:
-
在 API 响应中,
identities
属性包含存在于极狐GitLab 数据库中的 Bitbucket 账号。如果extern_uid
与当前 Bitbucket 公共名称不匹配,则用户应该在极狐GitLab 个人资料服务登录中重新连接他们的 Bitbucket 账号。 -
重连接后,用户应该再次使用 API 来验证极狐GitLab 数据库中的
extern_uid
与当前 Bitbucket 公共名称匹配。
导入器必需删除导入的项目然后再次导入。