diff options
Diffstat (limited to '.pre-commit-config.yaml')
-rw-r--r-- | .pre-commit-config.yaml | 243 |
1 files changed, 243 insertions, 0 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..71de0c4 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,243 @@ +--- +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.j2| + test/schemas/data/licenses.json| + test/schemas/package-lock.json| + test/schemas/negative_test| + examples/broken/yaml-with-tabs/invalid-due-tabs.yaml| + examples/playbooks/collections/.* + )$ +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.4 + hooks: + - id: prettier + # Temporary excludes so we can gradually normalize the formatting + exclude: > + (?x)^( + .*\.md$| + examples/other/some.j2.yaml| + examples/playbooks/example.yml| + examples/playbooks/multiline-brackets.*| + examples/playbooks/templates/not-valid.yaml| + examples/playbooks/with-umlaut-.*| + examples/playbooks/with-skip-tag-id.yml| + examples/yamllint/.*| + examples/playbooks/collections/.*| + test/fixtures/formatting-before/.*| + test/schemas/data/.*| + test/schemas/(negative_test|test)/.*\.md| + src/ansiblelint/schemas/(molecule|tasks|playbook).json| + 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.22.0 + hooks: + - id: cspell + # entry: codespell --relative + args: [--relative, --no-progress, --no-summary] + name: Spell check with cspell + - repo: https://github.com/sirosen/check-jsonschema + rev: 0.21.0 + 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.2 + 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.29.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/PyCQA/isort + rev: 5.12.0 + hooks: + - id: isort + args: + # https://github.com/pre-commit/mirrors-isort/issues/9#issuecomment-624404082 + - --filter-files + - repo: https://github.com/psf/black + rev: 23.1.0 + hooks: + - id: black + language_version: python3 + - repo: https://github.com/pycqa/flake8.git + rev: 6.0.0 + hooks: + - id: flake8 + language_version: python3 + additional_dependencies: + - flake8-2020>=1.6.0 + # - flake8-black>=0.1.1 + - flake8-docstrings>=1.5.0 + - flake8-print>=5.0 + - flake8-pytest-style>=1.2.2 + - flake8-future-annotations>=0.0.3 + - repo: https://github.com/asottile/pyupgrade + # keep it after flake8 + rev: v3.3.1 + hooks: + - id: pyupgrade + args: ["--py38-plus"] + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.0.0 + hooks: + - id: mypy + # empty args needed in order to match mypy cli behavior + args: [--strict] + additional_dependencies: + - ansible-compat + - black>=22.10.0 + - cryptography>=39.0.1 + - filelock + - jinja2 + - pytest>=7.2.0 + - rich>=13.2.0 + - ruamel.yaml + - 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: v2.16.1 + hooks: + - id: pylint + args: + - --output-format=colorized + additional_dependencies: + - ansible-compat + - ansible-core>=2.14.0 + - black>=22.10.0 + - docutils + - filelock + - jsonschema>=4.9.0 + - pytest>=7.2.0 + - pyyaml + - rich>=13.2.0 + - ruamel.yaml + - typing_extensions + - wcmatch + - yamllint + - repo: https://github.com/jazzband/pip-tools + rev: 6.12.2 + hooks: + - id: pip-compile + name: lock + always_run: true + entry: pip-compile --resolver=backtracking -q --no-annotate --output-file=.config/requirements-lock.txt pyproject.toml --strip-extras --unsafe-package ruamel-yaml-clib + language: python + files: ^.config\/requirements.*$ + alias: lock + stages: [manual] + language_version: "3.9" # minimal we support officially + additional_dependencies: + - pip>=22.3.1 + - id: pip-compile + name: deps + 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 + language: python + files: ^.config\/requirements.*$ + alias: deps + language_version: "3.9" # minimal we support officially + always_run: true + 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 --upgrade + language: python + always_run: true + 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 + stages: [manual] |