Import projects from Bitbucket and login to your GitLab instance with your Bitbucket account.
To enable the Bitbucket OmniAuth provider you must register your application with Bitbucket.
Bitbucket will generate an application ID and secret key for you to use.
1. Sign in to Bitbucket.
1. Navigate to your individual user settings or a team's settings, depending on how you want the application registered. It does not matter if the application is registered as an individual or a team - that is entirely up to you.
1. Select "OAuth" in the left menu.
1. Select "Add consumer".
1. Provide the required details.
- 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.
- URL: The URL to your GitLab installation. 'https://gitlab.company.com'
1. Select "Save".
1. You should now see a Key and Secret in the list of OAuth customers.
Keep this page open as you continue configuration.
1. On your GitLab server, open the configuration file.
For omnibus package:
```sh
sudo editor /etc/gitlab/gitlab.rb
```
For instalations from source:
```sh
cd /home/git/gitlab
sudo -u git -H editor config/gitlab.yml
```
1. See [Initial OmniAuth Configuration](omniauth.md#initial-omniauth-configuration) for initial settings.
1. Add the provider configuration:
For omnibus package:
```ruby
gitlab_rails['omniauth_providers'] = [
{
"name" => "bitbucket",
"app_id" => "YOUR_KEY",
"app_secret" => "YOUR_APP_SECRET",
"url" => "https://bitbucket.org/"
}
]
```
For installation from source:
```
- { name: 'bitbucket', app_id: 'YOUR_KEY',
app_secret: 'YOUR_APP_SECRET' }
```
1. Change 'YOUR_APP_ID' to the key from the Bitbucket application page from step 7.
1. Change 'YOUR_APP_SECRET' to the secret from the Bitbucket application page from step 7.
1. Save the configuration file.
1. Restart GitLab for the changes to take effect.
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 well the user will be returned to GitLab and will be signed in.
## Bitbucket project import
To allow projects to be imported directly into GitLab, Bitbucket requires one extra setup step compared to GitHub and GitLab.com.
Bitbucket doesn't allow OAuth applications to clone repositories over HTTPS, and instead requires GitLab to use SSH and identify itself using your GitLab server's SSH key.
GitLab will automatically register your public key with Bitbucket as a deploy key for the repositories to be imported. Your public key needs to be at `~/.ssh/id_rsa.pub`, which will expand to `/home/git/.ssh/id_rsa.pub` in most configurations.
If you have that file in place, you're all set and should see the "Import projects from Bitbucket" option enabled. If you don't, do the following:
1. Create a new SSH key:
```sh
sudo -u git -H ssh-keygen
```
Make sure to use an **empty passphrase**.
2. Restart GitLab to allow it to find the new public key.
You should now see the "Import projects from Bitbucket" option on the New Project page enabled.
1. You should now see a Client ID and Client Secret near the top right of the page (see screenshot). Keep this page open as you continue configuration. ![GitHub app](github_app.png)
1. You should now see a Client ID and Client Secret near the top right of the page (see screenshot).
Keep this page open as you continue configuration.
![GitHub app](github_app.png)
1. On your GitLab server, open the configuration file.
1. On your GitLab server, open the configuration file.
...
@@ -35,7 +40,7 @@ To enable the GitHub OmniAuth provider you must register your application with G
...
@@ -35,7 +40,7 @@ To enable the GitHub OmniAuth provider you must register your application with G
sudo -u git -H editor config/gitlab.yml
sudo -u git -H editor config/gitlab.yml
```
```
1. See [Initial OmniAuth Configuration](omniauth.md#initial-omniauth-configuration) for inital settings.
1. See [Initial OmniAuth Configuration](omniauth.md#initial-omniauth-configuration) for initial settings.
1. Add the provider configuration:
1. Add the provider configuration:
...
@@ -45,8 +50,8 @@ To enable the GitHub OmniAuth provider you must register your application with G
...
@@ -45,8 +50,8 @@ To enable the GitHub OmniAuth provider you must register your application with G
gitlab_rails['omniauth_providers'] = [
gitlab_rails['omniauth_providers'] = [
{
{
"name" => "github",
"name" => "github",
"app_id" => "YOUR APP ID",
"app_id" => "YOUR_APP_ID",
"app_secret" => "YOUR APP SECRET",
"app_secret" => "YOUR_APP_SECRET",
"url" => "https://github.com/",
"url" => "https://github.com/",
"args" => { "scope" => "user:email" } }
"args" => { "scope" => "user:email" } }
}
}
...
@@ -56,17 +61,19 @@ To enable the GitHub OmniAuth provider you must register your application with G
...
@@ -56,17 +61,19 @@ To enable the GitHub OmniAuth provider you must register your application with G
For installation from source:
For installation from source:
```
```
- { name: 'github', app_id: 'YOUR APP ID',
- { name: 'github', app_id: 'YOUR_APP_ID',
app_secret: 'YOUR APP SECRET',
app_secret: 'YOUR_APP_SECRET',
args: { scope: 'user:email' } }
args: { scope: 'user:email' } }
```
```
1. Change 'YOUR APP ID' to the client ID from the GitHub application page from step 7.
1. Change 'YOUR_APP_ID' to the client ID from the GitHub application page from step 7.
1. Change 'YOUR APP SECRET' to the client secret from the GitHub application page from step 7.
1. Change 'YOUR_APP_SECRET' to the client secret from the GitHub application page from step 7.
1. Save the configuration file.
1. Save the configuration file.
1. Restart GitLab for the changes to take effect.
1. Restart GitLab for the changes to take effect.
On the sign in page there should now be a GitHub icon below the regular sign in form. Click the icon to begin the authentication process. GitHub will ask the user to sign in and authorize the GitLab application. If everything goes well the user will be returned to GitLab and will be signed in.
On the sign in page there should now be a GitHub icon below the regular sign in form.
Click the icon to begin the authentication process. GitHub will ask the user to sign in and authorize the GitLab application.
If everything goes well the user will be returned to GitLab and will be signed in.