Cómo conectarse a un repositorio de Git de terceros

En este documento, se muestra cómo conectar un repositorio remoto a un repositorio de Dataform. Después de conectar los repositorios, los cambios que realices en un lugar de trabajo de desarrollo de Dataform se pueden enviar al repositorio remoto de Git y extraerse de él.

Puedes conectar un repositorio remoto a través de HTTPS o SSH.

En la siguiente tabla, se enumeran los proveedores de Git compatibles y los métodos de conexión disponibles para sus repositorios:

Proveedor de Git Método de conexión
Servicios de Azure DevOps SSH
Bitbucket SSH
GitHub SSH o HTTPS
GitLab SSH o HTTPS

Antes de comenzar

  1. Si tu organización o proyecto restringe los repositorios de Git remotos con la Política de la organización de dataform.restrictGitRemotes, asegúrate de que el repositorio de Git remoto se agregue a la lista de entidades permitidas en la política antes de crear un repositorio de Dataform que quieras conectar a un repositorio remoto. Para obtener más información, consulta Cómo restringir repositorios remotos.
  2. Selecciona o crea un repositorio de Dataform. La necesitarás más adelante para compartir un secreto con tu cuenta de servicio predeterminada de Dataform.

Roles obligatorios

Para obtener los permisos que necesitas para conectar un repositorio de Dataform a un repositorio de Git remoto, pídele a tu administrador que te otorgue el rol de IAM de Administrador de Dataform (roles/dataform.admin) en los repositorios. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Cómo conectar un repositorio remoto a través de SSH

Para conectar un repositorio remoto a través de SSH, debes generar una clave SSH y un secreto de Secret Manager. La clave SSH consta de una clave SSH pública y una clave SSH privada. Debes compartir la clave SSH pública con tu proveedor de Git y crear un secreto de Secret Manager con la clave SSH privada. Luego, comparte el secreto con tu cuenta de servicio predeterminada de Dataform.

Dataform usa el secreto con la clave SSH privada para acceder a tu proveedor de Git y confirmar los cambios en nombre de los desarrolladores. Dataform realiza estas confirmaciones con la dirección de correo electrónico Google Cloud del desarrollador para que puedas saber quién realizó cada confirmación.

Para conectar un repositorio remoto a un repositorio de Dataform a través de SSH, sigue estos pasos:

  1. En tu proveedor de Git, haz lo siguiente:

    Servicios de Azure DevOps

    1. En Azure DevOps Services, crea una clave privada de SSH.
    2. Sube la clave SSH pública a tu repositorio de Azure DevOps Services.

    Bitbucket

    1. En Bitbucket, crea una clave privada de SSH.
    2. Sube la clave SSH pública a tu repositorio de Bitbucket.

    GitHub

    1. En GitHub, crea una clave SSH privada.
    2. Sube la clave SSH pública de GitHub a tu repositorio de GitHub.

    GitLab

    1. En GitLab, crea una clave privada SSH.
    2. Sube la clave SSH pública de GitLab a tu repositorio de GitLab.
  2. En el Administrador de secretos, crea un secreto y establece tu clave privada SSH como el valor secreto.

    1. Otorga acceso al Secret a tu cuenta de servicio predeterminada de Dataform.

      Tu cuenta de servicio de Dataform predeterminada tiene el siguiente formato:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Otorga el rol roles/secretmanager.secretAccessor a la cuenta de servicio.

  3. En la consola de Google Cloud, ve a la página Dataform.

    Ir a Dataform

  4. Selecciona el repositorio de Dataform que deseas conectar al repositorio remoto.

  5. En la página del repositorio, haz clic en Configuración > Conectar con Git.

  6. En el panel Link to remote repository, en el campo Remote Git repository URL, ingresa la URL del repositorio de Git remoto, que finaliza con .git.

    La URL del repositorio de Git remoto debe tener uno de los siguientes formatos:

    • URL absoluta: ssh://git@{host_name}[:{port}]/{repository_path}, port es opcional.
    • URL similar a SCP: git@{host_name}:{repository_path}.
  7. En el campo Nombre de rama remota predeterminada, ingresa el nombre de la rama de desarrollo principal del repositorio remoto de Git.

  8. En el menú desplegable Secret, selecciona el secreto para el repositorio remoto de Git.

  9. En el campo Valor de clave de host público de SSH, ingresa la clave de host pública de tu proveedor de Git.

    Servicios de Azure DevOps

    El valor de la clave de host pública de SSH debe tener el formato de un archivo known_hosts. El valor debe contener un algoritmo y una clave pública codificados en el formato base64, pero sin el nombre de host ni la IP, en el siguiente formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar la clave de host pública de los servicios de Azure DevOps, ejecuta el comando ssh-keyscan -t rsa ssh.dev.azure.com en la terminal.

    Bitbucket

    El valor de la clave de host pública de SSH debe tener el formato de un archivo known_hosts. El valor debe contener un algoritmo y una clave pública codificados en el formato base64, pero sin el nombre de host ni la IP, en el siguiente formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar la clave de host pública de Bitbucket, consulta Configura SSH.

    GitHub

    El valor de la clave de host pública de SSH debe tener el formato de un archivo known_hosts. El valor debe contener un algoritmo y una clave pública codificados en el formato base64, pero sin el nombre de host ni la IP, en el siguiente formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar la clave de host pública de GitHub, consulta las huellas digitales de la clave SSH de GitHub.

    GitLab

    El valor de la clave de host pública de SSH debe tener el formato de un archivo known_hosts. El valor debe contener un algoritmo y una clave pública codificados en el formato base64, pero sin el nombre de host ni la IP, en el siguiente formato:

    ALGORITHM BASE64_KEY_VALUE
    

    Para recuperar la clave de host pública de GitLab, consulta entradas known_hosts de SSH.

  10. Haz clic en Vincular.

