Verbindung zu einem Bitbucket Data Center-Repository herstellen

Auf dieser Seite wird erläutert, wie Sie eine Verbindung zu einem Bitbucket Data Center-Repository mit Cloud Build herstellen.

Hinweise

  • Cloud Build, Secret Manager, and Compute Engine APIs aktivieren.

    Aktivieren Sie die APIs

Verbindung zu einem Bitbucket Data Center-Repository herstellen

Console

So verbinden Sie ein Bitbucket Data Center-Repository über die Google Cloud Console mit Cloud Build:

  1. Öffnen Sie in der Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Wählen Sie oben auf der Seite den Tab 1. Generation aus.

  3. Klicken Sie auf Repository verbinden.

  4. Wählen Sie Bitbucket Data Center aus.

    Das Steuerfeld Repository verbinden wird angezeigt. Führen Sie die folgenden Schritte aus, um Ihr Bitbucket Data Center-Repository zu verbinden:

    1. Region: Wählen Sie die Region aus, in der sich Ihre Verbindung befindet.

    2. Wählen Sie unter Anbieter für Quellcodeverwaltung auswählen die Option Bitbucket Data Center aus.

    3. Hostverbindung: Wählen Sie den Namen Ihrer Hostverbindung aus dem Drop-down-Menü aus.

    4. Klicken Sie auf Weiter.

    5. Wählen Sie unter Repository auswählen die Bitbucket Data Center-Repositories aus, die Sie mit Cloud Build verbinden möchten.

    6. Nachdem Sie Ihr Bitbucket Data Center-Konto und Ihre Repositorys ausgewählt haben, lesen Sie den Haftungsausschluss für die Einwilligung und klicken Sie daneben auf das Kästchen, um die Nutzungsbedingungen zu akzeptieren.

    7. Klicken Sie auf Verbinden, um Ihre Repositories zu verbinden.

  5. Klicken Sie auf Fertig. Klicken Sie optional auf Trigger erstellen.

API

Führen Sie die folgenden Schritte aus, um Ihr Bitbucket Data Center-Repository über die API mit Cloud Build zu verbinden:

  1. Erstellen Sie eine package.json-Datei mit folgendem Inhalt:

    {
      "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",
           }
         }
      }
    }
    

    Wobei:

    • PROJECT_NUMBER ist die Projektnummer Ihres Cloud-Projekts.
    • REGION ist die Region, die Ihrer Bitbucket Data Center-Konfiguration zugeordnet ist.
    • BITBUCKET_DATA_CENTER_CONFIG_NAME ist der Name Ihrer Bitbucket Data Center-Konfiguration.
    • PROJECT_KEY ist der Schlüssel Ihres Bitbucket Data Center-Projekts. Wenn Sie ein persönliches Repository verbinden möchten, sollte Ihr Projektschlüssel das Tilde-Symbol (~) vor Ihrem Nutzernamen enthalten. Beispiel: ~${USERNAME}. Die vollständige URL für ein Host-Repository ähnelt https://${HOST_URI}/projects/~${USER_NAME}/repos/${REPO_SLUG}.
    • REPO_SLUG ist der Slug Ihres Bitbucket Data Center-Repositorys.
  2. Führen Sie den folgenden curl-Befehl in Ihrem Terminal aus demselben Verzeichnis wie die JSON-Datei aus:

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

Wobei:

  • PROJECT_NUMBER die Nummer Ihres Google Cloud-Projekts ist.
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • REGION ist die Region, die Ihrer Bitbucket Data Center-Konfiguration zugeordnet ist.
  • BITBUCKET_DATA_CENTER_CONFIG_NAME ist der Name Ihrer Bitbucket Data Center-Konfiguration. Wenn der Vorgang erfolgreich ist, enthält der Antworttext eine neu erstellte Operation-Instanz.
  1. Führen Sie den folgenden curl-Befehl in Ihrem Terminal aus:

    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
    

    Wobei:

    • PROJECT_NUMBER die Nummer Ihres Google Cloud-Projekts ist.
    • PROJECT_ID ist Ihre Google Cloud-ID.
    • REGION ist die Region, die Ihrer Bitbucket Data Center-Konfiguration zugeordnet ist.
    • OPERATION_ID ist die ID des Konfigurationserstellungsvorgangs im Bitbucket Data Center. Sie finden die Vorgangs-ID im Feld name Ihrer Antwort. Das Format des Felds name in Ihrer Antwort sieht so aus: projects/project-id/locations/region/operations/operation-id.

    Möglicherweise müssen Sie den API-Befehl GetOperation weiter ausführen, bis die Antwort done: true enthält. Das bedeutet, dass der Vorgang abgeschlossen ist. Wenn das Bitbucket Data Center-Repository erfolgreich verbunden wurde, können Sie das verbundene Repository im Feld response.bitbucketServerConnectedRepositories sehen. Andernfalls finden Sie im Feld error einen detaillierten Fehlerbericht.

Wenn ein Repository verbunden ist, konfiguriert Cloud Build einen Webhook für das Repository in Ihrer Bitbucket Data Center-Instanz. Das Repository sendet dann Webhooks, um die entsprechenden Bitbucket Data Center-Trigger aufzurufen, wenn Sie Änderungen an Ihrem Repository vornehmen. Ein Repository kann auch mehrmals mit mehreren Hostverbindungen verbunden werden. Informationen zum Verwalten von Webhooks finden Sie unter Webhooks verwalten.

Sie benötigen die Webhook-ID, um den Webhook zu finden. Die Webhook-ID für jedes verbundene Repository finden Sie in der BitbucketServerConfig.

Geben Sie den folgenden Befehl ein, um die Webhook-ID abzurufen:

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

Wobei:

  • CONFIG_NAME ist der Name der Konfiguration von Bitbucket Data Center.
  • REGION ist die Region der Hostverbindung des Bitbucket Data Center.

Nächste Schritte