Skip to content

💡 [REQUEST] - Ajouter une validation commitlint côté CI (le hook git n'est pas suffisant) #2336

Description

@shikanime

Description

Le hook commit-msg Husky (.husky/commit-msg → pnpx commitlint --edit) fonctionne correctement : il rejette bien les messages non conformes au conventionnel lors d'un git commit local (vérifié en conditions réelles, code 1 sur message non typé).

Cependant, cette validation n'est exécutée que côté client. Rien n'empêche côté serveur qu'un message non conventionnel atteigne une PR : tout commit créé en dehors du chemin du hook git (outils tiers, interface non git, rebases/imports distants) passe sans contrôle. Le workflow job-lint.yml ne lance que ESLint et ne valide pas les messages de commit.

Conséquence : des messages non conventionnels arrivent dans les PRs et dans l'historique, ce qui fragilise le versioning automatique (Release Please) et la génération de changelog.

PRs liées

N/A

Issues liées

N/A

Exemples simples

N/A

Spécifications techniques

Ajouter une étape de validation des messages de commit dans la CI, exécutée sur les PRs, indépendamment du hook client :

  • Ajouter un job (ou une Ă©tape dans job-lint.yml) lançant commitlint sur la plage de commits de la PR, par exemple via @commitlint/action ou un script pnpm dĂ©diĂ© (ex. commitlint --from "origin/main" --to HEAD).
  • Ne pas casser les PRs historiques : limiter la validation aux commits ajoutĂ©s par la PR (plage origin/main..HEAD), pas Ă  l'historique complet.
  • Conserver le hook Husky cĂ´tĂ© client comme retour rapide, la CI devenant le garde-fou incontournable.
  • RĂ©utiliser la config existante commitlint.config.cjs (extends @commitlint/config-conventional + règle body-leading-blank).

Définition du fini

  • Une Ă©tape CI valide les messages de commit de la PR
  • La validation ne s'applique qu'aux commits de la PR (plage origin/main..HEAD)
  • Un PR avec un message non conventionnel est bloquĂ© par la CI
  • La config commitlint.config.cjs existante est rĂ©utilisĂ©e sans duplication
  • La documentation (CONTRIBUTING.md) mentionne la validation CI

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions