Help us learn about your current experience with the documentation. Take the survey.

将你的 GitLab 服务器与 Bitbucket Cloud 集成

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab Self-Managed

你可以将 Bitbucket.org 设置为 OAuth 2.0 提供商,使用你的 Bitbucket.org 账户凭据登录 GitLab。你也可以从 Bitbucket.org 导入你的项目。

将 Bitbucket 用作 OAuth 2.0 身份验证提供商

要启用 Bitbucket OmniAuth 提供商,你必须在 Bitbucket.org 上注册你的应用程序。 Bitbucket 会为你生成一个应用程序 ID 和密钥。

  1. 登录 Bitbucket.org

  2. 转到你的个人用户设置 (Bitbucket 设置) 或团队的设置 (管理团队), 这取决于你想要如何注册应用程序。应用程序是注册为个人还是团队并不重要, 这完全取决于你。

  3. 在左侧菜单的 访问管理 下,选择 OAuth

  4. 选择 添加消费者

  5. 提供所需的信息:

    • 名称:可以是任何内容。考虑使用类似 <组织名称> 的 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

  6. 授予至少以下权限:

    • 账户Email读取
    • 项目读取
    • 仓库读取
    • 拉取请求读取
    • 问题读取
    • Wiki读写
  7. 选择 保存

  8. 选择你新创建的 OAuth 消费者,你应该会在 OAuth 消费者列表中看到 密钥机密。继续配置时请保持此页面打开。

  9. 在你的 GitLab 服务器上,打开配置文件:

    # 对于 Omnibus 包
    sudo editor /etc/gitlab/gitlab.rb
    
    # 对于从源码安装
    sudo -u git -H editor /home/git/gitlab/config/gitlab.yml
  10. 添加 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>机密

  11. 保存配置文件。

  12. 要使更改生效,如果你使用 Linux 包安装,请重新配置 GitLab, 或者如果你自编译安装,请重启

在登录页面上,常规登录表单下方现在应该有一个 Bitbucket 图标。 选择该图标开始身份验证过程。Bitbucket 会要求用户登录并授权 GitLab 应用程序。 如果成功,用户将被返回到 GitLab 并登录。

对于多节点架构,Bitbucket 提供商配置也必须包含在 Sidekiq 节点上,以便能够导入项目。

Bitbucket 项目导入

完成前面的配置后,你可以使用 Bitbucket 登录 GitLab 并 开始导入你的项目

如果你想从 Bitbucket 导入项目,但不想启用登录, 你可以在 Admin 区域禁用登录