L'extension vous aide à écrire. Elle suit aussi les points bloquants.
L'extension navigateur facilite l'utilisation de Conventional Comments pendant la revue : barre d'outils, raccourcis clavier et validation au fil de la saisie. Elle repère aussi les fils bloquants qui restent ouverts et affiche leur nombre directement sur la pull request. À terme, Enforce ajoutera un contrôle de fusion exécuté au niveau de la plateforme, indépendant du navigateur. Cette capacité n'est pas encore disponible.
Ce que l'extension ajoute à la page
Une barre d'outils sur deux rangées
Les labels occupent la première rangée et les décorations la seconde. Ils restent séparés quelle que soit la largeur disponible, car choisir un label et le compléter par une décoration sont deux actions différentes. Une seule rangée qui se replie finirait par les placer côte à côte comme s'ils avaient le même rôle.
Cliquer sur un label insère ou remplace le préfixe sans modifier le reste du commentaire. Cliquez de nouveau sur le même label pour le retirer. Survolez-le pour afficher sa définition et un exemple.
Tout peut aussi se faire au clavier
Tapez / ou : au début du champ de commentaire pour ouvrir une liste filtrable. Utilisez ↑ et ↓ pour naviguer, Entrée ou Tab pour sélectionner et Échap pour fermer la liste.
Vous pouvez également développer des abréviations avec Tab :
?i → issue: ?ib → issue (blocking):
Des raccourcis directs comme Alt+I sont également disponibles.
Une validation en temps réel sous le champ
Un indicateur vous précise si le commentaire est :
- conforme ;
- conforme avec des avertissements ;
- non conforme.
Lorsque plusieurs problèmes sont présents, l'extension les affiche tous en même temps. N'en montrer qu'un seul obligerait à corriger les erreurs successivement pour découvrir la suivante.
La validation est déclenchée 150 ms après la dernière frappe afin que l'interface reste stable pendant la saisie.
Des badges sur les commentaires publiés
Une fois les commentaires publiés, leurs labels sont affichés sous forme de badges sans modifier le contenu réellement enregistré par la plateforme. Un bandeau en haut de la pull request indique le nombre de fils bloquants encore non résolus et permet d'accéder directement à chacun d'eux.
Ce nombre est calculé directement par l'extension à partir des fils affichés dans la page, sans aucun serveur.
Il n'existe pas de bouton « publier quand même ».
Dans son mode le plus strict, l'extension peut empêcher l'envoi d'un commentaire mal formé. Elle ne propose aucun bouton permettant de contourner localement ce blocage. C'est volontaire, pour deux raisons.
Un bouton de contournement n'apporterait aucun contrôle réel
Une extension navigateur peut être désactivée en quelques clics. Quelqu'un qui souhaite réellement la contourner peut donc déjà le faire. Ajouter un bouton dédié ne changerait rien : il ajouterait seulement une étape, un motif à saisir, un journal supplémentaire et l'apparence d'un contrôle qui n'existe pas réellement.
La justification doit rester dans la revue
« Nous avons décidé de ne pas traiter ce point, pour telle raison » fait partie de la revue. Cette décision doit apparaître dans le fil sous la forme d'un commentaire identifié, visible par tous et conservé avec la pull request. Elle n'a pas vocation à disparaître dans un journal technique séparé.
Un garde-fou, pas une barrière infranchissable.
L'extension évite les erreurs d'inattention, qui représentent le cas courant. Elle n'a pas vocation à empêcher quelqu'un de la contourner volontairement. C'est le rôle qu'aura, à terme, le contrôle au niveau de la plateforme : évaluer la pull request indépendamment du navigateur de chaque relecteur. Cette capacité fait partie de la feuille de route et n'est pas encore disponible.
Trois conditions doivent être réunies
Le simple fait d'être en mode strict ne suffit pas. Si l'une des trois conditions suivantes manque, l'extension affiche ses diagnostics mais autorise tout de même l'envoi du commentaire.
- 1Le mode strict est réellement actifLe mode effectif est déterminé à partir de la configuration de l'organisation. L'extension ne le suppose jamais localement.
- 2La pull request fait partie du périmètreSi un dépôt commence à appliquer la convention à partir d'une date donnée, les pull requests plus anciennes ne deviennent pas rétroactivement bloquantes.
- 3La configuration a pu être lue correctementSi le fichier de configuration n'est pas accessible, l'extension ne refuse aucun commentaire. Personne ne doit être bloqué au nom d'une règle que l'extension elle-même n'a pas réussi à lire.
Ces conditions répondent au même principe : l'extension ne doit jamais refuser un commentaire pour lequel elle ne peut pas confirmer que la règle s'applique réellement.
Ce que le futur contrôle de fusion devra vérifier
Les capacités décrites ci-dessous ne sont pas encore disponibles : vous ne pouvez aujourd'hui ni les installer ni les activer. Elles décrivent l'objectif d'Enforce : évaluer la pull request indépendamment du navigateur afin que les règles de fusion de la plateforme puissent s'appuyer sur ce résultat. Sur le fond, ce contrôle répondrait aux deux mêmes questions que l'extension sait déjà évaluer localement.
Les commentaires sont-ils correctement formés ?
Un commentaire est conforme lorsqu'il ne produit aucun diagnostic de niveau erreur. Les avertissements sont affichés et comptabilisés, mais ne provoquent jamais à eux seuls l'échec de la vérification. La plupart des équipes conservent les problèmes de format comme non bloquants.
Tous les points bloquants ont-ils été résolus ?
Un fil devient bloquant lorsque le commentaire qui l'a ouvert aboutit à un verdict bloquant. Une fois dans cet état, il le reste jusqu'à ce que le fil soit résolu, ou qu'une personne autorisée enregistre une decision expliquant pourquoi le point ne sera pas traité.
C'est ce critère qui pourrait, à terme, empêcher une fusion.
L'approche envisagée consiste à privilégier les mécanismes les plus simples et les plus natifs de chaque plateforme, plutôt qu'un backend générique imposé à toutes. Un service dédié ne serait envisagé que si un besoin concret montrait qu'une intégration propre à la plateforme ne suffit pas. Tant que cette implémentation n'existe pas, le site doit la présenter comme une direction et non comme une capacité disponible.
Un seul moteur de validation, pas deux implémentations à maintenir en phase.
L'extension ne possède pas sa propre implémentation séparée des règles. Elle s'appuie sur un unique package de validation, et aucune règle de validation n'existe ailleurs. Le futur contrôle au niveau de la plateforme devra s'appuyer sur ce même package afin de produire les mêmes résultats que l'extension.
La bibliothèque de validation ne dépend ni du navigateur ni du réseau. Toutes les informations dont elle a besoin lui sont fournies sous forme de données, et les actions à effectuer sont renvoyées à l'appelant. Cette séparation permet au même moteur de validation de fonctionner directement dans le navigateur — et rend également possible le playground.
L'extension suffit pour commencer.
Assist et warn fonctionnent dès aujourd'hui, entièrement dans votre navigateur. Enforce, au niveau de la plateforme, fait partie de la feuille de route.