| Branch | Build |
|---|---|
| main | |
| dev |
This repository provides pre-commit hooks for the CICD-Tools project.
These hooks all rely on 3rd party software to perform different types of static analysis:
- Some of this software can be managed by the end user project's themselves.
- Other software packages are provided by containers.
For this reason we strongly recommend installing a container runtime such as Docker or Colima on your development machine if you are consuming these hooks.
| Hook Name | Description |
|---|---|
| cicd-tools-schema-cookiecutter | Runs json-schema to validate a cookiecutter config file against the CICD-Tools schema. |
| cicd-tools-schema-manifest | Runs json-schema to validate a CICD-Tools manifest against the CICD-Tools schema. |
| format-shell | Runs shfmt to format your shell scripts. |
| format-toml | Runs tomll to format your TOML configuration files. |
| gettext-translations-add | Runs gettext utilities to support adding additional languages. |
| gettext-translations-compile | Runs gettext utilities to compile '.mo' files from '.po' files. |
| gettext-translations-missing | Runs gettext utilities to search for missing translations. |
| gettext-translations-update | Runs gettext utilities to extract translations and update all files. |
| git-conflict-markers | Runs git to check for left over conflict markers in your commit. |
| lint-github-workflow | Optionally runs actionlint on all GitHub workflows. |
| lint-github-workflow-header | Optionally runs a shell script to lint GitHub workflow headers. |
| lint-markdown | Runs markdown-lint on your Markdown files. |
| lint-shell | Runs shellcheck to lint all shell scripts. |
| pre-commit-sort-config | Runs yq to sort your .pre-commit-config.yaml file. |
| pre-commit-sort-hooks | Runs yq to sort your .pre-commit-hooks.yaml file. |
| security-credentials | Runs trufflehog to ensure you don't commit secrets to your codebase. |
| spelling-commit-message | Runs vale on your git commit messages to check for spelling errors. |
| spelling-markdown | Runs vale on your Markdown files to check for spelling errors. |
| spelling-vale-sync | Enables manually running vale to download remote packages. |
| spelling-vale-vocab | Enables automated sorting of vale vocabularies. |
| poetry-lint-ansible | Runs ansible-lint to check for Ansible best practices and behaviours. |
| poetry-lint-python | Runs pylint on all Python files to perform static code analysis. |
| poetry-types-python | Runs mypy on all Python files to check typing. |
| Hook Name | Exe Source | Implementation |
|---|---|---|
| cicd-tools-schema-cookiecutter | pre-commit venv | The Python package check-jsonschema is invoked. |
| cicd-tools-schema-manifest | pre-commit venv | The Python package check-jsonschema is invoked. |
| format-shell | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| format-toml | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| gettext-translations-add | CICD-Tools | A custom script is invoked which uses the CICD-Tools gettext container. |
| gettext-translations-compile | CICD-Tools | A custom script is invoked which uses the CICD-Tools gettext container. |
| gettext-translations-missing | CICD-Tools | A custom script is invoked which uses the CICD-Tools gettext container. |
| gettext-translations-update | CICD-Tools | A custom script is invoked which uses the CICD-Tools gettext container. |
| git-conflict-markers | local binary | The local git binary is invoked. |
| lint-github-workflow | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| lint-github-workflow-header | shell | A custom script is invoked. |
| lint-markdown | 3rd party | The official markdownlint-cli container is used to invoke this tool. |
| lint-shell | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| pre-commit-sort-config | CICD-Tools | A custom script is invoked which uses the CICD-Tools utilities container. |
| pre-commit-sort-hooks | CICD-Tools | A custom script is invoked which uses the CICD-Tools utilities container. |
| security-credentials | 3rd Party | The official trufflehog container is used to invoke this tool. |
| spelling-commit-message | CICD-Tools | A custom script is invoked which uses the CICD-Tools utilities container. |
| spelling-markdown | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| spelling-vale-sync | CICD-Tools | The CICD-Tools utilities container is used to invoke this tool. |
| spelling-vale-vocab | shell | The local shell binary is used to invoke a one-liner. |
| lint-ansible | poetry environment | A custom script and the local poetry environment is used to invoke this tool. |
| poetry-lint-python | poetry environment | The project's poetry environment is used to invoke this tool. |
| poetry-types-python | poetry environment | The project's poetry environment is used to invoke this tool. |