Files
devx/.pre-commit-config.yaml
T
emilandDevin <158243242+devin-ai-integration[bot]@users.noreply.github.com> 5cacbdec09 feat: sync missing features from v0.49.x line to master
The v0.49.x tag line diverged from origin/master, leaving many
features only accessible via tags but not on the master branch.

New modules:
- ci/cancel_superseded_runs.py — cancel superseded CI runs
- ci/check_workflow_artifact_deps.py — validate artifact deps
- ci/check_workflow_tofu_init.py — validate tofu init steps
- tools/check_alert_rules.py — validate Prometheus alert rules
- tools/check_ansible_set_fact_to_json.py — lint set_fact usage
- tools/check_docker_init.py — validate Docker init scripts
- utils/jinja.py — Jinja2 template utilities
- utils/ui.py — UI/console utilities

Modified modules:
- distribute_molecule.py: add --include-roles/--exclude-roles
- utils/api.py: add container.credentials for private registry auth
- install_tools.py: retry ansible-galaxy on transient timeouts
- setup_image.py: skip dep resolution with --no-deps
- cli.py: register new commands
- i18n.py: add new translation keys

Also removes accidentally committed .vale/styles/Google/ files.

Test results: 2195 passed, 100% coverage.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2026-08-09 03:04:39 +02:00

98 lines
2.8 KiB
YAML

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