Se connecter à un dépôt Git tiers

Ce document explique comment associer un dépôt Dataform à un dépôt Git distant tiers.

Une fois les dépôts associés, les modifications que vous apportez dans un espace de travail de développement Dataform peuvent être transférées vers le dépôt Git distant et extraites de celui-ci.

Vous pouvez lier un dépôt Dataform à un dépôt Git distant hébergé par les fournisseurs Git suivants:

  • Azure DevOps Services

  • Bitbucket

  • GitHub

  • GitLab

Pour lier un dépôt distant tiers à un dépôt Dataform, vous devez d'abord l'authentifier. Vous pouvez authentifier un dépôt distant dans Dataform via HTTPS ou SSH.

Pour les dépôts distants GitHub et GitLab, vous pouvez utiliser HTTPS ou SSH pour l'authentification. Pour les dépôts distants Azure DevOps Services et Bitbucket, vous devez utiliser SSH.

Avant de commencer

Si vous ne l'avez pas déjà fait, créez un dépôt Dataform. Vous en aurez besoin ultérieurement pour partager un secret avec votre compte de service Dataform.

Rôles requis

Pour obtenir les autorisations nécessaires pour associer un dépôt Dataform à un dépôt Git distant, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur Dataform (roles/dataform.admin) pour les dépôts. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Authentifier un dépôt distant via HTTPS

Vous pouvez authentifier les dépôts GitHub et GitLab via HTTPS en créant un secret Secret Manager avec un jeton d'accès personnel et en partageant ce secret avec votre compte de service Dataform.

Dataform utilise ensuite ce jeton pour se connecter à votre fournisseur Git afin de valider les modifications pour le compte des développeurs. Dataform effectue ces commits à l'aide de l'adresse e-mail Google Cloud du développeur afin que vous puissiez savoir qui est à l'origine de chaque commit.

Pour authentifier un dépôt GitHub, créez un jeton d'accès personnel classique ou un jeton d'accès personnel précis qui vous permet de personnaliser les autorisations de jeton.

Pour authentifier un dépôt GitLab, créez un jeton d'accès personnel classique.

Pour authentifier un dépôt GitHub ou GitLab dans Dataform via HTTPS, procédez comme suit:

  1. Dans GitHub ou GitLab, créez un jeton d'accès personnel.

  2. Lorsque vous créez un jeton d'accès personnel GitHub, procédez comme suit:

    1. Accordez à Dataform l'autorisation repo.

    2. Veillez à définir un délai d'expiration de jeton adapté à vos besoins.

    3. Si votre organisation utilise l'authentification unique (SSO) SAML, autorisez le jeton.

  3. Facultatif: Lorsque vous créez un jeton d'accès personnel précis GitHub, procédez comme suit:

    1. Sélectionnez l'accès au dépôt uniquement pour certains dépôts, puis sélectionnez le dépôt auquel vous souhaitez vous connecter.

    2. Accordez un accès en lecture et en écriture au contenu du dépôt.

    3. Veillez à définir un délai d'expiration de jeton adapté à vos besoins.

    4. Si votre organisation utilise l'authentification unique (SSO) SAML, autorisez le jeton.

  4. Lorsque vous créez un jeton d'accès personnel GitLab, procédez comme suit:

    1. Nommez le jeton dataform.

      Le jeton d'accès personnel GitLab doit être nommé dataform.

    2. Accordez à Dataform les autorisations api, read_repository et write_repository.

    3. Veillez à définir un délai d'expiration de jeton adapté à vos besoins.

  5. Dans Secret Manager, créez un secret contenant un jeton d'accès personnel pour vous connecter à votre fournisseur Git.

  6. Accordez l'accès au secret dans votre compte de service Dataform.

    Votre compte de service Dataform est au format suivant:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Lorsque vous accordez l'accès, veillez à attribuer le rôle roles/secretmanager.secretAccessor à votre compte de service Dataform.

Dataform utilise le jeton d'accès pour se connecter à votre fournisseur Git afin de valider les modifications pour le compte des développeurs. Dataform effectue ces commits à l'aide de l'adresse e-mail Google Cloud du développeur afin que vous puissiez savoir qui est à l'origine de chaque commit.

Authentifier un dépôt distant via SSH

