Verbindung zu einem GitHub-Repository herstellen

Auf dieser Seite wird erläutert, wie Sie ein GitHub mit Cloud Build verbinden. Weitere Informationen zu Cloud Build-Repositories finden Sie unter Cloud Build-Repositories.

Hinweise

  • Cloud Build and Secret Manager APIs aktivieren.

    Aktivieren Sie die APIs

  • Halten Sie Ihren Quellcode in einem GitHub-Repository bereit.
  • Sie benötigen entweder eine Dockerfile oder eine Cloud Build-Konfigurationsdatei in Ihrem GitHub-Quell-Repository.
  • Wenn Sie Ihr Repository zum ersten Mal mit Cloud Build verbinden, benötigen Sie Berechtigungen auf Administratorebene für das Repository. Weitere Informationen zu GitHub-Repository-Berechtigungen finden Sie unter Repository-Berechtigungsstufen für eine Organisation.
  • Installieren Sie die Google Cloud CLI, um gcloud-Befehle auf dieser Seite zu verwenden.

GitHub-Host verbinden

Console

So verbinden Sie Ihr GitHub-Repository mit Cloud Build:

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

    Zur Seite „Repositories“

    Die Seite Repositories wird angezeigt.

  2. Wählen Sie in der Projektauswahl in der oberen Leiste Ihr Google Cloud-Projekt aus.

  3. Wählen Sie oben auf der Seite den Tab 2nd gen (2. Generation) aus.

  4. Klicken Sie auf Hostverbindung erstellen, um einen neuen Host mit Cloud Build zu verbinden.

  5. Wählen Sie im linken Bereich GitHub als Quellanbieter aus.

  6. Geben Sie im Abschnitt Verbindung konfigurieren die folgenden Informationen ein:

    1. Region: Wählen Sie eine Region für Ihre Verbindung aus.

    2. Name: Geben Sie einen Namen für die Verbindung ein.

  7. Klicken Sie auf Verbinden.

    Nachdem Sie auf die Schaltfläche Verbinden geklickt haben, werden Sie aufgefordert, die Cloud Build-GitHub-Anwendung für den Zugriff auf Ihr GitHub-Konto zu autorisieren. Sie können den Zugriff auf die App jederzeit widerrufen, indem Sie sie auf Ihrem Host deinstallieren oder löschen.

    Cloud Build fordert die Autorisierung Ihres GitHub-Nutzerkontos an und speichert das resultierende Autorisierungstoken als Secret in Secret Manager in Ihrem Projekt. Mit dem Autorisierungstoken wird der Zugriff Ihres Nutzerkontos auf die Installation der Cloud Build-GitHub-Anwendung und auf die verknüpften Repositories validiert. Das Konto des Cloud Build-Dienst-Agents (service-{projectNumber}@gcp-sa-cloudbuild.iam.gserviceaccount.com) wird für den Zugriff auf Ihr Secret verwendet. Informationen zum Anzeigen von Secrets finden Sie unter Secrets auflisten und Secret-Details ansehen.

    Nach der Autorisierung der Cloud Build GitHub-Anwendung werden Sie zur Cloud Build-Seite Repositories weitergeleitet.

Sie haben jetzt erfolgreich eine GitHub-Verbindung erstellt.

gcloud

Führen Sie die folgenden Schritte aus, um Ihren GitHub-Host mithilfe von gcloud zu verbinden:

  1. Geben Sie den folgenden Befehl ein, um eine Verbindung zu Ihrem GitHub-Repository herzustellen:

     gcloud builds connections create github CONNECTION_NAME --region=REGION
    

    Wobei:

    • CONNECTION_NAME ist der Name Ihrer Verbindung.
    • REGION ist die Region für Ihren Trigger.

    Nachdem Sie den Befehl gcloud builds connections ausgeführt haben, wird ein Link zum Autorisieren der Cloud Build GitHub-Anwendung angezeigt.

  2. Melden Sie sich in Ihrem github.com-Konto an.

  3. Folgen Sie dem Link, um die Cloud Build-GitHub-Anwendung zu autorisieren.

    Nach der Autorisierung der Anwendung speichert Cloud Build ein Authentifizierungstoken als Secret in Secret Manager in Ihrem Google Cloud-Projekt. Sie können Ihre Secrets auf der Seite Secret Manager ansehen.

  4. Installieren Sie die Cloud Build-GitHub-Anwendung in Ihrem Konto oder in einer Ihrer Organisationen.

    Erlauben Sie die Installation mit Ihrem GitHub-Konto und wählen Sie Repository-Berechtigungen aus, wenn Sie dazu aufgefordert werden.

  5. Prüfen Sie die Installation Ihrer GitHub-Verbindung mit dem folgenden Befehl:

     gcloud builds connections describe CONNECTION_NAME --region=REGION
    

    Wobei:

    • CONNECTION_NAME ist der Name Ihrer Verbindung.
    • REGION ist die Region für Ihren Trigger.

    Wenn das Feld installationState auf COMPLETE gesetzt ist, haben Sie die Verbindung erfolgreich installiert. Andernfalls enthält das Feld installationState einen Link für die zusätzlichen erforderlichen Schritte.

