aboutsummaryrefslogtreecommitdiff
path: root/hooks
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-03-29 16:27:59 -0500
committerCraig Jennings <c@cjennings.net>2026-03-29 16:27:59 -0500
commitf894e07ea3c39620e37245f1e1bf829e853bbe5b (patch)
tree1ddfd779e37b53e397ec67e3796ad7933eeb7d21 /hooks
parent861bab677b4632e9d30e6318bc2a35c36ee77105 (diff)
downloadrulesets-f894e07ea3c39620e37245f1e1bf829e853bbe5b.tar.gz
rulesets-f894e07ea3c39620e37245f1e1bf829e853bbe5b.zip
Add hooks settings.json with install-hooks target
Hooks provide: - PostEditTool: ruff format/check on Python, terraform fmt on .tf - PreCommit: block commits containing hardcoded secrets (AWS keys, API tokens, passwords) Install per-project with: make install-hooks TARGET=/path/to/project Won't overwrite existing settings.json — shows diff command instead. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'hooks')
-rw-r--r--hooks/settings.json19
1 files changed, 19 insertions, 0 deletions
diff --git a/hooks/settings.json b/hooks/settings.json
new file mode 100644
index 0000000..50fdf09
--- /dev/null
+++ b/hooks/settings.json
@@ -0,0 +1,19 @@
+{
+ "hooks": {
+ "PostEditTool": [
+ {
+ "matcher": "**/*.py",
+ "command": "ruff format $FILE && ruff check --fix $FILE"
+ },
+ {
+ "matcher": "**/*.tf",
+ "command": "terraform fmt $FILE"
+ }
+ ],
+ "PreCommit": [
+ {
+ "command": "! grep -rn --include='*.py' --include='*.ts' --include='*.tsx' --include='*.tf' --include='*.yml' --include='*.yaml' -E '(AKIA[0-9A-Z]{16}|sk-[a-zA-Z0-9]{20,}|password\\s*=\\s*[\"'\\'']{1}[^\"'\\'']+[\"'\\'']{1})' . --exclude-dir=node_modules --exclude-dir=.git --exclude-dir=gathered"
+ }
+ ]
+ }
+}