HowTo 2026

2026 OpenClaw MeshMac en pratique : Jira Automation Webhook pour build partagé multi-nœuds, diffusion d’état et résumé d’échec vers le ticket

2026.04.15 Équipe Meshmac 9 min de lecture

Les équipes vivent dans Jira ; les compilations vivent sur un pool MeshMac derrière OpenClaw. Ce guide 2026 est la boucle la plus courte et reproductible : une action Envoyer une requête web pointe vers une seule passerelle HTTPS, vous vérifiez un secret d’en-tête en temps constant, vous persistez une tâche dans une file partagée avec idempotence, les nœuds exécutent le même script d’entrée, la passerelle diffuse l’état (chat, webhooks internes) et renvoie un commentaire court en cas d’échec — sans coller une URL publique sur chaque Mac.

Sommaire

Rôle passerelle, TLS et sondes de santé

Jira Cloud appelle votre automation depuis l’infrastructure Atlassian : traitez ce trafic comme de l’Internet entrant non fiable. Seule la passerelle termine TLS et valide les secrets ; les workers MeshMac restent sur des chemins privés vers votre file interne, comme dans le guide de déploiement multi-nœuds MeshMac — sans secret webhook par Mac.

  1. Étape 1. Installez OpenClaw sur l’hôte passerelle, épinglez OPENCLAW_CONFIG_ROOT, supervisez le processus pour qu’il survive aux mises à jour Xcode qui roulent sur les builders.
  2. Étape 2. Publiez une URL stable du type https://passerelle.exemple/jira/openclaw derrière votre proxy inverse ; fixez des plafonds de taille de corps raisonnables et documentez chemins WebSocket versus HTTP conformément à la matrice TLS Nginx/Caddy.
  3. Étape 3. Prouvez la disponibilité avec openclaw doctor, des journaux structurés et une sonde HTTP qui échoue si la passerelle ne peut pas joindre la file (Redis, RabbitMQ, bus interne). Calquez la checklist sur skills, préchauffe et sondes de santé afin que le répartiteur retire les instances dégradées pendant un déploiement.
  4. Étape 4. Cadrez la concurrence avec rate limit passerelle et concurrence des sessions ; tracez systématiquement correlation_id, route et latence d’enqueue pour chaque coup d’Automation.

Si vous modélisez déjà étiquettes et verrous dans Jira, alignez la discipline opérationnelle sur la matrice Jira Automation, routage et verrous de build : la profondeur de file et les mouvements de carte restent cohérents.

Jira Automation : « Envoyer une requête web » pas à pas

Dans Jira Software Cloud, ouvrez Paramètres du projet → Automation, créez une règle et resserrez le JQL (par exemple tickets dans une colonne « Prêt à builder »). Ajoutez l’action Envoyer une requête web, méthode POST, type de contenu application/json, collez l’URL passerelle. Le corps JSON doit contenir au minimum issue.key, des métadonnées de flux stables, et idéalement l’acteur pour que OpenClaw journalise qui a déplacé la carte.

  1. Étape 1. Ajoutez un en-tête personnalisé, par exemple X-Meshmac-Jira-Token, dont la valeur est une chaîne aléatoire d’au moins 32 octets générée hors ligne. Stockez la copie « serveur » sur disque avec des droits restrictifs (secrets et moindre privilège). Pour faire tourner le secret, dupliquez la règle avec une fenêtre de double lecture côté passerelle.
  2. Étape 2. Ajoutez des garde-fous : étiquette obligatoire, composant requis ou champ personnalisé « build demandé » avant l’action HTTP, afin qu’un bruit de commentaire ne déclenche jamais une compilation.
  3. Étape 3. Faites un essai sur un ticket canari : transitionnez, consultez le journal d’audit Automation, vérifiez qu’un seul POST apparaît dans les journaux passerelle avec vos champs de corrélation.

Pour des motifs proches sur d’autres outils, croisez avec webhooks de notification de build partagé et le hub OpenClaw du blog.

Vérification entrante, idempotence et remise au maillage

Vérifier avant d’interpréter. Chargez l’en-tête attendu depuis un fichier 0440, comparez en temps constant, 401 si écart, puis JSON. Évitez tout middleware qui modifie le corps avant la couche de confiance.

  1. Étape 1. Normalisez chaque charge acceptée en issue_key, identifiant de transition (ou hachage d’ensemble d’étiquettes), repo_ref, demandeur et idempotency_key dérivée du ticket plus la transition plus un compartiment de cinq minutes — cela amortit les livraisons doubles quand une carte « tremble » entre colonnes.
  2. Étape 2. Enfilez de manière durable (stream Redis, RabbitMQ ou tâches OpenClaw selon file de tâches et étapes de retry) et renvoyez 200 uniquement après commit, pour que les retries Jira ne créent pas de jobs fantômes. Les nuances d’ordonnancement entre nœuds sont détaillées dans déploiement unifié et synchronisation de la file.
  3. Étape 3. Les workers dépilent, renseignent mesh_node_id, exécutent le point d’entrée de script partagé et publient un événement de fin vers l’intérieur du maillage ; seule la passerelle appelle Jira REST et les URL de chat.
  4. Étape 4. Lorsque le JQL était trop large, répondez vite 200 avec journalisation « no-op » pour garder Automation au vert sans saturer la file.

