Ir al contenido

Git hooks

La forma más segura de mantener un secreto fuera del historial es no dejar que llegue a commitearse. kovra hooks install coloca un hook de pre-commit en un repo que escanea el diff staged y falla el commit ante un hallazgo.

Se ejecuta dentro del repositorio que se quiere proteger:

zsh
~ % kovra hooks install
Wrote ./.gitleaks.toml
Installed the gitleaks pre-commit hook at ./.git/hooks/pre-commit.

Escribe un hook de pre-commit basado en gitleaks en .git/hooks/pre-commit y un archivo de configuración .gitleaks.toml que se puede ajustar. A partir de ahí, cada git commit escanea lo que se puso en stage; un probable secreto aborta el commit antes de que llegue siquiera al historial.

No reemplaza en silencio un hook de pre-commit que ya exista — se reejecuta con --force para sobrescribir uno existente.

El vault mantiene los secretos fuera del código desde el principio, y .env.refs contiene solo direcciones — pero un hook es la última línea de defensa ante el error que todos terminan cometiendo: pegar un valor real en un archivo “solo por un segundo”. Defensa en profundidad significa que el commit se bloquea incluso cuando se relaja la disciplina.

  • kovra doctor valida el .env.refs de un proyecto — conviene conectarlo a CI para fallar un build ante un drift.
  • kovra scaffold propone un .env.refs a partir del código fuente, de modo que los secretos se conecten por dirección, nunca por valor.