/ .pre-commit-config.yaml
.pre-commit-config.yaml
 1  # default_stages: [commit]
 2  # Markdown/yaml/json lint and format, plan naming, Lua tests, extra hooks
 3  fail_fast: true
 4  repos:
 5    - repo: local
 6      hooks:
 7        - id: check-prereqs
 8          name: check-prereqs
 9          entry: bash scripts/check-prereqs.sh
10          language: system
11          pass_filenames: false
12        - id: shellcheck
13          name: shellcheck
14          entry: shellcheck
15          language: system
16          types: [shell]
17          pass_filenames: true
18          exclude: '\.(zsh|tmux)$|^etc/|^tmux/'
19        - id: markdownlint
20          name: markdownlint
21          entry: markdownlint
22          language: system
23          types: [markdown]
24          pass_filenames: true
25          args: ["-c", ".markdownlint.yaml", "-i", "CHANGELOG.md"]
26        - id: task-yamlfmt
27          name: task-yamlfmt
28          entry: task
29          language: system
30          args: [yamlfmt]
31          types: [yaml]
32          pass_filenames: false
33        - id: task-jsonfmt
34          name: task-jsonfmt
35          entry: task
36          language: system
37          args: [jsonfmt]
38          types: [json]
39          pass_filenames: false
40          exclude: '\^devbox.json/|^package.json/'
41        - id: task-test-lua
42          name: Run Lua tests (Busted)
43          entry: task
44          language: system
45          args: ['test:lua']
46          types: [lua]
47          pass_filenames: false
48    - repo: https://github.com/pre-commit/pre-commit-hooks
49      rev: v6.0.0
50      hooks:
51        - id: detect-private-key
52        - id: check-merge-conflict
53        - id: mixed-line-ending
54        - id: trailing-whitespace
55          exclude_types:
56            - "json"
57        - id: end-of-file-fixer
58          exclude_types:
59            - "json"
60        - id: check-added-large-files
61          args: ["--maxkb=2000"]
62        - id: check-yaml
63        - id: check-json
64        - id: check-toml
65        - id: check-xml
66        - id: check-case-conflict
67        - id: debug-statements
68    - repo: https://github.com/lunarmodules/luacheck
69      rev: v1.2.0
70      hooks:
71        - id: luacheck
72          name: Luacheck
73          description: Lint and static analysis of Lua code
74          entry: luacheck
75          language: lua
76          types: [lua]