default_install_hook_types: - pre-commit - commit-msg default_stages: - pre-commit # Run locally - manual # Run in CI repos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.14.0 hooks: - id: ruff-check args: [--output-format, github, --fix] - id: ruff-format - repo: https://github.com/crate-ci/typos rev: v1.32.0 hooks: - id: typos args: [ "--force-exclude", "--exclude", "csrc/**" ] # - repo: https://github.com/pre-commit/mirrors-clang-format # rev: v20.1.3 # hooks: # - id: clang-format # files: ^csrc/.*\.(cpp|hpp|cc|hh|cxx|hxx)$ # types_or: [c++] # args: [--style=google, --verbose] - repo: https://github.com/igorshubovych/markdownlint-cli rev: v0.45.0 hooks: - id: markdownlint exclude: '.*\.inc\.md$|.*report_template\.md$|.*contributors\.md$|.*PULL_REQUEST_TEMPLATE\.md$' stages: [manual] # Only run in CI - repo: https://github.com/rhysd/actionlint rev: v1.7.7 hooks: - id: actionlint - repo: local hooks: - id: png-lint name: Lint PNG exports from excalidraw entry: tools/png-lint.sh language: script types: [png] - id: signoff-commit name: Sign-off Commit entry: bash args: - -c - | if ! grep -q "^Signed-off-by: $(git config user.name) <$(git config user.email)>" "$(git rev-parse --git-path COMMIT_EDITMSG)"; then printf "\nSigned-off-by: $(git config user.name) <$(git config user.email)>\n" >> "$(git rev-parse --git-path COMMIT_EDITMSG)" fi language: system verbose: true stages: [commit-msg] - id: check-filenames name: Check for spaces in all filenames entry: bash args: - -c - 'git ls-files | grep " " && echo "Filenames should not contain spaces!" && exit 1 || exit 0' language: system always_run: true pass_filenames: false - id: python-init name: Enforce __init__.py in Python packages entry: python tools/check_python_src_init.py language: python types: [python] pass_filenames: false # Keep `suggestion` last - id: suggestion name: Suggestion entry: bash -c 'echo "To bypass pre-commit hooks, add --no-verify to git commit."' language: system verbose: true pass_filenames: false # Insert new entries above the `suggestion` entry