Cómo conectar un repositorio remoto a través de HTTPS

Para conectar un repositorio remoto a través de HTTPS, debes crear un secreto de Secret Manager con un token de acceso personal y compartirlo con tu cuenta de servicio predeterminada de Dataform.

Luego, Dataform usa el token de acceso para acceder a tu proveedor de Git y confirmar los cambios en nombre de los desarrolladores. Dataform realiza estas confirmaciones con la dirección de correo electrónico Google Cloud del desarrollador para que puedas saber quién realizó cada confirmación.

Para conectar un repositorio remoto a un repositorio de Dataform a través de HTTPS, sigue estos pasos:

  1. En tu proveedor de Git, haz lo siguiente:

    GitHub

    1. En GitHub, crea un token de acceso personal detallado o un token de acceso personal clásico.

      • Para obtener un token de acceso personal de GitHub detallado, haz lo siguiente:
      1. Selecciona el acceso al repositorio solo a los repositorios seleccionados y, luego, selecciona el repositorio al que deseas conectarte.

      2. Otorga acceso de lectura y escritura al contenido del repositorio.

      3. Establece un tiempo de vencimiento del token adecuado para tus necesidades.

      • Para obtener un token de acceso personal clásico de GitHub, haz lo siguiente:
      1. Otorga a Dataform el permiso repo.

      2. Establece un tiempo de vencimiento del token adecuado para tus necesidades.

    2. Si tu organización usa el inicio de sesión único (SSO) de SAML, autoriza el token.

    GitLab

    1. En GitLab, crea un token de acceso personal de GitLab.

    2. Asigna el nombre dataform al token.

      El token de acceso personal de GitLab debe llamarse dataform.

    3. Otorga a Dataform los permisos api, read_repository y write_repository.

    4. Establece un tiempo de vencimiento del token adecuado para tus necesidades.

  2. En Secret Manager, crea un secreto que contenga el token de acceso personal de tu repositorio remoto.

  3. Otorga acceso al Secret a tu cuenta de servicio predeterminada de Dataform.

    Tu cuenta de servicio de Dataform predeterminada tiene el siguiente formato:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Otorga el rol roles/secretmanager.secretAccessor a la cuenta de servicio.
  4. En la consola de Google Cloud, ve a la página Dataform.

    Ir a Dataform

  5. Selecciona el repositorio de Dataform que deseas conectar al repositorio remoto.

  6. En la página del repositorio, haz clic en Configuración > Conectar con Git.

  7. En el panel Link to remote repository, en el campo Remote Git repository URL, ingresa la URL del repositorio de Git remoto, que finaliza con .git.

    La URL del repositorio de Git remoto no puede contener nombres de usuario ni contraseñas.

  8. En el campo Nombre de rama remota predeterminada, ingresa el nombre de la rama de desarrollo principal del repositorio remoto de Git.

  9. En el menú desplegable Secret, selecciona el secreto para el repositorio remoto de GitHub.

  10. Haz clic en Vincular.

Edita la conexión del repositorio remoto

Para editar una conexión entre un repositorio de Dataform y un repositorio de GitHub remoto, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Dataform.

    Ir a Dataform

  2. Haz clic en el repositorio que quieres editar.

  3. En la página del repositorio, haz clic en Configuración > Editar conexión de Git.

  4. En el panel Link to remote repository, edita la configuración de conexión.

  5. Haz clic en Actualizar.

¿Qué sigue?