# 🔍 Gitleaks Pre-commit Hook Este hook personalizado ejecuta [Gitleaks](https://github.com/gitleaks/gitleaks) para generar reportes en **HTML** (usando plantillas) o **JSON**, con reglas configurables. ## 🚀 Uso Agregá este repo en tu `.pre-commit-config.yaml`: ```yaml - repo: https://git.fridu.us/heckyel/gitleaks-pre-commit-hook rev: v1.0.0 hooks: - id: gitleaks-template-report # Uso básico (reglas por defecto de gitleaks) args: ["--format=html"] # Con reglas internas desde este repo # args: ["--format=html", "--rules-internal"] # Con reglas externas # args: ["--format=html", "--rules-external", "--config=ruta/a/gitleaks.toml"] ``` > ⚠️ Si usás `--format=json`, no es necesario `--template`. --- ### 🧩 Parámetros disponibles | Parámetro | Descripción | | -------------------- | ----------------------------------------------------------------------------| | `--template=NOMBRE` | Elige la plantilla HTML a usar (por defecto: `leet`) | | `--format=html\|json` | Formato de salida del reporte (`html` por defecto, o `json`) | | `--redact` | Oculta los secretos detectados con `***` en el reporte | | `--force` | Fuerza la reinstalación de Gitleaks (útil para debugging o versiones rotas) | | `--version=VERSIÓN` | Versión de Gitleaks a instalar (por defecto: `v8.27.0`) | | `--rules-internal` | Usa el archivo de reglas interno (`rules/gitleaks.toml`) | | `--rules-external` | Requiere `--config` para especificar un archivo de reglas externo | | `--config=archivo` | Ruta a archivo de reglas personalizado (requiere `--rules-external`) | **Comportamiento de las reglas:** - Por defecto: Usa solo las reglas incorporadas de gitleaks - Con `--rules-internal`: Usa el archivo de reglas interno - Con `--rules-external --config=archivo`: Usa el archivo de reglas externo especificado --- ### 🎨 Plantillas disponibles (`--format=html`) | Nombre | Archivo generado | | --------- | ----------------------------- | | `leet` | `.pre-commit/gitleaks/report/index.html` | | `basic` | `.pre-commit/gitleaks/report/index.html` | | `myspace` | `.pre-commit/gitleaks/report/index.html` | | `w98` | `.pre-commit/gitleaks/report/index.html` | | `wxp` | `.pre-commit/gitleaks/report/index.html` | > ⚠️ El archivo generado siempre se llama `index.html`, sin importar la plantilla usada. --- ### 📂 Salida esperada **Formato HTML:** ```sh .pre-commit/gitleaks/report/ ├── index.html ``` **Formato JSON:** ```sh .pre-commit/gitleaks/report/ ├── report.json ``` --- ## ✅ Requisitos - Tener `gitleaks` instalado y disponible en tu `PATH` - El archivo de reglas debe existir solo si se usa con `--rules-external` --- ## 🛠️ Configuración para desarrollo ```bash pre-commit install pre-commit run --all-files ``` --- ## 📝 Licencia [GNUv3 or later](LICENSE)