25 puntos por ironlung 2023-06-14 | 2 comentarios | Compartir por WhatsApp

*Cuando escribir mensajes de commit de Git se vuelve frustrante

  • Los mensajes de commit con emoji y número de issue son fáciles de rastrear y se ven bien
  • Pero cuanto más largos y complejos son los mensajes de commit, más incómodo es escribirlos cada vez y más frecuentes son los errores
  • Tener que buscar el emoji adecuado cada vez es una tortura

*Forzar mensajes de commit de Git con Git Hooks

  • Git Hooks es una función que ejecuta scripts definidos por nosotros cuando ocurren eventos relacionados con Git
  • Esta función se divide en hooks del servidor y hooks del cliente

*Hook del servidor: usar la función push rule de Git

  • Si se coloca un script que revise el mensaje de commit en el hook pre-receive, se evita que se haga push al servidor
  • En GitLab, se puede usar la función push rule para revisar los mensajes de commit con expresiones regulares
  • Si detecta un mensaje de commit que viola la expresión regular, rechaza ese push y genera un error

*Hook del cliente: revisar con anticipación antes de hacer push

  • Se puede crear un script en el hook commit-msg, antes de completar definitivamente el commit, para revisar el mensaje de commit
  • Si se quiere modificar el mensaje de commit, se puede escribir un script relacionado en el hook prepare-commit-msg

*El método de automatización de mensajes de commit de Infograb

  • Crearon un sistema de automatización de mensajes de commit usando Husky y Commitlint
  • Husky es un módulo npm que ayuda a gestionar Git Hooks. Crea archivos de hook con scripts dentro del directorio .husky. Luego, al ejecutar el comando npx husky install, ese script se registra en Git
  • commitlint es una herramienta para gestionar fácilmente las convenciones de commit y revisar mensajes de commit. La convención de commit definida por el equipo se escribe en formato JSON. Luego, se revisan los mensajes con el comando commitlint
  1. Definir la convención de commit en formato de commitlint
  • Tomando como base la estructura general del mensaje de commit, se definen en el archivo commitlint.config.ts las propiedades adecuadas para cada equipo
  1. Registrar commitlint en Husky
  • Registrar el comando commitlint en el hook commit-msg. Se agrega el script en el archivo .husky/commit-msg
  1. Añadir automatización
  • Automatizar tareas como agregar emojis o insertar números de issue
  • En el equipo de producto de Infograb, configuraron que al ingresar solo el tipo (feat, fix), se agregue automáticamente el emoji, que la primera letra del tipo se corrija automáticamente a mayúscula, y que si la rama tiene un número de issue, este se agregue automáticamente al footer
  • El script de automatización se puede colocar en el hook prepare-commit-msg

2 comentarios

 
yangeok 2023-06-20

También va bien usarlo junto con commitizen.

 
roxie 2023-06-24

Gracias por la buena herramienta.