2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00
2025-06-25 23:45:15 -05:00

🔍 Gitleaks Pre-commit Hook

This custom pre-commit hook runs Gitleaks to generate reports in HTML (using customizable templates) or JSON, with optional rules.

🚀 Usage

Add this repo to your .pre-commit-config.yaml:

- repo: https://git.fridu.us/heckyel/gitleaks-pre-commit-hook
  rev: v1.0.0
  hooks:
    - id: gitleaks-template-report
      # Basic usage (default gitleaks rules)
      args: ["--format=html"]

      # With internal rules from this repo
      # args: ["--format=html", "--rules-internal"]

      # With external rules
      # args: ["--format=html", "--rules-external", "--config=path/to/gitleaks.toml"]

⚠️ When using --format=json, the --template option is ignored.


🧩 Available parameters

Parameter Description
--template=NAME Choose the HTML report template (default: leet)
--format=html|json Output format (html by default, or json)
--redact Redacts detected secrets (replaces them with ***) in reports
--force Forces the reinstallation of Gitleaks (useful for debugging or broken versions)
--version=VERSION Specifies the version of Gitleaks to install (default: v8.27.0)
--rules-internal Uses the internal rules file (rules/gitleaks.toml)
--rules-external Requires --config to specify an external rules file
--config=FILE Path to custom rules file (requires --rules-external)

Rules Behavior:

  • By default: Uses gitleaks' built-in rules only
  • With --rules-internal: Uses the internal rules file
  • With --rules-external --config=FILE: Uses the specified external rules file

🎨 Available HTML templates (--format=html)

Template name Output file
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

⚠️ The output file is always named index.html regardless of the selected template.


📂 Output files

HTML format:

.pre-commit/gitleaks/report/
├── index.html

JSON format:

.pre-commit/gitleaks/report/
├── report.json

Requirements

  • gitleaks must be installed and available in your PATH
  • The rules file must exist if specified via --config with --rules-external

🛠️ Dev setup

pre-commit install
pre-commit run --all-files

📝 License

GNUv3 or later

Description
No description provided
Readme 98 KiB
Languages
Python 100%