diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..0342e8054a --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,19 @@ +--- +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.0.1 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + - id: mixed-line-ending + args: [--fix=lf] + - id: fix-encoding-pragma + - id: check-ast + - id: check-merge-conflict + - id: check-symlinks + - repo: https://github.com/pre-commit/pygrep-hooks + rev: v1.9.0 + hooks: + - id: rst-backticks + types: [file] + files: changelogs/fragments/.*\.(yml|yaml)$ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 970786ff56..311d7e110d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -71,3 +71,19 @@ Creating new modules and plugins requires a bit more work than other Pull Reques listed as `maintainers` will be pinged for new issues and PRs that modify the module/plugin or its tests. When you add a new plugin/module, we expect that you perform maintainer duty for at least some time after contributing it. + +## pre-commit + +To help ensure high-quality contributions this repository includes a [pre-commit](https://pre-commit.com) configuration which +corrects and tests against common issues that would otherwise cause CI to fail. To begin using these pre-commit hooks see +the [Installation](#installation) section below. + +This is optional and not required to contribute to this repository. + +### Installation + +Follow the [instructions](https://pre-commit.com/#install) provided with pre-commit and run `pre-commit install` under the repository base. If for any reason you would like to disable the pre-commit hooks run `pre-commit uninstall`. + +This is optional to run it locally. + +You can trigger it locally with `pre-commit run --all-files` or even to run only for a given file `pre-commit run --files YOUR_FILE`.