--- 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]