repos: - repo: local hooks: - id: validate-commit-msg name: validate commit message entry: env PYTHONPATH=src .venv/bin/python3 -m devx.ci.validate_commit_msg language: system stages: [commit-msg] pass_filenames: true - id: lint-ruff name: ruff lint entry: make lint-ruff language: system types: [python] pass_filenames: false stages: [pre-commit] - id: lint-format name: ruff format check entry: make lint-format language: system types: [python] pass_filenames: false stages: [pre-commit] - id: typecheck name: pyright type check entry: make typecheck language: system types: [python] pass_filenames: false stages: [pre-commit] - id: lint-bandit name: bandit security scan entry: make lint-bandit language: system types: [python] pass_filenames: false stages: [pre-commit] - id: workflow-lint name: actionlint (workflow YAML) entry: make workflow-lint language: system files: ^\.gitea/workflows/ types: [yaml] pass_filenames: false stages: [pre-commit] - id: checkmake name: checkmake Makefile linter entry: make checkmake language: system files: (Makefile|\.mak)$ pass_filenames: false stages: [pre-commit] - id: check-test-speed name: unit test speed check entry: .venv/bin/python -m devx.tools.check_test_speed --max-seconds 6 --max-single-seconds 0.5 language: system types: [python] pass_filenames: false stages: [pre-commit] - id: check-translations name: translation completeness check entry: env PYTHONPATH=src .venv/bin/python -m devx.ci.check_translations language: system files: ^src/devx/translations\.json$ pass_filenames: false stages: [pre-commit] - id: doc-coverage name: documentation coverage check entry: env PYTHONPATH=src .venv/bin/python -m devx.ci.doc_coverage --fail-on-missing language: system pass_filenames: false stages: [pre-commit] - id: lint-docs name: documentation lint check entry: env PYTHONPATH=src .venv/bin/python -m devx.ci.lint_docs --root . language: system pass_filenames: false stages: [pre-commit] - id: pytest-cov name: pytest with 100% coverage entry: make pytest-cov language: system types: [python] pass_filenames: false stages: [pre-push] - id: commit-msg name: validate commit message entry: env PYTHONPATH=src .venv/bin/python3 -m devx.ci.validate_commit_msg language: system stages: [commit-msg] pass_filenames: true