Close

Gestion automatique des incidents avec Jira et Statuspage

Portrait de Kev Zettler
Kev Zettler

Full Stack Web Developer, DevOps

Découvrez comment utiliser les règles d'automatisation Jira pour synchroniser automatiquement Statuspage avec les tickets Jira.

Durée

5 minutes de lecture.

Public

Vous êtes un utilisateur expérimenté de Jira Software et vous disposez d'un compte Statuspage.

Prérequis

Vous aurez besoin d'un projet Jira actif qui comprend un type de tâche personnalisé « Incident » et un champ personnalisé « ID d'incident ». Lancez-vous avec Jira ici.

Vous aurez besoin d'un compte Statuspage avec accès à l'API activé. Vous aurez également besoin de votre clé d'API et de votre code de page Statuspage pour configurer les règles d'automatisation suivantes. Consultez le guide de l'API Statuspage pour trouver vos clés d'API Statuspage. Lancez-vous avec Statuspage ici.

Étape 1. Ajoutez une règle d'automatisation

Cliquez sur le bouton Add automation (Ajouter une règle d'automatisation), puis sélectionnez l'option Issue (Ticket).

Cliquez sur <strong>Add automation</strong> (Ajouter une règle d'automatisation) ; sélectionnez <strong>Issue</strong> (Ticket).

Recherchez et sélectionnez Issue created (Ticket créé).

Nouveau déclencheur. Les déclencheurs lancent l'exécution d'une règle. Ils peuvent écouter des événements ou être programmés pour s'exécuter.

Cliquez sur le bouton Save (Enregistrer) pour continuer.

Ticket créé. La règle s'exécute lorsqu'un ticket est créé. Ce déclencheur ne nécessite aucune configuration.

Étape 2. Créez une condition

Ensuite, recherchez et sélectionnez la condition Issue fields condition (Champs de ticket).

Sélectionnez <strong>Issue fields condition</strong> (condition Champs de ticket) sous <strong>New condition</strong> (Nouvelle condition). Cela vérifie si le champ d'un ticket répond à certains critères.

Utilisez la condition Issue fields condition (Champs de ticket) pour vérifier si le type de ticket est Incident et agir en conséquence. Configurez la condition Issue fields condition (Champs de ticket) de sorte que le champ Issue Type (Type de ticket) soit égal à Incident. Cliquez sur Save (Enregistrer) pour continuer.

Utilisez la condition <strong>Issue fields</strong> <strong>condition</strong> (Champs de ticket) pour vérifier si le type de ticket est <strong>Incident</strong> et agir en conséquence. Configurez la condition <strong>Issue fields condition</strong> (Champs de ticket) de sorte que le champ <strong>Issue Type</strong> (Type de ticket) soit <strong>égal</strong> à <strong>Incident</strong>. Cliquez sur <strong>Save</strong> (Enregistrer) pour continuer.

Étape 3. Envoyez une demande web

Sélectionnez Send web request (Envoyer une demande web), ce qui mettra Statuspage à jour.

Nouvelle action. Sélectionnez <strong>Send web request</strong> (Envoyer une demande web)

Pour configurer l'action Send web request (Envoyer une demande web), vous aurez besoin de votre clé d'API et de votre code de page Statuspage. Ces valeurs sont disponibles dans la documentation Statuspage. Send web request (Envoyer une demande web) est une action avancée avec des valeurs d'entrée sensibles. Plus loin dans ce guide, cette action sera reproduite dans des règles supplémentaires et fera référence à la présente configuration.

Dans le champ Webhook URL (URL de webhook), saisissez l'URL du point de terminaison des incidents Statuspage :
https://api.Statuspage.io/v1/pages/code-votre-page/incidents

Remplacez le texte générique « code-votre-page » par le code de votre page Statuspage. Dans la section Headers (En-têtes), saisissez Authorization:OAuth et votre clé d'API dans les deux champs d'en-tête.

Définissez le champ HTTP method (Méthode HTTP) sur POST et le champ Webhook body (Corps du webhook) sur Custom data (Données personnalisées).

Assurez-vous de cocher la case Wait For Response (Attendre la réponse), car vous utiliserez les valeurs de la réponse de la demande web dans d'autres composants.

Le champ Custom data (Données personnalisées) inclut un code qui définit une charge utile d'incident pour l'API Statuspage. Ce code utilise des valeurs intelligentes pour extraire le résumé du ticket et l'ajouter à la charge utile. La capture d'écran suivante présente la configuration complète de l'action Send web request (Envoyer une demande web). Cliquez sur Save (Enregistrer) pour continuer.

<strong>Send web request</strong> (Envoyer une demande web)

Étape 4. Créez une action « Edit issue » (Modifier le ticket)

Enfin, recherchez et sélectionnez l'action Edit issue (Modifier le ticket).

Nouvelle action : <strong>Edit issue</strong> (Modifier le ticket)

L'action Edit issue (Modifier le ticket) extrait l'ID d'incident de la demande Statuspage et le stocke dans un champ personnalisé Incident ID (ID d'incident). L'ID d'incident est extrait à l'aide de valeurs intelligentes. La capture d'écran suivante montre comment configurer ce composant Edit issue (Modifier le ticket).

<strong>Edit issue</strong> (Modifier le ticket). Définissez des valeurs pour les champs sur le ticket

La capture d'écran suivante illustre le résumé final de cette règle.

Le résumé final de la règle

Cette règle est désormais prête à être activée. Saisissez son nom et cliquez sur le bouton Turn it on (Activer). Les données de cette règle seront utilisées pour créer les règles suivantes.

Comment mettre à jour Statuspage lorsqu'un ticket est commenté

La règle suivante est déclenchée lorsqu'un commentaire est laissé sur un ticket de type « Incident ». Une demande web est envoyée à Statuspage qui met à jour l'incident correspondant avec le contenu du commentaire. L'image suivante affiche un résumé des composants de cette règle.

Commentaire Statuspage sur l'incident

Le composant important à examiner dans cette règle est l'action Send web request (Envoyer une demande web). Cette action est copiée à partir de la règle précédente, mais avec quelques changements.

La valeur /{{issue.incident_id}} a été ajoutée à l'URL du webhook. Les valeurs intelligentes sont utilisées pour extraire le champ personnalisé Incident ID (ID d'incident) du ticket et le transmettre à Statuspage en tant que cible de la demande web.

