将 GitLab 服务器与 Bitbucket Cloud 集成 (BASIC SELF)

您可以将 Bitbucket.org 设置为 OAuth 2.0 provider,使用您的 Bitbucket.org 账户凭据登录极狐GitLab。您还可以从 Bitbucket.org 导入您的项目。

Bitbucket OmniAuth provider

要启用 Bitbucket OmniAuth provider,您必须向 Bitbucket.org 注册您的应用程序。Bitbucket 会生成一个应用程序 ID 和密钥供您使用。

caution为了帮助防止 OAuth 2 隐蔽重定向 漏洞,其中用户的极狐GitLab 账户可能会受到损害,请将 /users/auth 附加到 Bitbucket 授权回调 URL 的结尾。
  1. 登录 Bitbucket.org
  2. 导航到您的个人用户设置(Bitbucket settings)或团队设置(Manage team),具体取决于您希望应用程序的注册方式。申请注册为个人还是团队均可。
  3. Access Management 下的左侧菜单中,选择 OAuth
  4. 选择 Add consumer
  5. 提供所需的详细信息:

    • Name:可以是任何名称。考虑类似 <Organization>'s GitLab<Your Name>'s GitLab 或其它描述性信息。
    • Application description:可选。
    • Callback URL:极狐GitLab 安装的 URL,例如 https://gitlab.example.com/users/auth。将此字段留空导致出现 Invalid redirect_uri 消息
    • URL:极狐GitLab 安装的 URL,例如 https://gitlab.example.com
  6. 至少授予以下权限:

    Account: Email, Read
    Projects: Read
    Repositories: Read
    Pull Requests: Read
    Issues: Read
    Wiki: Read and Write
    

    Bitbucket OAuth settings page

  7. 选择 Save
  8. 选择您新创建的 OAuth 使用者,您现在应该在 OAuth 使用者列表中看到一个 KeySecret。在继续配置时保持此页面打开。

    Bitbucket OAuth key

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

    # For Omnibus packages
    sudo editor /etc/gitlab/gitlab.rb
    
    # For installations from source
    sudo -u git -H editor /home/git/gitlab/config/gitlab.yml
    
  10. 添加 Bitbucket provider 配置:

    对于 Omnibus 安装实例:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "bitbucket",
        # label: "Provider name", # optional label for login button, defaults to "Bitbucket"
        app_id: "BITBUCKET_APP_KEY",
        app_secret: "BITBUCKET_APP_SECRET",
        url: "https://bitbucket.org/"
      }
    ]
    

    对于源安装实例:

    omniauth:
      enabled: true
      providers:
        - { name: 'bitbucket',
            # label: 'Provider name', # optional label for login button, defaults to "Bitbucket"
            app_id: 'BITBUCKET_APP_KEY',
            app_secret: 'BITBUCKET_APP_SECRET',
            url: 'https://bitbucket.org/' }
    

    其中 BITBUCKET_APP_KEY 是密钥,BITBUCKET_APP_SECRET 是来自 Bitbucket 应用程序页面的 Secret。

  11. 保存配置文件。
  12. 要使更改生效,如果您使用 Omnibus GitLab 安装,请重新配置 GitLab;如果您是从源代码安装的,请重新启动

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

Bitbucket 项目导入

上述配置设置完成后,您可以使用 Bitbucket 登录极狐GitLab 并开始导入您的项目

如果您想从 Bitbucket 导入项目,但不想启用登录,您可以在管理面板中禁用登录