En este documento se explica cómo conectar un repositorio remoto a un repositorio de Dataform. Una vez que hayas conectado los repositorios, los cambios que hagas en un espacio de trabajo de desarrollo de Dataform se podrán insertar y extraer del repositorio de Git remoto.
Puedes conectar un repositorio remoto a través de HTTPS o SSH.
En la siguiente tabla se indican los proveedores de Git admitidos y los métodos de conexión disponibles para sus repositorios:
Proveedor de Git | Método de conexión |
---|---|
Azure DevOps Services | SSH |
Bitbucket | SSH |
GitHub | SSH o HTTPS |
GitLab | SSH o HTTPS |
Antes de empezar
- Si tu organización o proyecto restringe los repositorios de Git remotos con la política de organización
dataform.restrictGitRemotes
, asegúrate de que el repositorio de Git remoto se haya añadido a la lista de permitidos de la política antes de crear un repositorio de Dataform que quieras conectar a un repositorio remoto. Para obtener más información, consulta Restringir repositorios remotos. - Seleccione o cree un repositorio de Dataform. La necesitarás más adelante para compartir un secreto con tu cuenta de servicio de Dataform predeterminada.
Roles obligatorios
Para obtener los permisos que necesitas para conectar un repositorio de Dataform a un repositorio de Git remoto, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de Dataform (roles/dataform.admin
) en los repositorios.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Conectar un repositorio remoto mediante 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. A continuación, comparte el secreto con tu cuenta de servicio predeterminada de Dataform.
Dataform usa el secreto con la clave SSH privada para iniciar sesión en tu proveedor de Git y confirmar los cambios en nombre de los desarrolladores. Dataform hace estas confirmaciones con la dirección de correo del desarrollador para que sepas quién ha hecho cada confirmación. Google Cloud
Para conectar un repositorio remoto a un repositorio de Dataform mediante SSH, sigue estos pasos:
En tu proveedor de Git, haz lo siguiente:
Azure DevOps Services
- En Azure DevOps Services, crea una clave SSH privada.
- Sube la clave pública SSH a tu repositorio de Azure DevOps Services.
Bitbucket
- En Bitbucket, crea una clave SSH privada.
- Sube la clave pública SSH a tu repositorio de Bitbucket.
GitHub
- En GitHub, crea una clave SSH privada.
- Sube la clave SSH pública de GitHub a tu repositorio de GitHub.
GitLab
- En GitLab, crea una clave SSH privada.
- Sube la clave pública SSH de GitLab a tu repositorio de GitLab.
En Secret Manager, crea un secreto y define tu clave SSH privada como valor del secreto.
Concede acceso al secreto a tu cuenta de servicio predeterminada de Dataform.
Tu cuenta de servicio predeterminada de Dataform tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Asigna el rol
roles/secretmanager.secretAccessor
a la cuenta de servicio.
En la Google Cloud consola, ve a la página Dataform.
Selecciona el repositorio de Dataform que quieras conectar al repositorio remoto.
En la página del repositorio, haz clic en Configuración > Conectar con Git.
En el panel Enlazar con repositorio remoto, en el campo URL del repositorio Git remoto, introduce la URL del repositorio Git remoto, que termina en
.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}
.
- URL absoluta:
En el campo Nombre de la rama remota predeterminada, introduce el nombre de la rama de desarrollo principal del repositorio Git remoto.
En el desplegable Secreto, selecciona el secreto del repositorio Git remoto.
En el campo Valor de la clave de host pública SSH, introduce la clave de host pública de tu proveedor de Git.
Azure DevOps Services
El valor de la clave pública de host SSH debe tener el formato de un archivo
known_hosts
. El valor debe contener un algoritmo y una clave pública codificada en formatobase64
, pero sin el nombre de host ni la IP, con el siguiente formato:ALGORITHM BASE64_KEY_VALUE
Para obtener la clave de host pública de Azure DevOps Services, ejecuta el comando
ssh-keyscan -t rsa ssh.dev.azure.com
en el terminal.Bitbucket
El valor de la clave pública de host SSH debe tener el formato de un archivo
known_hosts
. El valor debe contener un algoritmo y una clave pública codificada en formatobase64
, pero sin el nombre de host ni la IP, con el siguiente formato:ALGORITHM BASE64_KEY_VALUE
Para obtener la clave de host pública de Bitbucket, consulta Configurar SSH.
GitHub
El valor de la clave pública de host SSH debe tener el formato de un archivo
known_hosts
. El valor debe contener un algoritmo y una clave pública codificada en formatobase64
, pero sin el nombre de host ni la IP, con el siguiente formato:ALGORITHM BASE64_KEY_VALUE
Para obtener la clave pública de host de GitHub, consulta las huellas digitales de la clave SSH de GitHub.
GitLab
El valor de la clave pública de host SSH debe tener el formato de un archivo
known_hosts
. El valor debe contener un algoritmo y una clave pública codificada en formatobase64
, pero sin el nombre de host ni la IP, con el siguiente formato:ALGORITHM BASE64_KEY_VALUE
Para obtener la clave de host pública de GitLab, consulta las entradas de SSH
known_hosts
.Haz clic en Vincular.
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.
A continuación, Dataform usa el token de acceso para iniciar sesión en tu proveedor de Git y confirmar los cambios en nombre de los desarrolladores. Dataform realiza estas confirmaciones con la dirección de correo del desarrollador Google Cloud para que sepas quién ha hecho cada confirmación.
Para conectar un repositorio remoto a un repositorio de Dataform mediante HTTPS, sigue estos pasos:
En tu proveedor de Git, haz lo siguiente:
GitHub
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:
Selecciona el acceso al repositorio solo a los repositorios seleccionados y, a continuación, selecciona el repositorio al que quieras conectarte.
Concede acceso de lectura y escritura al contenido del repositorio.
Define un tiempo de caducidad del token que se adapte a tus necesidades.
- Para obtener un token de acceso personal clásico de GitHub, sigue estos pasos:
Concede a Dataform el permiso
repo
.Define un tiempo de caducidad del token que se adapte a tus necesidades.
Si tu organización utiliza el inicio de sesión único (SSO) basado en SAML, autoriza el token.
GitLab
En GitLab, crea un token de acceso personal de GitLab.
Ponle el nombre
dataform
al token.El token de acceso personal de GitLab debe llamarse
dataform
.Concede a Dataform los permisos
api
,read_repository
ywrite_repository
.Define un tiempo de caducidad del token que se adapte a tus necesidades.
En Secret Manager, crea un secreto que contenga el token de acceso personal de tu repositorio remoto.
Concede acceso al secreto a tu cuenta de servicio predeterminada de Dataform.
Tu cuenta de servicio predeterminada de Dataform tiene el siguiente formato:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
- Asigna el
rol
roles/secretmanager.secretAccessor
a la cuenta de servicio.
- Asigna el
rol
En la Google Cloud consola, ve a la página Dataform.
Selecciona el repositorio de Dataform que quieras conectar al repositorio remoto.
En la página del repositorio, haz clic en Configuración > Conectar con Git.
En el panel Enlazar con repositorio remoto, en el campo URL del repositorio Git remoto, introduce la URL del repositorio Git remoto, que termina en
.git
.La URL del repositorio Git remoto no puede contener nombres de usuario ni contraseñas.
En el campo Nombre de la rama remota predeterminada, introduce el nombre de la rama de desarrollo principal del repositorio Git remoto.
En el desplegable Secreto, selecciona el secreto del repositorio Git remoto.
Haz clic en Vincular.
Editar la conexión del repositorio remoto
Para editar una conexión entre un repositorio de Dataform y un repositorio de Git remoto, sigue estos pasos:
En la Google Cloud consola, ve a la página Dataform.
Haz clic en el repositorio que quieras editar.
En la página del repositorio, haz clic en Ajustes > Editar conexión Git.
En el panel Vincular a repositorio remoto, edita la configuración de la conexión.
Haz clic en Actualizar.
Siguientes pasos
Para obtener más información sobre los repositorios de Dataform, consulta el artículo Crear un repositorio.
Para crear un espacio de trabajo de desarrollo, consulta Crear un espacio de trabajo.
Para saber cómo solucionar problemas con las conexiones de repositorios remotos, consulta Solucionar problemas de Dataform.