Exportation/Restauration Git

Les agents conversationnels (Dialogflow CX) s'intègrent à plusieurs fournisseurs Git (GitHub, Gitlab, Bitbucket, etc.). Cette intégration permet de exporter facilement votre agent au format JSON pour une mise à jour vers un fournisseur Git, et de récupérer à partir d'un fournisseur Git pour une restauration d'agent. Le format JSON exporté envoyé à 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 contrôle des sources d'un fournisseur Git, comme:

  • Examen des modifications apportées par l'agent à l'aide d'outils d'examen du code
  • Examiner les différences entre les agents à l'aide d'outils de comparaison
  • Fusions

Limites

Les limites suivantes s'appliquent :

  • [Ancienne version d'intégration uniquement] Les API GitHub limitent le nombre de fichiers pouvant être mis à jour dans un seul commit. Si le nombre de fichiers dépasse 500, vous ne pourrez peut-être pas effectuer de transfert vers GitHub à partir des 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 limitation sera levée dans une prochaine version des agents conversationnels (Dialogflow CX).
  • Les dépôts hébergés avec accès privé GitHub 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 transfert.

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 d'accès personnel GitHub. Si vous utilisez un jeton d'accès personnel précis, vous devez disposer des autorisations suivantes:

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

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.

Configuration des agents de conversation (Dialogflow CX)

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

  1. Accordez à l'agent de service Dialogflow l'autorisation d'accéder à 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 la section Accorder un rôle IAM.
  2. Ouvrez la configuration de l'intégration Git :
    • Console des agents de conversation
      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 Ajouter une 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 informations de 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é d'elle.
      • Secret du jeton d'accès, qui correspond à la version secrète que vous avez créée au format 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 affiche des notifications.

Push et restauration

Une fois la configuration terminée, vous pouvez pousser/extraire votre agent vers/depuis Git.

Le bouton Push permet d'exporter votre agent et de valider la branche Git sélectionnée dans le menu déroulant "Branche Git". Ce commit consistera en l'ensemble de l'agent et non en modifications spécifiques, et supprimera tous les fichiers existants du dépôt.

Les utilisateurs disposant des rôles Lecteur Dialogflow peuvent effectuer des transferts vers des dépôts Git. Pour éviter les transferts indésirables, configurez ces agents avec des jetons d'accès personnels en lecture seule.

Le bouton Restore (Restaurer) permet d'extraire les données de votre agent à partir de la branche Git sélectionnée dans le menu déroulant "Branch Git" (Branche Git) et de restaurer votre agent Conversational Agents (Dialogflow CX) à partir de ces données. Votre agent sera écrasé 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 d'agent à un agent de production.

Supposons que votre agent utilise les branches Git suivantes:

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

L'utilisateur 1 souhaite proposer des modifications d'agents et procède comme suit:

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

L'utilisateur 2 souhaite proposer des modifications d'agents et procède comme suit:

  1. Exportez l'agent de production vers un nouvel agent.
  2. Apportez les modifications souhaitées à ce texte d'agent.
  3. Testez les modifications.
  4. Transférez l'agent modifié vers la branche Dev2.
  5. Créez une demande de fusion dans 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. Committe les modifications approuvées.
  3. Restaure la branche Git de production dans l'agent Conversational Agents (Dialogflow CX) de production.