salt/.pre-commit-config.yaml
Pedro Algarvio fce51983b3 Migrated some invoke tasks to python-tools-scripts
* `tasks/docs.py` -> `tools/precommit/docs.py`
* `tasks/docstrings.py` -> `tools/precommit/docstrings.py`

Refs #64374

Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
2023-11-23 08:44:35 +00:00

1349 lines
48 KiB
YAML

---
default_language_version:
python: python3
exclude: ^(doc/_static/.*|doc/_themes/.*)$
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-merge-conflict # Check for files that contain merge conflict strings.
- id: trailing-whitespace # Trims trailing whitespace.
args:
- --markdown-linebreak-ext=md
exclude: >
(?x)^(
pkg/macos/pkg-resources/.*\.rtf
)$
- id: mixed-line-ending # Replaces or checks mixed line ending.
args:
- --fix=lf
- id: end-of-file-fixer # Makes sure files end in a newline and only a newline.
- id: check-ast # Simply check whether files parse as valid python.
exclude: >
(?x)^(
templates/.*
)$
- id: check-case-conflict # Check for files with names that would conflict on a
# case-insensitive filesystem like MacOS HFS+ or Windows FAT.
- id: check-json # Attempts to load all json files to verify syntax.
- id: check-symlinks # Checks for symlinks which do not point to anything.
- id: debug-statements # Check for debugger imports and py37+ breakpoint() calls in python source.
exclude: >
(?x)^(
templates/.*
)$
- id: fix-byte-order-marker # removes UTF-8 byte order marker
- id: forbid-submodules # forbids any submodules in the repository.
- id: fix-encoding-pragma # Remove `# -*- coding: utf-8 -*-` from the top of python files.
args:
- --remove
exclude: >
(?x)^(
salt/ext/.*
)$
- repo: https://github.com/s0undt3ch/python-tools-scripts
rev: "0.18.3"
hooks:
- id: tools
alias: check-changelog-entries
name: Check Changelog Entries
args:
- pre-commit
- changelog
- pre-commit-checks
- id: tools
alias: generate-workflows
name: Generate GitHub Workflow Templates
files: ^(cicd/shared-gh-workflows-context\.yml|tools/pre_commit\.py|.github/workflows/templates/.*)$
pass_filenames: false
args:
- pre-commit
- workflows
- generate-workflows
- id: tools
alias: actionlint
name: Lint GitHub Actions Workflows
files: "^.github/workflows/"
types:
- yaml
args:
- pre-commit
- workflows
- actionlint
- id: tools
alias: check-docs
name: Check Docs
files: ^(salt/.*\.py|doc/ref/.*\.rst)$
args:
- pre-commit
- docs
- check
- id: tools
alias: check-docstrings
name: Check docstrings
files: salt/.*\.py$
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
)$
args:
- pre-commit
- docstrings
- check
- id: tools
alias: check-known-missing-docstrings
name: Check Known Missing Docstrings
stages: [manual]
files: salt/.*\.py$
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
)$
args:
- pre-commit
- docstrings
- check
# ----- Packaging Requirements ------------------------------------------------------------------------------------>
- repo: https://github.com/saltstack/pip-tools-compile-impersonate
rev: "4.8"
hooks:
- id: pip-tools-compile
alias: compile-pkg-linux-3.7-zmq-requirements
name: Linux Packaging Py3.7 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.7/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-linux-3.8-zmq-requirements
name: Linux Packaging Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.8/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-linux-3.9-zmq-requirements
name: Linux Packaging Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.9/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-linux-3.10-zmq-requirements
name: Linux Packaging Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(linux\.in|py3\.10/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/linux.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.7-zmq-requirements
name: FreeBSD Packaging Py3.7 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.7/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.8-zmq-requirements
name: FreeBSD Packaging Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.8/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.9-zmq-requirements
name: FreeBSD Packaging Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.9/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-freebsd-3.10-zmq-requirements
name: FreeBSD Packaging Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto)\.txt|static/pkg/(freebsd\.in|py3\.10/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/pkg/freebsd.in
- id: pip-tools-compile
alias: compile-pkg-darwin-3.9-zmq-requirements
name: Darwin Packaging Py3.9 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|crypto|darwin)\.txt|static/pkg/(darwin\.in|py3\.9/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=darwin
- --include=requirements/darwin.txt
- --no-emit-index-url
- requirements/static/pkg/darwin.in
- id: pip-tools-compile
alias: compile-pkg-darwin-3.10-zmq-requirements
name: Darwin Packaging Py3.10 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|crypto|darwin)\.txt|static/pkg/(darwin\.in|py3\.10/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=darwin
- --include=requirements/darwin.txt
- --no-emit-index-url
- requirements/static/pkg/darwin.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.7-zmq-requirements
name: Windows Packaging Py3.7 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.7/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=windows
- --include=requirements/windows.txt
- --no-emit-index-url
- requirements/static/pkg/windows.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.8-zmq-requirements
name: Windows Packaging Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.8/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=windows
- --include=requirements/windows.txt
- --no-emit-index-url
- requirements/static/pkg/windows.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.9-zmq-requirements
name: Windows Packaging Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.9/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=windows
- --include=requirements/windows.txt
- --no-emit-index-url
- requirements/static/pkg/windows.in
- id: pip-tools-compile
alias: compile-pkg-windows-3.10-zmq-requirements
name: Windows Packaging Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|crypto|windows)\.txt|static/pkg/(windows\.in|py3\.10/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=windows
- --include=requirements/windows.txt
- --no-emit-index-url
- requirements/static/pkg/windows.in
# <---- Packaging Requirements -------------------------------------------------------------------------------------
# ----- CI Requirements ------------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-linux-3.7-zmq-requirements
name: Linux CI Py3.7 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|pkg/py3\.7/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-3.8-zmq-requirements
name: Linux CI Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.8/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-3.9-zmq-requirements
name: Linux CI Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.9/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-3.10-zmq-requirements
name: Linux CI Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(linux\.in|common\.in)|py3\.10/linux\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/linux.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.7-requirements
name: Linux CI Py3.7 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/linux-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=linux
- --out-prefix=linux
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.8-requirements
name: Linux CI Py3.8 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/linux-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --out-prefix=linux
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.9-requirements
name: Linux CI Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/linux-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --out-prefix=linux
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-linux-crypto-3.10-requirements
name: Linux CI Py3.10 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/crypto\.in)$
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.10/linux-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --out-prefix=linux
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.7-zmq-requirements
name: FreeBSD CI Py3.7 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|pkg/py3\.7/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/freebsd.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.8-zmq-requirements
name: FreeBSD CI Py3.8 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.8/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/freebsd.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.9-zmq-requirements
name: FreeBSD CI Py3.9 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.9/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/freebsd.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-3.10-zmq-requirements
name: FreeBSD CI Py3.10 ZeroMQ Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(freebsd|common)\.in|py3\.10/freebsd\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=freebsd
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/freebsd.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/freebsd.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.7-requirements
name: FreeBSD CI Py3.7 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/freebsd-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=freebsd
- --out-prefix=freebsd
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.8-requirements
name: FreeBSD CI Py3.8 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/freebsd-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=freebsd
- --out-prefix=freebsd
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.9-requirements
name: FreeBSD CI Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/freebsd-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=freebsd
- --out-prefix=freebsd
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-freebsd-crypto-3.10-requirements
name: FreeBSD CI Py3.10 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/crypto\.in)$
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.10/freebsd-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=freebsd
- --out-prefix=freebsd
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-darwin-3.9-zmq-requirements
name: Darwin CI Py3.9 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.9/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=darwin
- --include=requirements/darwin.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/darwin.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/darwin.in
- id: pip-tools-compile
alias: compile-ci-darwin-3.10-zmq-requirements
name: Darwin CI Py3.10 ZeroMQ Requirements
files: ^(requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(darwin|common)\.in|py3\.10/darwin\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=darwin
- --include=requirements/darwin.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/darwin.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/darwin.in
- id: pip-tools-compile
alias: compile-ci-darwin-crypto-3.9-requirements
name: Darwin CI Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/darwin-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=darwin
- --out-prefix=darwin
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-darwin-crypto-3.10-requirements
name: Darwin CI Py3.10 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.10/darwin-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=darwin
- --out-prefix=darwin
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-3.7-zmq-requirements
name: Windows CI Py3.7 ZeroMQ Requirements
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.7/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=windows
- --include=requirements/windows.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/windows.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-3.8-zmq-requirements
name: Windows CI Py3.8 ZeroMQ Requirements
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.8/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=windows
- --include=requirements/windows.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/windows.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-3.9-zmq-requirements
name: Windows CI Py3.9 ZeroMQ Requirements
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.9/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=windows
- --include=requirements/windows.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/windows.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-3.10-zmq-requirements
name: Windows CI Py3.10 ZeroMQ Requirements
files: requirements/((base|zeromq|pytest)\.txt|static/((ci|pkg)/(windows|common)\.in|py3\.10/windows\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=windows
- --include=requirements/windows.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/windows.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/windows.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.7-requirements
name: Windows CI Py3.7 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.7/windows-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=windows
- --out-prefix=windows
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.8-requirements
name: Windows CI Py3.8 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.8/windows-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=windows
- --out-prefix=windows
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.9-requirements
name: Windows CI Py3.9 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.9/windows-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=windows
- --out-prefix=windows
- --no-emit-index-url
- requirements/static/ci/crypto.in
- id: pip-tools-compile
alias: compile-ci-windows-crypto-3.10-requirements
name: Windows CI Py3.10 Crypto Requirements
files: ^requirements/(crypto\.txt|static/ci/(crypto\.in|py3\.10/windows-crypto\.txt))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=windows
- --out-prefix=windows
- --no-emit-index-url
- requirements/static/ci/crypto.in
# <---- CI Requirements --------------------------------------------------------------------------------------------
# ----- Cloud CI Requirements ------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-cloud-3.7-requirements
name: Cloud CI Py3.7 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.7/cloud\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
- id: pip-tools-compile
alias: compile-ci-cloud-3.8-requirements
name: Cloud CI Py3.8 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.8/cloud\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
- id: pip-tools-compile
alias: compile-ci-cloud-3.9-requirements
name: Cloud CI Py3.9 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.9/cloud\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
- id: pip-tools-compile
alias: compile-ci-cloud-3.10-requirements
name: Cloud CI Py3.10 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/(pkg/linux\.in|ci/((cloud|common)\.in|py3\.10/cloud\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/pytest.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/cloud.in
# <---- Cloud CI Requirements --------------------------------------------------------------------------------------
# ----- Doc CI Requirements --------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs CI Py3.7 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs CI Py3.8 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs CI Py3.9 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
- id: pip-tools-compile
alias: compile-doc-requirements
name: Docs CI Py3.10 Requirements
files: ^requirements/((base|zeromq|pytest)\.txt|static/ci/(docs|common|linux)\.in|static/pkg/linux\.in|static/pkg/.*/linux\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --no-emit-index-url
- requirements/static/ci/docs.in
# <---- Doc CI Requirements ----------------------------------------------------------------------------------------
# ----- Lint CI Requirements -------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-lint-3.7-requirements
name: Lint CI Py3.7 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.7/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
- id: pip-tools-compile
alias: compile-ci-lint-3.8-requirements
name: Lint CI Py3.8 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.8/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
- id: pip-tools-compile
alias: compile-ci-lint-3.9-requirements
name: Lint CI Py3.9 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.9/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
- id: pip-tools-compile
alias: compile-ci-lint-3.10-requirements
name: Lint CI Py3.10 Requirements
files: ^requirements/((base|zeromq)\.txt|static/(pkg/linux\.in|ci/(linux\.in|common\.in|lint\.in|py3\.10/linux\.txt)))$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --include=requirements/base.txt
- --include=requirements/zeromq.txt
- --include=requirements/static/pkg/linux.in
- --include=requirements/static/ci/linux.in
- --include=requirements/static/ci/common.in
- --no-emit-index-url
- requirements/static/ci/lint.in
# <---- Lint CI Requirements ---------------------------------------------------------------------------------------
# ----- Changelog ------------------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-changelog-3.8-requirements
name: Changelog CI Py3.8 Requirements
files: ^requirements/static/ci/(changelog\.in|py3\.8/(changelog|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --platform=linux
- --no-emit-index-url
- requirements/static/ci/changelog.in
- id: pip-tools-compile
alias: compile-ci-changelog-3.9-requirements
name: Changelog CI Py3.9 Requirements
files: ^requirements/static/ci/(changelog\.in|py3\.9/(changelog|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --platform=linux
- --no-emit-index-url
- requirements/static/ci/changelog.in
- id: pip-tools-compile
alias: compile-ci-changelog-3.10-requirements
name: Changelog CI Py3.10 Requirements
files: ^requirements/static/ci/(changelog\.in|py3\.10/(changelog|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --platform=linux
- --no-emit-index-url
- requirements/static/ci/changelog.in
# <---- Changelog --------------------------------------------------------------------------------------------------
# ----- Invoke ---------------------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-invoke-3.7-requirements
name: Linux CI Py3.7 Invoke Requirements
files: ^requirements/static/ci/(invoke\.in|py3.7/(invoke|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.7
- --no-emit-index-url
- requirements/static/ci/invoke.in
- id: pip-tools-compile
alias: compile-ci-invoke-3.8-requirements
name: Linux CI Py3.8 Invoke Requirements
files: ^requirements/static/ci/(invoke\.in|py3.8/(invoke|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.8
- --no-emit-index-url
- requirements/static/ci/invoke.in
- id: pip-tools-compile
alias: compile-ci-invoke-3.9-requirements
name: Linux CI Py3.9 Invoke Requirements
files: ^requirements/static/ci/(invoke\.in|py3.9/(invoke|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --no-emit-index-url
- requirements/static/ci/invoke.in
- id: pip-tools-compile
alias: compile-ci-invoke-3.10-requirements
name: Linux CI Py3.10 Invoke Requirements
files: ^requirements/static/ci/(invoke\.in|py3.10/(invoke|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --no-emit-index-url
- requirements/static/ci/invoke.in
# <---- Invoke -----------------------------------------------------------------------------------------------------
# ----- Tools ---------------------------------------------------------------------------------------------------->
- id: pip-tools-compile
alias: compile-ci-tools-3.9-requirements
name: Linux CI Py3.9 Tools Requirements
files: ^requirements/static/ci/(tools\.in|py3.9/(tools|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.9
- --no-emit-index-url
- requirements/static/ci/tools.in
- id: pip-tools-compile
alias: compile-ci-tools-3.10-requirements
name: Linux CI Py3.10 Tools Requirements
files: ^requirements/static/ci/(tools\.in|py3.10/(tools|linux)\.txt)$
pass_filenames: false
args:
- -v
- --build-isolation
- --py-version=3.10
- --no-emit-index-url
- requirements/static/ci/tools.in
- id: pip-tools-compile
alias: compile-ci-tools-virustotal-3.9-requirements
name: Linux CI Py3.9 Tools virustotal Requirements
files: ^requirements/static/ci/(tools(-virustotal)?\.in|py3.9/(tools(-virustotal)?|linux)\.txt)$
pass_filenames: false
args:
- -v
- --py-version=3.9
- requirements/static/ci/tools-virustotal.in
- id: pip-tools-compile
alias: compile-ci-tools-virustotal-3.10-requirements
name: Linux CI Py3.10 Tools virustotal Requirements
files: ^requirements/static/ci/(tools(-virustotal)?\.in|py3.10/(tools(-virustotal)?|linux)\.txt)$
pass_filenames: false
args:
- -v
- --py-version=3.10
- requirements/static/ci/tools-virustotal.in
# <---- Tools -----------------------------------------------------------------------------------------------------
# ----- Code Formatting ------------------------------------------------------------------------------------------->
- repo: https://github.com/asottile/pyupgrade
rev: v2.37.2
hooks:
- id: pyupgrade
name: Drop six usage and Py2 support
args: [--py3-plus, --keep-mock]
exclude: >
(?x)^(
salt/client/ssh/ssh_py_shim.py
|
salt/client/ssh/wrapper/pillar.py
|
salt/ext/.*\.py
)$
- repo: https://github.com/saltstack/pre-commit-remove-import-headers
rev: 1.1.0
hooks:
- id: remove-import-headers
- repo: https://github.com/s0undt3ch/salt-rewrite
# Automatically rewrite code with known rules
rev: 2.4.4
hooks:
- id: salt-rewrite
alias: rewrite-docstrings
name: Salt docstrings auto-fixes
files: ^salt/.*\.py$
args: [--silent, -F, fix_docstrings]
exclude: >
(?x)^(
salt/ext/.*
)$
- id: salt-rewrite
alias: rewrite-tests
name: Rewrite Salt's Test Suite
files: ^tests/.*\.py$
args: [--silent, -E, fix_asserts, -E, fix_docstrings]
- repo: https://github.com/timothycrosley/isort
rev: 5.12.0
hooks:
- id: isort
additional_dependencies: ['toml']
# This tells pre-commit not to pass files to isort.
# This should be kept in sync with pyproject.toml
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
tests/kitchen/.*
)$
- repo: https://github.com/psf/black
rev: 22.6.0
hooks:
- id: black
# This tells pre-commit not to pass files to black.
# This should be kept in sync with pyproject.toml
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
tests/kitchen/.*
)$
- repo: https://github.com/asottile/blacken-docs
rev: v1.12.1
hooks:
- id: blacken-docs
args: [--skip-errors]
files: ^doc/.*\.rst
additional_dependencies:
- black==22.6.0
# <---- Code Formatting --------------------------------------------------------------------------------------------
# ----- Security -------------------------------------------------------------------------------------------------->
- repo: https://github.com/PyCQA/bandit
rev: "1.7.4"
hooks:
- id: bandit
alias: bandit-salt
name: Run bandit against Salt
args: [--silent, -lll, --skip, "B701,B324"]
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
tests/.*
)$
additional_dependencies: ['importlib_metadata<5']
- repo: https://github.com/PyCQA/bandit
rev: "1.7.4"
hooks:
- id: bandit
alias: bandit-tests
name: Run bandit against the test suite
args: [--silent, -lll, --skip, "B701,B324"]
files: ^tests/.*
exclude: ^tests/minionswarm\.py
additional_dependencies: ['importlib_metadata<5']
# <---- Security ---------------------------------------------------------------------------------------------------
# ----- Pre-Commit ------------------------------------------------------------------------------------------------>
- repo: https://github.com/saltstack/invoke-pre-commit
rev: v1.9.0
hooks:
- id: invoke
alias: check-filemap
name: Check Filename Map Change Matching
files: ^tests/(filename_map\.yml|.*\.py)$
pass_filenames: false
args:
- filemap.check
additional_dependencies:
- blessings==1.7
- pyyaml==6.0.1
- distro==1.7.0
- jinja2==3.0.3
- msgpack==1.0.3
- packaging
- looseversion
- id: invoke
alias: loader-check-virtual
name: Check loader modules __virtual__
files: salt/.*\.py$
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
)$
args:
- loader.check-virtual
additional_dependencies:
- blessings==1.7
- pyyaml==6.0.1
- distro==1.7.0
- jinja2==3.0.3
- msgpack==1.0.3
- packaging
- looseversion
- repo: https://github.com/saltstack/invoke-pre-commit
rev: v1.9.0
hooks:
- id: invoke
alias: check-known-missing-docstrings
name: Check Known Missing Docstrings
stages: [manual]
files: salt/.*\.py$
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
)$
args:
- docstrings.check
- --error-on-known-failures
additional_dependencies:
- blessings==1.7
- pyyaml==6.0.1
- distro==1.7.0
- jinja2==3.0.3
- msgpack==1.0.3
- packaging
- looseversion
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.3.0
hooks:
- id: mypy
alias: mypy-tools
name: Run mypy against tools
files: ^tools/.*\.py$
exclude: >
(?x)^(
templates/.*|
salt/.*|
)$
additional_dependencies:
- attrs
- rich
- types-attrs
- types-pyyaml
- types-requests
- python-tools-scripts>=0.18.3
- repo: https://github.com/saltstack/mirrors-nox
rev: v2021.6.12
hooks:
- id: nox
alias: lint-salt
name: Lint Salt
files: ^((setup|noxfile)|(salt|tasks|tools)/.*)\.py$
exclude: >
(?x)^(
templates/.*|
salt/ext/.*|
)$
args:
- -e
- lint-salt-pre-commit
- --
additional_dependencies:
- setuptools<58.0
- pip>=20.2.4,<21.2
- repo: https://github.com/saltstack/mirrors-nox
rev: v2021.6.12
hooks:
- id: nox
alias: lint-tests
name: Lint Tests
files: ^tests/.*\.py$
args:
- -e
- lint-tests-pre-commit
- --
additional_dependencies:
- setuptools<58.0
- pip>=20.2.4,<21.2
# <---- Pre-Commit -------------------------------------------------------------------------------------------------