Skip to main content
Skip to content

Utilisation de flux de travail dynamiques

Recherchez, exécutez, surveillez et reprenez des flux de travail dynamiques dans GitHub Copilot CLI et le GitHub Copilot app.

Remarque

Cette fonctionnalité est en préversion publique et peut être modifiée.

Cet article explique comment créer, utiliser et partager des flux de travail dynamiques dans GitHub Copilot CLI et le GitHub Copilot app.

Pour obtenir une vue d’ensemble des flux de travail dynamiques et de leur fonctionnement, consultez Flux de travail dynamiques.

Conditions préalables

Pour utiliser des flux de travail dynamiques dans Copilot CLI, vous devez activer des fonctionnalités expérimentales en exécutant l’interface CLI avec l’option --experimental de ligne de commande ou à l’aide /experimental on d’une session interactive.

Découvrir les flux de travail dynamiques disponibles

Vous avez peut-être déjà accès à un ou plusieurs flux de travail dynamiques dans votre session, par exemple par le biais d’une extension personnelle ou d’une extension dans le référentiel dans lequel vous travaillez. Dans ce cas, vous pouvez en utiliser un en le mentionnant par nom dans une invite.

Pour savoir si des flux de travail dynamiques sont disponibles, demandez-le simplement à Copilot. Par exemple:

Copilot prompt
What dynamic workflows are available?

Si des flux de travail dynamiques sont disponibles, vous pouvez demander à Copilot d’en décrire un. Par exemple:

Copilot prompt
Tell me more about the java-security-checks dynamic workflow.

Si vous n’avez pas encore de flux de travail dynamiques, vous pouvez en créer un. Consultez Création d’un flux de travail dynamique.

Exécution d’un flux de travail dynamique

  1. Dans une session Copilot, entrez une requête en langage naturel pour demander à Copilot d’exécuter un flux de travail dynamique.

    Utilisez le nom enregistré du flux de travail et fournissez tous les paramètres requis. Par exemple, un flux de travail dynamique qui effectue un contrôle de sécurité vous demandera généralement de préciser les fichiers auxquels il doit s’appliquer. Dans ce cas, vous pouvez entrer une invite telle que :

    Copilot prompt
    Run the java-security-checks dynamic workflow on the java files in the current directory, with an AI credit limit of 500.
    

    Important

    Définir des limites pour un flux de travail dynamique est facultatif, mais recommandé, car cela permet de contrôler l’utilisation des ressources et d’empêcher une consommation excessive de AI credits. Pour plus d’informations sur les limites que vous pouvez définir, consultez Flux de travail dynamiques.

  2. Selon vos paramètres d’approbation d’autorisation actuels, Copilot vous invite à approuver l’exécution du flux de travail dynamique avant de commencer. Choisissez Oui.

Si l’extension fournit un autre moyen de démarrer son flux de travail, tel qu’une commande de barre oblique ou un contrôle de canevas dans le Copilot app, suivez les instructions de cette extension.

Exécution d’un flux de travail dynamique à partir de la ligne de commande

  1. Dans un terminal, utilisez la Copilot CLI commande copilot workflow run WORKFLOW-NAME [OPTIONS] pour exécuter un flux de travail dynamique existant.

    Le flux de travail doit être disponible au moyen d’une extension personnelle, d’une extension de projet ou d’un plug-in installé. Si vous avez créé le flux de travail dans une session de chat, commencez par rendre son extension disponible en dehors de cette session. Consultez Réutilisation et partage de flux de travail dynamiques.

    Permet --args de fournir des entrées pour le flux de travail en tant que JSON.

    Important

    Cette commande n’affiche pas les invites d’approbation d’autorisation, même lorsque vous l’exécutez dans un terminal. Accordez les autorisations dont les agents du flux de travail ont besoin avant de commencer, par exemple avec --allow-tool ou --allow-url. Les demandes qui ne peuvent pas être approuvées automatiquement sont refusées. Pour plus d’informations, consultez « référence programmatique du CLI GitHub Copilot ».

    Par exemple, supposons que vous disposez d’un flux de travail nommé java-security-checks qui accepte une directory entrée et doit être autorisé à lire des fichiers :

    Shell
    copilot workflow run java-security-checks \
       --args '{"directories":["java/src","java/tests"]}' \
       --allow-tool=read
    

    Remplacez le nom du flux de travail, les champs d’entrée et les autorisations pour qu’ils correspondent à votre flux de travail. Si le flux de travail ne nécessite aucune entrée, omettez --args.

    Vous pouvez également placer les entrées JSON dans un fichier et préfixer son chemin d’accès avec @:

    Shell
    copilot workflow run java-security-checks \
       --args @workflow-input.json \
       --allow-tool=read
    
  2. Consultez les phases et les messages de progression indiqués par le workflow. Une fois l’opération terminée, la commande imprime son résultat, s’il en retourne un, et se ferme. S’il interrompt ou s’arrête sans terminer, la commande signale l’état de l’exécution et l’ID d’exécution. Pour interrompre une exécution, appuyez sur Ctrl+C.

