--- # pre-commit is a tool to perform a predefined set of tasks manually and/or # automatically before git commits are made. # # Config reference: https://pre-commit.com/#pre-commit-configyaml---top-level # # Common tasks # # - Run on all files: pre-commit run --all-files # - Register git hooks: pre-commit install --hook-type pre-commit --hook-type pre-push # # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks exclude: | (?x)^( docs/doxygen-awesome-theme/.* )$ repos: # `pre-commit sample-config` default hooks - repo: https://github.com/pre-commit/pre-commit-hooks rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0 hooks: - id: check-added-large-files - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: end-of-file-fixer - id: trailing-whitespace # Autoformat: YAML, JSON, Markdown, etc. - repo: https://github.com/rbubley/mirrors-prettier rev: 0ee178619d696787ca73d210cc191d720868c631 # frozen: v3.9.6 hooks: - id: prettier - repo: https://github.com/igorshubovych/markdownlint-cli rev: 5b5dddc4fb0f83c3ea1fc5616fa63e115dce83e0 # frozen: v0.49.1 hooks: - id: markdownlint-fix exclude: LICENSE.md - repo: https://github.com/hadolint/hadolint rev: 2eece55955ced00200be9729e9728cb7dacca505 # frozen: v2.15.1 hooks: - id: hadolint-docker # hadolint-docker is a special hook that runs hadolint in a Docker container # Docker is not installed in the environment where pre-commit is run stages: [manual] entry: hadolint/hadolint:v2.15.1 hadolint - repo: https://github.com/codespell-project/codespell rev: 57b21406f092110c18776e39b0bda50d37c945c8 # frozen: v2.4.3 hooks: - id: codespell args: [ --write-changes, --ignore-words=pre-commit-hooks/codespell_ignore.txt, ] - repo: https://github.com/psf/black-pre-commit-mirror rev: 4160603246a6b365d4a2af661c6d71b0a0f50478 # frozen: 26.5.1 hooks: - id: black - repo: https://github.com/scop/pre-commit-shfmt rev: 05c1426671b9237fb5e1444dd63aa5731bec0dfb # frozen: v3.13.1-1 hooks: - id: shfmt args: [--write, --indent=4, --case-indent=true] # Running some C++ hooks before clang-format # to ensure that the style is consistent. - repo: local hooks: - id: json-in-cpp name: Fix JSON style in C++ entry: pre-commit-hooks/json_in_cpp.py types: [c++] language: python exclude: | (?x)^( tests/unit/etl/SubscriptionSourceTests.cpp| tests/unit/web/ServerTests.cpp| tests/unit/web/impl/ErrorHandlingTests.cpp| tests/unit/web/ng/ServerTests.cpp| tests/unit/web/ng/impl/ErrorHandlingTests.cpp )$ - id: fix-local-includes name: Fix Local Includes entry: pre-commit-hooks/fix-local-includes.sh types: [c++] language: script - id: fix-pragma-once name: fix missing '#pragma once' declarations in header files language: python entry: ./pre-commit-hooks/fix_pragma_once.py files: \.(h|hpp)$ - repo: https://github.com/pre-commit/mirrors-clang-format rev: f4d7745e17a28aad7eed2f4874ca8d1568c11c4c # frozen: v22.1.8 hooks: - id: clang-format args: [--style=file] types: [c++] - repo: https://github.com/BlankSpruce/gersemi-pre-commit rev: b9d6d13dc9b753c5ff24ed5f8470671189c3fcf0 # frozen: 0.28.0 hooks: - id: gersemi - repo: local hooks: - id: check-no-h-files name: No .h files entry: There should be no .h files in this repository language: fail files: \.h$ - repo: local hooks: - id: gofmt name: Go Format entry: pre-commit-hooks/run-go-fmt.sh types: [go] language: golang description: "Runs `gofmt`, requires golang" - id: check-docs name: Check Doxygen Documentation entry: pre-commit-hooks/check-doxygen-docs.sh types: [text] language: script pass_filenames: false - id: verify-commits name: Verify Commits entry: pre-commit-hooks/verify-commits.sh always_run: true stages: [pre-push] language: script pass_filenames: false