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 e extrair as alterações que fizer num espaço de trabalho de desenvolvimento do Dataform para e do repositório Git remoto.

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

A tabela seguinte indica os fornecedores Git suportados 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.restrictGitRemotespolí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 a conta de serviço do Dataform predefinida.

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 a sua conta de serviço do Dataform predefinida.

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

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 à sua conta de serviço do Dataform predefinida.

      A sua conta de serviço do Dataform predefinida está no seguinte formato:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Conceda a roles/secretmanager.secretAccessor função à 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 do 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 do Git.

    Azure DevOps Services

    O valor da chave pública do anfitrião SSH tem de estar no formato de um ficheiro known_hosts. O valor tem de conter um algoritmo e uma chave pública codificados no formato base64, mas sem o nome do anfitrião nem o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para obter a chave de anfitrião pública dos Azure DevOps Services, execute o comando ssh-keyscan -t rsa ssh.dev.azure.com no terminal.

    Bitbucket

    O valor da chave pública do anfitrião SSH tem de estar no formato de um ficheiro known_hosts. O valor tem de conter um algoritmo e uma chave pública codificados no formato base64, mas sem o nome do anfitrião nem o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para obter a chave de anfitrião pública do Bitbucket, consulte o artigo Configure o SSH.

    GitHub

    O valor da chave pública do anfitrião SSH tem de estar no formato de um ficheiro known_hosts. O valor tem de conter um algoritmo e uma chave pública codificados no formato base64, mas sem o nome do anfitrião nem o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para obter a chave pública do anfitrião do GitHub, consulte o artigo Impressões digitais da chave SSH do GitHub.

    GitLab

    O valor da chave pública do anfitrião SSH tem de estar no formato de um ficheiro known_hosts. O valor tem de conter um algoritmo e uma chave pública codificados no formato base64, mas sem o nome do anfitrião nem o IP, no seguinte formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para obter a chave de anfitrião pública do GitLab, consulte as entradas de SSH known_hosts.

  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 a sua conta de serviço do Dataform predefinida.

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 ao conteúdo do repositório.

      3. Defina um tempo 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 tempo 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 tempo 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 à sua conta de serviço do Dataform predefinida.

    A sua conta de serviço do Dataform predefinida está no seguinte formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Conceda a roles/secretmanager.secretAccessor função à conta 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 do 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 associação do 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?