-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
123 lines (112 loc) · 4.01 KB
/
.pre-commit-config.yaml
File metadata and controls
123 lines (112 loc) · 4.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# This pre-commit configuration is specifically designed for sanitizing
# generic template files in this repository. The majority of files are
# Markdown templates, so the hooks are focused on basic file hygiene
# and Markdown formatting.
# This configuration is NOT intended for use in production projects -
# it exists solely to maintain the consistency and quality of the template
# files in this repository.
ci:
autofix_prs: true
autoupdate_commit_msg: "[pre-commit.ci] bump ⬆ suggestions"
autoupdate_schedule: quarterly
skip: [lychee, gitlint] # lychee: no binary in CI; gitlint: commit-msg stage, not run in CI
# submodules: true
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: end-of-file-fixer
name: 📄 end-of-file-fixer
- id: trailing-whitespace
name: ✂️ trailing-whitespace
- id: check-json
name: 🔍 check-json
- id: check-yaml
name: 🔍 check-yaml
- id: check-toml
name: 🔍 check-toml
- id: check-executables-have-shebangs
name: ⚡ check-executables-have-shebangs
- id: check-case-conflict
name: 🔤 check-case-conflict
- id: check-added-large-files
name: 📦 check-added-large-files
args: ["--maxkb=100", "--enforce-all"]
- id: detect-private-key
name: 🔐 detect-private-key
- id: check-merge-conflict
name: 🔀 check-merge-conflict
- id: mixed-line-ending
name: ↩️ mixed-line-ending
args: ["--fix=lf"]
- id: pretty-format-json
name: ✨ pretty-format-json
args: ["--autofix"]
- repo: https://github.com/JoC0de/pre-commit-prettier
rev: v3.8.1 # using tag; previously pinned SHA when tags were not persistent
hooks:
- id: prettier
name: 🎨 prettier
files: \.(html|yml|yaml|toml|js)$
# https://prettier.io/docs/en/options.html#print-width
args: ["--print-width=120"]
- repo: https://github.com/pre-commit/mirrors-eslint
rev: v10.2.0
hooks:
- id: eslint
name: 🛡️ eslint
additional_dependencies:
- eslint@9.21.0
- globals@16.0.0
- "@eslint/js@9.21.0"
- repo: https://github.com/codespell-project/codespell
rev: v2.4.2
hooks:
- id: codespell
name: ✏️ codespell
args: ["--write-changes"]
- repo: https://github.com/executablebooks/mdformat
rev: 1.0.0
hooks:
- id: mdformat
name: 📝 mdformat
args: ["--number", "--wrap=no"]
additional_dependencies:
- mdformat-gfm
- mdformat-ruff
- mdformat-frontmatter
- mdformat-config
- mdformat-beautysh
- mdformat-admon
- mdformat-web
- repo: https://github.com/lycheeverse/lychee.git
rev: lychee-v0.23.0
hooks:
- id: lychee
name: 🔗 lychee
args:
- --offline
- --no-progress
#- --exclude=^https?://
types_or: [markdown, toml]
- repo: local
hooks:
- id: node-syntax-check
name: 🟩 node --check (hooks)
language: system
entry: node --check
files: ^\.claude/hooks/.*\.js$|^\.codex/hooks/.*\.js$
types: [javascript]
- id: no-hardcoded-user-paths
name: 🚫 No hardcoded user paths
language: pygrep
# Matches /Users/<realname>/ or /home/<realname>/ — alphanumeric usernames only.
# Placeholder docs like /Users/<name>/ are not flagged (< is not alphanumeric).
entry: /Users/[a-zA-Z0-9_-]+/|/home/[a-zA-Z0-9_-]+/
files: ^\.claude/(agents|skills|rules)/.*\.md$|^\.claude/hooks/[^/]+\.js$|^\.claude/settings\.json$|^\.codex/(agents|skills|rules)/.*\.md$|^\.codex/hooks/[^/]+\.js$|^\.codex/settings\.json$
- repo: https://github.com/jorisroovers/gitlint
rev: v0.19.1 # run `pre-commit autoupdate --repo https://github.com/jorisroovers/gitlint` to set
hooks:
- id: gitlint
name: ✅ gitlint
stages: [commit-msg]