blob: dd2c4fcd5346266c91072813215cb533d5f8dfd9 [file] [log] [blame]
default_stages: [pre-commit]
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: no-commit-to-branch
args: [--branch, main, --pattern, 1_.*_X]
- id: check-added-large-files
- id: check-executables-have-shebangs
- id: forbid-new-submodules
- id: check-yaml
exclude: '.clang-format'
- id: check-json
- id: pretty-format-json
args: ['--no-sort-keys', '--autofix']
- id: check-symlinks
- id: check-xml
- id: end-of-file-fixer
types_or: [c, shell, python, proto]
- id: trailing-whitespace
types_or: [c, shell, python, xml]
- id: check-docstring-first
- id: check-merge-conflict
- id: mixed-line-ending
args: [--fix=lf]
- repo: https://github.com/codespell-project/codespell
rev: v2.4.1
hooks:
- id: codespell
args: ['--config', './contrib/codespell.cfg', --write-changes]
- repo: https://github.com/ambv/black
rev: 25.9.0
hooks:
- id: black
- repo: local
hooks:
- id: no-binaries
name: prevent committing binaries to tree
language: script
entry: /usr/bin/false
types: [binary]
exclude: |
(?x)^(
contrib/qubes/doc/img/\w+\.(png|jpg)|
data/fwupd\.ico|
data/icons/(128x128|64x64)/org\.freedesktop.fwupd\.png|
docs/device-emulation-(gnome-firmware-record|assets)\.png|
docs/debug_(attached|tool_selector|breakpoint|task)\.png|
docs/test_task\.png|
docs/win32-(start-menu|run-anyway|term1|term2|uac|uac2)\.png|
data/org\.freedesktop\.fwupd\.png|
data/tests/fakedevice\d{3}\.(bin|jcat)|
libfwupdplugin/tests/efi/efivars/(Boot\d{4}-8be4df61-93ca-11d2-aa0d-00e098032b8c|
BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c|
OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c|
fwupd-ddc0ee61-e7f0-4e7d-acc5-c070a398838e-0-0abba7dc-e516-4167-bbf5-4d9d1c739416)|
plugins/ch341a/ch341a-vmod\.png|
plugins/lenovo-thinklmi/tests/efi/efivars/(fwupd-ddc0ee61-e7f0-4e7d-acc5-c070a398838e-0-0abba7dc-e516-4167-bbf5-4d9d1c739416|
OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c)|
plugins/logitech-hidpp/data/dump\.(csv\.gz|tdc)|
plugins/pci-bcr/config|
plugins/redfish/tests/efi/efivars/(RedfishIndications-16faa37e-4b6a-4891-9028-242de65a3b70|
RedfishOSCredentials-16faa37e-4b6a-4891-9028-242de65a3b70)|
plugins/uefi-capsule/tests/test\.bmp|
src/tests/auth/firmware\.xml\.gz|
src/tests/history_v[12]\.db|
src/tests/sys/devices/pci0000:00/0000:00:14\.0/usb1/1-1/descriptors
)$
- id: check-potfiles
name: check for missing translated files from potfiles
language: script
entry: ./contrib/ci/check-potfiles.py
- id: check-headers
name: check for superfluous includes
language: script
entry: ./contrib/ci/check-headers.py
- id: check-source
name: check source code for common issues
language: script
entry: ./contrib/ci/check-source.py
- id: check-quirks
name: check quirk style
language: script
entry: ./contrib/ci/check-quirks.py
- id: shellcheck
name: check shellscript style
language: system
entry: shellcheck --severity=warning -e SC2068
types: [shell]
exclude: ^contrib/PKGBUILD$
- id: shfmt
name: format shell scripts with shfmt
language: system
entry: shfmt --write --indent 4
types: [shell]
exclude: ^contrib/PKGBUILD$
- id: run-tests
name: run tests before pushing
language: system
entry: "test-fwupd"
stages: [pre-push]
- id: clang-format
name: clang-format
language: script
entry: ./contrib/reformat-code.py
types: [c]
- id: check-cli-actions
name: check cli actions
language: script
entry: ./contrib/ci/check-cli-actions.py
- id: check-license
name: Check license header
types_or: [shell, c, python]
language: script
entry: ./contrib/ci/check-license.py
- id: check-meson-install-tags
name: Check meson install tags
language: script
entry: ./contrib/ci/check-meson-install-tags.py
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.45.0
hooks:
- id: markdownlint
args: ['--fix', '--ignore', '.github']
- repo: https://github.com/gitleaks/gitleaks
rev: v8.28.0
hooks:
- id: gitleaks