Ce document vous explique comment associer un dépôt distant à un dépôt Dataform. Une fois l'association établie, les modifications apportées dans un espace de travail de développement Dataform peuvent être extraites du dépôt Git distant ou transférées vers celui-ci.
Vous pouvez connecter un dépôt distant via HTTPS ou SSH.
Le tableau suivant répertorie les fournisseurs Git compatibles et les méthodes de connexion disponibles pour leurs dépôts :
| Fournisseur Git | Mode de connexion |
|---|---|
| Services Azure DevOps | SSH |
| Bitbucket | Developer Connect (recommandé), SSH |
| GitHub | Developer Connect (recommandé), SSH ou HTTPS |
| GitLab | Developer Connect (recommandé), SSH ou HTTPS |
Avant de commencer
- Si votre organisation ou votre projet restreint les dépôts Git distants avec la règle d'organisation
dataform.restrictGitRemotes, assurez-vous que le dépôt Git distant est ajouté à la liste d'autorisation de la règle avant de créer le dépôt Dataform que vous souhaitez connecter à un dépôt distant. Pour en savoir plus, consultez Restreindre les dépôts distants. Sélectionnez ou créez un dépôt Dataform. Vous aurez besoin du dépôt plus tard pour partager un secret avec votre agent de service Dataform par défaut.
Assurez-vous de disposer des autorisations nécessaires auprès de votre fournisseur Git et que votre dépôt Dataform se trouve dans une région compatible.
Si vous connectez Developer Connect à un dépôt Bitbucket, assurez-vous que votre jeton d'accès à l'autorisation dispose d'un accès en écriture à vos dépôts afin que Dataform puisse envoyer les modifications. Pour en savoir plus, consultez Créer des jetons d'accès.
Rôles requis
Pour obtenir les autorisations nécessaires pour connecter un dépôt Dataform à un dépôt Git distant, demandez à votre administrateur de vous accorder les rôles IAM suivants sur les dépôts :
-
Administrateur Dataform (
roles/dataform.admin) -
Administrateur Developer Connect (
roles/developerconnect.admin)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour connecter un dépôt distant à l'aide de Developer Connect, accordez les rôles Accesseur de jetons Developer Connect (roles/developerconnect.tokenAccessor) et Utilisateur du proxy Git Developer Connect (roles/developerconnect.gitProxyUser) à l'agent de service Dataform par défaut. L'ID de votre agent de service Dataform par défaut se présente au format suivant :
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
Associer un dépôt distant à l'aide de Developer Connect
Developer Connect simplifie l'intégration de fournisseurs Git externes aux dépôts Dataform en fournissant une interface guidée qui élimine le besoin de gestion manuelle des secrets.
En utilisant Developer Connect, vous pouvez vous connecter à des dépôts distants dans des réseaux hébergés de manière privée (comme des environnements sur site ou des clouds privés virtuels (VPC)) sans les exposer à l'Internet public.
Préparer les connexions réseau privées
Si vous vous connectez à un dépôt distant dans un réseau privé, assurez-vous d'avoir les informations et ressources suivantes à portée de main avant de commencer la configuration :
- Nom de l'espace de noms et du service Service Directory qui pointe vers votre hôte Git interne.
- Un certificat d'autorité de certification au format PEM (d'une taille maximale de 10 Ko) si votre hôte utilise une autorité de certification privée ou autosignée.
- Vérification que le certificat SSL de votre hôte Git inclut un nom alternatif de sujet (SAN) qui correspond à l'URI de l'hôte.
Pour en savoir plus sur la configuration des connexions pour les réseaux hébergés de manière privée, consultez les ressources suivantes :
- Configurer et utiliser le proxy Developer Connect
- Se connecter à GitHub Enterprise dans un réseau privé
- Se connecter aux dépôts GitLab Enterprise dans un réseau privé
- Se connecter aux dépôts Bitbucket Data Center hébergés dans un réseau privé
Créer une connexion Developer Connect
Pour connecter un dépôt distant à une nouvelle connexion Developer Connect, sélectionnez l'une des options suivantes :
Bitbucket
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez votre dépôt.
Accédez à Paramètres, puis cliquez sur Connecter avec Git.
Dans le volet Associer à un dépôt distant, dans la section Protocole du dépôt Git distant, sélectionnez Developer Connect.
Dans le menu de sélection du dépôt, cliquez sur Associer un nouveau dépôt.
Dans le volet Associer des dépôts Git via Developer Connect, sélectionnez Créer une association.
Sélectionnez Bitbucket comme fournisseur.
Spécifiez la région et le nom de la connexion.
Indiquez le nom de l'espace de travail, le jeton d'accès de l'agent d'autorisation et le jeton d'accès en lecture.
Cliquez sur Continuer, puis sélectionnez les dépôts distants à associer et cliquez sur Associer.
Dans Dataform, sélectionnez votre dépôt distant et la branche par défaut.
Pour terminer la configuration, cliquez sur Associer.
GitHub
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez votre dépôt.
Accédez à Paramètres, puis cliquez sur Connecter avec Git.
Dans le volet Associer à un dépôt distant, dans la section Protocole du dépôt Git distant, sélectionnez Developer Connect.
Dans le menu de sélection du dépôt, cliquez sur Associer un nouveau dépôt.
Dans le volet Associer des dépôts Git via Developer Connect, sélectionnez Créer une association.
Sélectionnez GitHub comme fournisseur.
Spécifiez la région et le nom de la connexion.
Pour déclencher le flux d'authentification OAuth, cliquez sur Continuer, puis procédez comme suit :
- Cliquez sur J'ai compris et continuer.
- Sélectionnez Installer l'application GitHub sur un autre compte GitHub, puis suivez les instructions pour autoriser l'accès à votre compte GitHub et à des dépôts spécifiques.
- Sélectionnez le compte sur lequel vous souhaitez installer l'application GitHub Dataform.
- Dans la section Repository access (Accès aux dépôts), indiquez si vous souhaitez donner accès à tous les dépôts ou seulement à une sélection de dépôts.
- Cliquez sur Enregistrer.
Sélectionnez les dépôts distants à associer, puis cliquez sur Associer.
Dans Dataform, sélectionnez votre dépôt distant et la branche par défaut.
Pour terminer la configuration, cliquez sur Associer.
GitLab
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez votre dépôt.
Accédez à Paramètres, puis cliquez sur Connecter avec Git.
Dans le volet Associer à un dépôt distant, dans la section Protocole du dépôt Git distant, sélectionnez Developer Connect.
Dans le menu de sélection du dépôt, cliquez sur Associer un nouveau dépôt.
Dans le volet Associer des dépôts Git via Developer Connect, sélectionnez Créer une association.
Sélectionnez GitLab comme fournisseur.
Spécifiez la région et le nom de la connexion.
Fournissez le jeton d'accès à l'API et le jeton d'accès à l'API en lecture seule. Pour savoir comment procéder, consultez Créer des jetons d'accès.
Cliquez sur Continuer, puis sélectionnez les dépôts distants à associer et cliquez sur Associer.
Dans Dataform, sélectionnez votre dépôt distant et la branche par défaut.
Pour terminer la configuration, cliquez sur Associer.
Utiliser une connexion Developer Connect existante
Pour associer un dépôt distant à une connexion Developer Connect existante :
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez votre dépôt.
Accédez à Paramètres, puis cliquez sur Connecter avec Git.
Dans le volet Associer à un dépôt distant, dans la section Protocole du dépôt Git distant, sélectionnez Developer Connect.
Dans le menu de sélection du dépôt, sélectionnez un dépôt qui appartient à une connexion Developer Connect existante.
Dans Dataform, sélectionnez votre dépôt distant et la branche par défaut.
Pour terminer la configuration, cliquez sur Associer.
Connecter un dépôt distant via SSH
Pour connecter un dépôt distant via SSH, vous devez générer une clé SSH et un secret Secret Manager. La clé SSH se compose d'une clé SSH publique et d'une clé SSH privée. Vous devez partager la clé SSH publique avec votre fournisseur Git et créer un secret Secret Manager avec la clé SSH privée. Ensuite, partagez le secret avec votre agent de service Dataform par défaut.
Dataform utilise le secret avec la clé SSH privée pour se connecter à votre fournisseur Git et valider les modifications au nom des développeurs. Dataform effectue ces commits à l'aide de l'adresse e-mail Google Cloud du développeur afin que vous puissiez identifier l'auteur de chaque commit.
Pour connecter un dépôt distant à un dépôt Dataform via SSH, procédez comme suit :
Dans votre fournisseur Git, effectuez l'une des actions suivantes :
Services Azure DevOps
- Dans Azure DevOps Services, créez une clé privée SSH.
- Importez la clé SSH publique dans votre dépôt Azure DevOps Services.
Bitbucket
- Dans Bitbucket, créez une clé privée SSH.
- Importez la clé SSH publique dans votre dépôt Bitbucket.
GitHub
- Dans GitHub, créez une clé SSH privée.
- Importez la clé SSH publique GitHub dans votre dépôt GitHub.
GitLab
- Dans GitLab, créez une clé SSH privée.
- Importez la clé SSH publique GitLab dans votre dépôt GitLab.
Dans Secret Manager, créez un secret et définissez votre clé SSH privée comme valeur du secret.
Accordez l'accès au secret à votre agent de service Dataform par défaut.
Votre agent de service Dataform par défaut est au format suivant :
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.comAttribuez le rôle
roles/secretmanager.secretAccessorà l'agent de service ou au compte de service.
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez le dépôt Dataform que vous souhaitez connecter au dépôt distant.
Sur la page du dépôt, cliquez sur Paramètres > Se connecter à Git.
Dans le volet Associer à un dépôt distant, dans le champ URL du dépôt Git distant, saisissez l'URL du dépôt Git distant, en terminant par
.git.L'URL du dépôt Git distant doit être dans l'un des formats suivants :
- URL absolue :
ssh://git@{host_name}[:{port}]/{repository_path},portest facultatif. - URL de type SCP :
git@{host_name}:{repository_path}.
- URL absolue :
Dans le champ Nom de la branche distante par défaut, saisissez le nom de la branche de développement principale du dépôt Git distant.
Dans le menu déroulant Secret, sélectionnez votre secret pour le dépôt Git distant.
Dans le champ Valeur de la clé d'hôte publique SSH, saisissez la clé d'hôte publique de votre fournisseur Git.
Services Azure DevOps
Pour récupérer la clé d'hôte public Azure DevOps Services, exécutez la commande suivante dans le terminal :
ssh-keyscan -t rsa ssh.dev.azure.comCopiez l'une des clés générées, en omettant
ssh.dev.azure.comau début de la ligne. La valeur que vous copiez doit être au format suivant :ALGORITHM BASE64_KEY_VALUEExemple :
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8HVérifiez que cette clé est toujours à jour avec Azure DevOps Services.
Bitbucket
Pour récupérer la clé d'hôte publique Bitbucket, exécutez la commande suivante dans le terminal :
curl https://bitbucket.org/site/sshLa commande renvoie une liste de clés hôtes publiques. Choisissez l'une des clés de la liste et copiez-la en omettant
bitbucket.orgau début de la ligne. La valeur que vous copiez doit être au format suivant :ALGORITHM BASE64_KEY_VALUEExemple :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUOVérifiez que cette clé est toujours à jour avec Bitbucket.
GitHub
- Pour récupérer la clé publique de l'hôte GitHub, consultez Empreintes de la clé SSH de GitHub.
La page contient une liste de clés hôtes publiques. Choisissez-en un et copiez-le, en omettant
github.comau début de la ligne. La valeur que vous copiez doit respecter le format suivant :ALGORITHM BASE64_KEY_VALUEExemple :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJlVérifiez que cette clé est toujours à jour avec GitHub.
GitLab
- Pour récupérer la clé d'hôte publique GitLab, consultez Entrées SSH
known_hosts. La page contient une liste de clés hôtes publiques. Choisissez-en un et copiez-le, en omettant
gitlab.comau début de la ligne. La valeur que vous copiez doit respecter le format suivant :ALGORITHM BASE64_KEY_VALUEExemple :
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdfVérifiez que cette clé est toujours à jour avec GitLab.
Cliquez sur Associer.
Connecter un dépôt distant via HTTPS
Pour connecter un dépôt distant via HTTPS, vous devez créer un secret Secret Manager avec un jeton d'accès personnel, puis le partager avec votre agent de service Dataform par défaut.
Dataform utilise ensuite le jeton d'accès pour se connecter à votre fournisseur Git et valider les modifications au nom des développeurs. Dataform effectue ces commits à l'aide de l'adresse e-mail Google Cloud du développeur. Vous pouvez ainsi savoir qui a effectué chaque commit.
Pour associer un dépôt distant à un dépôt Dataform via HTTPS, procédez comme suit :
Dans votre fournisseur Git, procédez comme suit :
GitHub
Dans GitHub, créez un jeton d'accès personnel précis ou un jeton d'accès personnel classique.
- Pour obtenir un jeton d'accès personnel GitHub précis, procédez comme suit :
Sélectionnez l'accès aux dépôts pour certains dépôts uniquement, puis sélectionnez le dépôt que vous souhaitez connecter.
Accorder un accès en lecture et en écriture au contenu du dépôt.
Définissez une heure d'expiration du jeton adaptée à vos besoins.
- Pour un jeton d'accès personnel GitHub classique, procédez comme suit :
Accordez à Dataform l'autorisation
repo.Définissez une heure d'expiration du jeton adaptée à vos besoins.
Si votre organisation utilise l'authentification unique (SSO) SAML, autorisez le jeton.
GitLab
Dans GitLab, créez un jeton d'accès personnel GitLab.
Nommez le jeton
dataform.Le jeton d'accès personnel GitLab doit être nommé
dataform.Accordez à Dataform les autorisations
api,read_repositoryetwrite_repository.Définissez une heure d'expiration du jeton adaptée à vos besoins.
Dans Secret Manager, créez un secret contenant le jeton d'accès personnel de votre dépôt distant.
Accordez l'accès au secret à votre agent de service Dataform par défaut.
Votre agent de service Dataform par défaut est au format suivant :
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com- Attribuez le rôle
roles/secretmanager.secretAccessorà l'agent de service.
- Attribuez le rôle
Dans la console Google Cloud , accédez à la page Dataform.
Sélectionnez le dépôt Dataform que vous souhaitez connecter au dépôt distant.
Sur la page du dépôt, cliquez sur Paramètres > Se connecter à Git.
Dans le volet Associer à un dépôt distant, dans le champ URL du dépôt Git distant, saisissez l'URL du dépôt Git distant, en terminant par
.git.L'URL du dépôt Git distant ne peut pas contenir de nom d'utilisateur ni de mot de passe.
Dans le champ Nom de la branche distante par défaut, saisissez le nom de la branche de développement principale du dépôt Git distant.
Dans le menu déroulant Secret, sélectionnez votre secret pour le dépôt Git distant.
Cliquez sur Associer.
Modifier la connexion au dépôt distant
Pour modifier une connexion entre un dépôt Dataform et un dépôt Git distant, procédez comme suit :
Dans la console Google Cloud , accédez à la page Dataform.
Cliquez sur le dépôt que vous souhaitez modifier.
Sur la page du dépôt, cliquez sur Paramètres > Modifier la connexion Git.
Dans le volet Associer à un dépôt distant, modifiez les paramètres de connexion.
Cliquez sur Mettre à jour.
Étapes suivantes
Pour en savoir plus sur les dépôts Dataform, consultez Créer un dépôt.
Pour créer un espace de travail de développement, consultez Créer un espace de travail.
Pour savoir comment résoudre les problèmes de connexion aux dépôts distants, consultez Résoudre les problèmes liés à Dataform.