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.
- É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. - Étape 2. Publiez une URL stable du type
https://passerelle.exemple/jira/openclawderriè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. - É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. - É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.
- É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. - É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.
- Étape 3. Faites un essai sur un ticket canari : transitionnez, consultez le journal d’audit Automation, vérifiez qu’un seul
POSTapparaî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.
- Étape 1. Normalisez chaque charge acceptée en
issue_key, identifiant de transition (ou hachage d’ensemble d’étiquettes),repo_ref, demandeur etidempotency_keydérivée du ticket plus la transition plus un compartiment de cinq minutes — cela amortit les livraisons doubles quand une carte « tremble » entre colonnes. - É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
200uniquement 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. - É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. - Étape 4. Lorsque le JQL était trop large, répondez vite
200avec 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 -vet 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
issueUpdatedbruyants : 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.
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.