Connettiti a un repository Git di terze parti

Questo documento mostra come connettere un repository remoto a un repository Dataform. Dopo aver collegato i repository, le modifiche apportate in un workspace di sviluppo Dataform possono essere inviate al repository Git remoto e recuperate da quest'ultimo.

Puoi connettere un repository remoto tramite HTTPS o SSH.

La tabella seguente elenca i provider 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

  1. Se la tua organizzazione o il tuo progetto limita i repository Git remoti con il criterio dell'organizzazione dataform.restrictGitRemotes, assicurati che il repository Git remoto venga aggiunto alla lista consentita nel criterio prima di creare un repository Dataform che vuoi connettere a un repository remoto. Per ulteriori informazioni, vedi Limitare i repository remoti.
  2. Seleziona o crea un repository Dataform. Ti servirà in un secondo momento per condividere un secret con il tuo service account 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 Dataform Admin (roles/dataform.admin) nei repository. Per saperne di più sulla concessione dei ruoli, consulta Gestisci 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 secret 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 Secret Manager con la chiave SSH privata. Quindi, condividi il secret con ilaccount di serviziot Dataform predefinito.

Dataform utilizza il secret con la chiave SSH privata per accedere al tuo provider Git per eseguire il commit delle modifiche per conto degli sviluppatori. Dataform esegue questi commit utilizzando l'indirizzo email Google Cloud dello sviluppatore, in modo che tu possa sapere chi ha eseguito ogni commit.

Per connettere un repository remoto a un repository Dataform tramite SSH:

  1. Nel tuo provider Git:

    Azure DevOps Services

    1. In Azure DevOps Services, crea una chiave SSH privata.
    2. Carica la chiave SSH pubblica nel repository Azure DevOps Services.

    Bitbucket

    1. In Bitbucket, crea una chiave SSH privata.
    2. Carica la chiave SSH pubblica nel repository Bitbucket.

    GitHub

    1. In GitHub, crea una chiave SSH privata.
    2. Carica la chiave SSH pubblica di GitHub nel tuo repository GitHub.

    GitLab

    1. In GitLab, crea una chiave SSH privata.
    2. Carica la chiave SSH pubblica di GitLab nel tuo repository GitLab.
  2. In Secret Manager, crea un secret e imposta la tua chiave SSH privata come valore del secret.

    1. Concedi l'accesso al secret al tuo service account Dataform predefinito.

      Il account di servizio Dataform predefinito ha il seguente formato:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Concedi il ruolo roles/secretmanager.secretAccessor all'account di servizio.

  3. Nella console Google Cloud , vai alla pagina Dataform.

    Vai a Dataform

  4. Seleziona il repository Dataform a cui vuoi connetterti al repository remoto.

  5. Nella pagina del repository, fai clic su Impostazioni > Connetti a Git.

  6. Nel riquadro Link to remote repository (Link al repository remoto), nel campo Remote Git repository URL (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}.
  7. Nel campo Nome del ramo remoto predefinito, inserisci il nome del ramo di sviluppo principale del repository Git remoto.

  8. Nel menu a discesa Secret, seleziona il secret per il repository Git remoto.

  9. 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 codificata nel formato base64, ma senza l'hostname 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 codificata nel formato base64, ma senza l'hostname 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 codificata nel formato base64, ma senza l'hostname 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 codificata nel formato base64, ma senza l'hostname o l'IP, nel seguente formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Per recuperare la chiave host pubblica di GitLab, consulta Voci SSH known_hosts.

  10. Fai clic su Collega.

Connettere un repository remoto tramite HTTPS

Per connettere un repository remoto tramite HTTPS, devi creare un secret di Secret Manager con un token di accesso personale e condividere il secret con il tuo account di servizio Dataform predefinito.

Dataform utilizza quindi il token di accesso per accedere al provider Git e commitare le modifiche per conto degli sviluppatori. Dataform esegue questi commit utilizzando l'indirizzo email dello sviluppatore Google Cloud , in modo che tu possa sapere chi ha eseguito ogni commit.

Per connettere un repository remoto a un repository Dataform tramite HTTPS:

  1. Nel tuo provider Git:

    GitHub

    1. In GitHub, crea un token di accesso personale granulare o un token di accesso personale classico.

      • Per un token di accesso personale GitHub granulare:
      1. Seleziona l'accesso al repository solo ai repository selezionati, poi seleziona il repository a cui vuoi connetterti.

      2. Concedi l'accesso in lettura e scrittura ai contenuti del repository.

      3. Imposta un tempo di scadenza del token appropriato per le tue esigenze.

      • Per un token di accesso personale GitHub classico:
      1. Concedi a Dataform l'autorizzazione repo.

      2. Imposta un tempo di scadenza del token appropriato per le tue esigenze.

    2. Se la tua organizzazione utilizza il Single Sign-On (SSO) SAML, autorizza il token.

    GitLab

    1. In GitLab, crea un token di accesso personale GitLab.

    2. Assegna un nome al token dataform.

      Il token di accesso personale di GitLab deve essere denominato dataform.

    3. Concedi a Dataform le autorizzazioni api, read_repository e write_repository.

    4. Imposta un tempo di scadenza del token appropriato per le tue esigenze.

  2. In Secret Manager, crea un secret contenente il token di accesso personale del repository remoto.

  3. Concedi l'accesso al secret al tuo service account Dataform predefinito.

    Il account di servizio Dataform predefinito ha il seguente formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Concedi il ruolo roles/secretmanager.secretAccessor all'account di servizio.
  4. Nella console Google Cloud , vai alla pagina Dataform.

    Vai a Dataform

  5. Seleziona il repository Dataform a cui vuoi connetterti al repository remoto.

  6. Nella pagina del repository, fai clic su Impostazioni > Connetti a Git.

  7. Nel riquadro Link to remote repository (Link al repository remoto), nel campo Remote Git repository URL (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.

  8. Nel campo Nome del ramo remoto predefinito, inserisci il nome del ramo di sviluppo principale del repository Git remoto.

  9. Nel menu a discesa Secret, seleziona il secret per il repository Git remoto.

  10. Fai clic su Collega.

Modificare la connessione al repository remoto

Per modificare una connessione tra un repository Dataform e un repository Git remoto:

  1. Nella console Google Cloud , vai alla pagina Dataform.

    Vai a Dataform

  2. Fai clic sul repository che vuoi modificare.

  3. Nella pagina del repository, fai clic su Impostazioni > Modifica connessione Git.

  4. Nel riquadro Link al repository remoto, modifica le impostazioni di connessione.

  5. Fai clic su Aggiorna.

Passaggi successivi