18 Pre-commit hooks
¿Cómo evitar que los desarrolladores hagan commit al repositorio si el código no compila? o ¿Cómo asegurar que todos los mensajes de commit sigan cierto formato?
Los pre-commit hooks son pequeños programas que se ejecutan antes de que el desarrollador pueda hacer commit en su repositorio local y por ello son el lugar ideal para correr pequeñas pruebas o cosas que se deben asegurar para mantener el repositorio de código saludable.
Instalar desde la consola pre-commit-hook y algunos otros comandos de interés:
1 `flake8 --install-hook`
2 ó
3 `pip install git-pre-commit-hook`
NOTA: Podría pedir tener instalado flake8, ejecuta el siguiente comando:
1 `sudo apt-get install python-flake8`
Actualización:
1 `pip install --upgrade git-pre-commit-hook`
Desinstalación:
1 `pip uninstall git-pre-commit-hook`
Ejercicio:
A continuación crear un pre-commit hook que impida que se haga commit de código que no cumple con el estándar o que no compile.
- Entrar al archivo “.git” que se encuentra de manera oculta dentro de la carpeta en la cual se están realizando los ejercicios.
cd .git
Ahora entrar a la carpeta “hooks que también se encuentra oculta
1 `cd hooks`
Dar un
1 `ls`
para que liste los archivos que contiene esta carpeta
Abrir el archivo “pre-commit” con el siguiente comando:
1 `nano pre-commit`
Modificar la línea de “false” a “true”:
1 Flake8_STRICT, false
2 a
3 Flake8_STRICT, true
Guardar y salir.
Modificar el archivo python_lab.py para tratar de violar el estandar de codigo.
Tratar de hacer commit de los cambios. Mostrara como resultado un error que no dejará que suba los cambios ya que se está tratando de subir un código que no cumple con su estándar.
Para mas dudas sobre pre-commit-hook checar el siguiente enlace aquí