repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: no-commit-to-branch args: [--branch, main] # If adding any exceptions here, make sure to add them to .editorconfig as well - id: end-of-file-fixer exclude: | (?x)^ ( test/fixtures/templater/jinja_l_metas/0(0[134578]|11).sql| test/fixtures/linter/sqlfluffignore/[^/]*/[^/]*.sql| test/fixtures/config/inheritance_b/(nested/)?example.sql| (.*)/trailing_newlines.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/dbt_project/models/my_new_project/multiple_trailing_newline.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/templated_output/macro_in_macro.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/templated_output/(dbt_utils_0.8.0/)?last_day.sql| test/fixtures/linter/indentation_errors.sql| test/fixtures/templater/jinja_d_roundtrip/test.sql )$ - id: trailing-whitespace exclude: | (?x)^( test/fixtures/linter/indentation_errors.sql| test/fixtures/templater/jinja_d_roundtrip/test.sql| test/fixtures/config/inheritance_b/example.sql| test/fixtures/config/inheritance_b/nested/example.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/templated_output/macro_in_macro.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/templated_output/last_day.sql| plugins/sqlfluff-templater-dbt/test/fixtures/dbt.*/templated_output/dbt_utils_0.8.0/last_day.sql| test/fixtures/linter/sqlfluffignore/ )$ - repo: https://github.com/psf/black rev: 25.1.0 hooks: - id: black - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.18.1 hooks: - id: mypy additional_dependencies: # NOTE: These dependencies should be the same as the `types-*` dependencies in # `requirements_dev.txt`. If you update these, make sure to update those too. [ types-toml, types-chardet, types-colorama, types-pyyaml, types-regex, types-tqdm, # Type stubs are obvious to import, but some dependencies also define their own # types directly (e.g. jinja). pre-commit doesn't actually install the python # package, and so doesn't automatically install the dependencies from # `pyproject.toml` either. We include them here to make sure mypy can function # properly. jinja2, pathspec, pytest, # and by extension... pluggy click, platformdirs, ] files: ^src/sqlfluff/.* # The mypy pre-commit hook by default sets a few arguments that we don't normally # use. To undo that we reset the `args` to be empty here. This is important to # ensure we don't get conflicting results from the pre-commit hook and from the # CI job. args: [] - repo: https://github.com/pycqa/flake8 rev: 7.1.1 hooks: - id: flake8 additional_dependencies: [flake8-black>=0.3.7] - repo: https://github.com/pycqa/doc8 rev: v1.1.2 hooks: - id: doc8 args: [--file-encoding, utf8] files: docs/source/.*\.rst$ - repo: https://github.com/adrienverge/yamllint.git rev: v1.35.1 hooks: - id: yamllint args: [-c=.yamllint] - repo: https://github.com/charliermarsh/ruff-pre-commit # Ruff version. rev: "v0.9.3" hooks: - id: ruff - repo: https://github.com/codespell-project/codespell rev: v2.4.1 hooks: - id: codespell exclude: (?x)^(test/fixtures/.*|pyproject.toml)$ additional_dependencies: [tomli]