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
- 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. - 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:
Gehen Sie bei Ihrem Git-Anbieter so vor:
Azure DevOps-Dienste
Bitbucket
GitHub
- Erstellen Sie in GitHub einen privaten SSH-Schlüssel.
- Laden Sie den öffentlichen SSH-Schlüssel von GitHub in Ihr GitHub-Repository hoch.
GitLab
Erstellen Sie in Secret Manager ein Secret und legen Sie Ihren privaten SSH-Schlüssel als Secret-Wert fest.
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
Weisen Sie dem Dienstkonto die Rolle
roles/secretmanager.secretAccessor
zu.
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie das Dataform-Repository aus, das Sie mit dem Remote-Repository verbinden möchten.
Klicken Sie auf der Repository-Seite auf Einstellungen > Mit Git verbinden.
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}
.
- Absolute URL:
Geben Sie im Feld Default remote branch name den Namen des Hauptentwicklungszweigs des Remote-Git-Repositorys ein.
Wählen Sie im Drop-down-Menü Secret das Secret für das Remote-Git-Repository aus.
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 imbase64
-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 imbase64
-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 imbase64
-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 imbase64
-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.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:
Gehen Sie bei Ihrem Git-Anbieter so vor:
GitHub
Erstellen Sie in GitHub ein detailliertes persönliches Zugriffstoken oder ein klassisches persönliches Zugriffstoken.
- So erstellen Sie ein detailliertes GitHub-persönliches Zugriffstoken:
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.
Gewähren Sie Lese- und Schreibzugriff auf den Inhalt des Repositories.
Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.
- So erstellen Sie ein klassisches persönliches GitHub-Zugriffstoken:
Gewähren Sie Dataform die Berechtigung
repo
.Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.
Wenn Ihre Organisation die SAML-Einmalanmeldung (SSO) verwendet, autorisieren Sie das Token.
GitLab
Erstellen Sie in GitLab ein persönliches GitLab-Zugriffstoken.
Geben Sie dem Token den Namen
dataform
.Das persönliche GitLab-Zugriffstoken muss den Namen
dataform
haben.Gewähren Sie Dataform die Berechtigungen
api
,read_repository
undwrite_repository
.Legen Sie eine Token-Ablaufzeit fest, die Ihren Anforderungen entspricht.
Erstellen Sie in Secret Manager ein Secret, das das persönliche Zugriffstoken Ihres Remote-Repositories enthält.
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
- Weisen Sie dem Dienstkonto die Rolle
roles/secretmanager.secretAccessor
zu.
- Weisen Sie dem Dienstkonto die Rolle
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Wählen Sie das Dataform-Repository aus, das Sie mit dem Remote-Repository verbinden möchten.
Klicken Sie auf der Repository-Seite auf Einstellungen > Mit Git verbinden.
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.
Geben Sie im Feld Default remote branch name den Namen des Hauptentwicklungszweigs des Remote-Git-Repositorys ein.
Wählen Sie im Drop-down-Menü Secret das Secret für das Remote-Git-Repository aus.
Klicken Sie auf Verknüpfen.
Verbindung zum Remote-Repository bearbeiten
So bearbeiten Sie eine Verbindung zwischen einem Dataform-Repository und einem Remote-Git-Repository:
Öffnen Sie in der Google Cloud Console die Seite Dataform.
Klicken Sie auf das Repository, das Sie bearbeiten möchten.
Klicken Sie auf der Repository-Seite auf Einstellungen > Git-Verbindung bearbeiten.
Bearbeiten Sie im Bereich Mit Remote-Repository verknüpfen die Verbindungseinstellungen.
Klicken Sie auf Aktualisieren.
Nächste Schritte
Weitere Informationen zu Dataform-Repositories finden Sie unter Repository erstellen.
Informationen zum Erstellen eines Entwicklungsarbeitsbereichs finden Sie unter Arbeitsbereich erstellen.
Informationen zur Fehlerbehebung bei Problemen mit Remote-Repository-Verbindungen finden Sie unter Fehlerbehebung für Dataform.