GitLab サーバーと Bitbucket クラウドのインテグレーション

Bitbucket.orgをOAuth 2.0プロバイダとして設定することで、Bitbucket.orgアカウントの認証情報を使ってGitLabにサインインすることができます。Bitbucket.orgからプロジェクトをインポートすることもできます。

OAuth2.0認証プロバイダとしてBitbucketを使用します。

Bitbucket OmniAuthプロバイダを有効にするには、Bitbucket.orgにアプリケーションを登録する必要があります。Bitbucketは、アプリケーションIDと秘密鍵を生成します。

  1. Bitbucket.orgにサインインします。
  2. アプリケーションの登録方法に応じて、ユーザー個人の設定(Bitbucket settings)またはチームの設定(Manage team)に移動します。アプリケーションを個人として登録するか、チームとして登録するかは問題ではありません。
  3. 左メニューのAccess ManagementOAuth を選択します。
  4. Add consumerを選択します。
  5. 必要な詳細を入力します:

    • 名前これは何でもかまいません。<Organization>'s GitLab<Your Name>'s GitLab など、わかりやすいものを考えてください。
    • アプリケーションの説明:任意です。必要に応じて記入してください。
    • コールバックURL:(GitLabバージョン8.15以降では必須) GitLabインストールへのURL、例えばhttps://gitlab.example.com/users/auth 。このフィールドを空にすると、Invalid redirect_uri メッセージが表示されます。

      caution
      ユーザーの GitLab アカウントが漏洩するOAuth 2 の隠密リダイレクト脆弱性を防ぐために、Bitbucket 認証コールバック URL の最後に/users/auth を追加してください。
    • URL: https://gitlab.example.com のような、GitLabインストールへのURL。
  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コンシューマーのリストにキーと シークレットが表示されるはずです。このページを開いたまま設定を続けます。

    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プロバイダの設定を追加します:

    Linuxパッケージ・インストールの場合:

    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 アプリケーションページのキー<bitbucket_app_secret>シークレットです。

  11. 設定ファイルを保存します。
  12. 変更を有効にするには、Linuxパッケージを使ってインストールした場合はGitLabを再設定し、セルフコンパイルでインストールした場合は再起動します。

サインインページでは、通常のサインインフォームの下に Bitbucket アイコンが表示されているはずです。アイコンを選択して認証プロセスを開始します。BitbucketはユーザーにサインインとGitLabアプリケーションの作成を求めます。成功すると、ユーザーはGitLabに戻り、サインインします。

Bitbucket プロジェクトのインポート

上記の設定が完了したら、Bitbucket を使って GitLab にサインインし、プロジェクトのインポートを開始します。

Bitbucket からプロジェクトをインポートしたいがサインインは有効にしたくない場合は、管理エリアでサインインを無効にすることができます。