Overcommit, l’alternative facile aux git hooks

Plusieurs fois j’ai eu recours aux git hooks mais je ne trouve pas ça forcément pratique ou simple à écrire.

Premier exemple d’utilisation, ayant intégré rubocop dans le CI/CD, j’aimerais ne pas rater de livraison parce que j’ai oublié de lancer rubocop (ou rspec par exemple), avant de pousser le code.

Deuxième exemple, il m’arrive de bidouiller le code en local pour des tests par exemple (changer une adresse mail de destination, mettre des console log, des alert, etc).

Et évidemment, ce genre de chose ne doit pas se retrouver en prod. Ayant une mémoire de bébé poisson rouge, une fois sur deux, je push du code qui ne devrait pas aller en prod…

MAIS CALMONS NOUS, IL Y A UNE SOLUTION !

que s’appelerio … Quézac OVERCOMMIT

Le principe est simple, il suffit de laisser un « flag » paramétrable dans son code (personnellement, j’utilise : « #BLOCKCOMMIT »), qui est détecté par overcommit et nous interdit de pusher le code ! Formidable non ? 🙂

Mise en place

Configuration

La doc est très bien faite : https://github.com/brigade/overcommit so… RTFM 🙂

Un fichier ‘.overcommit.yml’ est créé par défaut, la structure de base et quelques exemples y sont présents. C’est ici que se passe la configuration local d’overcommit.

1. Ajouter rubocop

2. Interdire un commit si un flag prédéfini est présent

Après chaque modification, pensez à taper overcommit –sign

 

Mais si je veux pusher quand même ?

Pas de panique, ils ont tout prévu chez brigade !

Pas besoin de documenter, si ? ;-). Il existe évidemment la version inclusive avec « ONLY ».

Allez, salut 🙂

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.