Prévoyez la perte de passerelle avec répartition de charge et bascule : le DNS ou le VIP bouge sans rééditer l’URL dans Jira.

Diffusion d’état et résumé d’échec vers Jira

Réutilisez la même déduplication que pour l’entrant (idempotency_key + état). Centralisez Teams, Google Chat et Slack depuis la passerelle.

En échec, commentaire REST court : clé, SHA, cible, ~20 lignes de log (redactées), mesh_node_id ; le détail reste dans votre visionneuse.

Rotation API alignée sur les jetons messagerie (alertes et rotation) ; alertez si chat et Jira restent muets après un failed.

Gabarit de retry (REST Jira sortant)

Copiez cette structure dans le worker passerelle ou le manifeste de tâche OpenClaw, puis ajustez les plafonds à vos quotas. Objectif : backoff exponentiel avec jitter, plafond d’essais dur, traitement distinct de 429 (respecter Retry-After) et de 401 (pas de boucle aveugle — identifiants à corriger).

jira_commentaire_retry:
  max_attempts: 6
  base_delay_ms: 400
  max_delay_ms: 30000
  jitter_ratio: 0.25
  retry_on_status: [408, 409, 425, 429, 500, 502, 503, 504]
  no_retry_on_status: [400, 401, 403, 404]
  respect_retry_after: true
  dedupe_key: "{{ issue_key }}:{{ idempotency_key }}:commentaire"

403 dans no_retry_on_status : périmètre ou politique à corriger, rarement congestion. Sémantique file / retry : file de tâches et retry.

Checklist jetons et moindre privilège

  • Secret d’en-tête entrant : aléatoire long, fichier disque 0440, jamais journalisé en clair, rotation lors des mouvements d’équipe sensibles.
  • Utilisateur REST Jira : jeton API Cloud dédié avec droits de lecture du projet cible et d’ajout de commentaires uniquement ; interdiction des comptes administrateur globaux partagés.
  • URL de chat sortantes : webhooks entrants par canal plutôt qu’OAuth utilisateur, sauf contrainte produit.
  • Builders MeshMac : identifiants SSH ou maillage sans accès Jira — réduit la surface si une image fuite.

FAQ : silence réseau, 403, doubles déclenchements

L’audit Automation affiche le succès mais la passerelle ne voit aucune requête
Sous-domaine, DNS public (hors VPN), certificats après rotation ; croisez horodatages audit Jira / journaux passerelle. Test manuel sur ticket factice pour isoler JQL ou condition bloquante.
HTTP 403 avant même qu’OpenClaw ne traite la requête
WAF, IP allowlist sans plages Atlassian, en-tête filtré, mTLS mal placé — reproduire avec curl -v et mêmes en-têtes. Si 403 côté Jira sur sortie, vérifier le rôle Automation et les appels externes.
Des builds en double quand quelqu’un édite la description ou spamme les transitions
Resserrez le JQL, exigez une étiquette « build » stable, et ne hachez dans la clé d’idempotence que les champs qui portent réellement votre intention de build. Déclenchez un anti-rebond sur les issueUpdated bruyants : ignorez les mises à jour purement cosmétiques dans la même fenêtre de quelques minutes que la transition normalisée.
Les commentaires REST réussissent en recette mais renvoient 401 en production
Les jetons API sont liés au site Cloud et au compte ; contrôlez l’URL du site, régénérez le jeton si les administrateurs l’ont révoqué, et assurez-vous que la passerelle recharge le fichier secret après déploiement. Ne programmez pas de retry agressif sur 401 : corrigez d’abord l’identité.

Résumé

Exposez une URL passerelle avec sondes de santé, configurez Jira Automation avec un en-tête secret, vérifiez puis enfilez de façon idempotente, laissez n’importe quel nœud MeshMac exécuter le build, diffusez l’état depuis la passerelle et postez des synthèses d’échec via REST avec le gabarit de retry. Parcourez l’accueil, l’index du blog, le centre d’aide et les forfaits publics sans compte.

Maillage 2026 · pages publiques

Ajoutez des builders, pas des secrets Jira par Mac

Quand les PM restent dans Jira et les ingénieurs sur des Mac mutualisés, le schéma gagnant reste une passerelle, des webhooks vérifiés et une capacité louée que vous augmentez sans réémettre des secrets partout. Ouvrez les forfaits MeshMac publics pour ajouter des nœuds, parcourez l’index du blog pour les checklists cluster, et le centre d’aide pour SSH, VNC et accès passerelle. L’accueil et le hub OpenClaw restent lisibles sans inscription — dimensionnez débit et nœuds, puis passez commande lorsque vous êtes prêt à industrialiser cette boucle.

Plus de nœuds, une seule URL Jira Tarifs visibles sans connexion Aide et articles accessibles immédiatement
Acheter — forfaits