Git-precommit-checks est un outil que je trouve fabuleux. Il nous permet de créer des petits tests qui seront exécutés à chaque commit, sur le code qui vient d'être ajouté au commit avec git add
. Cela nous permet de nous assurer que malgré notre faiblesse humaine, quelqu'un veille sur notre code pour nous ! 🐶
Il permet de créer autant de règles que l'on veut, avec des patterns à écouter dans le code ajouté aux commits. par exemple, celui-ci, pour voir s'il ne reste pas des console.log :
Simple, efficace, et terriblement meilleur que nous pour retrouver des choses qu'on aurait oublié. Attention, cette vérification ne se fait que sur les fichiers ajoutés au commit. Tout ce qui a déjà été ajouté ne repassera pas par cette vérification. Donc si vous laissez trainer un console.log que vous envoyez sur le repo distant, git-precommit-check ne le mentionnera plus lors des commits futurs. C'est donc faillible, et l'on rajoutera d'autres outils plus généraux, notamment des outils de tests, pour vérifier tout le code de temps en temps.
Détails
- Filter : les fichiers concernés par cette vérification. Par défaut, tous les fichiers.
- regex : l'expression régulière recherchée dans les fichiers.
- message : le message qui apparait si la vérification échoue.
- nonBlocking : indique si une vérification qui échoue empêche le commit ou non. Par défaut, false.
Installation
Avant d'installer git-precommit-checks, vous aurez besoin d'installer Husky. Si ce n'est pas déjà fait, je vous laisse suivre cette astuce :
Une fois installé, on doit dire à Husky de l'appeler. Pour cela, on va aller dans le dossier .husky/
et on va ajouter un nouveau fichier pre-commit
(sans extension).
Explications : npx
, c'est le pendant de npm, ça permet d'exécuter une librairie. --no-install
, c'est pour préciser qu'on ne veut pas installer la dépendance, juste l'exécuter. On l'a déjà installée globalement, elle existe dans le fichier package.json. Puis le nom de la dépendance à exécuter.
Exécution
À chaque commit, git-precommit-checks se lancera automatiquement. Génial ! 😃
Exemple de vérifications
Voici quelques exemples que j'utilise dans mes projets :
Bon à savoir
Si pour une raison ou pour une autre, on doit à tout prix pousser un code qui ne passe pas, on peut ajouter -n
à notre commande : git commit -m "message" -n
. Cela permet de ne pas valider les contraintes, et de pousser le code tout de même. Écrit en entier, c'est --no-validate
.
Bon dev !