Work Chains

Découvrez comment exécuter plusieurs issues en séquence par lot grâce aux work chains - créer des chaînes, utiliser les suggestedPrompt pour une exécution précise, suivre la progression et gérer la résolution séquentielle des issues.

6 min lire
issueswork-chainsbatch-execution

Les work chains sont le système d’exécution par lot de CodeCourier pour les issues. Plutôt que d’exécuter les issues une par une, vous pouvez regrouper plusieurs issues dans une work chain et les exécuter séquentiellement - chaque issue est résolue dans l’ordre, l’issue suivante ne démarrant qu’une fois la précédente terminée. C’est idéal pour des corrections liées qui doivent être appliquées dans un ordre précis, comme une série de correctifs de sécurité ou un ensemble coordonné de tâches de refactoring.

Que sont les Work Chains ?

Une work chain est une liste ordonnée d’issues liée à un workflow unique et à une configuration d’exécution. Lorsque vous démarrez une chaîne, CodeCourier traite chaque issue séquentiellement :

  1. La première issue est prise en charge et un workflow run est lancé
  2. Le run s’exécute dans une sandbox, applique les modifications de code et crée une PR
  3. Une fois le run terminé, l’issue suivante de la chaîne est traitée
  4. Cela continue jusqu’à ce que toutes les issues soient résolues ou qu’un échec survienne

Exécution séquentielle

Les work chains exécutent les issues une par une, dans l’ordre. Cela garantit que les modifications de code des issues précédentes sont commitées avant que les issues suivantes ne commencent, évitant les conflits de fusion et garantissant que chaque correction s’appuie sur la précédente.

Work Chains vs. Sprint Chains

Les work chains et les sprint chains sont des concepts distincts dans CodeCourier, bien qu’elles partagent l’idée d’exécution séquentielle :

Work ChainsSprint Chains
EntréeIssues (découvertes ou manuelles)Workflow runs d’un plan de sprint
Source du promptLe suggestedPrompt ou la description de chaque issuePrompt au niveau du sprint et contexte de planification
Cas d’usageCorrection par lot de bugs ou d’améliorations découvertsExécution d’un sprint multi-fonctionnalités planifié
Stratégie de PRUne PR par issueConfigurable par sprint

Utilisez les work chains lorsque vous avez un ensemble d’issues distinctes et corrigeables indépendamment à résoudre. Utilisez les sprint chains lorsque vous avez une séquence planifiée de constructions de fonctionnalités.

Comment les prompts sont sélectionnés

Le prompt transmis à chaque workflow run d’une chaîne est déterminé par le champ suggestedPromptde l’issue. Ce champ est généralement renseigné par l’Issue Agent IA pendant le scan - il contient des instructions de correction spécifiques et ciblées rédigées pour cette issue exacte, plutôt qu’une description générique.

L’ordre de résolution est le suivant :

  1. Si suggestedPromptest défini et non vide, il est utilisé comme prompt du run. Cela donne au workflow run des instructions précises, rédigées par l’IA, adaptées à la correction spécifique requise.
  2. Si suggestedPrompt n’est pas défini, la descriptionde l’issue est utilisée comme solution de repli.

Pourquoi suggestedPrompt compte

Les issues découvertes par une Issue Session portent un suggestedPromptrédigé par le même agent IA qui a identifié le problème - il sait exactement ce qui doit être corrigé et comment. C’est pourquoi les issues découvertes par l’IA dans une work chain tendent à produire des workflow runs de meilleure qualité que les issues créées manuellement avec seulement une description. Lorsque vous créez des issues manuellement pour une utilisation dans des work chains, prenez le temps de rédiger un suggestedPrompt précis.

Créer une Work Chain

Pour créer une work chain depuis la page Issues :

  1. Sélectionnez les issues que vous voulez inclure à l’aide des cases à cocher dans la liste des issues.
  2. Cliquez sur le bouton Créer une Work Chain.
  3. Configurez les paramètres de la chaîne :
    • Workflow - Sélectionnez le blueprint de workflow pour toutes les issues de la chaîne
    • URL de repository GitHub (optionnelle) - Repository cible pour les PR
    • Nom de branche (optionnel) - Branche de base pour le travail
  4. Soumettez pour créer la chaîne. Les issues se voient attribuer un workChainId et un workChainOrder reflétant leur position dans la séquence.

L'ordre des issues compte

Organisez les issues dans l’ordre dans lequel vous voulez qu’elles soient résolues. Si l’issue B dépend de changements de l’issue A, assurez-vous que l’issue A vient en premier dans la chaîne. Vous pouvez réorganiser les issues pendant la création de la chaîne.

Comment fonctionne l’exécution

Une fois qu’une work chain est démarrée, l’exécution suit ce schéma pour chaque issue :

  1. Le suggestedPrompt de l’issue (ou la descriptionsi aucun prompt n’est défini) est utilisé comme prompt du run.
  2. Un workflow run est lancé en utilisant le workflow, l’URL GitHub et la branche configurés de la chaîne.
  3. L’issue est liée au run et son statut passe à running.
  4. Lorsque le run se termine, le statut de l’issue est mis à jour vers completed ou failed.
  5. Si le run a réussi, la chaîne avance vers l’issue suivante. S’il a échoué, la chaîne se met en pause pour examen.

Suivi du statut de la chaîne

Les work chains ont leur propre statut de cycle de vie :

StatutDescription
pendingLa chaîne a été créée mais l’exécution n’a pas encore commencé.
runningL’une des issues de la chaîne est en cours de traitement.
completedToutes les issues de la chaîne ont été résolues avec succès.
failedUne issue de la chaîne a échoué. La chaîne est en pause à l’issue en échec.
cancelledLa chaîne a été annulée manuellement par l’utilisateur.

Champs d’une Work Chain

ChampTypeDescription
titlestringNom d’affichage de la work chain
descriptionstring (optionnel)Description de l’objectif de la chaîne
issueIdstableau d’IDListe ordonnée des issues de la chaîne
workflowIdIDLe blueprint de workflow utilisé pour tous les runs
githubRepoUrlstring (optionnel)URL du repository GitHub cible
branchNamestring (optionnel)Branche de base pour les modifications de code
statusenumStatut actuel de la chaîne : pending, running, completed, failed, cancelled

Suivre la progression de la chaîne

La progression de la work chain est affichée en temps réel sur la page Issues. Vous pouvez voir :

  • Le statut global de la chaîne et le pourcentage d’achèvement
  • Quelle issue est actuellement en cours de traitement
  • Les statuts individuels des issues au sein de la chaîne
  • Les liens vers les workflow runs créés pour chaque issue
  • Les pull requests générées à partir des issues terminées

Si une issue de la chaîne échoue, vous pouvez examiner l’échec, modifier le prompt suggéré de l’issue, et relancer la chaîne à partir de l’issue en échec.

Prochaines étapes