Bitbucket データセンター リポジトリに接続する

このページでは、Bitbucket データセンター リポジトリを Cloud Build に接続する方法について説明します。

始める前に

  • Cloud Build, Secret Manager, and Compute Engine API を有効にします。

    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 です。 オペレーション ID は、レスポンスの name フィールドで確認できます。レスポンスの name フィールドの形式は projects/project-id/locations/region/operations/operation-id のようになります。

    オペレーションが完了したことを示す done: true がレスポンスに含まれるまで、GetOperation API コマンドを実行したままにする必要が生じる場合があります。Bitbucket データセンター リポジトリが正常に接続されている場合は、接続されたリポジトリを response.bitbucketServerConnectedRepositories フィールドで確認できます。正常に作成されなかった場合は、error フィールドで詳細なエラーレポートを確認してください。

リポジトリが接続されると、Cloud Build は Bitbucket データセンター インスタンスのリポジトリに Webhook を構成します。リポジトリに変更を加えると、リポジトリが対応する Bitbucket データセンター トリガーを呼び出す Webhook を送信します。リポジトリは、複数のホスト接続で複数回接続することもできます。Webhook の管理方法については、Webhook の管理をご覧ください。

Webhook を見つけるには、Webhook ID が必要です。接続した各リポジトリの Webhook ID は、BitbucketServerConfig で確認できます。

次のコマンドを入力して、Webhook ID を取得します。

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

ここで

  • CONFIG_NAME は、Bitbucket データセンターの構成の名前です。
  • REGION は、Bitbucket データセンター ホスト接続のリージョンです。

次のステップ