Conectar-se a um repositório Git de terceiros

Este documento mostra como conectar um repositório remoto a um repositório do Dataform. Depois de conectar os repositórios, as mudanças feitas em um espaço de trabalho de desenvolvimento do Dataform podem ser enviadas e extraídas do repositório Git remoto.

É possível conectar um repositório remoto por HTTPS ou SSH.

A tabela a seguir lista os provedores Git compatíveis e os métodos de conexão disponíveis para os repositórios deles:

Provedor do git Método de conexão
Serviços do Azure DevOps SSH
Bitbucket SSH
GitHub SSH ou HTTPS
GitLab SSH ou HTTPS

Antes de começar

  1. Se a organização ou o projeto restringir repositórios Git remotos com a política da organização dataform.restrictGitRemotes, adicione o repositório Git remoto à lista de permissões na política antes de criar um repositório do Dataform que você quer conectar a um repositório remoto. Para mais informações, consulte Restringir repositórios remotos.
  2. Selecione ou crie um repositório do Dataform. Você vai precisar dele mais tarde para compartilhar um secret com sua conta de serviço padrão do Dataform.

Funções exigidas

Para receber as permissões necessárias para conectar um repositório do Dataform a um repositório Git remoto, peça ao administrador para conceder a você o papel do IAM de Administrador do Dataform (roles/dataform.admin) em repositórios. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Conectar um repositório remoto por SSH

Para conectar um repositório remoto por SSH, você precisa gerar uma chave SSH e um secret do Secret Manager. A chave SSH consiste em uma chave pública e uma chave privada. Você precisa compartilhar a chave SSH pública com seu provedor Git e criar um secret do Secret Manager com a chave SSH privada. Em seguida, compartilhe o secret com sua conta de serviço padrão do Dataform.

O Dataform usa o secret com a chave SSH privada para fazer login no seu provedor Git e confirmar as mudanças em nome dos desenvolvedores. O Dataform faz esses commits usando o endereço de e-mail Google Cloud do desenvolvedor para que você saiba quem fez cada commit.

Para conectar um repositório remoto a um repositório do Dataform por SSH, siga estas etapas:

  1. No seu provedor Git, faça o seguinte:

    Serviços do Azure DevOps

    1. No Azure DevOps Services, crie uma chave privada SSH.
    2. Faça upload da chave SSH pública para o repositório do Azure DevOps Services.

    Bitbucket

    1. No Bitbucket, crie uma chave SSH privada.
    2. Faça upload da chave SSH pública para seu repositório do Bitbucket.

    GitHub

    1. No GitHub, crie uma chave SSH privada.
    2. Faça upload da chave SSH pública do GitHub para seu repositório do GitHub.

    GitLab

    1. No GitLab, crie uma chave SSH privada.
    2. Faça upload da chave SSH pública do GitLab para seu repositório do GitLab.
  2. No gerenciador de secrets, crie um secret e defina sua chave SSH privada como o valor do secret.

    1. Conceda acesso ao secret para sua conta de serviço padrão do Dataform.

      A conta de serviço padrão do Dataform está neste formato:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Conceda o papel roles/secretmanager.secretAccessor à conta de serviço.

  3. No Google Cloud console, acesse a página Dataform.

    Acesse o Dataform

  4. Selecione o repositório do Dataform que você quer conectar ao repositório remoto.

  5. Na página do repositório, clique em Configurações > Conectar com o Git.

  6. No painel Vincular ao repositório remoto, no campo URL do repositório Git remoto, insira o URL do repositório Git remoto, terminando com .git.

    O URL do repositório Git remoto precisa estar em um dos seguintes formatos:

    • URL absoluto: ssh://git@{host_name}[:{port}]/{repository_path}. port é opcional.
    • URL semelhante a SCP: git@{host_name}:{repository_path}.
  7. No campo Nome da ramificação remota padrão, insira o nome da ramificação principal de desenvolvimento do repositório Git remoto.

  8. No menu suspenso Secret, selecione o secret do repositório Git remoto.

  9. No campo Valor da chave pública do host SSH, insira a chave pública do host do seu provedor Git.

    Serviços do Azure DevOps

    O valor da chave pública do host SSH precisa estar no formato de um arquivo known_hosts. O valor precisa conter um algoritmo e uma chave pública codificada no formato base64, mas sem o nome do host ou o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar a chave pública do host dos Serviços do Azure DevOps, execute o comando ssh-keyscan -t rsa ssh.dev.azure.com no terminal.

    Bitbucket

    O valor da chave pública do host SSH precisa estar no formato de um arquivo known_hosts. O valor precisa conter um algoritmo e uma chave pública codificada no formato base64, mas sem o nome do host ou o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar a chave pública do host do Bitbucket, consulte Configurar SSH.

    GitHub

    O valor da chave pública do host SSH precisa estar no formato de um arquivo known_hosts. O valor precisa conter um algoritmo e uma chave pública codificada no formato base64, mas sem o nome do host ou o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar a chave pública do host do GitHub, consulte Impressões digitais da chave SSH do GitHub.

    GitLab

    O valor da chave pública do host SSH precisa estar no formato de um arquivo known_hosts. O valor precisa conter um algoritmo e uma chave pública codificada no formato base64, mas sem o nome do host ou o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar a chave pública do host do GitLab, consulte Entradas known_hosts do SSH.

  10. Clique em Vincular.

