Chaque bug en production coûte cher et chaque erreur évitable fait perdre un temps précieux. Pourtant, il existe une solution simple pour automatiser les bonnes pratiques et garantir un code de qualité : les hooks Git.
Imaginez-les comme des arbitres de football ⚽, toujours attentifs à la moindre faute... ou plutôt, au moindre code douteux .
Pourquoi les Git hooks sont-ils comme les arbitres de football ?
Parce qu'ils sifflent les fautes, avant même que le ballon ne dépasse la ligne! 🥳
Les hooks Git permettent d’exécuter des scripts à différents moments du workflow Git pour prévenir les erreurs, assurer la cohérence du code et renforcer la sécurité.
🔹 Pre-commit : Vérifie et corrige le code avant qu’il ne soit validé.
🔹 Commit-msg : Applique un formatage strict aux messages de commit.
🔹 Pre-push : Exécute des tests et bloque le push si des erreurs sont détectées.
Avec ces hooks, vous pouvez automatiser les vérifications essentielles et garantir un code propre avant même qu'il n'atteigne votre dépôt distant.
💰 Bénéfices financiers
✅ Détection en amont des erreurs
Un hook pre-commit peut empêcher de committer du code qui ne compile pas ou qui contient des erreurs évidentes.
✅ Moins de corrections manuelles
Formatage automatique avec Prettier ou ESLint, suppression des espaces inutiles... un hook pre-commit peut éviter du travail répétitif.
✅ Cohérence du code
Un hook commit-msg peut imposer un format standardisé pour les messages de commit, rendant l’historique Git plus lisible et exploitable.
✅ Amélioration de la sécurité
Les hooks peuvent empêcher les commits accidentels contenant des informations sensibles comme des mots de passe ou clés API.
✅ Optimisation des pipelines CI/CD
Un hook pre-push peut exécuter des tests en local et bloquer un push si le build échoue, réduisant ainsi les exécutions inutiles de pipelines et les coûts associés
🛠️ Qualité du code et fiabilité
✅ Empêcher les commits de code cassé
Avec un hook pre-commit, vous évitez d’enregistrer du code non fonctionnel dans l’historique Git.
✅ Éviter les erreurs courantes
Un pre-commit peut supprimer automatiquement les console.log avant validation.
✅ Appliquer un formatage standard
Un hook commit-msg garantit que tous les messages de commit respectent une convention, comme Conventional Commits.
✅ Faciliter la collaboration
Les hooks assurent que tous les développeurs appliquent les mêmes règles automatiquement, évitant les oublis et les erreurs humaines.
🔥 Exemples pratiques
🛑 Filtrage des console.log
Un hook pre-commit peut détecter et bloquer les commits contenant des console.log, garantissant ainsi un code plus propre en production.
🎨 Application automatique du formatage du code
Un hook pre-commit peut s'exécuter un formateur comme Prettier ou ESLint pour corriger l’indentation et l’espacement avant chaque commit.
🔐 Empêcher l’exposition accidentelle de secrets
Un hook pre-commit ou pre-push peut scanner le code à la recherche de clés API ou de mots de passe en clair et empêcher leur commit.
🚧 Bloquer un push si le build échoue
Un hook pre-push peut être configuré pour exécuter des tests ou compiler le projet avant d’autoriser le push. Si le build échoue, le push est bloqué, empêchant ainsi du code cassé d’atteindre le dépôt distant.
Exemple de script dans un hook pre-push :
#!/bin/sh
echo "Exécution des vérifications pre-push..."
# Nettoyage et reconstruction du projet
dotnet clean
dotnet build
# Exécution des tests
dotnet test
if [ $? -ne 0 ]; then
echo "Les tests ont échoué, push annulé."
exit 1
fi
📺 Pour une explication détaillée, consultez cette vidéo :
Pour en savoir plus sur ESLint :
https://www.digitalocean.com/community/tutorials/linting-and-formatting-with-eslint-in-vs-code
🚀 Adoptez les hooks Git dès aujourd’hui !
Les hooks Git sont une solution simple mais puissante pour appliquer les bonnes pratiques, gagner du temps et réduire les coûts tout en améliorant la qualité et la sécurité du code.
En exploitant les hooks de manière efficace, les équipes de développement peuvent maintenir un workflow fluide et optimisé.