Verbindung zu einem GitHub-Repository herstellen

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

Hinweise

  • Enable the Cloud Build and Secret Manager APIs.

    Enable the 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“

    Sie sehen die Seite Repositories.

  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 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 die 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, der Cloud Build GitHub-Anwendung Zugriff auf Ihr GitHub-Konto zu gewähren. Sie können den Zugriff auf die App jederzeit widerrufen, indem Sie die App von 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. Das Autorisierungstoken ist wird verwendet, um den Zugriff Ihres Benutzerkontos für die Installation des Cloud Build-GitHub-Anwendung und die verknüpften Repositories. Cloud Build Das Dienst-Agent-Konto (service-{projectNumber}@gcp-sa-cloudbuild.iam.gserviceaccount.com) wird für den Zugriff auf Ihr Secret verwendet. So rufen Sie Ihr Secret auf: Weitere Informationen finden Sie unter Secrets auflisten und Secret-Details ansehen.

    Nach der Autorisierung der Cloud Build-GitHub-Anwendung an die Cloud Build-Repositories weitergeleitet Seite.

Sie haben nun erfolgreich eine GitHub-Verbindung erstellt.

gcloud

So verbinden Sie Ihren GitHub-Host mit gcloud: führen Sie die folgenden Schritte aus:

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

     gcloud builds connections create github CONNECTION_NAME --region=REGION
    

    Wobei:

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

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

  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 eine Authentifizierung Token als Secret in Secret Manager in Ihrer Google Cloud Projekt arbeiten. Sie können Ihre Secrets auf der Seite Secret Manager ansehen.

  4. Installieren Sie die Cloud Build GitHub-App in Ihrem Konto oder in einer Organisation, deren Inhaber Sie sind.

    Lassen Sie die Installation mit Ihrem GitHub-Konto zu und wählen Sie das Repository aus wenn Sie dazu aufgefordert werden.

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

     gcloud builds connections describe CONNECTION_NAME --region=REGION
    

    Wobei:

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

    Wenn das Feld installationState auf COMPLETE gesetzt ist, wurde die Verbindung erfolgreich installiert. Andernfalls enthält das Feld installationState einen Link zu den erforderlichen zusätzlichen Schritten.

Sie haben jetzt eine GitHub-Verbindung erstellt.

GitHub-Host programmatisch verbinden

Terraform

Sie können Ihren GitHub-Host über den Google Terraform-Provider mit Cloud Build verbinden. Führen Sie dazu die folgenden Schritte aus:

  1. Cloud Build GitHub-Anwendung installieren in Ihrem GitHub-Konto oder in einer Organisation, deren Inhaber Sie sind.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Achten Sie darauf, dass Ihr Token kein Ablaufdatum hat, und wählen Sie die Option die folgenden Berechtigungen, 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 an einem sicheren Ort. Sie verwenden das generierte Token im folgenden Schritten.

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

  • Konfiguriert den Terraform-Google-Anbieter

  • Erstellt ein Secret zum Speichern persönlicher GitHub-Zugriffstokens, um dem Cloud Build-Dienstagenten Berechtigungen zum 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 {
            auto {}
        }
    }
    
    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 Ihrer GitHub-Verbindung.
  • INSTALLATION_ID ist die Installations-ID Ihrer Cloud Build-GitHub-Anwendung. Ihr Die Installations-ID finden Sie in der URL Ihres Cloud Build- GitHub-Anwendung In der URL https://github.com/settings/installations/1234567 ist die Installations-ID der numerische Wert 1234567.

Sie haben jetzt eine GitHub-Verbindung erstellt.

gcloud

So stellen Sie eine Verbindung zwischen Ihrem GitHub-Host und einem vorhandenen Token und einer Installations-ID her, die Sie bei einer früheren Verbindung erhalten haben:

  1. Installieren Sie die Cloud Build GitHub-App in Ihrem GitHub-Konto oder in einer Organisation, deren Inhaber Sie sind.

  2. Erstellen Sie ein persönliches Zugriffstoken.

    Achten Sie darauf, dass Ihr Token kein Ablaufdatum hat, und wählen Sie in GitHub die folgenden Berechtigungen aus: 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 an einem sicheren Ort. Sie verwenden das generierte Token im folgenden Schritten.

  3. Speichern Sie Ihr 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 in Secret Manager erstellen.
  4. Gewähren Sie dem Cloud Build-Dienst-Agent für das Secret Zugriff, wobei SECRET_NAME ist der Name Ihres Secrets, wie er in folgendem Verzeichnis gespeichert ist: Secret Manager:

      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 der Verbindung.
    • PROJECT_ID ist Ihre Google Cloud-Projekt-ID.
    • SECRET_NAME ist der Name des Secrets, wie er im Secret Manager gespeichert ist.
    • INSTALLATION_ID ist die Installations-ID Ihrer GitHub-App. Sie finden sie in der URL Ihrer Cloud Build-GitHub-App. In der folgenden URL, https://github.com/settings/installations/1234567, ist die Installations-ID der numerische Wert 1234567.
    • REGION ist die Region Ihrer Verbindung.

Sie haben jetzt eine GitHub-Verbindung erstellt.

GitHub-Repository verbinden

Console

So stellen Sie eine Verbindung zwischen einem GitHub-Repository und einer Hostverbindung her:

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

    Zur Seite „Repositories“

    Sie sehen die Seite Repositories.

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

  3. Klicken Sie auf Repositorys verknüpfen, um Repositories über Ihre 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 im Drop-down-Menü eine Verbindung 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. 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 mit Ihrer Verbindung verknüpft.

gcloud

Wenn Sie Ihrer Verbindung ein GitHub-Repository hinzufügen möchten, geben Sie den folgenden Befehl ein:

   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 der Verbindung.
  • REGION ist die Region für Ihre Verbindung.

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

Terraform

Wenn Sie Ihrer Verbindung ein GitHub-Repository hinzufügen möchten, 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