Les limites configurées du flux de travail et vos limites personnelles par défaut s’appliquent toujours. Consultez « Flux de travail dynamiques ».

Enregistrement du résultat dans un fichier

Ajoutez --result-file pour écrire la valeur retournée par le flux de travail dans un fichier JSON au lieu de l’imprimer dans le terminal. Les messages de progression sont toujours affichés.

Shell
copilot workflow run java-security-checks \
   --args @workflow-input.json \
   --result-file security-results.json \
   --allow-tool=read

Le fichier contient uniquement la valeur retournée, et non les messages de progression ni les détails de l’exécution. Les chemins relatifs sont résolus à partir du répertoire depuis lequel vous avez lancé la commande.

Le fichier est écrit uniquement lorsque le flux de travail se termine correctement et retourne un résultat. Un fichier existant est remplacé uniquement une fois que le nouveau résultat a été écrit avec succès. Une exécution suspendue, ayant échoué ou interrompue laisse un fichier existant inchangé.

Exécution d’un flux de travail dans un script

Pour les scripts et les pipelines CI/CD, configurez l’authentification et les autorisations avant d’exécuter la commande. Vous pouvez utiliser une variable d’environnement d’authentification telle que COPILOT_GITHUB_TOKEN. Consultez « Référence de commande CLI pour GitHub Copilot ».

Pour charger une extension de projet lorsque le répertoire de travail n’a pas déjà été approuvé, définissez-le GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true pour cet appel. Cela permet au code d’extension du référentiel de s’exécuter. Utilisez-le uniquement pour le code auquel vous faites confiance. Vous devez toujours accorder aux agents du flux de travail les autorisations nécessaires à l’outil.

Permet --silent de supprimer la sortie de progression. Ajoutez --output-format json pour recevoir un enregistrement JSON contenant le nom du flux de travail, l’ID d’exécution, le statut et tout résultat renvoyé :

Shell
copilot --allow-tool=read workflow run java-security-checks \
   --args @workflow-input.json \
   --silent --output-format json

Création d’un flux de travail dynamique

Par défaut, Copilot crée un flux de travail dans une extension pour votre session en cours. Vous pouvez plutôt lui demander de créer le flux de travail dans une extension personnelle ou une extension de projet.

  1. Décrivez ce que vous souhaitez que le flux de travail accomplisse, tout ordre requis entre les étapes, quelles parties du flux de travail doivent utiliser un agent et les éventuelles contraintes. Par exemple:

    Copilot prompt
    Create a dynamic workflow named review-changed that lists changed files, asks an agent to review them, and summarizes the findings.
    

    Remarque

    Si vous ne fournissez pas de nom pour le flux de travail, Copilot choisissez-en un lors de la création.

  2. Selon vos paramètres actuels d’approbation des autorisations, il vous sera demandé d’autoriser Copilot à créer un nouveau workflow dynamique. Choisissez Oui.

Copilot peut demander d’autres approbations lors de la création et de l’inscription du flux de travail dynamique.

  1. Une fois le processus de création terminé, vérifiez que le flux de travail a été correctement créé et inscrit. Pour ce faire, demandez à Copilot quels workflows dynamiques sont disponibles.

