Connecter un dépôt Git tiers

Ce document explique comment connecter un dépôt distant à un dépôt Dataform. Une fois les dépôts connecté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 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 SSH
GitHub SSH ou HTTPS
GitLab SSH ou HTTPS

Avant de commencer

  1. Si votre organisation ou votre projet limite 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 un dépôt Dataform que vous souhaitez connecter à un dépôt distant. Pour en savoir plus, consultez la section Restreindre les dépôts distants.
  2. Sélectionnez ou créez un dépôt Dataform. Vous en aurez besoin plus tard pour partager un secret avec votre compte de service Dataform par défaut.

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 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 page Gérer l'accès aux projets, aux dossiers et aux organisations.

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

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é publique SSH et d'une clé privée SSH. 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 par défaut.

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

Pour connecter un dépôt distant à un dépôt Dataform via SSH, procédez comme suit:

  1. Dans votre fournisseur Git, procédez comme suit:

    Services Azure DevOps

    1. Dans Azure DevOps Services, créez une clé privée SSH.
    2. Importez la clé SSH publique dans votre dépôt Azure DevOps Services.

    Bitbucket

    1. Dans Bitbucket, créez une clé privée SSH.
    2. Importez la clé SSH publique dans votre dépôt Bitbucket.

    GitHub

    1. Dans GitHub, créez une clé privée SSH.
    2. Importez la clé SSH publique GitHub dans votre dépôt GitHub.

    GitLab

    1. Dans GitLab, créez une clé privée SSH.
    2. Importez la clé SSH publique GitLab dans votre dépôt GitLab.
  2. Dans Secret Manager, créez un secret et définissez votre clé SSH privée comme valeur secrète.

    1. Accordez l'accès au secret à votre compte de service Dataform par défaut.

      Votre compte de service Dataform par défaut se présente sous la forme suivante:

      service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
      
    2. Attribuez le rôle roles/secretmanager.secretAccessor au compte de service.

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

    Accéder à Dataform

  4. Sélectionnez le dépôt Dataform que vous souhaitez connecter au dépôt distant.

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

  6. 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, qui se termine par .git.

    L'URL du dépôt Git distant doit être au format suivant:

    • URL absolue: ssh://git@{host_name}[:{port}]/{repository_path}, port est facultatif.
    • URL semblable à SCP: git@{host_name}:{repository_path}.
  7. 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.

  8. Dans le menu déroulant Secret, sélectionnez votre secret pour le dépôt Git distant.

  9. 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

    La valeur de la clé d'hôte publique SSH doit être au format d'un 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
    

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

    Bitbucket

    La valeur de la clé d'hôte publique SSH doit être au format d'un 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
    

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

    GitHub

    La valeur de la clé d'hôte publique SSH doit être au format d'un 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
    

    Pour récupérer la clé d'hôte publique GitHub, consultez la page Empreintes de la clé SSH de GitHub.

    GitLab

    La valeur de la clé d'hôte publique SSH doit être au format d'un 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
    

    Pour récupérer la clé d'hôte publique GitLab, consultez les entrées known_hosts SSH.

  10. 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 et le partager avec votre compte de service Dataform par défaut.

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

Pour connecter un dépôt distant à un dépôt Dataform via HTTPS, procédez comme suit:

  1. Dans votre fournisseur Git, procédez comme suit:

    GitHub

    1. 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:
      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. Définissez un délai d'expiration du jeton adapté à vos besoins.

      • Pour un jeton d'accès personnel GitHub classique, procédez comme suit:
      1. Accordez à Dataform l'autorisation repo.

      2. Définissez un délai d'expiration du jeton adapté à vos besoins.

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

    GitLab

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

    2. Nommez le jeton dataform.

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

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

    4. Définissez une heure d'expiration du jeton adaptée à vos besoins.

  2. Dans Secret Manager, créez un secret contenant le jeton d'accès personnel de votre dépôt distant.

  3. Accordez l'accès au secret à votre compte de service Dataform par défaut.

    Votre compte de service Dataform par défaut se présente sous la forme suivante:

    service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
    
    1. Attribuez le rôle roles/secretmanager.secretAccessor au compte de service.
  4. Dans la console Google Cloud, accédez à la page Dataform page.

    Accéder à Dataform

  5. Sélectionnez le dépôt Dataform que vous souhaitez connecter au dépôt distant.

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

  7. 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, qui se termine par .git.

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

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

  9. Dans le menu déroulant Secret, sélectionnez votre secret pour le dépôt Git distant.

  10. 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 Settings > Edit Git connection (Paramètres > Modifier la connexion Git).

  4. Dans le volet Lien vers le dépôt distant, modifiez les paramètres de connexion.

  5. Cliquez sur Mettre à jour.

Étape suivante