-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy path.pre-commit-config.yaml
More file actions
135 lines (135 loc) · 3.98 KB
/
.pre-commit-config.yaml
File metadata and controls
135 lines (135 loc) · 3.98 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
124
125
126
127
128
129
130
131
132
133
134
135
---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
ci:
skip:
- prettier
# Because these are local hooks it seems like they won't easily run in pre-commit CI
- eslint
- style-lint
- check-vendor-directory
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
exclude: ".hbs$"
- id: check-yaml
- id: check-added-large-files
exclude: "yarn.lock|.yarn/releases/.*|frontends/.yarn/releases/.*|generated/.*"
- id: check-merge-conflict
- id: check-toml
- id: debug-statements
- repo: local
hooks:
- id: prettier
name: prettier
entry: npx prettier --write
language: node
types_or:
[
javascript,
jsx,
ts,
tsx,
json,
scss,
sass,
css,
yaml,
markdown,
html,
]
- id: check-vendor-directory
name: check-vendor-directory
description: "Prevent commits to vendor directories"
entry: >
bash -c 'if git diff --cached --name-only | grep -q "/vendor/"; then
echo "ERROR: Direct commits to vendor directories are not allowed. These directories contain external dependencies.";
echo "If you need to update vendor code, use: SKIP=check-vendor-directory git commit -m \"your message\"";
exit 1; fi'
language: system
pass_filenames: false
always_run: true
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.12.0-2
hooks:
- id: shfmt
- repo: https://github.com/adrienverge/yamllint.git
rev: v1.38.0
hooks:
- id: yamllint
args: [--format, parsable, -d, relaxed]
- repo: https://github.com/Yelp/detect-secrets
rev: v1.5.0
hooks:
- id: detect-secrets
args:
- --baseline
- .secrets.baseline
- --exclude-files
- .yarn/
- --exclude-files
- cassettes/
- --exclude-files
- test_json/
- --exclude-files
- ".*_test.py"
- --exclude-files
- "test_.*.py"
- --exclude-files
- poetry.lock
- --exclude-files
- yarn.lock
- --exclude-files
- ".*/generated/"
- --exclude-files
- "config/keycloak/tls/*"
- --exclude-files
- "config/keycloak/realms/ol-local-realm.json"
additional_dependencies: ["gibberish-detector"]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.15.1"
hooks:
- id: ruff-format
- id: ruff
args: [--extend-ignore=D1, --fix]
- repo: local
hooks:
- id: eslint
name: eslint
description: "Lint JS/TS files and apply automatic fixes"
entry: npx eslint --config frontends/.eslintrc.js --fix
language: node
types_or: [javascript, jsx, ts, tsx]
args: []
exclude: "(node_modules/|.yarn/|load_testing/)"
require_serial: false
additional_dependencies:
- eslint@8
- id: style-lint
name: style-lint
description: "Lint CSS"
entry: npx stylelint --allow-empty-input --fix
language: node
types: [scss, jsx, ts, tsx]
args: []
exclude: node_modules/
require_serial: false
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.11.0.1
hooks:
- id: shellcheck
args: ["--severity=warning"]
- repo: local
hooks:
- id: drf-serializer-orm-check
name: DRF Serializer ORM Check
description: "Detects Django ORM queries inside DRF serializer methods (N+1 risk)"
entry: drf-lint
args: [--baseline, drf_lint_baseline.json]
language: python
files: 'serializers\.py$'
additional_dependencies:
- mitol-drf-lint