Exportation/Restauration Git

Les agents conversationnels (Dialogflow CX) s'intègrent à plusieurs fournisseurs Git (GitHub, GitLab, Bitbucket et autres). Cette intégration permet d'exporter facilement votre agent au format JSON pour l'envoyer à un fournisseur Git, et de l'extraire d'un fournisseur Git pour restaurer un agent. Le format JSON exporté et transféré vers un fournisseur Git correspond au contenu du fichier ZIP développé de l'agent exporté.

Cette fonctionnalité vous permet de profiter des fonctionnalités de gestion de code source d'un fournisseur Git, comme :

  • Examiner les modifications apportées par l'agent à l'aide d'outils de révision de code
  • Examiner les différences entre les agents à l'aide d'outils de comparaison
  • Fusions

Limites

Les limites suivantes s'appliquent :

  • [Ancienne version de l'intégration uniquement] Les API GitHub limitent le nombre de fichiers pouvant être mis à jour dans une même validation. Si le nombre de fichiers dépasse 500, vous ne pourrez peut-être pas envoyer de fichiers vers GitHub depuis les agents conversationnels (Dialogflow CX). Dans ce cas, vous pouvez exporter l'agent au format ZIP et utiliser la CLI Git sur votre machine pour transférer les fichiers de l'agent vers GitHub. Cette limite sera traitée dans une prochaine version des agents conversationnels (Dialogflow CX).
  • Les dépôts GitHub auto-hébergés avec accès privé ne sont pas compatibles, car les agents conversationnels (Dialogflow CX) ne peuvent pas y accéder.
  • Le dépôt Git ne peut contenir que les fichiers d'agent exportés par l'exportation d'agent. Tous les autres fichiers du dépôt seront supprimés à chaque push.

Configuration

Pour configurer cette fonctionnalité, vous devez obtenir un jeton d'accès auprès de votre fournisseur Git, le stocker dans Secret Manager et fournir la ressource secrète aux agents conversationnels (Dialogflow CX) :

Jeton d'accès

Pour obtenir un jeton d'accès auprès de votre fournisseur Git :

GitHub

Vous devez obtenir un jeton personnel GitHub. Si vous utilisez un jeton d'accès personnel précis, vous avez besoin des autorisations suivantes :

  • Autorisations du dépôt > Contenus : lecture et écriture
  • Autorisations du dépôt > Métadonnées : lecture seule (devrait être sélectionné automatiquement après avoir sélectionné l'autorisation "Contenus")

Gitlab

Vous devez obtenir un jeton d'accès personnel GitLab.

Bitbucket

Vous devez obtenir un jeton d'accès Bitbucket.

Secret Manager

Maintenant que vous disposez d'un jeton d'accès, vous devez créer un secret pour votre jeton :

  1. Activez l'API Secret Manager.
  2. Créez un secret.

Configurer les agents de conversation (Dialogflow CX)

Pour configurer cette intégration pour les agents conversationnels (Dialogflow CX) :

  1. Autorisez l'agent de service Dialogflow à accéder au secret du jeton d'accès dans Secret Manager. Attribuez le rôle Secret Manager Secret Accessor au compte de service gcp-sa-dialogflow.iam.gserviceaccount.com dans votre projet d'agent. Consultez Accorder l'accès à un secret Secret Manager.
  2. Ouvrez la configuration de l'intégration Git :
    • Console Agents conversationnels
      1. Ouvrez l'écran des paramètres en cliquant sur l'icône de paramètres en haut à droite.
      2. Faites défiler la page vers le bas, puis cliquez sur Add Git integration (Ajouter l'intégration Git).
    • Console Dialogflow CX
      1. Cliquez sur l'onglet Gestion.
      2. Cliquez sur Git dans la section Test et déploiement.
      3. Cliquez sur Créer.
  3. Fournissez les détails de la configuration :
    1. Saisissez les informations suivantes :
      • Nom à afficher pour la connexion GitHub.
      • URL du dépôt Git (par exemple, https://github.com/<path-to-repo>.git).
      • Ajoutez les branches Git avec lesquelles votre agent interagira. Vous pouvez désigner une branche comme branche par défaut en cliquant sur l'icône en forme d'étoile à côté de celle-ci.
      • Secret du jeton d'accès, qui correspond à la version du secret que vous avez créée dans le formulaire projects/*/secrets/*/versions/* pour une version spécifique ou projects/*/secrets/*/versions/latest pour la dernière version.
    2. Cliquez sur Se connecter.
    3. La préparation du service Git peut prendre une minute. La console affichera des notifications.

Envoyer et restaurer

Une fois configuré, vous pouvez envoyer/extraire votre agent vers/depuis Git.

Le bouton Envoyer permet d'exporter votre agent et de valider la branche Git sélectionnée dans le menu déroulant "Branche Git". Ce commit comprendra l'intégralité de l'agent et non des modifications spécifiques. Il supprimera tous les fichiers existants dans le dépôt.

Les utilisateurs disposant du rôle Lecteur Dialogflow peuvent transférer des données vers des dépôts Git. Pour éviter les envois indésirables, configurez ces agents avec des jetons d'accès personnel en lecture seule.

Le bouton Restaurer permet d'extraire les données de votre agent à partir de la branche Git sélectionnée dans le menu déroulant "Branche Git" et de restaurer votre agent Agents de conversation (Dialogflow CX) à partir de ces données. Cela écrasera votre agent de la même manière que toute restauration d'agent.

Exemple d'utilisation

L'exemple suivant montre comment plusieurs personnes peuvent utiliser cette fonctionnalité pour proposer différentes modifications à un agent de production.

Imaginons que votre agent utilise les branches Git suivantes :

  • Prod : branche pour votre agent de production
  • Dev1 : branche pour le développement de l'agent
  • Dev2 : autre branche pour le développement de l'agent

L'utilisateur 1 souhaite proposer des modifications de l'agent et procède comme suit :

  1. Exportez l'agent de production vers un nouvel agent.
  2. Apportez les modifications souhaitées à cette copie de l'agent.
  3. Testez les modifications.
  4. Transférez l'agent modifié vers la branche Dev1.
  5. Créez une demande de fusion pour la branche Prod.

L'utilisateur 2 souhaite proposer des modifications de l'agent et procède comme suit :

  1. Exportez l'agent de production vers un nouvel agent.
  2. Apportez les modifications souhaitées à cette copie de l'agent.
  3. Testez les modifications.
  4. Transférez l'agent modifié vers la branche Dev2.
  5. Créez une demande de fusion pour la branche Prod.

L'utilisateur 3 examine les demandes de fusion des deux utilisateurs et effectue les étapes suivantes :

  1. Résolvez les conflits.
  2. Valide les modifications approuvées.
  3. Restaure la branche Git de production dans l'agent de conversation (Dialogflow CX) de production.