Associe a um repositório Git de terceiros

Este documento mostra como associar um repositório remoto a um repositório do Dataform. Depois de associar os repositórios, pode enviar as alterações feitas num espaço de trabalho de desenvolvimento do Dataform para o repositório Git remoto e recebê-las deste.

Pode associar um repositório remoto através de HTTPS ou SSH.

A tabela seguinte indica os fornecedores Git compatíveis e os métodos de ligação disponíveis para os respetivos repositórios:

Fornecedor de Git Método de ligação
Azure DevOps Services SSH
Bitbucket SSH
GitHub SSH ou HTTPS
GitLab SSH ou HTTPS

Antes de começar

  1. Se a sua organização ou projeto restringir repositórios Git remotos com a dataform.restrictGitRemotes política da organização, certifique-se de que o repositório Git remoto é adicionado à lista de autorizações na política antes de criar um repositório do Dataform que quer associar a um repositório remoto. Para mais informações, consulte o artigo Restrinja repositórios remotos.
  2. Selecione ou crie um repositório do Dataform. Precisa dele mais tarde para partilhar um segredo com o seu agente do serviço Dataform predefinido.

Funções necessárias

Para obter as autorizações de que precisa para associar um repositório do Dataform a um repositório Git remoto, peça ao seu administrador que lhe conceda a função do IAM Administrador do Dataform (roles/dataform.admin) nos repositórios. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Ligue um repositório remoto através de SSH

Para associar um repositório remoto através de SSH, tem de gerar uma chave SSH e um segredo do Secret Manager. A chave SSH consiste numa chave SSH pública e numa chave SSH privada. Tem de partilhar a chave SSH pública com o seu fornecedor do Git e criar um segredo do Secret Manager com a chave SSH privada. Em seguida, partilhe o segredo com o agente de serviço do Dataform predefinido.

O Dataform usa o segredo com a chave SSH privada para iniciar sessão no seu fornecedor Git para confirmar as alterações em nome dos programadores. O Dataform faz estes commits com o endereço de email do programador Google Cloud , para que possa saber quem fez cada commit.

Para associar um repositório remoto a um repositório do Dataform através de SSH, siga estes passos:

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

    Azure DevOps Services

    1. Nos Azure DevOps Services, crie uma chave SSH privada.
    2. Carregue a chave SSH pública para o seu repositório dos Azure DevOps Services.

    Bitbucket

    1. No Bitbucket, crie uma chave SSH privada.
    2. Carregue a chave SSH pública para o seu repositório do Bitbucket.

    GitHub

    1. No GitHub, crie uma chave SSH privada.
    2. Carregue a chave pública de SSH do GitHub para o seu repositório do GitHub.

    GitLab

    1. No GitLab, crie uma chave SSH privada.
    2. Carregue a chave pública de SSH do GitLab para o seu repositório do GitLab.
  2. No Secret Manager, crie um segredo e defina a sua chave SSH privada como o valor secreto.

    1. Conceda acesso ao segredo ao agente de serviço do Dataform predefinido.

      O seu agente do serviço Dataform predefinido está no seguinte formato:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Conceda a função roles/secretmanager.secretAccessor ao agente de serviço ou à conta de serviço.

  3. Na Google Cloud consola, aceda à página Dataform.

    Aceder ao Dataform

  4. Selecione o repositório do Dataform que quer associar ao repositório remoto.

  5. Na página do repositório, clique em Definições > Associar ao Git.

  6. No painel Link para repositório remoto, no campo URL do repositório Git remoto, introduza o URL do repositório Git remoto, que termina com .git.

    O URL do repositório Git remoto tem de estar num 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 do ramo remoto predefinido, introduza o nome do ramo de desenvolvimento principal do repositório Git remoto.

  8. No menu pendente Segredo, selecione o segredo para o repositório Git remoto.

  9. No campo Valor da chave pública do anfitrião SSH, introduza a chave pública do anfitrião do seu fornecedor Git.

    Azure DevOps Services

    1. Para obter a chave de anfitrião pública dos Serviços Azure DevOps, execute o seguinte comando no terminal:

      ssh-keyscan -t rsa ssh.dev.azure.com
      
    2. Copie uma das chaves geradas, omitindo ssh.dev.azure.com do início da linha. O valor que copiar tem de estar no seguinte formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por exemplo:

      ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
      

      Verifique se esta chave ainda está atualizada com os Azure DevOps Services.

    Bitbucket

    1. Para obter a chave de anfitrião pública do Bitbucket, execute o seguinte comando no terminal:

      curl https://bitbucket.org/site/ssh
      
    2. O comando devolve uma lista de chaves de anfitrião públicas. Escolha uma das chaves da lista e copie-a, omitindo bitbucket.org do início da linha. O valor que copiar tem de estar no seguinte formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por exemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
      

      Verifique se esta chave ainda está atualizada com o Bitbucket.

    GitHub

    1. Para obter a chave de anfitrião pública do GitHub, consulte o artigo Impressões digitais da chave SSH do GitHub.
    2. A página contém uma lista de chaves de anfitrião públicas. Escolha um deles e copie-o, omitindo github.com do início da linha. O valor que copiar tem de estar no seguinte formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por exemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
      

      Verifique se esta chave ainda está atualizada com o GitHub.

    GitLab

    1. Para obter a chave de anfitrião pública do GitLab, consulte as entradas de SSH known_hosts.
    2. A página contém uma lista de chaves de anfitrião públicas. Escolha um deles e copie-o, omitindo gitlab.com do início da linha. O valor que copiar tem de estar no seguinte formato:

      ALGORITHM BASE64_KEY_VALUE
      

      Por exemplo:

      ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
      

      Verifique se esta chave ainda está atualizada com o GitLab.

  10. Clique em Associar.