Conectar um repositório remoto por HTTPS

Para conectar um repositório remoto por HTTPS, crie um secret do Secret Manager com um token de acesso pessoal e compartilhe o secret com sua conta de serviço padrão do Dataform.

Em seguida, o Dataform usa o token de acesso para fazer login no seu provedor Git e confirmar as mudanças em nome dos desenvolvedores. O Dataform faz esses commits usando o endereço de e-mail Google Cloud do desenvolvedor para que você saiba quem fez cada commit.

Para conectar um repositório remoto a um repositório do Dataform por HTTPS, siga estas etapas:

  1. No seu provedor Git, faça o seguinte:

    GitHub

    1. No GitHub, crie um token de acesso pessoal refinado ou um token de acesso pessoal clássico.

      • Para um token de acesso pessoal refinado do GitHub, faça o seguinte:
      1. Selecione o acesso ao repositório para apenas os repositórios selecionados e escolha o repositório que você quer conectar.

      2. Conceda acesso de leitura e gravação ao conteúdo do repositório.

      3. Defina um prazo de validade do token adequado às suas necessidades.

      • Para um token de acesso pessoal clássico do GitHub, faça o seguinte:
      1. Conceda ao Dataform a permissão repo.

      2. Defina um prazo de validade do token adequado às suas necessidades.

    2. Se a organização usa o Logon único (SSO) via SAML, autorize o token.

    GitLab

    1. No GitLab, crie um token de acesso pessoal do GitLab.

    2. Nomeie o token como dataform.

      O token de acesso pessoal do GitLab precisa ser chamado de dataform.

    3. Conceda ao Dataform as permissões api, read_repository e write_repository.

    4. Defina um prazo de validade do token adequado às suas necessidades.

  2. No Secret Manager, crie um secret com o token de acesso pessoal do seu repositório remoto.

  3. Conceda acesso ao secret para sua conta de serviço padrão do Dataform.

    A conta de serviço padrão do Dataform está neste formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Conceda o papel roles/secretmanager.secretAccessor à conta de serviço.
  4. No Google Cloud console, acesse a página Dataform.

    Acesse o Dataform

  5. Selecione o repositório do Dataform que você quer conectar ao repositório remoto.

  6. Na página do repositório, clique em Configurações > Conectar com o Git.

  7. No painel Vincular ao repositório remoto, no campo URL do repositório Git remoto, insira o URL do repositório Git remoto, terminando com .git.

    O URL do repositório Git remoto não pode conter nomes de usuário ou senhas.

  8. No campo Nome da ramificação remota padrão, insira o nome da ramificação principal de desenvolvimento do repositório Git remoto.

  9. No menu suspenso Secret, selecione o secret do repositório Git remoto.

  10. Clique em Vincular.

Editar a conexão do repositório remoto

Para editar uma conexão entre um repositório do Dataform e um repositório Git remoto, siga estas etapas:

  1. No Google Cloud console, acesse a página Dataform.

    Acesse o Dataform

  2. Clique no repositório que você quer editar.

  3. Na página do repositório, clique em Configurações > Editar conexão do Git.

  4. No painel Link do repositório remoto, edite as configurações de conexão.

  5. Clique em Atualizar.

A seguir