Sie haben jetzt erfolgreich eine GitHub-Verbindung erstellt.

GitHub-Host programmatisch verbinden

Terraform

So verbinden Sie Ihren GitHub-Host über den Google Terraform-Anbieter mit Cloud Build:

  1. Installieren Sie die GitHub-Anwendung von Cloud Build in Ihrem GitHub-Konto oder in einer Ihnen gehörenden Organisation.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Achten Sie darauf, dass Ihr Token kein Ablaufdatum hat, und wählen Sie die folgenden Berechtigungen aus, wenn Sie in GitHub dazu aufgefordert werden: repo und read:user. Wenn Ihre App in einer Organisation installiert ist, müssen Sie auch die Berechtigung read:org auswählen.

    Nachdem Sie Ihr persönliches Zugriffstoken generiert haben, speichern Sie das generierte Token an einem sicheren Ort. Sie verwenden das generierte Token in den folgenden Schritten.

Im folgenden Beispiel führt das Code-Snippet folgende Schritte aus:

  • Konfiguriert den Google-Anbieter für Terraform

  • Erstellt ein Secret zum Speichern persönlicher GitHub-Zugriffstokens, um dem Cloud Build-Dienst-Agent Berechtigungen für den Zugriff auf das Secret zu gewähren

  • Erstellt eine GitHub-Verbindung

    // Configure the terraform google provider
    terraform {
      required_providers {
        google = {}
       }
    }
    
    // Create a secret containing the personal access token and grant permissions to the Service Agent
    resource "google_secret_manager_secret" "github_token_secret" {
        project =  PROJECT_ID
        secret_id = SECRET_ID
    
        replication {
            automatic = true
        }
    }
    
    resource "google_secret_manager_secret_version" "github_token_secret_version" {
        secret = google_secret_manager_secret.github_token_secret.id
        secret_data = GITHUB_PAT
    }
    
    data "google_iam_policy" "serviceagent_secretAccessor" {
        binding {
            role = "roles/secretmanager.secretAccessor"
            members = ["serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudbuild.iam.gserviceaccount.com"]
        }
    }
    
    resource "google_secret_manager_secret_iam_policy" "policy" {
      project = google_secret_manager_secret.github_token_secret.project
      secret_id = google_secret_manager_secret.github_token_secret.secret_id
      policy_data = data.google_iam_policy.serviceagent_secretAccessor.policy_data
    }
    
    // Create the GitHub connection
    resource "google_cloudbuildv2_connection" "my_connection" {
        project = PROJECT_ID
        location = REGION
        name = CONNECTION_NAME
    
        github_config {
            app_installation_id = INSTALLATION_ID
            authorizer_credential {
                oauth_token_secret_version = google_secret_manager_secret_version.github_token_secret_version.id
            }
        }
        depends_on = [google_secret_manager_secret_iam_policy.policy]
    }
    

Wobei:

  • PROJECT_NUMBER ist die Nummer Ihres Google Cloud-Projekts.
  • SECRET_ID ist die ID Ihres Tokens oder Secrets in Secret Manager.
  • GITHUB_PAT ist die ID Ihres persönlichen Zugriffstokens in GitHub.
  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • REGION ist die Region für Ihre Verbindung.
  • CONNECTION_NAME ist der Name der GitHub-Verbindung.
  • INSTALLATION_ID ist die Installations-ID der Cloud Build-GitHub-Anwendung. Sie finden die Installations-ID in der URL Ihrer Cloud Build-GitHub-Anwendung. In der URL https://github.com/settings/installations/1234567 ist die Installations-ID der numerische Wert 1234567.

Sie haben jetzt erfolgreich eine GitHub-Verbindung erstellt.

gcloud