Associe um repositório remoto através de HTTPS

Para associar um repositório remoto através de HTTPS, tem de criar um segredo do Secret Manager com um token de acesso pessoal e partilhar o segredo com o agente de serviço do Dataform predefinido.

Em seguida, o Dataform usa o token de acesso para iniciar sessão no seu fornecedor de Git para confirmar alterações em nome dos programadores. O Dataform faz estas confirmações através do endereço de email do programador, para que possa saber quem fez cada confirmação. Google Cloud

Para associar um repositório remoto a um repositório do Dataform através de HTTPS, siga estes passos:

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

    GitHub

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

      • Para um token de acesso pessoal do GitHub detalhado, faça o seguinte:
      1. Selecione o acesso ao repositório apenas para repositórios selecionados e, de seguida, selecione o repositório ao qual quer estabelecer ligação.

      2. Conceder acesso de leitura e escrita aos conteúdos 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 autorização repo.

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

    2. Se a sua organização usar o Início de sessão único (SSO) de SAML, autorize o token.

    GitLab

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

    2. Atribua o nome dataform ao token.

      O token de acesso pessoal do GitLab tem de ter o nome dataform.

    3. Conceda ao Dataform as autorizaçõ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 segredo que contenha o token de acesso pessoal do seu repositório remoto.

  3. Conceda acesso ao segredo ao agente de serviço do Dataform predefinido.

    O seu agente do serviço Dataform predefinido está no seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Conceda a roles/secretmanager.secretAccessor função ao agente de serviço.
  4. Na Google Cloud consola, aceda à página Dataform.

    Aceder ao Dataform

  5. Selecione o repositório do Dataform que quer associar ao repositório remoto.

  6. Na página do repositório, clique em Definições > Associar ao Git.

  7. No painel Link para repositório remoto, no campo URL do repositório Git remoto, introduza o URL do repositório Git remoto, que termina com .git.

    O URL do repositório Git remoto não pode conter nomes de utilizador nem palavras-passe.

  8. No campo Nome do ramo remoto predefinido, introduza o nome do ramo de desenvolvimento principal do repositório Git remoto.

  9. No menu pendente Segredo, selecione o segredo para o repositório Git remoto.

  10. Clique em Associar.

Edite a associação ao repositório remoto

Para editar uma associação entre um repositório do Dataform e um repositório Git remoto, siga estes passos:

  1. Na Google Cloud consola, aceda à página Dataform.

    Aceder ao Dataform

  2. Clique no repositório que quer editar.

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

  4. No painel Estabelecer ligação ao repositório remoto, edite as definições de ligação.

  5. Clique em Atualizar.

O que se segue?