À propos du projet

Commitizen aide les équipes à appliquer et communiquer les conventions de message de commit pendant la création du commit. Au lieu d'attendre qu'un hook rejette un message invalide, les contributeurs répondent à des invites pour les champs requis, et l'adaptateur sélectionné génère le message de commit formaté. L'outil est distribué via npm et peut être installé globalement avec npm install -g commitizen, exécuté directement avec npx cz, ou installé comme devDependency du projet afin que chaque contributeur utilise la même version. Dans un dépôt configuré, les utilisateurs peuvent exécuter git cz, cz ou git-cz à la place de git commit. Il peut également être exposé via un script npm. Un dépôt est rendu compatible avec Commitizen en choisissant un adaptateur. La configuration documentée utilise commitizen init cz-conventional-changelog avec npm, Yarn ou pnpm, ce qui installe l'adaptateur, l'enregistre dans package.json et ajoute le paramètre config.commitizen.path. La configuration peut également être placée dans un fichier .czrc. Le chemin de l'adaptateur peut résoudre des packages npm, des fichiers JavaScript locaux, des répertoires contenant index.js, des chemins relatifs ou des chemins absolus. Commitizen est basé sur des adaptateurs, donc les projets peuvent utiliser des options publiées telles que cz-conventional-changelog, cz-customizable, cz-emoji, cz-commitlint, cz-git, des adaptateurs orientés Jira, ou créer les leurs. Les adaptateurs personnalisés reçoivent une instance Inquirer.js et renvoient la chaîne de commit finale via un callback commit. Pour les mainteneurs qui souhaitent que les invites apparaissent lors d'un git commit normal, Commitizen peut être invoqué depuis un hook Git prepare-commit-msg en utilisant l'option --hook. Le README fournit des exemples pour les hooks Git traditionnels et Husky, y compris la redirection de l'entrée depuis /dev/tty afin que le hook puisse être interactif. Commitizen est conçu pour fonctionner aux côtés des hooks de commit et des outils associés, plutôt que de les remplacer. D'autres capacités incluent la configuration globale via ~/.czrc pour une utilisation dans plusieurs dépôts, la prise en charge des options standard de git commit telles que git cz -a, et un modèle multi-dépôt où une équipe peut publier un petit CLI Node.js personnalisé qui amorce Commitizen avec un adaptateur fixe. La commande git cz --retry peut réutiliser le commit précédemment tenté après un échec de hook ou de test, les données de retry étant liées au chemin du dépôt et potentiellement effacées par les mises à niveau ou la suppression du fichier cache. Le README liste les versions de Node.js testées 12, 14 et 16 et nécessite npm 6 ou supérieur, tout en notant qu'il peut fonctionner sur des versions plus anciennes de Node.js. Les projets connexes mentionnés incluent conventional-changelog pour générer des changelogs et commitlint pour lint les messages de commit.