Verbindung zu einem Drittanbieter-Git-Repository herstellen

In diesem Dokument erfahren Sie, wie Sie ein Remote-Repository mit einem Dataform-Repository verbinden. Nachdem Sie die Repositories verbunden haben, können die Änderungen, die Sie in einem Dataform-Entwicklungsarbeitsbereich vornehmen, in das Remote-Git-Repository übertragen und daraus abgerufen werden.

Sie können ein Remote-Repository über HTTPS oder SSH verbinden.

In der folgenden Tabelle sind die unterstützten Git-Anbieter und Verbindungsmethoden aufgeführt, die für ihre Repositories verfügbar sind:

Git-Provider Verbindungsmethode
Azure DevOps-Dienste SSH
Bitbucket SSH
GitHub SSH oder HTTPS
GitLab SSH oder HTTPS

Hinweise

  1. Wenn Ihre Organisation oder Ihr Projekt Remote-Git-Repositories mit der dataform.restrictGitRemotes-Richtlinie für Organisationen einschränkt, müssen Sie das Remote-Git-Repository der Zulassungsliste in der Richtlinie hinzufügen, bevor Sie ein Dataform-Repository erstellen, das Sie mit einem Remote-Repository verbinden möchten. Weitere Informationen finden Sie unter Remote-Repositories einschränken.
  2. Wählen Sie ein Dataform-Repository aus oder erstellen Sie ein neues. Sie benötigen es später, um ein Secret für Ihr Standard-Dataform-Dienstkonto freizugeben.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Dataform Admin (roles/dataform.admin) für Repositories zuzuweisen, damit Sie die Berechtigungen erhalten, die Sie zum Verbinden eines Dataform-Repositories mit einem Remote-Git-Repository benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Remote-Repository über SSH verbinden

Wenn Sie eine Verbindung zu einem Remote-Repository über SSH herstellen möchten, müssen Sie einen SSH-Schlüssel und ein Secret Manager-Geheimnis generieren. Der SSH-Schlüssel besteht aus einem öffentlichen und einem privaten SSH-Schlüssel. Sie müssen den öffentlichen SSH-Schlüssel für Ihren Git-Anbieter freigeben und ein Secret Manager-Secret mit dem privaten SSH-Schlüssel erstellen. Geben Sie das Secret dann für Ihr standardmäßiges Dataform-Dienstkonto frei.

Dataform verwendet das Secret mit dem privaten SSH-Schlüssel, um sich bei Ihrem Git-Anbieter anzumelden und Änderungen im Namen der Entwickler zu committen. Dataform führt diese Commits mit der E-Mail-Adresse des Entwicklers aus, damit Sie sehen können, wer welchen Commit vorgenommen hat. Google Cloud

So stellen Sie über SSH eine Verbindung zwischen einem Remote-Repository und einem Dataform-Repository her:

  1. Gehen Sie bei Ihrem Git-Anbieter so vor:

  2. Erstellen Sie in Secret Manager ein Secret und legen Sie Ihren privaten SSH-Schlüssel als Secret-Wert fest.

    1. Gewähren Sie dem Standarddienstkonto von Dataform Zugriff auf das Secret.

      Das Standarddienstkonto für Dataform hat das folgende Format:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Weisen Sie dem Dienstkonto die Rolle roles/secretmanager.secretAccessor zu.

  3. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zu Dataform

  4. Wählen Sie das Dataform-Repository aus, das Sie mit dem Remote-Repository verbinden möchten.

  5. Klicken Sie auf der Repository-Seite auf Einstellungen > Mit Git verbinden.

  6. Geben Sie im Bereich Mit Remote-Repository verknüpfen im Feld URL des Remote-Git-Repositorys die URL des Remote-Git-Repositorys ein, die auf .git enden muss.

    Die URL des Remote-Git-Repositorys muss eines der folgenden Formate haben:

    • Absolute URL: ssh://git@{host_name}[:{port}]/{repository_path}, port ist optional.
    • SCP-ähnliche URL: git@{host_name}:{repository_path}.
  7. Geben Sie im Feld Default remote branch name den Namen des Hauptentwicklungszweigs des Remote-Git-Repositorys ein.

  8. Wählen Sie im Drop-down-Menü Secret das Secret für das Remote-Git-Repository aus.

  9. Geben Sie im Feld Wert des öffentlichen SSH-Hostschlüssels den öffentlichen Hostschlüssel Ihres Git-Anbieters ein.

    Azure DevOps-Dienste

    Der Wert des öffentlichen SSH-Hostschlüssels muss im Format einer known_hosts-Datei vorliegen. Der Wert muss einen Algorithmus und einen öffentlichen Schlüssel enthalten, der im base64-Format codiert ist, aber ohne Hostnamen oder IP-Adresse, im folgenden Format:

    ALGORITHM BASE64_KEY_VALUE
    

    Führen Sie den Befehl ssh-keyscan -t rsa ssh.dev.azure.com im Terminal aus, um den öffentlichen Hostschlüssel von Azure DevOps Services abzurufen.

    Bitbucket

    Der Wert des öffentlichen SSH-Hostschlüssels muss im Format einer known_hosts-Datei vorliegen. Der Wert muss einen Algorithmus und einen öffentlichen Schlüssel enthalten, der im base64-Format codiert ist, aber ohne Hostnamen oder IP-Adresse, im folgenden Format:

    ALGORITHM BASE64_KEY_VALUE
    

    Informationen zum Abrufen des öffentlichen Hostschlüssels von Bitbucket finden Sie unter SSH konfigurieren.

    GitHub

    Der Wert des öffentlichen SSH-Hostschlüssels muss im Format einer known_hosts-Datei vorliegen. Der Wert muss einen Algorithmus und einen öffentlichen Schlüssel enthalten, der im base64-Format codiert ist, aber ohne Hostnamen oder IP-Adresse, im folgenden Format:

    ALGORITHM BASE64_KEY_VALUE
    

    Informationen zum Abrufen des öffentlichen Hostschlüssels von GitHub finden Sie unter SSH-Schlüsselfingerabdrücke von GitHub.

    GitLab

    Der Wert des öffentlichen SSH-Hostschlüssels muss im Format einer known_hosts-Datei vorliegen. Der Wert muss einen Algorithmus und einen öffentlichen Schlüssel enthalten, der im base64-Format codiert ist, aber ohne Hostnamen oder IP-Adresse, im folgenden Format:

    ALGORITHM BASE64_KEY_VALUE
    

    Informationen zum Abrufen des öffentlichen Hostschlüssels von GitLab finden Sie unter SSH-known_hosts-Einträge.

  10. Klicken Sie auf Verknüpfen.

Remote-Repository über HTTPS verbinden

Wenn Sie eine Verbindung zu einem Remote-Repository über HTTPS herstellen möchten, müssen Sie ein Secret Manager-Secret mit einem persönlichen Zugriffstoken erstellen und das Secret für Ihr standardmäßiges Dataform-Dienstkonto freigeben.

Dataform verwendet dann das Zugriffstoken, um sich bei Ihrem Git-Anbieter anzumelden und Änderungen im Namen der Entwickler zu committen. Dataform führt diese Commits mit der E-Mail-Adresse des Entwicklers aus, damit Sie sehen können, wer welchen Commit vorgenommen hat. Google Cloud

So stellen Sie eine Verbindung zwischen einem Remote-Repository und einem Dataform-Repository über HTTPS her:

  1. Gehen Sie bei Ihrem Git-Anbieter so vor:

    GitHub

    1. Erstellen Sie in GitHub ein detailliertes persönliches Zugriffstoken oder ein klassisches persönliches Zugriffstoken.

      • So erstellen Sie ein detailliertes GitHub-persönliches Zugriffstoken:
      1. Wählen Sie den Repositoryzugriff nur für ausgewählte Repositories aus und wählen Sie dann das Repository aus, mit dem Sie eine Verbindung herstellen möchten.

      2. Gewähren Sie Lese- und Schreibzugriff auf den Inhalt des Repositories.

      3. Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.

      • So erstellen Sie ein klassisches persönliches GitHub-Zugriffstoken:
      1. Gewähren Sie Dataform die Berechtigung repo.

      2. Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.

    2. Wenn Ihre Organisation die SAML-Einmalanmeldung (SSO) verwendet, autorisieren Sie das Token.

    GitLab

    1. Erstellen Sie in GitLab ein persönliches GitLab-Zugriffstoken.

    2. Geben Sie dem Token den Namen dataform.

      Das persönliche GitLab-Zugriffstoken muss den Namen dataform haben.

    3. Gewähren Sie Dataform die Berechtigungen api, read_repository und write_repository.

    4. Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.

  2. Erstellen Sie in Secret Manager ein Secret, das das persönliche Zugriffstoken Ihres Remote-Repositories enthält.

  3. Gewähren Sie dem Standarddienstkonto von Dataform Zugriff auf das Secret.

    Das Standarddienstkonto für Dataform hat das folgende Format:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Weisen Sie dem Dienstkonto die Rolle roles/secretmanager.secretAccessor zu.
  4. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zu Dataform

  5. Wählen Sie das Dataform-Repository aus, das Sie mit dem Remote-Repository verbinden möchten.

  6. Klicken Sie auf der Repository-Seite auf Einstellungen > Mit Git verbinden.

  7. Geben Sie im Bereich Mit Remote-Repository verknüpfen im Feld URL des Remote-Git-Repositorys die URL des Remote-Git-Repositorys ein, die auf .git enden muss.

    Die URL des Remote-Git-Repositories darf keine Nutzernamen oder Passwörter enthalten.

  8. Geben Sie im Feld Default remote branch name den Namen des Hauptentwicklungszweigs des Remote-Git-Repositorys ein.

  9. Wählen Sie im Drop-down-Menü Secret das Secret für das Remote-Git-Repository aus.

  10. Klicken Sie auf Verknüpfen.

Verbindung zum Remote-Repository bearbeiten

So bearbeiten Sie eine Verbindung zwischen einem Dataform-Repository und einem Remote-Git-Repository:

  1. Öffnen Sie in der Google Cloud Console die Seite Dataform.

    Zu Dataform

  2. Klicken Sie auf das Repository, das Sie bearbeiten möchten.

  3. Klicken Sie auf der Repository-Seite auf Einstellungen > Git-Verbindung bearbeiten.

  4. Bearbeiten Sie im Bereich Mit Remote-Repository verknüpfen die Verbindungseinstellungen.

  5. Klicken Sie auf Aktualisieren.

Nächste Schritte