Git Hooks fácil con Husky

En un proyecto de mantenimiento donde participe como programador, tenían configurado algunos Git Hooks, siempre tuve la inquietud de como usarlos en algunos proyectos.

Ahora que tengo la oportunidad de trabajar en un proyecto en Angular donde requerimos tener un poco más control de las Test Unitarias, nos dimos a la tarea de encontrar un paquete para controlar estos Git Hooks de una manera fácil, y encontramos Husky.

Idea

La idea principal es realizar ciertas tareas antes de hacer git commit o git push. Por ejemplo lo más ng test, de esta manera nos obligamos a comprobar que todas nuestras Test unitarias pasan, para poder subir código testeado.

Instalación y Configuración

npm install husky --save-dev

Después de haber instalado husky crear un archivo husky.config.js donde contendrá las configuraciones de los hooks.

husky.config.js
module.exports = {
	hooks: {
	  'pre-push': 'ng test',
	  // 'pre-commit': 'ng test',
	},
 }

De esta manera lo que hacemos es que pase todas las test unitarias antes de poder hacer git push. De igual manera puedes crear scripts en el lenguaje que tú quieras y poder correrlos desde terminal por ejemplo:

husky.config.js
module.exports = {
	hooks: {
	  'pre-push': 'node check-status.js',
	  // 'pre-commit': 'node check-status.js',
	},
 }

Todo depende de la imaginación, pero estoy interesado también en hacer algo más complejo con esta otra librería git-precommit-checks. Será el proximo artículo.