| fail_fast: false |
| |
| exclude: | |
| (?x)^( |
| .github/workflows/release.yml| |
| crates/ty_vendored/vendor/.*| |
| crates/ty_project/resources/.*| |
| crates/ty/docs/(configuration|rules|cli|environment).md| |
| crates/ruff_benchmark/resources/.*| |
| crates/ruff_linter/resources/.*| |
| crates/ruff_linter/src/rules/.*/snapshots/.*| |
| crates/ruff_notebook/resources/.*| |
| crates/ruff_server/resources/.*| |
| crates/ruff/resources/.*| |
| crates/ruff_python_formatter/resources/.*| |
| crates/ruff_python_formatter/tests/snapshots/.*| |
| crates/ruff_python_resolver/resources/.*| |
| crates/ruff_python_resolver/tests/snapshots/.*| |
| crates/ty_completion_eval/truth/.* |
| )$ |
| |
| repos: |
| # Priority 0: Read-only hooks; hooks that modify disjoint file types. |
| - repo: https://github.com/pre-commit/pre-commit-hooks |
| rev: v6.0.0 |
| hooks: |
| - id: check-merge-conflict |
| priority: 0 |
| - id: end-of-file-fixer |
| # Don't run this on all files: the absence of trailing newlines is often |
| # intentional in parser/linter/formatter tests |
| files: '^((crates/ty_python_semantic/resources/corpus/.*)|(.*\.toml))$' |
| priority: 0 |
| |
| - repo: https://github.com/abravalheri/validate-pyproject |
| rev: v0.25 |
| hooks: |
| - id: validate-pyproject |
| priority: 0 |
| |
| - repo: https://github.com/crate-ci/typos |
| rev: v1.44.0 |
| hooks: |
| - id: typos |
| priority: 0 |
| |
| - repo: local |
| hooks: |
| - id: rustfmt |
| name: rustfmt |
| entry: rustfmt |
| language: system |
| types: [rust] |
| priority: 0 |
| # Prettier |
| - repo: https://github.com/rbubley/mirrors-prettier |
| rev: v3.8.1 |
| hooks: |
| - id: prettier |
| types: [yaml] |
| priority: 0 |
| |
| # zizmor detects security vulnerabilities in GitHub Actions workflows. |
| # Additional configuration for the tool is found in `.github/zizmor.yml` |
| - repo: https://github.com/zizmorcore/zizmor-pre-commit |
| rev: v1.23.1 |
| hooks: |
| - id: zizmor |
| priority: 0 |
| |
| - repo: https://github.com/python-jsonschema/check-jsonschema |
| rev: 0.37.0 |
| hooks: |
| - id: check-github-workflows |
| priority: 0 |
| |
| - repo: https://github.com/shellcheck-py/shellcheck-py |
| rev: v0.11.0.1 |
| hooks: |
| - id: shellcheck |
| priority: 0 |
| |
| - repo: https://github.com/executablebooks/mdformat |
| rev: 1.0.0 |
| hooks: |
| - id: mdformat |
| language: python # means renovate will also update `additional_dependencies` |
| additional_dependencies: |
| - mdformat-mkdocs==5.1.4 |
| - mdformat-footnote==0.1.3 |
| exclude: | |
| (?x)^( |
| docs/formatter/black\.md |
| | docs/\w+\.md |
| )$ |
| priority: 0 |
| |
| - repo: https://github.com/astral-sh/ruff-pre-commit |
| rev: v0.15.6 |
| hooks: |
| - id: ruff-format |
| exclude: crates/ty_python_semantic/resources/corpus/ |
| priority: 0 |
| - id: ruff-check |
| args: [--fix, --exit-non-zero-on-fix] |
| types_or: [python, pyi] |
| exclude: crates/ty_python_semantic/resources/corpus/ |
| require_serial: true |
| priority: 1 |
| |
| # Priority 1: Second-pass fixers (e.g., markdownlint-fix runs after mdformat). |
| - repo: https://github.com/igorshubovych/markdownlint-cli |
| rev: v0.48.0 |
| hooks: |
| - id: markdownlint-fix |
| exclude: | |
| (?x)^( |
| docs/formatter/black\.md |
| | docs/\w+\.md |
| )$ |
| priority: 1 |
| |
| # Priority 2: ruffen-docs runs after markdownlint-fix (both modify markdown). |
| - repo: https://github.com/astral-sh/ruff-pre-commit |
| rev: v0.15.6 |
| hooks: |
| - id: ruff-format |
| name: mdtest format |
| types_or: [markdown] |
| files: '^crates/.*/resources/mdtest/.*\.md$' |
| pass_filenames: true |
| priority: 2 |
| |
| # `actionlint` hook, for verifying correct syntax in GitHub Actions workflows. |
| # Some additional configuration for `actionlint` can be found in `.github/actionlint.yaml`. |
| - repo: https://github.com/rhysd/actionlint |
| rev: v1.7.11 |
| hooks: |
| - id: actionlint |
| stages: |
| # This hook is disabled by default, since it's quite slow. |
| # To run all hooks *including* this hook, use `uvx prek run -a --hook-stage=manual`. |
| # To run *just* this hook, use `uvx prek run -a actionlint --hook-stage=manual`. |
| - manual |
| args: |
| - "-ignore=SC2129" # ignorable stylistic lint from shellcheck |
| - "-ignore=SC2016" # another shellcheck lint: seems to have false positives? |
| language: golang # means renovate will also update `additional_dependencies` |
| additional_dependencies: |
| # actionlint has a shellcheck integration which extracts shell scripts in `run:` steps from GitHub Actions |
| # and checks these with shellcheck. This is arguably its most useful feature, |
| # but the integration only works if shellcheck is installed |
| - "github.com/wasilibs/go-shellcheck/cmd/shellcheck@v0.11.1" |
| priority: 0 |