# Pre-commit hooks for code quality and security # Install: pip install pre-commit # Setup: pre-commit install # Run manually: pre-commit run --all-files repos: # General file checks - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-json - id: check-added-large-files args: ['--maxkb=1000'] - id: check-merge-conflict - id: detect-private-key - id: detect-aws-credentials args: ['--allow-missing-credentials'] # Ruff - Fast Python linter and formatter (replaces Black, Flake8, isort, Bandit) - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.3.0 hooks: - id: ruff args: [ --fix ] - id: ruff-format # Type checking - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.8.0 hooks: - id: mypy args: ['--ignore-missing-imports'] additional_dependencies: ['types-requests'] # Secret detection - repo: https://github.com/Yelp/detect-secrets rev: v1.4.0 hooks: - id: detect-secrets args: ['--baseline', '.secrets.baseline'] exclude: | (?x)^( .+\.lock| .+\.json| .env.demo )$ # Conventional commits validation - repo: https://github.com/compilerla/conventional-pre-commit rev: v3.0.0 hooks: - id: conventional-pre-commit stages: [commit-msg] args: []