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 15 --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: docs-check name: documentation gate (coverage + stale refs + lint + version refs + prose) entry: bash -c 'PYTHONPATH=src DEVX_DOC_COVERAGE_STRICT=1 DEVX_VALE_LEVEL=warning make devx-docs-check' language: system pass_filenames: false always_run: true 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