2021-01-29 00:20:46 +05:30
---
2022-07-16 23:28:13 +05:30
stage: Manage
group: Authentication and Authorization
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2021-01-29 00:20:46 +05:30
---
2021-11-18 22:05:49 +05:30
# Integrate your GitLab server with Bitbucket Cloud **(FREE SELF)**
2015-04-26 12:48:37 +05:30
2021-11-11 11:23:49 +05:30
You can set up Bitbucket.org as an OAuth 2.0 provider to use your Bitbucket.org
account credentials to sign in to GitLab. You can also import your projects from
2016-09-29 09:46:39 +05:30
Bitbucket.org.
2015-04-26 12:48:37 +05:30
2021-01-29 00:20:46 +05:30
- To use Bitbucket.org as an OmniAuth provider, follow the
[Bitbucket OmniAuth provider ](#bitbucket-omniauth-provider ) section.
2016-09-29 09:46:39 +05:30
- To import projects from Bitbucket, follow both the
[Bitbucket OmniAuth provider ](#bitbucket-omniauth-provider ) and
[Bitbucket project import ](#bitbucket-project-import ) sections.
2015-04-26 12:48:37 +05:30
2016-09-29 09:46:39 +05:30
## Bitbucket OmniAuth provider
2015-04-26 12:48:37 +05:30
2016-09-29 09:46:39 +05:30
To enable the Bitbucket OmniAuth provider you must register your application
2021-01-29 00:20:46 +05:30
with Bitbucket.org. Bitbucket generates an application ID and secret key for
2016-09-29 09:46:39 +05:30
you to use.
2015-04-26 12:48:37 +05:30
2019-09-30 21:07:59 +05:30
1. Sign in to [Bitbucket.org ](https://bitbucket.org ).
2022-11-25 23:54:43 +05:30
1. Go to your individual user settings (**Bitbucket settings**) or a team's
settings (**Manage team**), depending on how you want to register the application.
2019-09-30 21:07:59 +05:30
It does not matter if the application is registered as an individual or a
team, that is entirely up to you.
2021-01-29 00:20:46 +05:30
1. In the left menu under **Access Management** , select **OAuth** .
2019-09-30 21:07:59 +05:30
1. Select **Add consumer** .
1. Provide the required details:
2021-01-29 00:20:46 +05:30
- **Name:** This can be anything. Consider something like `<Organization>'s GitLab`
or `<Your Name>'s GitLab` or something else descriptive.
2022-01-26 12:08:38 +05:30
- **Application description:** Optional. Fill this in if you wish.
2021-01-29 00:20:46 +05:30
- **Callback URL:** (Required in GitLab versions 8.15 and greater)
The URL to your GitLab installation, such as
2021-04-17 20:07:23 +05:30
`https://gitlab.example.com/users/auth` .
2021-01-29 00:20:46 +05:30
Leaving this field empty
2023-01-13 00:05:48 +05:30
results in an `Invalid redirect_uri` message.
2022-11-25 23:54:43 +05:30
WARNING:
To help prevent an [OAuth 2 covert redirect ](https://oauth.net/advisories/2014-1-covert-redirect/ )
vulnerability in which users' GitLab accounts could be compromised, append `/users/auth`
to the end of the Bitbucket authorization callback URL.
2021-01-29 00:20:46 +05:30
- **URL:** The URL to your GitLab installation, such as `https://gitlab.example.com` .
2019-09-30 21:07:59 +05:30
2021-01-29 00:20:46 +05:30
1. Grant at least the following permissions:
2019-09-30 21:07:59 +05:30
2020-04-22 19:07:51 +05:30
```plaintext
2019-09-30 21:07:59 +05:30
Account: Email, Read
Projects: Read
Repositories: Read
Pull Requests: Read
Issues: Read
Wiki: Read and Write
```
![Bitbucket OAuth settings page ](img/bitbucket_oauth_settings_page.png )
1. Select **Save** .
2021-01-29 00:20:46 +05:30
1. Select your newly created OAuth consumer, and you should now see a **Key** and
**Secret** in the list of OAuth consumers. Keep this page open as you continue
2019-09-30 21:07:59 +05:30
the configuration.
![Bitbucket OAuth key ](img/bitbucket_oauth_keys.png )
1. On your GitLab server, open the configuration file:
2020-04-22 19:07:51 +05:30
```shell
2019-09-30 21:07:59 +05:30
# For Omnibus packages
sudo editor /etc/gitlab/gitlab.rb
# For installations from source
sudo -u git -H editor /home/git/gitlab/config/gitlab.yml
```
1. Add the Bitbucket provider configuration:
For Omnibus packages:
```ruby
gitlab_rails['omniauth_providers'] = [
{
2022-01-26 12:08:38 +05:30
name: "bitbucket",
# label: "Provider name", # optional label for login button, defaults to "Bitbucket"
2022-11-25 23:54:43 +05:30
app_id: "< bitbucket_app_key > ",
app_secret: "< bitbucket_app_secret > ",
2022-01-26 12:08:38 +05:30
url: "https://bitbucket.org/"
2019-09-30 21:07:59 +05:30
}
]
```
For installations from source:
```yaml
omniauth:
enabled: true
providers:
- { name: 'bitbucket',
2022-01-26 12:08:38 +05:30
# label: 'Provider name', # optional label for login button, defaults to "Bitbucket"
2022-11-25 23:54:43 +05:30
app_id: '< bitbucket_app_key > ',
app_secret: '< bitbucket_app_secret > ',
2019-09-30 21:07:59 +05:30
url: 'https://bitbucket.org/' }
```
2022-11-25 23:54:43 +05:30
Where `<bitbucket_app_key>` is the **Key** and `<bitbucket_app_secret>` the **Secret**
2019-09-30 21:07:59 +05:30
from the Bitbucket application page.
1. Save the configuration file.
2021-03-08 18:12:59 +05:30
1. For the changes to take effect, [reconfigure GitLab ](../administration/restart_gitlab.md#omnibus-gitlab-reconfigure )
if you installed using Omnibus GitLab, or [restart ](../administration/restart_gitlab.md#installations-from-source )
if you installed from source.
2015-04-26 12:48:37 +05:30
2021-01-29 00:20:46 +05:30
On the sign-in page there should now be a Bitbucket icon below the regular
2022-07-23 23:45:48 +05:30
sign-in form. Select the icon to begin the authentication process. Bitbucket asks
2021-01-29 00:20:46 +05:30
the user to sign in and authorize the GitLab application. If successful, the user
is returned to GitLab and signed in.
2015-04-26 12:48:37 +05:30
## Bitbucket project import
2021-01-29 00:20:46 +05:30
After the above configuration is set up, you can use Bitbucket to sign into
2020-04-22 19:07:51 +05:30
GitLab and [start importing your projects ](../user/project/import/bitbucket.md ).
2015-04-26 12:48:37 +05:30
2018-11-18 11:00:15 +05:30
If you want to import projects from Bitbucket, but don't want to enable signing in,
2022-07-16 23:28:13 +05:30
you can [disable Sign-Ins in the Admin Area ](omniauth.md#enable-or-disable-sign-in-with-an-omniauth-provider-without-disabling-import-sources ).