summaryrefslogtreecommitdiffstats
path: root/.pre-commit-config.yaml
blob: 57030ab07fac752e6ad3dd6d927004abce3f865d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
---
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
    - ccv
    - pip-compile
    # No docker on pre-commit.ci
    - validate-config-in-container
default_language_version:
  # Needed in order to make pip-compile output predictable.
  python: python3.10
exclude: |
  (?x)^(
    test/assets/.*
  )$
repos:
  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: "v0.2.0"
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix]
  - repo: https://github.com/pappasam/toml-sort
    rev: v0.23.1
    hooks:
      - id: toml-sort-fix
  - repo: https://github.com/pre-commit/mirrors-prettier
    # keep it before yamllint
    rev: "v4.0.0-alpha.8"
    hooks:
      - id: prettier
        additional_dependencies:
          - prettier
          - prettier-plugin-toml
          - prettier-plugin-sort-json
  - repo: https://github.com/pre-commit/pre-commit-hooks.git
    rev: v4.5.0
    hooks:
      - id: end-of-file-fixer
      - id: trailing-whitespace
        exclude: >
          (?x)^(
            examples/playbooks/(with-skip-tag-id|unicode).yml|
            examples/playbooks/example.yml
          )$
      - id: mixed-line-ending
      - id: check-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.6
    hooks:
      - id: codespell
  - repo: https://github.com/adrienverge/yamllint.git
    rev: v1.33.0
    hooks:
      - id: yamllint
        files: \.(yaml|yml)$
        types: [file, yaml]
        entry: yamllint --strict
  - repo: https://github.com/psf/black
    rev: 24.1.1
    hooks:
      - id: black
        language_version: python3
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v1.8.0
    hooks:
      - id: mypy
        # empty args needed in order to match mypy cli behavior
        args: ["--strict"]
        additional_dependencies:
          - ansible-core
          - cached_property
          - packaging
          - pytest
          - pytest-mock
          - subprocess-tee>=0.4.1
          - "typing-extensions>=4.5.0;python_version<'3.10'"
          - types-PyYAML
          - types-pkg_resources
          - types-jsonschema>=4.4.9
  - repo: https://github.com/pycqa/pylint
    rev: v3.0.3
    hooks:
      - id: pylint
        additional_dependencies:
          - PyYAML
          - pytest
          - typing_extensions
  # Keep last due to being considerably slower than the others:
  - repo: local
    hooks:
      - id: pip-compile-upgrade
        # To run it execute: `pre-commit run pip-compile-upgrade --hook-stage manual`
        name: Upgrade constraints files and requirements
        files: ^(pyproject\.toml|requirements\.txt)$
        language: python
        entry: python -m piptools compile --resolver=backtracking --upgrade -q --strip-extras --extra docs --extra test --output-file=requirements.txt pyproject.toml --unsafe-package ansible-core --unsafe-package resolvelib --unsafe-package typing_extensions
        pass_filenames: false
        stages:
          - manual
        additional_dependencies:
          - pip-tools>=6.11.0
      - id: pip-compile
        name: Check constraints files and requirements
        files: ^(pyproject\.toml|requirements\.txt)$
        language: python
        entry: python -m piptools compile --resolver=backtracking -q --strip-extras --extra docs --extra test --output-file=requirements.txt pyproject.toml --unsafe-package ansible-core --unsafe-package resolvelib --unsafe-package typing_extensions
        pass_filenames: false
        additional_dependencies:
          - pip-tools>=6.11.0
  - repo: https://github.com/packit/pre-commit-hooks
    rev: v1.2.0
    hooks:
      - id: validate-config-in-container
        name: packit
        alias: packit
  - repo: https://github.com/mashi/codecov-validator
    rev: "1.0.1"
    hooks:
      - id: ccv
        name: codecov