Bitbucket 데이터 센터 저장소에 연결

이 페이지에서는 Bitbucket 데이터 센터 저장소에 Cloud Build를 연결하는 방법을 설명합니다.

시작하기 전에

  • API Cloud Build, Secret Manager, and Compute Engine 사용 설정

    API 사용 설정

Bitbucket 데이터 센터 저장소에 연결

콘솔

Google Cloud 콘솔을 사용하여 Bitbucket 데이터 센터 저장소를 Cloud Build에 연결하려면 다음 안내를 따르세요.

  1. Google Cloud 콘솔에서 저장소 페이지를 엽니다.

    저장소 페이지 열기

  2. 페이지 상단에서 1세대 탭을 선택합니다.

  3. 저장소 연결을 클릭합니다.

  4. Bitbucket 데이터 센터를 선택합니다.

    저장소 연결 패널이 표시됩니다. Bitbucket 데이터 센터 저장소를 연결하려면 다음 단계를 완료하세요.

    1. 리전: 연결이 있는 리전을 선택합니다.

    2. 소스 코드 관리 제공업체 선택에서 Bitbucket 데이터 센터를 선택합니다.

    3. 호스트 연결: 드롭다운 메뉴에서 호스트 연결의 이름을 선택합니다.

    4. 계속을 클릭합니다.

    5. 저장소 선택에서 Cloud Build에 연결할 Bitbucket 데이터 센터 저장소를 선택합니다.

    6. Bitbucket 데이터 센터 및 저장소를 선택한 후 동의 면책조항을 읽고 그 옆에 있는 체크박스를 선택하여 표시된 약관에 동의합니다.

    7. 연결을 클릭하여 저장소를 연결합니다.

  5. 완료를 클릭합니다. 선택적으로 트리거 만들기를 클릭하여 트리거를 만듭니다.

API

API를 사용하여 Bitbucket 데이터 센터 저장소를 Cloud Build에 연결하려면 다음 단계를 수행합니다.

  1. 다음 콘텐츠로 JSON 파일을 만듭니다.

    {
      "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_DATA_CENTER_CONFIG_NAME",
      "requests": {
        "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_DATA_CENTER_CONFIG_NAME",
        "bitbucketServerConnectedRepository": {
          "parent": "projects/PROJECT_NUMBER/locations/REGION/bitbucketServerConfigs/BITBUCKET_DATA_CENTER_CONFIG_NAME",
          "repo": {
             "projectKey":"PROJECT_KEY",
             "repoSlug": "REPO_SLUG",
           }
         }
      }
    }
    

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_NUMBER: Cloud 프로젝트의 프로젝트 번호입니다.
    • REGION: Bitbucket 데이터 센터 구성과 연결된 리전입니다.
    • BITBUCKET_DATA_CENTER_CONFIG_NAME: Bitbucket 데이터 센터 구성의 이름입니다.
    • PROJECT_KEY: Bitbucket 데이터 센터 프로젝트의 키입니다. 개인 저장소를 연결하려면 프로젝트 키에 사용자 이름 앞에 물결표(~) 기호가 포함되어 있어야 합니다. 예를 들면 ~${USERNAME}입니다. 호스트 저장소의 전체 URL은 https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}와 비슷합니다.
    • REPO_SLUG: Bitbucket 데이터 센터 저장소의 슬러그입니다.
  2. JSON 파일과 동일한 디렉터리의 터미널에서 다음 curl 명령어를 실행합니다.

curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/bitbucketServerConfigs/BITBUCKET_DATA_CENTER_CONFIG_NAME/connectedRepositories:batchCreate -d @requests.json

각 항목의 의미는 다음과 같습니다.

  • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • REGION: Bitbucket 데이터 센터 구성과 연결된 리전입니다.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME: Bitbucket 데이터 센터 구성의 이름입니다. 요청이 성공하면 응답 본문에 새로 생성된 Operation의 인스턴스가 포함됩니다.
  1. 터미널에서 다음 curl 명령어를 실행합니다.

    curl -X GET -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8"  -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID
    

    각 항목의 의미는 다음과 같습니다.

    • PROJECT_NUMBER: Google Cloud 프로젝트 번호입니다.
    • PROJECT_ID: Google Cloud ID입니다.
    • REGION: Bitbucket 데이터 센터 구성과 연결된 리전입니다.
    • OPERATION_ID: Bitbucket 데이터 센터 구성 만들기 작업의 ID입니다. 응답의 name 필드에서 작업 ID를 찾을 수 있습니다. 응답의 name 필드는 projects/project-id/locations/region/operations/operation-id 형식으로 표시됩니다.

    작업이 완료되었음을 나타내는 done: true가 포함될 때까지 GetOperation API 명령어를 계속 실행해야 할 수 있습니다. Bitbucket 데이터 센터 저장소가 성공적으로 연결되면 response.bitbucketServerConnectedRepositories 필드에서 연결된 저장소를 볼 수 있습니다. 그렇지 않은 경우 error 필드를 참조하여 자세한 오류 보고서를 확인합니다.

저장소가 연결되면 Cloud Build가 Bitbucket 데이터 센터 인스턴스의 저장소에 웹훅을 구성합니다. 그런 다음 저장소는 웹훅을 전송하여 저장소를 변경할 때 해당 Bitbucket 데이터 센터 트리거를 호출합니다. 저장소는 여러 호스트 연결로 여러 번 연결될 수도 있습니다. 웹훅을 관리하는 방법은 웹훅 관리를 참조하세요.

웹훅을 찾으려면 웹훅 ID가 필요합니다. 연결된 각 저장소의 웹훅 ID는 BitbucketServerConfig에서 확인할 수 있습니다.

다음 명령어를 입력하여 웹훅 ID를 검색합니다.

gcloud alpha builds enterprise-config bitbucketserver describe CONFIG_NAME  --region=REGION

각 항목의 의미는 다음과 같습니다.

  • CONFIG_NAME: Bitbucket 데이터 센터 구성의 이름입니다.
  • REGION: Bitbucket 데이터 센터 호스트 연결의 리전입니다.

다음 단계