Actif
projects
functional
Revu le 2026-08-14
projects/backlog-workflow-builder.md
Automatisations du backlog (façon Jira Automation)
Doc fonctionnelle : décrit le quoi et le pourquoi (point de vue utilisateur / chef de projet).
À quoi ça sert
On veut créer des règles d'automatisation sur le backlog, façon Jira Automation : « QUAND un événement se
produit (changement de statut, assignation, plus tard un label de PR / un merge), SI une
condition est remplie, ALORS exécuter des actions (changer le statut, assigner, notifier) ». Les
statuts existants du backlog ne changent pas ; on automatise les actions autour d'eux. Le socle
prépare la synchronisation GitHub à venir (déclencheurs déjà configurables).
Onglet « Workflow » d'un projet. Le builder reprend le modèle
Jira Automation : une liste de règles par projet, chacune éditée dans un flow vertical.
Activation par projet : les onglets « Workflow » et « Revue de PR » sont désactivés
par défaut. On les active projet par projet via l'interrupteur « GitHub & Workflow » dans
l'onglet Paramètres du projet.
Deux onglets « Liste » / « Diagramme » permettent de changer de vue (le bouton « Créer une
règle » reste accessible dans les deux).
- Liste des règles : chaque règle affiche son déclencheur, ses conditions et ses actions ;
on peut l'activer/désactiver, l'éditer, la supprimer. Bouton « Créer une règle ».
- Diagramme (façon éditeur de workflow Jira) : un canvas interactif montre les statuts
du backlog en nœuds et les règles « Changer le statut » en flèches entre eux (label = nom de
la règle + déclencheur).
- Navigation (tout le monde) : molette = zoom (40 % à 200 %), glisser le fond =
déplacer la vue ; la barre d'outils propose zoom −/+, le pourcentage courant et
« Recentrer » (cadre tout le diagramme dans la vue). Cliquer un statut met en évidence
ses transitions entrantes/sortantes (re-clic pour annuler).
- Réorganisation (éditeurs) : on glisse les statuts librement sur le canvas (les flèches
suivent en direct) et on glisse les labels de flèches pour les décaler quand ils se
chevauchent. La disposition est enregistrée au lâcher et partagée par tous les
utilisateurs du projet (comme dans Jira). Le bouton « Layout auto » (avec confirmation)
revient à la disposition automatique.
- Créer une transition au drag (éditeurs) : au survol d'un statut, une poignée
+
apparaît sur son flanc droit ; on la tire vers un autre statut (ou le même, pour une
boucle) et l'éditeur s'ouvre pré-rempli — condition « statut d'arrivée = statut source »
(aucune condition si on part de « Tout statut ») et action « Changer le statut » vers la cible.
Il ne reste qu'à choisir le déclencheur et enregistrer.
- Cliquer une flèche (ou son label) ouvre l'édition de la règle (si on a le droit
d'édition) ; le retour ramène au diagramme.
- Les règles inactives sont en pointillé ; une règle sans condition de statut part du nœud
« Tout statut ». Une règle sans action « Changer le statut » mais conditionnée par une
transition de statut (ex. « si statut A tester → À retravailler, notifier / poser un
label ») est dessinée comme une flèche départ → arrivée (borne manquante = « Tout
statut ») : elle « écoute » cette transition. Seules les règles sans action « Changer le
statut » ni condition de statut (notification pure sur assignation, règle GitHub à
condition de label…) ne peuvent pas être représentées par une flèche et sont listées sous le
canvas en pastilles cliquables.
- Lisibilité : les flèches sont droites entre cartes alignées et en courbe douce
sinon (sortie et arrivée perpendiculaires aux bords des cartes) ; leurs points d'ancrage
s'espacent sur les bords quand plusieurs flèches partent ou arrivent du même côté, et les
étiquettes de flèches parallèles s'étalent le long du trajet.
Sans disposition personnalisée, le placement est automatique en colonnes suivant le sens du
flux (un statut est placé à droite de ceux qui mènent à lui, façon organigramme) ; seuls les
statuts réellement utilisés par une règle apparaissent.
- Éditeur de règle (deux colonnes) :
- À gauche, le flow : carte Déclencheur → (bouton
+) Condition → (bouton +)
Action(s). On clique une étape pour la configurer.
- À droite, le panneau de configuration de l'étape sélectionnée (choix + recherche du
déclencheur / de l'action, paramètres).
- Déclencheur : Changement de statut, (Ré)assignation (internes), Relecteur de PR
affecté (interne, émis par l'écran « Revue de PR » quand on affecte un relecteur — proposé
seulement si un connecteur GitHub actif est branché), ou GitHub (Label de PR modifié,
PR mergée, PR ouverte, Issue fermée). Les déclencheurs GitHub n'apparaissent dans le menu
que si un connecteur GitHub actif est branché pour le tenant ; sinon un message l'indique
(une règle GitHub déjà créée reste éditable).
- Condition (optionnelle, contextuelle) : pour un déclencheur interne, sur le
statut du backlog (départ / arrivée) ; pour un déclencheur GitHub, sur un label
GitHub (« la PR a le label ___ » = le « départ »). GitHub ne fournit pas de transition
de label native, on vérifie la présence du label sur la PR au moment de l'événement.
- Actions (une ou plusieurs, ordonnées) : Changer le statut, Assigner des membres,
Notifier. L'action Notifier cible, au choix (cumulables) : l'assigné de l'item, des
membres précis, et le relecteur de la PR liée à l'item s'il en a un (case « Notifier le
relecteur de la PR (si affecté) »). Le relecteur est résolu au moment du déclenchement ; sans
PR liée / sans relecteur, cette cible est simplement ignorée — sauf pour le déclencheur
Relecteur de PR affecté sur une PR non rattachée : le relecteur est alors directement
celui qui vient d'être affecté (il n'y a rien d'autre à résoudre), et c'est la seule action
qui s'applique dans ce cas (Changer le statut / Assigner des membres / Poser un label
n'ont pas de sens sans item de backlog). L'action Poser / retirer un label GitHub n'est
proposée (cliquable) qu'avec un connecteur GitHub actif ; sinon elle est grisée
(« connecteur requis »).
- Bouton « Enregistrer & activer ».
Générateur de nom de branche (bloc Git de la fiche d'un item de backlog) : on choisit le
type (feature / bugfix / hotfix) et l'outil génère un nom normalisé
‹type›/backlog-‹id›-‹titre› (ex. feature/backlog-1302-duplication-de-mission). Le bouton
copie la commande complète git switch -c ‹branche› (prête à coller). Le type choisi est
mémorisé sur l'item (conservé d'une ouverture à l'autre). Ce nom encode l'id du backlog, ce qui
sert à relier automatiquement une PR à son item.
Le bloc Git de la fiche (nom de branche + PR/issues liées) n'apparaît que si le
Workflow GitHub est activé pour le projet et qu'un connecteur GitHub actif existe ;
sinon il est masqué.
Règles d'accès
- Onglet et édition réservés aux utilisateurs pouvant modifier le projet (
canUpdateProject).
- Sur le diagramme, un utilisateur sans droit d'édition peut zoomer / se déplacer / surligner
(interactions locales), mais ne peut ni déplacer les statuts et labels, ni créer de
transition, ni réinitialiser la disposition (poignées et drag masqués, refus côté serveur).
- Isolation stricte par entité (tenant) et par projet : on ne voit et n'édite que les transitions
de son propre projet.
Points d'attention
- Les statuts eux-mêmes ne sont pas modifiables ici (colonnes du kanban figées). On configure
des règles (déclencheur → conditions → actions) autour des statuts existants.
- Le choix d'un label GitHub propose les labels réels des dépôts. Quand le champ « Dépôts » du
connecteur (Store) n'est pas renseigné, seuls les 5 premiers dépôts accessibles sont interrogés
et un bandeau signale la liste partielle : renseigner le champ pour obtenir la liste complète.
- Les options GitHub (déclencheurs + action « poser/retirer un label ») sont conditionnées à
un connecteur GitHub actif : masquées/grisées sans connecteur, et refusées côté serveur (on
ne peut pas créer une automatisation GitHub sans connecteur). Les règles GitHub préexistantes
restent visibles et éditables.
- L'auteur d'une action n'est jamais notifié de sa propre action (anti-spam).
- Les changements faits par une règle apparaissent dans l'historique de l'item (panneau
« Historique » de la fiche), avec le nom de la règle et le déclencheur : « Statut passé de
En cours à À tester — automatisation « PR mergée → À tester » (règle #6, déclencheur
github_pr_merged) ». Une assignation y est décrite avec le nom des membres, pas leurs
identifiants. Un statut ne bouge donc plus « tout seul » sans explication.
- Quand une règle ne fait rien, la raison est consultable par un développeur ISI dans le journal
des automatisations (
/admin → onglet Actions → tuile « Log-Viewer » → fichier
workflows.log) : label attendu différent du label reçu, statut cible inexistant,
notification sans destinataire,
interrupteur « GitHub & Workflow » resté fermé… Les cas normaux (label qui ne correspond pas
volontairement) restent sous le seuil des anomalies.
- Les notifications sont courtes, avec le titre du backlog en tête (tronqué à 40 caractères
au-delà ; à défaut le numéro « #‹id› » si le titre est vide). Le titre de la notification porte
l'événement, le message tient sur une ligne : ex. titre « Pull request mergée » + message
« Backlog « Fix workflows sans backlogs » : PR mergée », ou « Backlog « … » → Bloqué » pour un
changement de statut.
Voir aussi
- Doc technique :
../../.claude/technical-docs/projects/backlog-workflow-builder.md