[{"data":1,"prerenderedAt":52},["ShallowReactive",2],{"doc:fr:settings-integrations":3},{"title":4,"lede":5,"html":6,"headings":7},"Réglages : Intégrations","L’onglet « Intégrations » des réglages connecte Jira, Trello, GitHub Issues et Linear, lie chaque projet à une source de tickets, et règle ce qu’Escouade écrit sur les tickets externes et ce qu’elle importe toute seule.","\u003Ch2 id=\"ouvrir-l-onglet\">Ouvrir l’onglet\u003C\u002Fh2>\n\u003Cp>Ouvre les réglages avec \u003Ccode class=\"key\">Ctrl+,\u003C\u002Fcode> (\u003Ccode class=\"key\">⌘,\u003C\u002Fcode> sous macOS), puis choisis « Intégrations ». Les tickets importés et leur synchronisation sont expliqués dans \u003Ca href=\"\u002Fdocs\u002Fintegrations\u002F\">les intégrations\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>L’onglet réunit trois sortes de réglages :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>« Comptes connectés » est commun à toute l’app et s’enregistre tout de suite, sans « Enregistrer ».\u003C\u002Fli>\n\u003Cli>« Sources liées à … » et « Correspondance des statuts » sont propres au projet sélectionné dans la barre « Projet » en haut de la fenêtre. Ils restent dans un brouillon jusqu’à « Enregistrer » ; « Annuler » les abandonne.\u003C\u002Fli>\n\u003Cli>« Synchronisation » et « Import automatique » sont communs à tous les projets, et passent aussi par « Enregistrer ».\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sans projet ouvert, l’onglet affiche « Aucun projet ouvert. ».\u003C\u002Fp>\n\u003Ch2 id=\"comptes-connectes\">Comptes connectés\u003C\u002Fh2>\n\u003Cp>Un compte par service : Jira, Trello, GitHub Issues et Linear. Chaque service affiche « Non connecté » avec un bouton « Connecter… », ou « Connecté · » suivi du compte avec un bouton « Déconnecter ». Sous le titre, l’app rappelle : « Les jetons restent sur cette machine, à part des réglages, et ne servent qu’aux appels de ces services. »\u003C\u002Fp>\n\u003Cp>« Connecter… » ouvre le formulaire du service, dont les champs sont décrits ci-dessous. Les jetons et la clé d’API de Linear sont masqués à la saisie ; la clé d’API de Trello ne l’est pas.\u003C\u002Fp>\n\u003Ch3 id=\"jira\">Jira\u003C\u002Fh3>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Champ\u003C\u002Fth>\n\u003Cth>À renseigner\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Site »\u003C\u002Ftd>\n\u003Ctd>L’adresse de ton site Atlassian, par exemple \u003Ccode class=\"key\">atlas.atlassian.net\u003C\u002Fcode>. Sans \u003Ccode class=\"key\">https:\u002F\u002F\u003C\u002Fcode>, Escouade l’ajoute. Seul https est accepté (http seulement vers cette machine).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« E-mail »\u003C\u002Ftd>\n\u003Ctd>L’e-mail du compte auquel appartient le jeton, par exemple \u003Ccode class=\"key\">ada@atlas.dev\u003C\u002Fcode>.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Jeton d’API »\u003C\u002Ftd>\n\u003Ctd>Un jeton d’API Atlassian.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Le lien « Créer un jeton d’API Atlassian » ouvre \u003Ccode>https:\u002F\u002Fid.atlassian.com\u002Fmanage-profile\u002Fsecurity\u002Fapi-tokens\u003C\u002Fcode>. Une fois connecté, le compte s’affiche avec l’e-mail et le site, par exemple « \u003Ca href=\"mailto:ada@atlas.dev\" rel=\"noopener\">ada@atlas.dev\u003C\u002Fa> · atlas.atlassian.net ». Ce que Jira appelle l’endroit des tickets est un « Projet ».\u003C\u002Fp>\n\u003Ch3 id=\"trello\">Trello\u003C\u002Fh3>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Champ\u003C\u002Fth>\n\u003Cth>À renseigner\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Clé d’API »\u003C\u002Ftd>\n\u003Ctd>La clé d’API de Trello.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Jeton »\u003C\u002Ftd>\n\u003Ctd>Un jeton pour cette clé.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Le lien « Obtenir une clé d’API » ouvre \u003Ccode>https:\u002F\u002Ftrello.com\u002Fpower-ups\u002Fadmin\u003C\u002Fcode>. Le lien « Obtenir un jeton pour cette clé », grisé tant que la clé est vide, ouvre la page d’autorisation de Trello pour la clé saisie : accès en lecture et en écriture, sans expiration, au nom d’« Escouade ». L’endroit des tickets est un « Tableau ».\u003C\u002Fp>\n\u003Ch3 id=\"github-issues\">GitHub Issues\u003C\u002Fh3>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Champ\u003C\u002Fth>\n\u003Cth>À renseigner\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Jeton (vide : celui de gh) »\u003C\u002Ftd>\n\u003Ctd>Un jeton GitHub. Laissé vide, Escouade demande son jeton à la CLI GitHub (\u003Ccode>gh auth token\u003C\u002Fcode>) : \u003Ccode class=\"key\">gh\u003C\u002Fcode> doit être installée et connectée (\u003Ccode>gh auth login\u003C\u002Fcode>).\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Le lien « Créer un jeton GitHub » ouvre \u003Ccode>https:\u002F\u002Fgithub.com\u002Fsettings\u002Ftokens\u003C\u002Fcode>. Un compte qui passe par \u003Ccode class=\"key\">gh\u003C\u002Fcode> s’affiche avec « · via gh ». L’endroit des tickets est un « Dépôt ».\u003C\u002Fp>\n\u003Ch3 id=\"linear\">Linear\u003C\u002Fh3>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Champ\u003C\u002Fth>\n\u003Cth>À renseigner\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Clé d’API »\u003C\u002Ftd>\n\u003Ctd>Une clé d’API personnelle de Linear.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Le lien « Créer une clé d’API Linear » ouvre \u003Ccode>https:\u002F\u002Flinear.app\u002Fsettings\u002Faccount\u002Fsecurity\u003C\u002Fcode>. L’endroit des tickets est une « Équipe ».\u003C\u002Fp>\n\u003Ch3 id=\"connecter-et-deconnecter\">Connecter et déconnecter\u003C\u002Fh3>\n\u003Cp>Clique sur « Connecter » une fois les champs remplis ; le bouton dit « Vérification… » pendant l’appel, et « Annuler » ferme le formulaire. Escouade vérifie les identifiants auprès du service et ne les garde que s’il les accepte. S’il les refuse, ou s’il est injoignable, sa réponse s’affiche en rouge sous les champs, par exemple « Jira refuse ces identifiants (401) ». Un champ manquant est signalé avant tout appel, par exemple « Indique le jeton. ».\u003C\u002Fp>\n\u003Cp>« Déconnecter » oublie le compte et ses secrets. Les projets gardent leurs sources liées : elles ne servent plus tant qu’un compte du service n’est pas reconnecté. Pour changer de compte, déconnecte l’ancien puis connecte l’autre.\u003C\u002Fp>\n\u003Ch3 id=\"ou-sont-gardes-les-jetons\">Où sont gardés les jetons\u003C\u002Fh3>\n\u003Cp>Les clés et les jetons vont dans le trousseau du système (Credential Manager sous Windows, Keychain sous macOS) ; le reste du compte est dans \u003Ccode>~\u002F.escouade\u002Fintegrations.json\u003C\u002Fcode>. Sous Linux, où Escouade ne connaît pas de trousseau, et quand le trousseau refuse une écriture, les secrets restent dans ce fichier, lisible par toi seul. Le compte le dit alors : « Trousseau du système indisponible : le jeton reste dans ~\u002F.escouade\u002Fintegrations.json. »\u003C\u002Fp>\n\u003Cp>Si le trousseau ne rend pas un jeton au démarrage, le compte affiche « Trousseau du système illisible : relance Escouade ou reconnecte le compte. » et aucun appel ne part tant que c’est le cas. Voir \u003Ca href=\"\u002Fdocs\u002Fdata\u002F\">les données locales\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2 id=\"sources-liees-a-un-projet\">Sources liées à un projet\u003C\u002Fh2>\n\u003Cp>Le groupe s’appelle « Sources liées à » suivi du nom du projet. Tant qu’aucun compte n’est connecté, il dit : « Connecte un compte ci-dessus pour lier une source à ce projet. »\u003C\u002Fp>\n\u003Cp>Pour chaque service connecté, un menu choisit la source du projet : « Projet Jira », « Tableau Trello », « Dépôt GitHub Issues » ou « Équipe Linear ». « Aucun » (par défaut) délie. Un projet a au plus une source par service.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Jira\u003C\u002Fstrong> : les projets du site, présentés sous la forme « CLÉ — nom ».\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Trello\u003C\u002Fstrong> : tes tableaux ouverts.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>GitHub Issues\u003C\u002Fstrong> : les dépôts auxquels tu as accès (propriétaire, collaborateur ou membre d’une organisation), les derniers poussés d’abord. Le dépôt du projet, lu dans son remote git, est en tête avec « (dépôt du projet) ».\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Linear\u003C\u002Fstrong> : tes équipes, sous la forme « Nom (CLÉ) ».\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Choisir une source charge ses statuts et préremplit la correspondance ci-dessous. Si les statuts ne se chargent pas, la source est liée quand même, et l’infobulle des menus de la correspondance dit pourquoi.\u003C\u002Fp>\n\u003Ch2 id=\"correspondance-des-statuts\">Correspondance des statuts\u003C\u002Fh2>\n\u003Cp>Ce groupe n’apparaît qu’une fois une source liée à un compte connecté. Il dit : « L’état que prend le ticket externe quand son ticket arrive dans la colonne ; « Commenter » y ajoute un commentaire (critères, issue de la validation…). »\u003C\u002Fp>\n\u003Cp>Une ligne par colonne du Kanban (« À faire », « En cours », « À tester », « Terminé »), un menu par service lié, et un interrupteur « Commenter » en bout de ligne.\u003C\u002Fp>\n\u003Ch3 id=\"le-statut-de-chaque-colonne\">Le statut de chaque colonne\u003C\u002Fh3>\n\u003Cp>Chaque menu propose « — inchangé » (le ticket externe n’est pas touché) et les statuts de la source :\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Service\u003C\u002Fth>\n\u003Cth>Statuts proposés\u003C\u002Fth>\n\u003Cth>Ce que fait le changement de statut\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Jira\u003C\u002Ftd>\n\u003Ctd>Les statuts des types de ticket du projet\u003C\u002Ftd>\n\u003Ctd>Escouade applique la transition du workflow qui mène à ce statut. Si le workflow n’y mène pas depuis le statut actuel, c’est refusé.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Trello\u003C\u002Ftd>\n\u003Ctd>Les listes ouvertes du tableau\u003C\u002Ftd>\n\u003Ctd>La carte passe dans la liste.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>GitHub Issues\u003C\u002Ftd>\n\u003Ctd>« Ouverte », « Fermée », et les étiquettes du dépôt (précédées de ◆)\u003C\u002Ftd>\n\u003Ctd>« Fermée » ferme l’issue comme terminée ; « Ouverte » la rouvre. Une étiquette est posée sur l’issue (rouverte si besoin), et les autres étiquettes de la correspondance sont retirées.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>Linear\u003C\u002Ftd>\n\u003Ctd>Les états du workflow de l’équipe\u003C\u002Ftd>\n\u003Ctd>Le ticket prend cet état.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Quand tu lies une source, Escouade préremplit les menus d’après le nom des statuts : celui qui ressemble à « en cours » (« In Progress », « En cours », « Doing »…) pour « En cours » et « À tester », et celui qui ressemble à « à tester » (« To test », « QA », « In Review », « À tester »…) pour « Terminé ». « À faire » reste « — inchangé ». Corrige les menus si ton workflow est autre.\u003C\u002Fp>\n\u003Ch3 id=\"commenter\">Commenter\u003C\u002Fh3>\n\u003Cp>L’interrupteur « Commenter » d’une colonne ajoute un commentaire sur le ticket externe quand un ticket arrive dans la colonne. Il vaut pour toutes les sources du projet. Par défaut, il est activé pour « À tester » et « Terminé », désactivé pour « À faire » et « En cours ».\u003C\u002Fp>\n\u003Cp>Le commentaire est écrit dans la langue de « Langue des textes rédigés par Claude » (onglet \u003Ca href=\"\u002Fdocs\u002Fsettings-application\u002F\">« Application »\u003C\u002Fa>) :\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Colonne\u003C\u002Fth>\n\u003Cth>Commentaire\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« À faire »\u003C\u002Ftd>\n\u003Ctd>« Escouade : ATL-42 est revenu « À faire ». »\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« En cours »\u003C\u002Ftd>\n\u003Ctd>« Escouade : ATL-42 est pris par un agent (branche ticket\u002FATL-42). »\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« À tester »\u003C\u002Ftd>\n\u003Ctd>« Escouade : ATL-42 est prêt à tester. », ou « … (objectif partiel). » quand le ticket arrive sans tous ses critères faute de boucles. Suivent la liste des critères et « Ce qui a été fait » quand le ticket en a.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Terminé »\u003C\u002Ftd>\n\u003Ctd>« Escouade : ATL-42 est terminé — » suivi de l’issue de la validation, puis le lien de la PR s’il y en a une.\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Ch2 id=\"synchronisation\">Synchronisation\u003C\u002Fh2>\n\u003Cp>Ces trois réglages valent pour tous les projets.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Réglage\u003C\u002Fth>\n\u003Cth>Effet\u003C\u002Fth>\n\u003Cth>Par défaut\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Mettre à jour le statut externe »\u003C\u002Ftd>\n\u003Ctd>Quand un ticket importé change de colonne dans le Kanban, le ticket externe prend le statut que la correspondance donne à la colonne. Désactivé, les statuts ne sont plus touchés ; les commentaires de la correspondance restent publiés.\u003C\u002Ftd>\n\u003Ctd>Activé\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Publier un résumé à chaque boucle »\u003C\u002Ftd>\n\u003Ctd>Quand un ticket entame une nouvelle boucle (à partir de la deuxième), un commentaire donne les critères atteints et les notes de l’agent sur le ticket externe.\u003C\u002Ftd>\n\u003Ctd>Désactivé\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Extraire les critères d’acceptation »\u003C\u002Ftd>\n\u003Ctd>À l’import, lit les critères dans la description (Jira, GitHub) ou la checklist (Trello) du ticket importé. Désactivé, le ticket reçoit les critères par défaut.\u003C\u002Ftd>\n\u003Ctd>Activé\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>Si un service refuse ou n’est pas joignable, l’opération n’est pas perdue : elle est retentée après 1, 5, 15 puis 60 minutes, pendant 24 h au plus. La carte du ticket affiche alors l’erreur et « Resynchroniser » pour réessayer tout de suite. Un refus que réessayer ne changerait pas (ticket supprimé, workflow qui ne mène pas au statut) est mis de côté sans attendre.\u003C\u002Fp>\n\u003Ch2 id=\"import-automatique\">Import automatique\u003C\u002Fh2>\n\u003Cp>Ces trois réglages valent aussi pour tous les projets. L’import à la main est le bouton « Importer » de l’en-tête du Kanban : voir \u003Ca href=\"\u002Fdocs\u002Fintegrations\u002F\">les intégrations\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cdiv class=\"table\">\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Réglage\u003C\u002Fth>\n\u003Cth>Effet\u003C\u002Fth>\n\u003Cth>Par défaut\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>« Importer les tickets étiquetés »\u003C\u002Ftd>\n\u003Ctd>Les tickets ouverts des sources liées qui portent l’étiquette arrivent dans « À faire », avec 5 boucles maximum.\u003C\u002Ftd>\n\u003Ctd>Désactivé\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Étiquette »\u003C\u002Ftd>\n\u003Ctd>Le nom de l’étiquette : un label Jira, une étiquette Trello, GitHub ou Linear. Vide, rien n’est importé.\u003C\u002Ftd>\n\u003Ctd>\u003Ccode class=\"key\">claude-ready\u003C\u002Fcode>\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>« Vérifier toutes les »\u003C\u002Ftd>\n\u003Ctd>L’intervalle entre deux vérifications : 5 min, 15 min ou 60 min.\u003C\u002Ftd>\n\u003Ctd>15 min\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Fdiv>\n\u003Cp>L’import automatique n’importe un ticket qu’une fois par projet : un ticket déjà importé, même supprimé du Kanban depuis, n’est pas ramené tout seul (l’import à la main peut le reprendre, tant qu’il n’est plus dans le Kanban). Chaque import affiche un message du genre « 3 tickets importés depuis Jira dans demo ». La première vérification a lieu environ 30 secondes après le démarrage de l’app, ou au plus 30 secondes après l’enregistrement si tu actives l’import ensuite ; les suivantes, à l’intervalle choisi.\u003C\u002Fp>\n",[8,12,15,19,22,25,28,31,34,37,40,43,46,49],{"id":9,"text":10,"depth":11},"ouvrir-l-onglet","Ouvrir l’onglet",2,{"id":13,"text":14,"depth":11},"comptes-connectes","Comptes connectés",{"id":16,"text":17,"depth":18},"jira","Jira",3,{"id":20,"text":21,"depth":18},"trello","Trello",{"id":23,"text":24,"depth":18},"github-issues","GitHub Issues",{"id":26,"text":27,"depth":18},"linear","Linear",{"id":29,"text":30,"depth":18},"connecter-et-deconnecter","Connecter et déconnecter",{"id":32,"text":33,"depth":18},"ou-sont-gardes-les-jetons","Où sont gardés les jetons",{"id":35,"text":36,"depth":11},"sources-liees-a-un-projet","Sources liées à un projet",{"id":38,"text":39,"depth":11},"correspondance-des-statuts","Correspondance des statuts",{"id":41,"text":42,"depth":18},"le-statut-de-chaque-colonne","Le statut de chaque colonne",{"id":44,"text":45,"depth":18},"commenter","Commenter",{"id":47,"text":48,"depth":11},"synchronisation","Synchronisation",{"id":50,"text":51,"depth":11},"import-automatique","Import automatique",1791926755899]