| # See https://pre-commit.com for more information | |
| # See https://pre-commit.com/hooks.html for more hooks | |
| # default_language_version: | |
| # python: python3.11 | |
| repos: | |
| # Security - Detect hardcoded secrets | |
| - repo: https://github.com/gitleaks/gitleaks | |
| rev: v8.18.2 | |
| hooks: | |
| - id: gitleaks | |
| name: 🔒 Detect hardcoded secrets | |
| # Git & Filesystem checks | |
| - repo: https://github.com/pre-commit/pre-commit-hooks | |
| rev: v5.0.0 | |
| hooks: | |
| - id: check-added-large-files | |
| name: 🌳 Block large file commits | |
| - id: check-merge-conflict | |
| name: 🌳 Detect merge conflict markers | |
| - id: check-toml | |
| name: 📁 Validate TOML files | |
| - id: check-yaml | |
| name: 📁 Validate YAML files | |
| args: | |
| - --unsafe | |
| - id: end-of-file-fixer | |
| name: 📁 Fix end of files | |
| exclude_types: [text, jupyter] | |
| - id: trailing-whitespace | |
| name: 📁 Trim trailing whitespace | |
| # Python formatting and linting | |
| - repo: https://github.com/astral-sh/ruff-pre-commit | |
| rev: v0.7.1 | |
| hooks: | |
| - id: ruff | |
| name: 🐍 Lint with Ruff | |
| args: | |
| - --fix | |
| exclude_types: [jupyter] | |
| - id: ruff-format | |
| name: 🐍 Format with Ruff | |
| exclude_types: [jupyter] | |
| # Validate pyproject.toml | |
| - repo: https://github.com/abravalheri/validate-pyproject | |
| rev: v0.23 | |
| hooks: | |
| - id: validate-pyproject | |
| name: 🐍 Validate pyproject.toml | |
| ci: | |
| autofix_commit_msg: 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks | |
| autoupdate_commit_msg: ⬆ [pre-commit.ci] pre-commit autoupdate | |