Questo documento mostra come collegare un repository remoto a un repository Dataform. Dopo aver collegato i repository, le modifiche apportate in un workspace di sviluppo Dataform possono essere inviate e recuperate dal repository Git remoto.
Puoi connettere un repository remoto tramite HTTPS o SSH.
Nella tabella seguente sono elencati i fornitori Git supportati e i metodi di connessione disponibili per i relativi repository:
Provider Git | Metodo di connessione |
---|---|
Azure DevOps Services | SSH |
Bitbucket | SSH |
GitHub | SSH o HTTPS |
GitLab | SSH o HTTPS |
Prima di iniziare
- Se la tua organizzazione o il tuo progetto limita i repository Git remoti con i criteri dell'organizzazione
dataform.restrictGitRemotes
, assicurati che il repository Git remoto sia aggiunto alla lista consentita nei criteri prima di creare un repository Dataform da collegare a un repository remoto. Per ulteriori informazioni, consulta Limitare i repository remoti. - Seleziona o crea un repository Dataform. Ti servirà in un secondo momento per condividere un secret con il tuo account di servizio Dataform predefinito.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per connettere un repository Dataform a un repository Git remoto,
chiedi all'amministratore di concederti il ruolo IAM Amministratore Dataform (roles/dataform.admin
) nei repository.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Connetti un repository remoto tramite SSH
Per connettere un repository remoto tramite SSH, devi generare una chiave SSH e un segreto di Secret Manager. La chiave SSH è composta da una chiave SSH pubblica e una chiave SSH privata. Devi condividere la chiave SSH pubblica con il tuo provider Git e creare un secret di Secret Manager con la chiave SSH privata. Poi, condividi il secret con il tuo account di servizio Dataform predefinito.
Dataform utilizza il secret con la chiave SSH privata per accedere al tuo provider Git e committare le modifiche per conto degli sviluppatori. Dataform esegue questi commit utilizzando l' Google Cloud indirizzo email dello sviluppatore, in modo da poter capire chi ha eseguito ogni commit.
Per collegare un repository remoto a un repository Dataform tramite SSH:
Nel tuo provider Git:
Azure DevOps Services
- In Azure DevOps Services, crea una chiave SSH privata.
- Carica la chiave SSH pubblica nel tuo repository di Azure DevOps Services.
Bitbucket
- In Bitbucket, crea una chiave SSH privata.
- Carica la chiave pubblica SSH nel tuo repository Bitbucket.
GitHub
- In GitHub, crea una chiave SSH privata.
- Carica la chiave SSH pubblica di GitHub nel tuo repository GitHub.
GitLab
- In GitLab, crea una chiave SSH privata.
- Carica la chiave SSH pubblica di GitLab nel tuo repository GitLab.
In Secret Manager, crea un secret e imposta la chiave SSH privata come valore del secret.
Concedi l'accesso al secret al tuo account di servizio Dataform predefinito.
Il tuo account di servizio Dataform predefinito ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Concedi il ruolo
roles/secretmanager.secretAccessor
all'account di servizio.
Nella console Google Cloud, vai alla pagina Dataform.
Seleziona il repository Dataform da collegare al repository remoto.
Nella pagina del repository, fai clic su Impostazioni > Connetti con Git.
Nel riquadro Collega al repository remoto, nel campo URL repository Git remoto, inserisci l'URL del repository Git remoto che termina con
.git
.L'URL del repository Git remoto deve essere in uno dei seguenti formati:
- URL assoluto:
ssh://git@{host_name}[:{port}]/{repository_path}
,port
è facoltativo. - URL simile a SCP:
git@{host_name}:{repository_path}
.
- URL assoluto:
Nel campo Nome del ramo remoto predefinito, inserisci il nome del ramo di sviluppo principale del repository Git remoto.
Nel menu a discesa Secret, seleziona il secret per il repository Git remoto.
Nel campo Valore chiave host pubblica SSH, inserisci la chiave host pubblica del tuo provider Git.
Azure DevOps Services
Il valore della chiave host pubblica SSH deve essere nel formato di un file
known_hosts
. Il valore deve contenere un algoritmo e una chiave pubblica codificati nel formatobase64
, ma senza il nome host o l'IP, nel seguente formato:ALGORITHM BASE64_KEY_VALUE
Per recuperare la chiave host pubblica di Azure DevOps Services, esegui il comando
ssh-keyscan -t rsa ssh.dev.azure.com
nel terminale.Bitbucket
Il valore della chiave host pubblica SSH deve essere nel formato di un file
known_hosts
. Il valore deve contenere un algoritmo e una chiave pubblica codificati nel formatobase64
, ma senza il nome host o l'IP, nel seguente formato:ALGORITHM BASE64_KEY_VALUE
Per recuperare la chiave host pubblica di Bitbucket, consulta Configurare SSH.
GitHub
Il valore della chiave host pubblica SSH deve essere nel formato di un file
known_hosts
. Il valore deve contenere un algoritmo e una chiave pubblica codificati nel formatobase64
, ma senza il nome host o l'IP, nel seguente formato:ALGORITHM BASE64_KEY_VALUE
Per recuperare la chiave host pubblica di GitHub, consulta Le impronte delle chiavi SSH di GitHub.
GitLab
Il valore della chiave host pubblica SSH deve essere nel formato di un file
known_hosts
. Il valore deve contenere un algoritmo e una chiave pubblica codificati nel formatobase64
, ma senza il nome host o l'IP, nel seguente formato:ALGORITHM BASE64_KEY_VALUE
Per recuperare la chiave host pubblica di GitLab, consulta Esenzioni
known_hosts
SSH.Fai clic su Collega.
Connetti un repository remoto tramite HTTPS
Per collegare un repository remoto tramite HTTPS, devi creare un secret di Secret Manager con un token di accesso personale e condividerlo con il tuo account di servizio Dataform predefinito.
Dataform utilizza quindi il token di accesso per accedere al provider Git e committare le modifiche per conto degli sviluppatori. Dataform esegue questi commit utilizzando l' Google Cloud indirizzo email dello sviluppatore, in modo da poter capire chi ha eseguito ogni commit.
Per collegare un repository remoto a un repository Dataform tramite HTTPS:
Nel tuo provider Git:
GitHub
In GitHub, crea un token di accesso personale granulare o un token di accesso personale classico.
- Per un token di accesso personale GitHub granulare:
Seleziona l'accesso ai repository solo per alcuni repository, quindi seleziona il repository a cui vuoi connetterti.
Concedi l'accesso in lettura e scrittura ai contenuti del repository.
Imposta una scadenza del token appropriata alle tue esigenze.
- Per un token di accesso personale GitHub classico:
Concedi a Dataform l'autorizzazione
repo
.Imposta una scadenza del token appropriata alle tue esigenze.
Se la tua organizzazione utilizza il Single Sign-On (SSO) SAML, autorizza il token.
GitLab
In GitLab, crea un token di accesso personale GitLab.
Assegna il nome
dataform
al token.Il token di accesso personale di GitLab deve avere il nome
dataform
.Concedi a Dataform le autorizzazioni
api
,read_repository
ewrite_repository
.Imposta una scadenza del token appropriata alle tue esigenze.
In Secret Manager, crea un secret contenente il token di accesso personale del tuo repository remoto.
Concedi l'accesso al secret al tuo account di servizio Dataform predefinito.
Il tuo account di servizio Dataform predefinito ha il seguente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
- Concedi il ruolo
roles/secretmanager.secretAccessor
all'account di servizio.
- Concedi il ruolo
Nella console Google Cloud, vai alla pagina Dataform.
Seleziona il repository Dataform da collegare al repository remoto.
Nella pagina del repository, fai clic su Impostazioni > Connetti con Git.
Nel riquadro Collega al repository remoto, nel campo URL repository Git remoto, inserisci l'URL del repository Git remoto che termina con
.git
.L'URL del repository Git remoto non può contenere nomi utente o password.
Nel campo Nome del ramo remoto predefinito, inserisci il nome del ramo di sviluppo principale del repository Git remoto.
Nel menu a discesa Secret, seleziona il secret per il repository Git remoto.
Fai clic su Collega.
Modificare la connessione al repository remoto
Per modificare una connessione tra un repository Dataform e un repository Git remoto:
Nella console Google Cloud, vai alla pagina Dataform.
Fai clic sul repository che vuoi modificare.
Nella pagina del repository, fai clic su Impostazioni > Modifica connessione Git.
Nel riquadro Collega al repository remoto, modifica le impostazioni di connessione.
Fai clic su Aggiorna.
Passaggi successivi
Per scoprire di più sui repository Dataform, consulta Creare un repository.
Per creare uno spazio di lavoro di sviluppo, consulta Creare uno spazio di lavoro.
Per scoprire come risolvere i problemi relativi alle connessioni dei repository remoti, consulta Risolvere i problemi di Dataform.