La création et l’enregistrement d’un workflow ne lancent pas d’exécution. Pour l’utiliser, consultez Exécution d’un flux de travail dynamique.

Vous pouvez également écrire l’extension vous-même, avec des conseils de Copilot. Pour consulter l’aide intégrée, dites :

Copilot prompt
Show me the guidance for writing dynamic workflows.

Réutilisation et partage de flux de travail dynamiques

Les flux de travail dynamiques sont implémentés sous forme d’extensions Copilot. Par défaut, lorsque vous demandez à Copilot de créer un flux de travail, l’extension correspondante n’est disponible que pendant cette session. Un flux de travail peut aussi déjà être stocké dans une extension personnelle ou une extension de projet.

Pour réutiliser ou partager un flux de travail que vous avez créé dans la session active, copiez son extension dans votre répertoire d’extensions personnelles ou dans le répertoire des extensions de votre référentiel. Cette opération copie la définition, et non son historique d’exécution ni sa progression enregistrée.

  1. Demandez à Copilot de vous indiquer le chemin d’accès du flux de travail dynamique que vous souhaitez partager. Par exemple:

    Copilot prompt
    Tell me the path to the java-security-checks dynamic workflow.
    

Copilot répond avec un chemin d’accès tel que : /Users/yourname/.copilot/session-state/d58ba0bf-78fa-4172-b277-c18ba400e7c6/extensions/java-security-checks/extension.mjs

  1. Pour rendre ce flux de travail dynamique disponible dans toutes vos sessions, copiez le répertoire contenant le fichier extension.mjs dans votre répertoire ~/.copilot/extensions/.

    Vous pouvez demander à Copilot de le faire pour vous. Par exemple:

    Copilot prompt
    Copy the java-security-checks workflow to my personal extensions directory.
    
  2. Vous pouvez également, pour partager le flux de travail dynamique avec toutes les personnes travaillant sur un référentiel, copier le répertoire contenant le fichier extension.mjs dans le répertoire .github/extensions/ de votre copie locale du référentiel.

    Là encore, vous pouvez demander à Copilot de le faire pour vous. Par exemple, si vous travaillez actuellement dans le dépôt dans lequel vous souhaitez rendre disponible le workflow dynamique :

    Copilot prompt
    Copy the java-security-checks workflow to the current repository's extensions directory.
    

    Une fois cette modification fusionnée dans le dépôt, les membres de l’équipe peuvent utiliser le processus après avoir mis à jour leur copie locale et chargé l’extension.

  3. Démarrez une nouvelle session ou redémarrez une session existante. Une fois la session chargée, demandez à Copilot de lister les flux de travail dynamiques disponibles afin de vérifier que votre flux de travail est désormais disponible.

Distribution des workflows dynamiques dans un plug-in

Les plug-ins offrent un moyen de distribuer des fonctionnalités personnalisées Copilot . Vous pouvez utiliser un plug-in pour ajouter des flux de travail dynamiques à Copilot CLI et à GitHub Copilot app.

Pour plus d’informations, consultez « Création d’un plug-in pour GitHub Copilot CLI ».

Après avoir créé un plugin contenant votre flux de travail dynamique et l’avoir publié sur une place de marché de plugins, les utilisateurs pourront le découvrir et l’installer. Consultez « Recherche et installation de plug-ins pour GitHub Copilot CLI ».

Suivi et gestion des exécutions de workflows dynamiques

Vous pouvez surveiller la progression d’une exécution et son AI credits usage, ainsi que les phases éventuelles et les sous-agents signalés par le flux de travail. Vous pouvez également consulter les exécutions terminées, suspendre ou annuler une exécution active, et reprendre une exécution que vous avez suspendue ou qui a été arrêtée lorsqu’une limite a été atteinte.

