diff options
Diffstat (limited to '')
-rw-r--r-- | .pre-commit-config.yaml | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..1174880 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,240 @@ +--- +ci: + # format compatible with commitlint + autoupdate_commit_msg: "chore: pre-commit autoupdate" + autoupdate_schedule: monthly + autofix_commit_msg: | + chore: auto fixes from pre-commit.com hooks + + for more information, see https://pre-commit.ci + skip: + # https://github.com/pre-commit-ci/issues/issues/55 + - pip-compile + - schemas + submodules: true +exclude: > + (?x)^( + .config/requirements.*| + .vscode/extensions.json| + .vscode/settings.json| + examples/broken/encoding.yml| + examples/broken/encoding.j2| + examples/broken/yaml-with-tabs/invalid-due-tabs.yaml| + examples/playbooks/collections/.*| + examples/playbooks/vars/empty.transformed.yml| + examples/playbooks/vars/empty.yml| + src/ansiblelint/schemas/rulebook.json| + test/schemas/data/licenses.json| + test/schemas/negative_test| + test/schemas/package-lock.json + )$ +repos: + - repo: meta + hooks: + - id: check-useless-excludes + - repo: https://github.com/pre-commit/mirrors-prettier + # keep it before yamllint + rev: v3.0.0-alpha.9-for-vscode + hooks: + - id: prettier + # Temporary excludes so we can gradually normalize the formatting + exclude: > + (?x)^( + .*\.md$| + examples/other/some.j2.yaml| + examples/playbooks/collections/.*| + examples/playbooks/example.yml| + examples/playbooks/multiline-brackets.*| + examples/playbooks/templates/not-valid.yaml| + examples/playbooks/vars/empty.transformed.yml| + examples/playbooks/vars/empty.yml| + examples/playbooks/with-skip-tag-id.yml| + examples/playbooks/with-umlaut-.*| + examples/yamllint/.*| + src/ansiblelint/schemas/(molecule|tasks|playbook|rulebook).json| + test/fixtures/formatting-before/.*| + test/schemas/(negative_test|test)/.*\.md| + test/schemas/data/.*| + src/ansiblelint/schemas/ansible-navigator-config.json + )$ + always_run: true + additional_dependencies: + - prettier + - prettier-plugin-toml + - prettier-plugin-sort-json + - repo: https://github.com/streetsidesoftware/cspell-cli + rev: v6.31.0 + hooks: + - id: cspell + # entry: codespell --relative + args: [--relative, --no-progress, --no-summary] + name: Spell check with cspell + - repo: https://github.com/python-jsonschema/check-jsonschema + rev: 0.23.2 + hooks: + - id: check-github-workflows + - repo: https://github.com/pre-commit/pre-commit-hooks.git + rev: v4.4.0 + hooks: + - id: end-of-file-fixer + # ignore formatting-prettier to have an accurate prettier comparison + exclude: > + (?x)^( + test/eco/.*.result| + examples/yamllint/.*| + test/fixtures/formatting-before/.*| + test/fixtures/formatting-prettier/.* + )$ + - id: trailing-whitespace + exclude: > + (?x)^( + examples/playbooks/(with-skip-tag-id|unicode).yml| + examples/playbooks/example.yml| + examples/yamllint/.*| + test/eco/.*.result| + test/fixtures/formatting-before/.* + )$ + - id: mixed-line-ending + - id: fix-byte-order-marker + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: debug-statements + language_version: python3 + - repo: https://github.com/codespell-project/codespell + rev: v2.2.5 + hooks: + - id: codespell + exclude: > + (?x)^( + .config/dictionary.txt| + examples/broken/encoding.j2| + test/schemas/negative_test/.*| + test/schemas/test/.*| + src/ansiblelint/schemas/.*\.json + )$ + additional_dependencies: + - tomli + - repo: https://github.com/adrienverge/yamllint.git + rev: v1.32.0 + hooks: + - id: yamllint + exclude: > + (?x)^( + examples/playbooks/templates/.*| + examples/yamllint/.*| + examples/other/some.j2.yaml| + examples/playbooks/collections/.*| + test/fixtures/formatting-before/.* + )$ + files: \.(yaml|yml)$ + types: [file, yaml] + entry: yamllint --strict + - repo: https://github.com/charliermarsh/ruff-pre-commit + rev: "v0.0.274" + hooks: + - id: ruff + args: [--fix, --exit-non-zero-on-fix] + - repo: https://github.com/psf/black + rev: 23.3.0 + hooks: + - id: black + language_version: python3 + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.4.0 + hooks: + - id: mypy + # empty args needed in order to match mypy cli behavior + args: [--strict] + additional_dependencies: + - ansible-compat>=4.1.2 + - black>=22.10.0 + - cryptography>=39.0.1 + - filelock>=3.12.2 + - jinja2 + - pytest-mock + - pytest>=7.2.2 + - rich>=13.2.0 + - ruamel-yaml>=0.17.31 + - ruamel-yaml-clib>=0.2.7 + - spdx-tools>=0.7.1 + - subprocess-tee + - types-PyYAML + - types-jsonschema>=4.4.2 + - types-pkg_resources + - types-setuptools + - wcmatch + exclude: > + (?x)^( + test/local-content/.*| + plugins/.* + )$ + - repo: https://github.com/pycqa/pylint + rev: v3.0.0a6 + hooks: + - id: pylint + args: + - --output-format=colorized + additional_dependencies: + - ansible-compat>=4.1.2 + - ansible-core>=2.14.0 + - black>=22.10.0 + - docutils + - filelock>=3.12.2 + - jsonschema>=4.9.0 + - pytest-mock + - pytest>=7.2.2 + - pyyaml + - rich>=13.2.0 + - ruamel-yaml>=0.17.31 + - ruamel-yaml-clib>=0.2.7 + - spdx-tools>=0.7.1 + - typing_extensions + - wcmatch + - yamllint + - repo: https://github.com/jazzband/pip-tools + rev: 6.13.0 + hooks: + - id: pip-compile + name: lock + alias: lock + always_run: true + entry: pip-compile --upgrade --resolver=backtracking -q --no-annotate --output-file=.config/requirements-lock.txt pyproject.toml --strip-extras --unsafe-package ruamel-yaml-clib --unsafe-package resolvelib + files: ^.config\/requirements.*$ + language: python + language_version: "3.9" # minimal we support officially + pass_filenames: false + stages: [manual] + additional_dependencies: + - pip>=22.3.1 + - id: pip-compile + name: deps + alias: deps + always_run: true + entry: pip-compile --resolver=backtracking -q --no-annotate --output-file=.config/requirements.txt pyproject.toml --extra docs --extra test --strip-extras --unsafe-package ruamel-yaml-clib --unsafe-package resolvelib + files: ^.config\/requirements.*$ + language: python + language_version: "3.9" # minimal we support officially + pass_filenames: false + additional_dependencies: + - pip>=22.3.1 + - id: pip-compile + entry: pip-compile --resolver=backtracking -q --no-annotate --output-file=.config/requirements.txt pyproject.toml --extra docs --extra test --strip-extras --unsafe-package ruamel-yaml-clib --unsafe-package resolvelib --upgrade + language: python + always_run: true + pass_filenames: false + files: ^.config\/requirements.*$ + alias: up + stages: [manual] + language_version: "3.9" # minimal we support officially + additional_dependencies: + - pip>=22.3.1 + - # keep at bottom as these are slower + repo: local + hooks: + - id: schemas + name: update json schemas + entry: python3 src/ansiblelint/schemas/__main__.py + language: python + pass_filenames: false + always_run: true + # stages: [manual] |