Sistema de validación automática de commits con formato personalizado y CLI interactivo para gestión de ramas.
- ✅ Validación automática de formato de commits
- 🎯 CLI interactivo para crear branches y commits
- 🌿 8 tipos de ramas predefinidos
- 🔄 GitHub Actions incluido para validación en PRs
- 📝 Sin dependencias - Solo Node.js y Python
- ⚡ Instalación en segundos
npx @sebastiandevp/git-commit-validatornpm install -g @sebastiandevp/git-commit-validator
setup-git-validatornpm install --save-dev @sebastiandevp/git-commit-validator
# o
yarn add -D @sebastiandevp/git-commit-validator
# Luego ejecuta:
npx setup-git-validatorEl validador requiere el siguiente formato:
Tipo|IdTarea|YYYYMMDD|Descripción
| Tipo | Descripción | Ejemplo |
|---|---|---|
feat |
Nueva funcionalidad | feat|backend|20250129|Add user authentication |
fix |
Corrección de bug | fix|MV-001|20250129|Fix login validation |
refactor |
Refactorización | refactor|backend|20250129|Optimize database queries |
review |
Cambios de code review | review|backend|20250129|Apply PR feedback |
test |
Tests | test|backend|20250129|Add unit tests for auth |
docs |
Documentación | docs|backend|20250129|Update API documentation |
chore |
Mantenimiento | chore|backend|20250129|Update dependencies |
Estos commits NO requieren el formato y son permitidos automáticamente:
- Merge commits:
Merge branch 'develop' into main - Revert commits:
Revert "feat|backend|20250129|Add feature" - Fixup commits:
fixup! Previous commit - Squash commits:
squash! Combine commits
feat|backend|20250129|Add JWT authentication system
fix|MV-001|20250129|Fix memory leak in cache service
refactor|backend|20250129|Simplify user validation logic
test|backend|20250129|Add E2E tests for checkout flow
docs|backend|20250129|Add architecture decision records
chore|backend|20250129|Upgrade TypeScript to v5.3Una vez instalado, el hook valida automáticamente cada commit:
# ✅ Commit válido - será aceptado
git commit -m "feat|backend|20250129|Add user registration"
# ❌ Commit inválido - será rechazado
git commit -m "added new feature"Usa el helper para crear branches y commits fácilmente:
git-helper
# o si lo instalaste localmente:
npx git-helperEl CLI te guiará paso a paso:
🚀 Git Helper - Automatización de branches y commits
¿Qué deseas hacer?
1. Crear branch + commit
2. Solo crear branch
3. Solo hacer commit
Elige una opción (1-3): 2
🌿 CREAR BRANCH
Selecciona el tipo de rama:
1. feature/ - Nueva funcionalidad
2. fix/ - Corrección de bug
3. hotfix/ - Corrección urgente en producción
4. refactor/ - Refactorización de código
5. chore/ - Tareas de mantenimiento
6. docs/ - Documentación
7. test/ - Tests
8. release/ - Preparación de release
Elige una opción (1-8): 1
ID de la tarea (ej: user-auth, s3-upload): user-authentication
¿Crear branch "feature/user-authentication"? (s/n): s
✅ Branch "feature/user-authentication" creado
El CLI ofrece 8 tipos de ramas:
El instalador crea automáticamente un workflow de GitHub Actions que valida commits en Pull Requests:
Archivo creado: .github/workflows/validate-commits.yml
El workflow se ejecuta automáticamente en PRs hacia develop, main o master.
Después de la instalación, encontrarás:
docs/GIT_VALIDATOR.md- Documentación completa del sistemascripts/git-helper.js- Script CLI para uso local.git/hooks/commit-msg- Hook de validación
# 1. Probar commit inválido
git commit --allow-empty -m "test"
# Esperado: ❌ ERROR: Formato de commit inválido
# 2. Probar commit válido
git commit --allow-empty -m "test|backend|20250129|Test validation"
# Esperado: ✅ Commit creado
# 3. Probar CLI
git-helper
# Esperado: Menú interactivo
# 4. Correr tests (para desarrolladores)
npm test
# Esperado: ✅ All tests passed- Node.js >= 14.0.0
- Python 3.x (para el hook de validación)
- Git repository inicializado
Si no tienes Python:
- Windows: https://www.python.org/downloads/
- macOS:
brew install python3 - Linux:
sudo apt install python3osudo yum install python3
Para desinstalar completamente el validador:
npx @sebastiandevp/git-commit-validator --uninstallEsto:
- Restaura el hook anterior (si existe backup)
- Elimina scripts y documentación instalados
- Limpia package.json
- Remueve el GitHub Actions workflow
Para personalizar el formato de commits, edita .git/hooks/commit-msg después de la instalación.
Nota: Los commits especiales (Merge, Revert, Fixup, Squash) están permitidos automáticamente sin formato.
# Usar --no-verify cuando sea necesario
git commit --no-verify -m "Mensaje sin formato"
# Alias corto
git commit -n -m "Mensaje sin formato"- Emergencias: Hotfixes críticos que no pueden esperar
- WIP commits: Trabajo en progreso en branches personales
- Commits automáticos: Generados por herramientas
npx @sebastiandevp/git-commit-validator# 1. Verificar que el hook existe
ls -la .git/hooks/commit-msg
# 2. Verificar permisos
chmod +x .git/hooks/commit-msg
# 3. Reinstalar
npx @sebastiandevp/git-commit-validator# Verificar instalación
python --version
# o
python3 --version
# Si no está instalado, descárgalo de python.org# Verificar que el script existe
ls -la scripts/git-helper.js
# Ejecutar directamente con node
node scripts/git-helper.jsDespués de la instalación, tendrás disponible:
{
"scripts": {
"git:helper": "node scripts/git-helper.js"
}
}Úsalo con:
npm run git:helper
# o
yarn git:helper¿Encontraste un bug o tienes una sugerencia?
- Abre un issue: https://github.com/SebastianDevps/git-helper/issues
- Envía un PR con tus cambios
Nota: Este proyecto está bajo GPL-3.0, cualquier contribución debe ser compatible con esta licencia.
GPL-3.0 © 2025 Sebastian Guerra
Este proyecto está licenciado bajo GNU General Public License v3.0. Esto significa que puedes usar, modificar y distribuir este software, pero cualquier modificación debe ser también open source bajo GPL-3.0.
Ver LICENSE para más detalles.
¡Dale una estrella en GitHub! ⭐
Hecho con ❤️ para mejorar la calidad de commits en equipos de desarrollo
