BigW Consortium Gitlab

bitbucket.md 4.92 KB
Newer Older
1
# Integrate your GitLab server with Bitbucket
2

3 4
Import projects from Bitbucket.org and login to your GitLab instance with your
Bitbucket.org account.
5

6
## Overview
7

8
You can set up Bitbucket.org as an OAuth2 provider so that you can use your
9 10
credentials to authenticate into GitLab or import your projects from
Bitbucket.org.
11

12
- To use Bitbucket.org as an OmniAuth provider, follow the [Bitbucket OmniAuth
13 14 15 16
  provider](#bitbucket-omniauth-provider) section.
- To import projects from Bitbucket, follow both the
  [Bitbucket OmniAuth provider](#bitbucket-omniauth-provider) and
  [Bitbucket project import](#bitbucket-project-import) sections.
17

18 19 20
## Bitbucket OmniAuth provider

> **Note:**
21 22 23 24
GitLab 8.15 significantly simplified the way to integrate Bitbucket.org with
GitLab. You are encouraged to upgrade your GitLab instance if you haven't done
already. If you're using GitLab 8.14 and below, [use the previous integration
docs][bb-old].
25 26

To enable the Bitbucket OmniAuth provider you must register your application
27
with Bitbucket.org. Bitbucket will generate an application ID and secret key for
28
you to use.
29

30 31 32
1.  Sign in to [Bitbucket.org](https://bitbucket.org).
1.  Navigate to your individual user settings (**Bitbucket settings**) or a team's
    settings (**Manage team**), depending on how you want the application registered.
33
    It does not matter if the application is registered as an individual or a
34 35 36
    team, that is entirely up to you.
1.  Select **OAuth** in the left menu under "Access Management".
1.  Select **Add consumer**.
37
1.  Provide the required details:
38

39 40 41 42
    | Item | Description |
    | :--- | :---------- |
    | **Name** | This can be anything. Consider something like `<Organization>'s GitLab` or `<Your Name>'s GitLab` or something else descriptive. |
    | **Application description** | Fill this in if you wish. |
43
    | **Callback URL** | The URL to your GitLab installation, e.g., `https://gitlab.example.com`. |
44
    | **URL** | The URL to your GitLab installation, e.g., `https://gitlab.example.com`. |
45

46 47 48 49
    NOTE: Starting in GitLab 8.15, you MUST specify a callback URL, or you will
    see an "Invalid redirect_uri" message. For more details, see [the
    Bitbucket documentation](https://confluence.atlassian.com/bitbucket/oauth-faq-338365710.html).

50
    And grant at least the following permissions:
51

52
    ```
53 54 55 56
    Account: Email, Read
    Repositories: Read
    Pull Requests: Read
    Issues: Read
57
    Wiki: Read and Write
58
    ```
59

60
    ![Bitbucket OAuth settings page](img/bitbucket_oauth_settings_page.png)
61

62 63 64 65
1.  Select **Save**.
1.  Select your newly created OAuth consumer and you should now see a Key and
    Secret in the list of OAuth customers. Keep this page open as you continue
    the configuration.
66

67
      ![Bitbucket OAuth key](img/bitbucket_oauth_keys.png)
68

69
1.  On your GitLab server, open the configuration file:
70 71

    ```
72 73
    # For Omnibus packages
    sudo editor /etc/gitlab/gitlab.rb
74

75 76 77 78 79 80 81
    # For installations from source
    sudo -u git -H editor /home/git/gitlab/config/gitlab.yml
    ```

1.  Follow the [Initial OmniAuth Configuration](omniauth.md#initial-omniauth-configuration)
    for initial settings.
1.  Add the Bitbucket provider configuration:
82

83
    For Omnibus packages:
84 85

    ```ruby
86 87 88
    gitlab_rails['omniauth_providers'] = [
      {
        "name" => "bitbucket",
89 90
        "app_id" => "BITBUCKET_APP_KEY",
        "app_secret" => "BITBUCKET_APP_SECRET",
91 92 93
        "url" => "https://bitbucket.org/"
      }
    ]
94 95
    ```

96
    For installations from source:
97

98 99
    ```yaml
    - { name: 'bitbucket',
100
        app_id: 'BITBUCKET_APP_KEY',
101 102
        app_secret: 'BITBUCKET_APP_SECRET',
        url: 'https://bitbucket.org/' }
103 104
    ```

105 106 107 108 109
    ---

    Where `BITBUCKET_APP_KEY` is the Key and `BITBUCKET_APP_SECRET` the Secret
    from the Bitbucket application page.

110
1.  Save the configuration file.
111 112
1.  [Reconfigure][] or [restart GitLab][] for the changes to take effect if you
    installed GitLab via Omnibus or from source respectively.
113

114 115 116
On the sign in page there should now be a Bitbucket icon below the regular sign
in form. Click the icon to begin the authentication process. Bitbucket will ask
the user to sign in and authorize the GitLab application. If everything goes
117
well, the user will be returned to GitLab and will be signed in.
118 119 120

## Bitbucket project import

121 122
Once the above configuration is set up, you can use Bitbucket to sign into
GitLab and [start importing your projects][bb-import].
123

124
[init-oauth]: omniauth.md#initial-omniauth-configuration
125 126
[bb-import]: ../workflow/importing/import_projects_from_bitbucket.md
[bb-old]: https://gitlab.com/gitlab-org/gitlab-ce/blob/8-14-stable/doc/integration/bitbucket.md
127
[bitbucket-docs]: https://confluence.atlassian.com/bitbucket/use-the-ssh-protocol-with-bitbucket-cloud-221449711.html#UsetheSSHprotocolwithBitbucketCloud-KnownhostorBitbucket%27spublickeyfingerprints
128 129
[reconfigure]: ../administration/restart_gitlab.md#omnibus-gitlab-reconfigure
[restart GitLab]: ../administration/restart_gitlab.md#installations-from-source