将你的 GitLab 服务器与 Bitbucket Cloud 集成
- Tier: Free, Premium, Ultimate
- Offering: GitLab Self-Managed
你可以将 Bitbucket.org 设置为 OAuth 2.0 提供商,使用你的 Bitbucket.org 账户凭据登录 GitLab。你也可以从 Bitbucket.org 导入你的项目。
- 要将 Bitbucket.org 用作 OmniAuth 提供商,请遵循 Bitbucket OmniAuth 提供商 部分。
- 要从 Bitbucket 导入项目,请同时遵循 Bitbucket OmniAuth 提供商 和 Bitbucket 项目导入 部分。
将 Bitbucket 用作 OAuth 2.0 身份验证提供商
要启用 Bitbucket OmniAuth 提供商,你必须在 Bitbucket.org 上注册你的应用程序。 Bitbucket 会为你生成一个应用程序 ID 和密钥。
-
登录 Bitbucket.org。
-
转到你的个人用户设置 (Bitbucket 设置) 或团队的设置 (管理团队), 这取决于你想要如何注册应用程序。应用程序是注册为个人还是团队并不重要, 这完全取决于你。
-
在左侧菜单的 访问管理 下,选择 OAuth。
-
选择 添加消费者。
-
提供所需的信息:
-
名称:可以是任何内容。考虑使用类似
<组织名称> 的 GitLab或<你的姓名> 的 GitLab或其他描述性的内容。 -
应用程序描述:可选。如果需要,请填写。
-
回调 URL:(GitLab 8.15 及更高版本必需) 你的 GitLab 安装的 URL,例如
https://gitlab.example.com/users/auth。将此字段留空会导致Invalid redirect_uri消息。为了帮助防止 OAuth 2 隐蔽重定向 攻击,请在你的 Bitbucket 授权回调 URL 末尾附加
/users/auth。你必须 包含此授权端点才能与 Bitbucket 身份验证并从 Bitbucket 仓库导入数据。 -
URL:你的 GitLab 安装的 URL,例如
https://gitlab.example.com。
-
-
授予至少以下权限:
- 账户:
Email、读取 - 项目:
读取 - 仓库:
读取 - 拉取请求:
读取 - 问题:
读取 - Wiki:
读写
- 账户:
-
选择 保存。
-
选择你新创建的 OAuth 消费者,你应该会在 OAuth 消费者列表中看到 密钥 和 机密。继续配置时请保持此页面打开。
-
在你的 GitLab 服务器上,打开配置文件:
# 对于 Omnibus 包 sudo editor /etc/gitlab/gitlab.rb # 对于从源码安装 sudo -u git -H editor /home/git/gitlab/config/gitlab.yml -
添加 Bitbucket 提供商配置:
对于 Linux 包安装:
gitlab_rails['omniauth_providers'] = [ { name: "bitbucket", # label: "Provider name", # 可选的登录按钮标签,默认为 "Bitbucket" app_id: "<bitbucket_app_key>", app_secret: "<bitbucket_app_secret>", url: "https://bitbucket.org/" } ]对于自编译安装:
omniauth: enabled: true providers: - { name: 'bitbucket', # label: 'Provider name', # 可选的登录按钮标签,默认为 "Bitbucket" app_id: '<bitbucket_app_key>', app_secret: '<bitbucket_app_secret>', url: 'https://bitbucket.org/' }其中
<bitbucket_app_key>是 Bitbucket 应用程序页面的 密钥,<bitbucket_app_secret>是 机密。 -
保存配置文件。
-
要使更改生效,如果你使用 Linux 包安装,请重新配置 GitLab, 或者如果你自编译安装,请重启。
在登录页面上,常规登录表单下方现在应该有一个 Bitbucket 图标。 选择该图标开始身份验证过程。Bitbucket 会要求用户登录并授权 GitLab 应用程序。 如果成功,用户将被返回到 GitLab 并登录。
对于多节点架构,Bitbucket 提供商配置也必须包含在 Sidekiq 节点上,以便能够导入项目。
Bitbucket 项目导入
完成前面的配置后,你可以使用 Bitbucket 登录 GitLab 并 开始导入你的项目。
如果你想从 Bitbucket 导入项目,但不想启用登录, 你可以在 Admin 区域禁用登录。