Le champ HTTP method (Méthode HTTP) est désormais défini sur PATCH au lieu de POST. Ceci indique à Statuspage de mettre à jour un incident existant au lieu d'en créer un.

Le champ Custom data (Données personnalisées) est modifié pour inclure du code qui utilise des valeurs intelligentes afin d'extraire le corps du commentaire du ticket et de le placer dans le corps du contenu de l'incident.

Commentaire Statuspage sur l'incident
<strong>Send web request</strong> (Envoyer une demande web)

Comment fermer un incident Statuspage lorsqu'un ticket passe à l'état « Done » (Terminé)

Cette dernière règle les lie les unes aux autres. Elle indique à Statuspage qu'un incident est résolu lorsque le ticket Jira correspondant passe à l'état « Done » (Terminé). L'image suivante affiche un résumé de la règle.

Commentaire Statuspage sur l'incident

Le composant de demande web a de nouveau été copié et modifié à partir des règles précédentes.

<strong>Send web request</strong> (Envoyer une demande web)

Le champ Custom data (Données personnalisées) a été modifié pour définir l'état de l'incident sur « Resolved » (Résolu). Il s'agit de la seule modification par rapport à la règle de commentaire précédente.

Ces règles sont désormais prêtes à être utilisées. Vous pouvez les tester en créant des tickets de type Incident et en effectuant des interactions de déclenchement. Vous pouvez surveiller le comportement des règles dans le journal d'audit de l'automatisation. Vous y trouverez les données de journalisation et des informations sur le comportement des règles. Les règles d'automatisation présentées dans ce guide sont d'excellents exemples d'utilisation avancée de l'API de demande web.

Découvrez des centaines d'autres exemples dans notre bibliothèque de modèles d'automatisation.

Kev Zettler
Kev Zettler

Entrepreneur accompli, Kev Zettler est développeur web principal complet et dispose de plus de dix années d'expérience dans le développement de produits et la création d'équipes à l'aide des méthodologies Agile. Il est un contributeur, auteur et formateur passionné par les technologies open source émergentes telles que DevOps, les crypto-monnaies et la RV/RA. Durant son temps libre, il participe au développement de jeux vidéo indépendants.


Partager cet article

Lectures recommandées

Ajoutez ces ressources à vos favoris pour en savoir plus sur les types d'équipes DevOps, ou pour les mises à jour continues de DevOps chez Atlassian.

Illustration Devops

Communauté DevOps

Illustration Devops

Atelier de simulation

Illustration d'une carte

Essayez la solution gratuitement

Inscrivez-vous à notre newsletter Devops

Thank you for signing up