Dans Copilot CLI:

  1. Dans une session interactive, entrez /workflows.

    Les exécutions de flux de travail dynamiques en cours et récemment terminées sont répertoriées.

  2. Utilisez les touches de direction pour déplacer la sélection, puis appuyez sur Entrée pour ouvrir les détails d’un run.

    Les détails incluent la durée pendant laquelle une exécution a été active, toute phase actuelle signalée par le flux de travail, le nombre de sous-éléments actuellement actifs, le nombre total de sous-éléments générés et le nombre d’éléments AI credits utilisés jusqu’à présent.

  3. Lors d’une exécution en cours, appuyez sur P pour mettre en pause, X pour annuler l’exécution.

Dans le Copilot app:

Remarque

L’analyse des exécutions n’est disponible que pour les sessions locales.

Si vous exécutez ou avez exécuté un flux de travail dynamique dans la session active, un bouton Flux de travail s’affiche au-dessus de la zone d’invite.

  1. Cliquez sur le bouton Flux de travail.

    Une fenêtre contextuelle s’affiche pour répertorier les exécutions actives, les exécutions prêtes à reprendre et les exécutions récemment terminées.

  2. Cliquez sur une exécution de flux de travail dans la fenêtre contextuelle.

    Un panneau affiche les détails de l’exécution du flux de travail sélectionné.

    Les détails incluent la durée pendant laquelle une exécution a été active, toute phase actuelle signalée par le flux de travail, le nombre de sous-éléments actuellement actifs, le nombre total de sous-éléments générés et le nombre d’éléments AI credits utilisés jusqu’à présent.

  3. Pour arrêter une exécution active, cliquez sur Annuler. Pour la suspendre, afin qu’elle puisse être reprise ultérieurement, cliquez sur Suspendre.

Surveillance des workflows dynamiques avec OTel

Si vous avez activé OpenTelemetry (OTel), vous pouvez inspecter l’activité de flux de travail dans vos traces. Un flux de travail crée un invoke_workflow intervalle chaque fois qu’il s’exécute ou reprend, avec l’activité de ses agents qui lui est liée.

Pour la configuration dans Copilot CLI, consultez Référence de commande CLI pour GitHub Copilot.

Reprendre une exécution

Vous pouvez reprendre une exécution suspendue ou une exécution qui s’est arrêtée à une limite lorsqu’elle est répertoriée comme pouvant être reprise. Le flux de travail peut réutiliser les résultats enregistrés à partir des étapes et sous-éléments terminés, plutôt que de démarrer une nouvelle exécution. Le travail qui n’a pas été enregistré doit peut-être être réexécuter.

Si vous reprenez une exécution qui a atteint une limite, définissez un total plus élevé pour cette limite. L’utilisation avant l’arrêt de l’exécution compte toujours vers le nouveau total.

Impossible de reprendre les exécutions annulées.

In Copilot CLI:

  1. Dans une session interactive, entrez /workflows.
  2. Utilisez les touches de direction pour déplacer la sélection vers l’exécution suspendue ou arrêtée que vous souhaitez reprendre.
  3. Appuyez sur R pour reprendre l’exécution.
  4. Si vous y êtes invité, augmentez la limite atteinte et confirmez le nouveau total.

Dans le Copilot app:

  1. Dans une session contenant des exécutions de workflows dynamiques suspendues ou arrêtées, cliquez sur le bouton Workflows, juste au-dessus du champ de saisie.

    Les exécutions pouvant être reprises sont répertoriées dans la section « Prêtes à être reprises ».

  2. Cliquez sur l’exécution à reprendre.

  3. Dans le volet latéral, cliquez sur Reprendre. Si l’exécution a atteint une limite, cliquez sur Reprendre avec limite… suivez plutôt les invites pour définir un total supérieur et reprendre.

Programmation d’un flux de travail dynamique

Vous pouvez planifier une exécution de flux de travail dynamique dans votre session activeCopilot CLI, comme n’importe quelle autre invite, à l’aide des commandes ou /after des /every commandes. Par exemple:

Copilot prompt
/every 1d run the changed-files-report dynamic workflow on the 'main' branch, limiting it to 200 AI credits

Pour plus d’informations, consultez « Programmer des messages dans GitHub Copilot CLI ».