# SPDX-FileCopyrightText: 2026 Team Centurions # SPDX-License-Identifier: AGPL-3.0-or-later exclude: ^\.specify/ repos: - repo: local hooks: - id: ruff name: Ruff linter entry: .venv/Scripts/python.exe -m ruff check language: system types: [python] - id: ruff-format name: Ruff formatter entry: .venv/Scripts/python.exe -m ruff format --check language: system types: [python] - id: mypy name: MyPy type-checker entry: .venv/Scripts/python.exe -m mypy language: system pass_filenames: false always_run: true args: ["src", "tests"] - id: bandit name: Bandit security scanner entry: .venv/Scripts/python.exe -m bandit language: system pass_filenames: false always_run: true args: ["-r", "src", "-x", "tests", "-s", "B101,B110,B310,B314,B608,B404,B603,B405"] - id: yamllint name: YAML linter entry: .venv/Scripts/yamllint.exe language: system types: [yaml] args: ["-d", "{rules: {line-length: {max: 120}, document-start: disable}}"] - id: gitlint name: Gitlint commit message checker entry: .venv/Scripts/gitlint.exe language: system always_run: true pass_filenames: false - id: license-check name: License compliance checker entry: .venv/Scripts/python.exe scripts/check_license_headers.py language: system always_run: true pass_filenames: false - id: detect-secrets name: Detect Secrets entry: .venv/Scripts/python.exe -m detect_secrets scan language: system always_run: true pass_filenames: false - id: pip-audit name: Dependency Audit entry: .venv/Scripts/python.exe -m pip_audit language: system always_run: true pass_filenames: false