Sobre el proyecto

Commitizen ayuda a los equipos a aplicar y comunicar las convenciones de mensajes de commit mientras se crea el commit. En lugar de esperar a que un hook rechace un mensaje inválido, los contribuyentes responden a prompts para los campos requeridos, y el adaptador seleccionado genera el mensaje de commit formateado. La herramienta se distribuye a través de npm y se puede instalar globalmente con npm install -g commitizen, ejecutar directamente con npx cz, o instalarse como una devDependency del proyecto para que todos los contribuyentes usen la misma versión. En un repositorio configurado, los usuarios pueden ejecutar git cz, cz o git-cz en lugar de git commit. También se puede exponer a través de un script npm. Un repositorio se vuelve compatible con Commitizen al elegir un adaptador. La configuración documentada usa commitizen init cz-conventional-changelog con npm, Yarn o pnpm, que instala el adaptador, lo guarda en package.json y agrega la configuración config.commitizen.path. La configuración también se puede colocar en un archivo .czrc. La ruta del adaptador puede resolver paquetes npm, archivos JavaScript locales, directorios que contienen index.js, rutas relativas o rutas absolutas. Commitizen está basado en adaptadores, por lo que los proyectos pueden usar opciones publicadas como cz-conventional-changelog, cz-customizable, cz-emoji, cz-commitlint, cz-git, adaptadores orientados a Jira, o crear los suyos propios. Los adaptadores personalizados reciben una instancia de Inquirer.js y devuelven la cadena final del commit a través de un callback commit. Para los mantenedores que desean que los prompts aparezcan durante un git commit normal, Commitizen se puede invocar desde un hook Git prepare-commit-msg usando la opción --hook. El README proporciona ejemplos tanto para hooks Git tradicionales como para Husky, incluyendo la redirección de entrada desde /dev/tty para que el hook pueda ser interactivo. Commitizen está diseñado para funcionar junto con hooks de commit y herramientas relacionadas, no para reemplazarlos. Otras capacidades incluyen configuración global a través de ~/.czrc para usar en todos los repositorios, soporte para opciones estándar de git commit como git cz -a, y un patrón de múltiples repositorios donde un equipo puede publicar una pequeña CLI personalizada de Node.js que arranque Commitizen con un adaptador fijo. El comando git cz --retry puede reutilizar el intento de commit anterior después de un hook fallido o una ejecución de prueba, con datos de reintento vinculados a la ruta del repositorio y potencialmente borrados por actualizaciones o eliminación del archivo de caché. El README enumera las versiones probadas de Node.js 12, 14 y 16 y requiere npm 6 o superior, mientras señala que puede funcionar en versiones anteriores de Node.js. Los proyectos relacionados mencionados incluyen conventional-changelog para generar changelogs y commitlint para linting de mensajes de commit.