100 lines
3.1 KiB
Markdown
100 lines
3.1 KiB
Markdown
# 🔍 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)
|