Sommaire


Vérification du nom des branches avec validate-branch-name
Catégories associées : , ,

Validate-branch-name permet de vérifier le nom des branches.

Tout comme les commits, les noms des branches méritent d'être encadrés, pour qu'on sache le sens de chaque branche. J'étais sceptique au début face à cette pratique, mais finalement, je la trouve très simple et permet à mes projets de gagner en clarté.

Quels noms possibles pour mes branches ?

par défaut, voici les branches qu'on retrouve dans tous les projets :

  • main (ou master, déprécié)
  • development (ou dev)
  • test
  • staging (ou preprod)
  • production (ou prod)

Ces branches permettent de suivre la vie du projet, et sont des états transitoires incontournables pour tout projet.

Par ailleurs, on a souvent envie de créer des branches plus spécifiques permettant de pousser un travail en cours pour une fonctionnalité donnée, ou un debug... Avant de merge ce travail sur une des branches d'au-dessus. À ce moment-là, comment les nommer ? avec son prénom, parce que c'est ma branche ? avec le nom de ma fonctionnalité ? du ticket associé ? Comment faire la différence entre une branche qui pousse une nouvelle fonctionnalité, et une autre qui règle un bug ?

Voici la liste des préfixes que j'ajoute devant mes branches pour les clarifier :

  • feat (ou feature) : Nouvelle fonctionnalité
  • fix : Débogage
  • update (ou bump) : Mise à jour
  • rel (ou release) : point d'étape dans le code, pour sortir une version stable.

Ainsi, mes branches intermédiaires sont maintenant nommées feat/dashboard ou fix/UserController.

Mais alors comment on s'assure d'avoir cette hygiène de nommage au quotidien dans le projet ? Grâce à validate-branch-name.

Installation

Avant d'installer validate-branch-name, vous aurez besoin d'installer Husky. Si ce n'est pas déjà fait, je vous laisse suivre cette astuce :

npm install --save-dev validate-branch-name
# ou "npm i validate-branch-name -D" pour aller plus vite

# On peut aussi choisir d'installer cet outil globalement sur notre machine :
npm i validate-branch-name -g

Configuration

Il faut ensuite créer un fichier validate-branch-name.config.js, dans lequel on mettra :

module.exports = {
pattern: '^(main|development|dev|test|staging|preprod|production|prod)$|^(bump|update|feat(?:ure)?|fix|rel(?:ease)?)/. $',
errorMsg: '🤨 La branche que tu essaies de pusher ne respecte pas nos conventions, tu peux la renommer avec `git branch -m <nom-actuel> <nouveau-nom>`',
}

Il faut ensuite préciser à Husky que l'on va appeler cet outil lors du pre-push. En effet, on peut se permettre de laisser un nom de branche bancal en local, mais dès qu'on voudra pousser la branche sur le serveur distant, il sera important de la vérifier. Si on voulait vérifier le nom de la branche même en local, on pourrait demander à Husky de faire cette vérification lors du hook pre-commit par exemple.

# Dans le fichier `pre-push` :
npx --no-install validate-branch-name

Et voilà, à chaque fois que vous ferez git push vous aurez cette vérification qui se lance.

exemple de message d'erreur lors d'un mauvais nommage

Bon dev !

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.