Arborescence des pages

Vous regardez une version antérieure (v. /wiki/display/ESUPMULTI/Formatage+des+commit) de cette page.

afficher les différences afficher l'historique de la page

Vous regardez la version actuelle de cette page. (v. 1) Actuel »

Outils nécessaires :

Installation et utilisation locale

Installation et configuration

On veut une utilisation globale du linter sur le projet, on installera donc la dépendance au niveau du package.json à a racine (cf. centralisation des fichiers package.json via les workspaces).
Depuis un terminal, dans dev/ :

npm install --save-dev @commitlint/config-conventional @commitlint/cli

Créer ensuite un fichier de configuration .commitlintrc.json au même endroit avec la conf suivante : 

{
  "extends": ["@commitlint/config-conventional"],
    "rules": {
      "body-case": [2, "always", "sentence-case"],
      "body-max-line-length": [1, "always", 72],
      "header-max-length": [1, "always", 52],
      "type-enum": [2, "always", [
          "build",
          "chore",
          "ci",
          "docs",
          "feat",
          "fix",
          "perf",
          "refactor",
          "revert",
          "security",
          "style",
          "test"
      ]
    ]
  } 
}

Installer ensuite Husky. Cet outil va permettre de créer des hooks sur les commits GIT, et donc va nous permettre de valider le message du commit via commitlint avant que le projet ne soit commité.
Toujours au même endroit, depuis le terminal :

npm install --save-dev husky

Ensuite pour activer les hooks, il faut se rendre à l'endroit où se trouve le dossier de config .git/ soit tout en haut de notre projet (au dessus de dev/).

Depuis un terminal, se rendre donc à la racine du projet, et exécuter la commande :

npx husky install

Un nouveau dossier .husky/ devrait alors apparaître.

On va alors lui indiquer la commande commitlint à exécuter au moment d'un commit en ajoutant un hook commit-msg :

npx husky add .husky/commit-msg 'npx --no -- commitlint --edit ${1} --config $(dirname -- "$0")/../dev/.commitlintrc.json'

Un fichier commit-msg devrait apparaître dans le dossier .husky/ contenant la commande commitlint à exécuter à chaque commit.

Utilisation en local

A présent, dès lors que le message de votre commit ne répondra pas au nommage conventionnel, commitlint vous retournera une erreur et le commit ne passera pas.

Exemples de commit qui ne passe pas

Ici, le commit ne passe pas car le type (build, ci, fix, feat...) n'est pas précisé.

Ici, le type précisé (docker:) n'est pas autorisé par la liste des types définis par la convention de Angular.

Ici le commit ne passe pas car le sujet du message ne doit pas commencer par une majuscule.

Exemple de commit qui passe

Utilisation de l'outil commitizen pour faciliter la rédaction des commits

Installer commitizen sur le projet

$ npm install --save-dev commitizen

Ensuite, initialiser commitizen sur le projet, dans dev/

$ npx commitizen init cz-conventional-changelog --save-dev --save-exact

Modifier la conf de commitizen. Éditer le fichier package.json à la racine :

{
  ...
  "devDependencies": {
    "cz-conventional-changelog": "^3.3.0"
  },
  "config": {
    "commitizen": {
      "path": "./dev/node_modules/cz-conventional-changelog"
    }
  }
}

Une fois les modifications apportées au code et ajouté à GIT, il suffit d'exécuter la commande suivante :

$ npx cz


  • Aucune étiquette