Relier GitHub à vos cartes
Le connecteur GitHub rattache pull requests et commits aux cartes qu'ils citent, fait suivre les statuts au code, et importe les issues d'un dépôt dans une liste — sans doublon au second passage.
Le connecteur GitHub se trouve dans Réglages → Marketplace, au rayon Développement. Comme Slack et Google Drive, c'est un service à part, qui n'utilise que l'API publique de Spunto CMS.
À l'arrivée : une PR nommée spr-12-connexion fait passer SPR-12 « En revue »
et y laisse son lien ; sa fusion termine la carte ; les issues du dépôt vivent
dans une liste.
Installer
- Installer depuis la fiche, puis donner votre accord pour l'espace.
Le connecteur demande le rôle member et trois scopes :
items:read,items:write,schema:read. Il écrit dans vos cartes, mais ne crée ni propriété, ni statut, ni vue — et ne branche aucun webhook dans l'espace. - Installer sur GitHub : GitHub vous fait choisir le compte ou l'organisation, et les dépôts que le connecteur pourra lire. Si l'app est déjà installée sur votre organisation, Relier une installation existante suffit.
- Suivre un dépôt, puis régler ce qu'il fait.
Seul un admin de l'espace installe un connecteur.
Ce qui rattache une PR à une carte
Une clé de carte (SPR-12), sans tenir compte de la casse :
| Où | Effet |
|---|---|
| titre de la PR, nom de sa branche | rattache et applique les statuts |
description, après fixes, closes ou resolves | rattache et applique les statuts |
| description, ailleurs | rattache seulement |
| message de commit | rattache seulement |
#42 vise la carte de l'issue 42, quand les issues du dépôt sont importées.
Au-delà de dix cartes citées, les suivantes sont ignorées.
Les réglages d'un dépôt
Écrire le lien dans — une propriété de type URL de l'espace (créez-en une, « Pull request », si vous n'en avez pas). Une case vide reçoit le premier lien ; une PR nouvelle remplace le lien précédent ; un commit ne remplace jamais une PR.
PR ouverte → / PR mergée → — les statuts à appliquer. « PR ouverte » compte aussi une PR rouverte ou sortie du brouillon. Une PR ouverte ne fait jamais reculer une carte déjà terminée ; un push sur la branche ne remet pas le statut. Le journal de la carte montre ces changements, signés de l'app.
Issues — la liste où les verser, et les statuts d'une issue ouverte ou fermée. Synchroniser les issues importe tout le dépôt ; ensuite, chaque issue créée, modifiée, fermée ou rouverte suit seule. Rejouer la synchronisation ne réécrit que ce qui a changé chez GitHub. Les imports n'apparaissent pas dans le fil d'activité filtré sur l'activité.
Ce que GitHub possède sur une carte d'issue : le titre, la description (si l'issue en a une), le statut quand l'état de l'issue change, et le lien à la création. Les propriétés que vous ajoutez à la carte restent les vôtres.
Sans app GitHub configurée
Si l'instance n'a pas d'app GitHub, l'écran propose de brancher un dépôt à
la main : il donne une adresse et un secret à coller chez GitHub
(Settings → Webhooks, application/json, événements Pull requests, Pushes et
Issues). Tout fonctionne, sauf la synchronisation complète des issues : elles
arrivent quand elles changent.
Ce qu'il ne fait pas
- Il n'écrit rien chez GitHub : pas de commentaire, pas de statut de commit.
- Une issue supprimée ne supprime pas sa carte.
- Une carte ne porte qu'un lien dans la propriété choisie, pas la liste de toutes ses PR.
- Désinstaller se fait dans les réglages de l'espace ; les cartes et les issues importées restent.
Écrire un connecteur pour la marketplace
Un service qui se connecte avec Spunto CMS, reçoit les webhooks d'un espace et se publie dans la marketplace — OAuth avec PKCE, webhooks à soi, vérification des signatures.
Espaces de travail et membres
La frontière entre tenants — ce que contient un espace de travail, ce que permettent les quatre rôles, et pourquoi un inconnu reçoit 404 plutôt que 403.