Aller au contenu

Configurer des déclencheurs de pipeline

Un déclencheur est ce qui démarre un pipeline. Chacun est un nœud du canevas, déposé depuis la section Déclencheurs de la bibliothèque de nœuds. Sélectionner ce nœud ouvre son inspecteur à droite — il n’existe pas de liste de déclencheurs permanente, ni d’onglet Déclencheurs, ni d’écran Déclencheurs.

  1. Accédez à Paramètres → Espace de travail → Modèles de pipeline.
  2. Cliquez sur le crayon de la ligne du modèle pour ouvrir l’éditeur.
  3. Sélectionnez un nœud de déclencheur sur le canevas. Le panneau de droite apparaît avec les réglages de ce déclencheur. Si rien n’est sélectionné, le panneau est masqué.

La section Déclencheurs de la bibliothèque de nœuds liste chaque type de démarrage comme un nœud à part entière : manuel, planification, webhook, et une carte par événement de domaine. Recherchez merged, ticket ou le nom du type (PrMerged), puis faites glisser la carte sur le canevas. Un nouveau modèle affiche aussi une tuile fantôme Ajouter un déclencheur à l’ancre d’entrée — choisissez dans la même liste avec recherche.

Le déclencheur est inséré immédiatement. Les nouveaux déclencheurs automatiques sont désactivés au départ, pour qu’un dépôt ne lance pas d’exécution avant que vous ne l’ayez configuré. Utilisez l’interrupteur Activé de l’inspecteur pour l’activer, ou l’icône de corbeille pour le supprimer.

Déposez Exécution manuelle (ou choisissez-la depuis la tuile fantôme) et activez Activé dans son inspecteur. C’est ce qui fait apparaître le modèle dans le sélecteur d’exécution. Ce n’est pas un cas particulier — l’interrupteur écrit une ligne de déclencheur ordinaire dont le type d’événement est manual. Il est conservé immédiatement ; il n’y a rien à enregistrer.

Le même interrupteur est derrière Exécution manuelle dans l’en-tête de l’éditeur, où il côtoie les entrées déclarées du modèle.

Ces événements démarrent une exécution :

Libellé du sélecteur Événement
PR externe ouverte ExternalPrDetected
PR publiée PullRequestPublished
Statut de la PR modifié PullRequestStatusChanged
PR fusionnée PrMerged
Message reçu MessageReceived
Ticket créé TicketCreated
Statut du ticket modifié TicketStatusChanged
Ticket assigné TicketAssigned
Tâche terminée TicketCompleted
Tâche échouée TicketFailed
Tâche annulée TicketCancelled
Seuil de budget dépassé BudgetThresholdCrossed
Dépôt ajouté RepoAdded
Enregistrement de la réunion arrêté MeetingRecordingStopped
Compétence mise à jour SkillUpdated
Espace supprimé SpaceDeleted

SpaceDeleted est l’événement qu’écoute le pipeline intégré de nettoyage des arbres de travail : il porte l’id de l’espace supprimé, si bien que l’exécution récupère exactement les arbres de travail de cet espace au lieu de balayer tout l’espace de travail.

Pour connaître les clés de charge utile portées par chaque événement, consultez la référence des événements de domaine.

Sélectionnez le nœud Statut de la PR modifié. Les puces de statut de l’inspecteur sont le seul filtre que l’interface peut créer. Touchez l’une des valeurs merged, closed, approved, opened, reopened ; le déclencheur ne se déclenche alors que lorsque le status de l’événement correspond à l’une d’elles. Laisser toutes les puces désélectionnées signifie aucun filtre.

Il n’existe pas de champ de filtre JSON libre. Une clé de filtre que la charge utile de l’événement ne porte pas ne correspond jamais, alors n’en écrivez pas à la main sur une clé que vous n’avez pas confirmée dans la référence des événements de domaine.

Sélectionnez le nœud Calendrier pour modifier le moment où il se déclenche. Les champs de l’inspecteur sont conservés tels que vous les laissez :

Champ Description
Planification (cron ou every:secondes) Une expression cron à cinq champs telle que 0 9 * * 1, ou un intervalle tel que every:86400. Un nombre seul est converti en every:<n>.
Fuseau horaire (facultatif) Une zone IANA telle que Europe/Paris. Par défaut : UTC.
En cas d’exécutions manquées Que faire des déclenchements manqués pendant que le serveur était arrêté : Exécuter une fois regroupe tous les créneaux manqués en un seul déclenchement au redémarrage (valeur par défaut), Ignorer reprend au prochain créneau à venir.

La ligne de résumé de la tuile du canevas ne détaille l’intervalle que pour la forme every:<seconds> ; une expression cron s’affiche simplement sous la forme  « Calendrier  ».

Déposer Webhook génère un jeton aléatoire. Sélectionnez le nœud pour copier le chemin POST /webhooks/<token> depuis l’inspecteur.

Le jeton est aussi le secret HMAC : la requête doit porter X-Hub-Signature-256: sha256=<hex>, où le hex est HMAC-SHA256(body, token). Une livraison qui échoue à la vérification est rejetée et journalisée, et n’est pas rejouable. Les doublons sont ignorés par leur clé de déduplication.

Chaque départ est son propre nœud du graphe. Tirer un câble depuis Calendrier n’attache que Calendrier ; Exécution manuelle peut emprunter un chemin différent (par exemple un nœud condition) avant de rejoindre le même travail. Une exécution entre par le départ qui correspond à son type d’événement et saute les sous-graphes qui appartiennent aux autres départs.

Un déclencheur activé dont le type d’événement et le filtre correspondent tous deux démarre une exécution avec la charge utile de l’événement comme charge utile de déclenchement de l’exécution — c’est ce par rapport à quoi {{key}} se résout dans le prompt ou le script d’une étape. Les événements qui portent une clé naturelle sont dédupliqués, si bien qu’un même événement se déclenchant deux fois ne démarre pas deux exécutions.

Un modèle désactivé est refusé même lorsque son déclencheur correspond. Huit des treize modèles intégrés sont livrés désactivés, si bien que leurs déclencheurs initialisés se déclenchent dans le vide jusqu’à ce que vous activiez le modèle.

  • Ne conditionner que le chemin manuel — faites passer Exécution manuelle par un nœud condition, et Calendrier directement au travail. Chaque départ possède ses propres câbles.
  • Examiner chaque nouvelle PR — événement PR publiée sur le modèle pr_review.
  • Nettoyer après une fusion — événement Statut de la PR modifié, filtré sur merged / closed / approved. Le modèle intégré pr_merged_cleanup écoute déjà de cette façon, plus les événements tâche terminée/annulée, SpaceDeleted, et une planification quotidienne activée de force à chaque réinitialisation parce qu’elle fait office de ramasse-miettes.
  • Balayage nocturne — planification 0 2 * * * avec un fuseau horaire, sur un modèle dont le premier nœud est un script bash.
  • Réagir à un système externe — un déclencheur webhook, le système appelant signant le corps de sa requête comme ci-dessus.