bitbucket.md 4.59 KB
Newer Older
1
# Integrate your GitLab server with Bitbucket
Douwe Maan's avatar
Douwe Maan committed
2

3 4
Import projects from Bitbucket.org and login to your GitLab instance with your
Bitbucket.org account.
Douwe Maan's avatar
Douwe Maan committed
5

6
## Overview
Douwe Maan's avatar
Douwe Maan committed
7

8 9 10
You can set up Bitbucket.org as an OAuth provider so that you can use your
credentials to authenticate into GitLab or import your projects from
Bitbucket.org.
Douwe Maan's avatar
Douwe Maan committed
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.
Douwe Maan's avatar
Douwe Maan committed
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.
Douwe Maan's avatar
Douwe Maan committed
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:
Douwe Maan's avatar
Douwe Maan committed
38

39 40 41 42 43 44
    | 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. |
    | **Callback URL** | Leave blank. |
    | **URL** | The URL to your GitLab installation, e.g., `https://gitlab.example.com`. |
45

46
    And grant at least the following permissions:
Douwe Maan's avatar
Douwe Maan committed
47

48
    ```
49 50 51 52
    Account: Email, Read
    Repositories: Read
    Pull Requests: Read
    Issues: Read
53
    ```
54

55
    ![Bitbucket OAuth settings page](img/bitbucket_oauth_settings_page.png)
Douwe Maan's avatar
Douwe Maan committed
56

57 58 59 60
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.
Douwe Maan's avatar
Douwe Maan committed
61

62
      ![Bitbucket OAuth key](img/bitbucket_oauth_keys.png)
Douwe Maan's avatar
Douwe Maan committed
63

64
1.  On your GitLab server, open the configuration file:
Douwe Maan's avatar
Douwe Maan committed
65 66

    ```
67 68
    # For Omnibus packages
    sudo editor /etc/gitlab/gitlab.rb
Douwe Maan's avatar
Douwe Maan committed
69

70 71 72 73 74 75 76
    # 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:
Douwe Maan's avatar
Douwe Maan committed
77

78
    For Omnibus packages:
Douwe Maan's avatar
Douwe Maan committed
79 80

    ```ruby
81 82 83
    gitlab_rails['omniauth_providers'] = [
      {
        "name" => "bitbucket",
84 85
        "app_id" => "BITBUCKET_APP_KEY",
        "app_secret" => "BITBUCKET_APP_SECRET",
86 87 88
        "url" => "https://bitbucket.org/"
      }
    ]
Douwe Maan's avatar
Douwe Maan committed
89 90
    ```

91
    For installations from source:
Douwe Maan's avatar
Douwe Maan committed
92

93 94
    ```yaml
    - { name: 'bitbucket',
95
        app_id: 'BITBUCKET_APP_KEY',
96 97
        app_secret: 'BITBUCKET_APP_SECRET',
        url: 'https://bitbucket.org/' }
Douwe Maan's avatar
Douwe Maan committed
98 99
    ```

100 101 102 103 104
    ---

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

Douwe Maan's avatar
Douwe Maan committed
105
1.  Save the configuration file.
106 107
1.  [Reconfigure][] or [restart GitLab][] for the changes to take effect if you
    installed GitLab via Omnibus or from source respectively.
Douwe Maan's avatar
Douwe Maan committed
108

109 110 111
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
112
well, the user will be returned to GitLab and will be signed in.
Douwe Maan's avatar
Douwe Maan committed
113 114 115

## Bitbucket project import

116 117
Once the above configuration is set up, you can use Bitbucket to sign into
GitLab and [start importing your projects][bb-import].
Douwe Maan's avatar
Douwe Maan committed
118

119
[init-oauth]: omniauth.md#initial-omniauth-configuration
120 121
[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
122
[bitbucket-docs]: https://confluence.atlassian.com/bitbucket/use-the-ssh-protocol-with-bitbucket-cloud-221449711.html#UsetheSSHprotocolwithBitbucketCloud-KnownhostorBitbucket%27spublickeyfingerprints
123 124
[reconfigure]: ../administration/restart_gitlab.md#omnibus-gitlab-reconfigure
[restart GitLab]: ../administration/restart_gitlab.md#installations-from-source