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 associer 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 associer 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 services Azure DevOps et les dépôts distants 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 dont vous avez besoin 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) sur 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, puis en le partageant avec votre compte de service Dataform.

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 afin que vous puissiez savoir qui a effectué 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 détaillé qui vous permet de personnaliser les autorisations des jetons.

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 du 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 sur GitHub, procédez comme suit:

    1. Sélectionnez l'accès au dépôt uniquement pour les dépôts sélectionnés, 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 du 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 du 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 à votre compte de service Dataform l'accès au secret.

    Le format de votre compte de service Dataform est le 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 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 savoir qui a effectué chaque commit.

Authentifier un dépôt distant via SSH

Vous pouvez authentifier les dépôts Azure DevOps, 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é publique SSH 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. Partagez ensuite le secret avec votre compte de service Dataform.

Dataform utilise le secret avec la clé SSH privée 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 a effectué 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.

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

    Le format de votre compte de service Dataform est le 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.

    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 Associer au dépôt distant, dans le champ URL du dépôt Git distant, saisissez l'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 facultative.
    • 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 le nom d'hôte ni l'adresse IP, au format suivant:

      ALGORITHM BASE64_KEY_VALUE
    
  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.

    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 Default Remote branch name (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 être au format d'un fichier hôte connu. La valeur doit contenir un algorithme et une clé publique encodée au format base64, mais sans le nom d'hôte ni l'adresse IP, au format suivant:

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

Étapes suivantes