Tickets
Connecter Jira, GitHub, GitLab, Linear, ServiceNow ou YouTrack, créer un ticket depuis un constat, et ce que Ctadel envoie à votre outil.
Ctadel crée un ticket dans votre outil de suivi à partir d'un constat, puis suit l'état de ce ticket. Cette page décrit les six systèmes pris en charge, la création d'un ticket et la garde qui protège le réseau de votre instance.
Configurer une intégration
Ouvrez « Paramètres », onglet « Intégrations », sous-onglet « Billetterie ». La carte « Intégrations de billetterie » présente six systèmes : Jira Cloud, Linear, GitHub Issues, GitLab Issues, ServiceNow et YouTrack. GitLab Issues et YouTrack portent le badge « EU ». Une seule intégration par système : une fois connectée, la tuile affiche « Connecté » et les actions passent sur la ligne de la liste « Intégrations actives ». Lire demande read:settings, modifier demande update:settings.
Le formulaire « Connecter {name} » demande un « Nom de l'intégration » puis les champs du système. Ces libellés sont affichés en anglais, quelle que soit la langue de l'interface.
| Système | Champs |
|---|---|
| Jira Cloud | « Jira URL », « Jira Email », « API Token », « Project Key », « Issue Type » (facultatif ; « Bug » sinon) |
| Linear | « API Key », « Team ID » |
| GitHub Issues | « Personal Access Token », « Owner », « Repository » |
| GitLab Issues | « GitLab URL » (facultatif ; gitlab.com sinon), « Personal Access Token », « Project ID » |
| ServiceNow | « Instance URL », « Integration user (Basic auth, never expires) » (facultatif), « Password of the integration user, or an OAuth access token (expires, 30 min by default) », « Table » (facultatif) |
| YouTrack | « YouTrack URL », « Permanent Token », « Project ID » |
Le bouton « Tester » vérifie les champs obligatoires, la forme de l'adresse, puis appelle le système avec vos identifiants (le profil courant sur Jira, Linear et GitLab, le dépôt sur GitHub, la table sur ServiceNow, le projet sur YouTrack) ; il répond « Connexion réussie » ou l'erreur renvoyée. « Connecter » enregistre la configuration, chiffrée, dans votre instance ; elle n'est jamais renvoyée au navigateur.
Pour renouveler un jeton, ouvrez « Modifier {name} » : « Laissez les champs d'identification vides pour conserver la configuration enregistrée, ou remplissez tous les champs obligatoires pour la remplacer (par exemple après la rotation d'un jeton). » Une configuration remplacée passe par les mêmes vérifications qu'une nouvelle. Chaque intégration peut aussi être désactivée (plus aucun appel ne part vers elle) ou supprimée : « Cela supprimera également tous les tickets liés. Continuer ? »
Créer un ticket depuis un constat
Dans le panneau de détail d'un constat, le bouton au pictogramme de ticket ouvre « Créer un ticket » (« Créez un ticket dans votre système de ticketing externe pour ce résultat. »). L'action demande la permission update:issues.
- Choisissez l'« Intégration » parmi celles activées.
- Relisez le « Titre », prérempli
[SÉVÉRITÉ] nom de la règle, identifiant de la ressource, et la « Description », préremplie avec la règle, le type, la clé de règle, la ressource et la sévérité. - Cliquez sur « Créer un ticket ». Le message « Ticket créé avec succès » affiche l'identifiant du ticket avec un lien vers votre outil.
Les tickets déjà ouverts pour ce constat apparaissent sous « Tickets existants », avec leur état et leur identifiant ; le bouton du panneau porte leur nombre. Un constat n'a qu'un ticket par intégration : une seconde création sur la même intégration est refusée, y compris lorsque deux personnes cliquent en même temps. Sans intégration activée, le dialogue affiche « Aucune intégration de ticketing configurée. » et renvoie vers les paramètres.
Ce que Ctadel envoie
| Système | Champs du ticket |
|---|---|
| Jira Cloud | Résumé et description, type de ticket configuré, priorité selon la sévérité, étiquettes ctadel et le type de constat |
| Linear | Titre, description, priorité selon la sévérité |
| GitHub Issues | Titre, corps, étiquettes ctadel, la sévérité et le type de constat |
| GitLab Issues | Titre, description, étiquettes ctadel, la sévérité et le type de constat |
| ServiceNow | Description courte, description, urgence selon la sévérité, catégorie Security, dans la table configurée |
| YouTrack | Résumé et description, dans le projet configuré |
La priorité suit la sévérité : CRITICAL donne 1, HIGH 2, MEDIUM 3, LOW 4. Le titre et la description sont ceux du dialogue, que vous pouvez modifier avant l'envoi.
Suivi de l'état
Toutes les 5 minutes, l'instance relit l'état des tickets ouverts et de ceux fermés depuis moins de 30 jours, intégration par intégration. Un ticket que votre outil considère comme terminé (par exemple une catégorie de statut « done » sur Jira) passe à l'état fermé dans Ctadel ; un ticket rouvert chez vous est rouvert ici. L'état natif de l'outil est conservé à côté. Une intégration désactivée n'est pas interrogée.
Garde contre les adresses internes
Les adresses saisies dans les formulaires sont celles que l'instance appellera. Pour qu'une intégration ne serve pas à atteindre le réseau interne de l'instance, chaque appel applique les règles suivantes :
- L'adresse doit commencer par
https://et se limiter à un hôte et un chemin : ni identifiants, ni paramètres de requête. localhost, les noms sans point, les noms en.localet toute adresse IP non publique sont refusés : réseaux privés, boucle locale, lien local, plages réservées et de test, NAT de transporteur.- La vérification porte sur l'adresse obtenue après résolution DNS : un nom public qui renvoie, même partiellement, vers une adresse privée est refusé.
- Les redirections sont suivies cinq fois au plus, uniquement vers
https://.
Le message en cas de refus : « the address is not a public one; Ctadel only reaches ticketing systems on the internet ».
Limites
- Une intégration par système ; un ticket par constat et par intégration.
- Jira est pris en charge via l'API Jira Cloud (authentification par adresse et jeton d'API) ; un Jira Server ou Data Center n'est pas prévu.
- Un outil auto-hébergé doit être joignable sur une adresse publique en HTTPS ; aucune option de l'interface ne lève cette règle.
- Les libellés des formulaires de billetterie sont en anglais dans l'interface française.
- La fermeture d'un ticket ne résout pas le constat, et la résolution d'un constat ne ferme pas le ticket ; aucun commentaire n'est synchronisé.
- Linear ne reçoit aucune étiquette, seulement la priorité.
- Aucune page ne liste l'ensemble des tickets créés ; ils se consultent constat par constat.
- L'état des tickets est relu toutes les 5 minutes ; il n'y a pas de bouton de rafraîchissement dans l'interface.