Führen Sie die folgenden Schritte aus, um den GitHub-Host mithilfe eines vorhandenen Tokens und einer vorhandenen Installations-ID aus einer vorherigen Verbindung zu verbinden:

  1. Installieren Sie die GitHub-Anwendung von Cloud Build in Ihrem GitHub-Konto oder in einer Ihnen gehörenden Organisation.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Achten Sie darauf, dass Ihr Token kein Ablaufdatum hat, und wählen Sie die folgenden Berechtigungen aus, wenn Sie in GitHub dazu aufgefordert werden: repo und read:user. Wenn Ihre App in einer Organisation installiert ist, müssen Sie auch die Berechtigung read:org auswählen.

    Nachdem Sie Ihr persönliches Zugriffstoken generiert haben, speichern Sie das generierte Token an einem sicheren Ort. Sie verwenden das generierte Token in den folgenden Schritten.

  3. Speichern Sie das Token in Secret Manager in Ihrem Google Cloud-Projekt. Führen Sie dazu den folgenden Befehl aus:

        echo -n TOKEN | gcloud secrets create SECRET_NAME --data-file=-
    

    Wobei:

    • TOKEN ist Ihr persönliches Zugriffstoken.
    • SECRET_NAME ist der Name, den Sie Ihrem Secret in Secret Manager geben möchten.
  4. Gewähren Sie dem Cloud Build-Dienst-Agent Zugriff auf das Secret, wobei SECRET_NAME der Name des Secrets ist, das in Secret Manager gespeichert ist:

      PROJECT_ID=$(gcloud config list --format="value(core.project)")
      PN=$(gcloud projects describe ${PROJECT_ID} --format="value(projectNumber)")
      CLOUD_BUILD_SERVICE_AGENT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
      gcloud secrets add-iam-policy-binding SECRET_NAME \
        --member="serviceAccount:${CLOUD_BUILD_SERVICE_AGENT}" \
        --role="roles/secretmanager.secretAccessor"
    
  5. Erstellen Sie die GitHub-Verbindung:

      gcloud builds connections create github CONNECTION_NAME \
        --authorizer-token-secret-version=projects/PROJECT_ID/secrets/SECRET_NAME/versions/1  \
        --app-installation-id=INSTALLATION_ID --region=REGION
    

    Wobei:

    • CONNECTION_NAME ist der Name Ihrer Verbindung.
    • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
    • SECRET_NAME ist der Name Ihres Secrets, wie es in Secret Manager gespeichert ist.
    • INSTALLATION_ID ist die Installations-ID Ihrer GitHub-Anwendung. Sie finden die Installations-ID in der URL Ihrer Cloud Build-GitHub-Anwendung. In der URL https://github.com/settings/installations/1234567 ist die Installations-ID der numerische Wert 1234567.
    • REGION ist die Region Ihrer Verbindung.

Sie haben jetzt erfolgreich eine GitHub-Verbindung erstellt.

GitHub-Repository verbinden

Console

Führen Sie die folgenden Schritte aus, um ein GitHub-Repository mit einer Hostverbindung zu verbinden:

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

    Zur Seite „Repositories“

    Die Seite Repositories wird angezeigt.

  2. Wählen Sie oben auf der Seite den Tab 2nd gen (2. Generation) aus.

  3. Klicken Sie auf Repositories verknüpfen, um Repositories aus Ihrer Verbindung zu verknüpfen.

    Der Bereich Repositories verbinden wird angezeigt.

  4. Geben Sie im Bereich Repositories verbinden die folgenden Informationen ein:

    1. Verbindung: Wählen Sie eine Verbindung aus dem Drop-down-Menü aus.
    2. Repository: Wählen Sie ein Repository aus, das mit Ihrer Verbindung verknüpft werden soll.

    3. Repository-Name: Geben Sie einen Namen für das Repository ein.

      1. Generated (Generiert): Wählen Sie diese Option aus, damit Cloud Build automatisch Repository-Namen für ausgewählte Repositories in Ihrem Namen generiert.
      2. Manuell: Wählen Sie diese Option aus, um Namen für die ausgewählten Repositories manuell anzugeben.

        Wenn Sie Manuell auswählen, können Sie die Namen der ausgewählten Repositories im Abschnitt Repository-Namen ändern.

  5. Klicken Sie auf Verknüpfen, um Ihr Repository mit Ihrer Verbindung zu verknüpfen.

Sie haben Ihr GitHub-Repository jetzt erfolgreich mit Ihrer Verbindung verknüpft.

gcloud

Geben Sie den folgenden Befehl ein, um Ihrer Verbindung ein GitHub-Repository hinzuzufügen:

   gcloud builds repositories create REPO_NAME \
     --remote-uri=REPO_URI \
     --connection=CONNECTION_NAME --region=REGION

Wobei:

  • REPO_NAME ist der Name Ihres Repositorys.
  • REPO_URI ist der Link zu Ihrem GitHub-Repository. Beispiel: https://github.com/cloud-build/test-repo.git
  • CONNECTION_NAME ist der Name Ihrer Verbindung.
  • REGION ist die Region für Ihre Verbindung.

Sie haben jetzt ein Repository mit Ihrer GitHub-Verbindung verknüpft.

Terraform

Um der Verbindung ein GitHub-Repository hinzuzufügen, fügen Sie Ihrer Terraform-Konfiguration das folgende Code-Snippet hinzu:

    resource "google_cloudbuildv2_repository" "my_repository" {
      project = "PROJECT_ID"
      location = "REGION"
      name = "REPO_NAME"
      parent_connection = google_cloudbuildv2_connection.my_connection.name
      remote_uri = "URI"
  }

Wobei:

  • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
  • REPO_NAME ist der Name Ihres GitHub-Repositorys.
  • REGION ist die Region für Ihre Verbindung.
  • URI ist der Host-URI Ihres Repositorys. Beispiel: https://github.com/myuser/myrepo.git

Sie haben jetzt ein Repository mit Ihrer GitHub-Verbindung verknüpft.

Nächste Schritte