Vous pouvez authentifier les dépôts Azure DevOps Services, Bitbucket, GitHub et GitLab via SSH en générant 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 compte de service Dataform.

Dataform utilise le secret avec la clé SSH privée pour se connecter à votre fournisseur Git et valider les modifications pour le compte des développeurs. Dataform effectue ces commits à l'aide de l'adresse e-mail Google Cloud du développeur afin que vous puissiez savoir qui est à l'origine de chaque commit.

Pour authentifier un dépôt Azure DevOps Services, Bitbucket, GitHub ou GitLab dans Dataform via SSH, procédez comme suit:

  1. Dans Azure DevOps Services, Bitbucket, GitHub ou GitLab, créez une clé SSH.

  2. Importez la clé SSH publique dans votre compte Git tiers.

  3. Dans Secret Manager, créez un secret en utilisant la clé SSH privée comme valeur du secret.

  4. Accordez l'accès au secret dans votre compte de service Dataform.

    Votre compte de service Dataform est au format suivant:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Lorsque vous accordez l'accès, veillez à attribuer le rôle roles/secretmanager.secretAccessor à votre compte de service Dataform.

Connecter un dépôt Dataform

Pour associer un dépôt Dataform à un dépôt Git distant, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  2. Sélectionnez le dépôt que vous souhaitez connecter.

  3. Sur la page du dépôt, cliquez sur Settings > Connect with Git (Paramètres > Se connecter avec Git).

  4. Dans le volet Lien vers le dépôt distant, saisissez l'URL du dépôt Git distant dans le champ URL du dépôt Git distant, qui se termine par .git.

    Pour l'authentification HTTPS, l'URL du dépôt Git distant ne peut pas contenir de noms d'utilisateur ni de mots de passe.

    Pour l'authentification SSH, 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}, port est facultatif.
    • URL de type SCP: git@{host_name}:{repository_path}.
  5. Dans le champ Default Remote branch name (Nom de la branche distante par défaut), saisissez le nom de la branche de développement principale du dépôt Git distant.

  6. Dans la liste déroulante Secret, sélectionnez votre secret pour le dépôt Git distant.

  7. Si vous avez utilisé l'authentification SSH pour le dépôt distant, saisissez une seule clé d'hôte publique de votre fournisseur Git dans le champ Valeur de la clé d'hôte publique SSH.

    La valeur de la clé d'hôte publique SSH doit être au format de fichier known_hosts. La valeur doit contenir un algorithme et une clé publique encodée au format base64, mais sans nom d'hôte ni adresse IP, au format suivant:

      ALGORITHM BASE64_KEY_VALUE
    
    • Pour la clé d'hôte publique Azure DevOps Services, exécutez la commande ssh-keyscan -t rsa ssh.dev.azure.com dans le terminal.

    • Pour la clé d'hôte publique Bitbucket, consultez la section Configurer SSH.

    • Pour obtenir la clé de l'hôte public GitHub, consultez les empreintes de clé SSH de GitHub.

    • Pour la clé d'hôte publique GitLab, consultez la section Entrées SSH known_hosts.

  8. 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:

  1. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  2. Cliquez sur le dépôt que vous souhaitez modifier.

  3. Sur la page du dépôt, cliquez sur Paramètres > Modifier la connexion Git.

  4. Dans le volet Associer au dépôt distant, modifiez l'une des options suivantes:

    1. Dans le champ URL du dépôt Git distant, modifiez l'URL du dépôt Git distant associé.

      L'URL du dépôt Git distant ne peut pas contenir de noms d'utilisateur ni de mots de passe.

    2. Dans le champ Nom de la branche distante par défaut, modifiez le nom de la branche de développement principale du dépôt Git distant.

    3. Dans la liste déroulante Secret, sélectionnez votre secret pour le dépôt Git distant.

    4. Si vous avez utilisé l'authentification SSH pour le dépôt distant, saisissez la clé d'hôte publique de votre fournisseur Git dans le champ Valeur de la clé d'hôte publique SSH.

      La valeur de la clé d'hôte publique SSH doit se présenter sous la forme d'un fichier hôte connu. La valeur doit contenir un algorithme et une clé publique encodée au format base64, mais sans nom d'hôte ni adresse IP, au format suivant:

       ALGORITHM BASE64_KEY_VALUE
      
  5. Cliquez sur Update (Mettre à jour).

Étapes suivantes