--- repos: # Built-in pre-commit hooks - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: detect-private-key - id: trailing-whitespace args: [--markdown-linebreak-ext=md] exclude: "^testdata/" - id: check-case-conflict - id: check-merge-conflict - id: check-executables-have-shebangs - id: check-shebang-scripts-are-executable - id: check-symlinks - id: check-toml - id: check-xml - id: check-yaml args: [--allow-multiple-documents] exclude: "^testdata/" - id: end-of-file-fixer exclude: "^testdata/" - id: mixed-line-ending args: [--fix=auto] - id: pretty-format-json args: [--autofix, --no-sort-keys] # YAML formatting with yamlfmt (replaces yamllint for formatting) - repo: https://github.com/google/yamlfmt rev: v0.17.2 hooks: - id: yamlfmt exclude: "^testdata/" # Markdown linting with markdownlint-cli2 (excluding legacy files) - repo: https://github.com/DavidAnson/markdownlint-cli2 rev: v0.18.1 hooks: - id: markdownlint-cli2 exclude: '^(testdata/|CHANGELOG\.md|TODO\.md|\.github/|CLAUDE\.md|README\.md|SECURITY\.md)' # EditorConfig checking - repo: https://github.com/editorconfig-checker/editorconfig-checker rev: v3.3.0 hooks: - id: editorconfig-checker alias: ec # Go formatting, imports, and linting - repo: https://github.com/TekWizely/pre-commit-golang rev: v1.0.0-rc.2 hooks: - id: go-imports-repo args: [-w] - id: go-mod-tidy - id: golangci-lint-repo-mod args: [--fix] # Shell formatting and linting - repo: https://github.com/scop/pre-commit-shfmt rev: v3.12.0-2 hooks: - id: shfmt # GitHub Actions linting - repo: https://github.com/rhysd/actionlint rev: v1.7.7 hooks: - id: actionlint args: ["-shellcheck="]