GitLab 서버를 Bitbucket Cloud와 통합하기

Tier: Free, Premium, Ultimate Offering: Self-managed

Bitbucket.org를 OAuth 2.0 제공자로 설정하여 Bitbucket.org 계정 자격 증명을 사용하여 GitLab에 로그인할 수 있습니다. 또한 Bitbucket.org에서 프로젝트를 가져올 수도 있습니다.

Bitbucket을 OAuth 2.0 인증 제공자로 사용하기

Bitbucket OmniAuth 제공자를 활성화하려면 Bitbucket.org에 애플리케이션을 등록해야 합니다. Bitbucket은 사용할 애플리케이션 ID와 비밀 키를 생성합니다.

  1. Bitbucket.org에 로그인합니다.
  2. 개인 사용자 설정(Bitbucket 설정) 또는 팀 설정(팀 관리)으로 이동합니다. 애플리케이션을 등록하는 방법에 따라 개인 또는 팀으로 등록하는 것은 중요하지 않습니다.
  3. Access Management 아래의 왼쪽 메뉴에서 OAuth를 선택합니다.
  4. Add consumer를 선택합니다.
  5. 필수 세부 정보를 제공합니다:

    • Name: 어떤 것이든 상관 없습니다. <조직>의 GitLab 또는 <당신의 이름>의 GitLab 또는 기타 설명적인 이름을 고려해보세요.
    • Application description: 선택 사항입니다. 원하면 입력하세요.
    • Callback URL: (GitLab 버전 8.15 이상에서 필요) https://gitlab.example.com/users/auth와 같이 GitLab 설치의 URL이 필요합니다. 이 필드를 비워두면 “잘못된 redirect_uri” 메시지가 표시됩니다.

      caution
      OAuth 2 covert redirect 취약점을 방지하기 위해, 사용자의 GitLab 계정이 침해될 수 있는 가능성이 있는데, Bitbucket 승인 콜백 URL의 끝에 /users/auth를 추가하세요.
    • URL: GitLab 설치의 URL이 필요합니다. https://gitlab.example.com와 같이 입력합니다.
  6. 적어도 다음 권한을 부여하세요:

    계정: 이메일, 읽기
    프로젝트: 읽기
    리포지토리: 읽기
    풀 리퀘스트: 읽기
    이슈: 읽기
    위키: 읽기 및 쓰기
    

    Bitbucket OAuth 설정 페이지

  7. Save를 선택합니다.
  8. 새로 생성된 OAuth 소비자를 선택하면 이제 목록에서 KeySecret을 확인할 수 있습니다. 이 페이지를 계속 유지하면서 구성을 계속합니다.

    Bitbucket OAuth Key

  9. GitLab 서버에서 구성 파일을 엽니다:

    # Omnibus 패키지의 경우
    sudo editor /etc/gitlab/gitlab.rb
    
    # 소스에서 설치한 경우
    sudo -u git -H editor /home/git/gitlab/config/gitlab.yml
    
  10. Bitbucket 제공자 구성을 추가합니다:

    Linux 패키지 설치의 경우:

    gitlab_rails['omniauth_providers'] = [
      {
        name: "bitbucket",
        # label: "제공자 이름", # 선택 사항의 로그인 버튼 레이블, 기본값은 "Bitbucket"
        app_id: "<bitbucket_app_key>",
        app_secret: "<bitbucket_app_secret>",
        url: "https://bitbucket.org/",
        args: { redirect_uri: "https://gitlab.example.com/users/auth/" },
      }
    ]
    

    소스에서 직접 설치한 경우:

    omniauth:
      enabled: true
      providers:
        - { name: 'bitbucket',
            # label: '제공자 이름', # 선택 사항의 로그인 버튼 레이블, 기본값은 "Bitbucket"
            app_id: '<bitbucket_app_key>',
            app_secret: '<bitbucket_app_secret>',
            url: 'https://bitbucket.org/',
            args: { redirect_uri: "https://gitlab.example.com/users/auth/" },
          }
    

    <bitbucket_app_key>는 Bitbucket 애플리케이션 페이지의 Key, <bitbucket_app_secret>Secret입니다.

  11. 구성 파일을 저장합니다.
  12. 변경 사항이 적용되려면 Linux 패키지를 사용하여 설치한 경우 GitLab 재구성 또는 소스에서 직접 설치한 경우 재시작해야 합니다.

로그인 페이지에서 일반 로그인 양식 아래에 이제 Bitbucket 아이콘이 표시됩니다. 해당 아이콘을 선택하여 인증 프로세스를 시작합니다. Bitbucket은 사용자에게 로그인하고 GitLab 애플리케이션을 승인하도록 요청합니다. 성공하면 사용자는 GitLab로 돌아와 로그인됩니다.

Bitbucket 프로젝트 가져오기

위의 구성을 설정한 후 Bitbucket을 사용하여 GitLab에 로그인하고 프로젝트를 가져오는 작업을 시작할 수 있습니다.

Bitbucket에서 프로젝트를 가져오고 싶지만 로그인을 활성화하고 싶지 않은 경우, 관리자 영역에서 로그인 활성화 또는 비활성화를 할 수 있습니다.