Install hooks by copying into .git/hooks instead of core.hooksPath

Linking core.hooksPath to the tracked, sandbox-writable .githooks/ let a
sandboxed command rewrite a hook that git commit/push then run unsandboxed.
Copies in .git/hooks can't be changed from the sandbox. This also keeps
existing .git/hooks scripts working and lets npm install succeed outside a
git checkout. pre-merge-commit now names itself in errors; hook tests clean
up, ignore GIT_* env and cover the installer; docs state what each layer
does and doesn't stop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
christianandClaude Opus 5.5 committed 2026-10-21 00:44:30 +02:00
1 parent 8b08c7b27a
commit 24541f0602
7 files changed
+72 -20

No files matched your search

+1 -1
View File
@@ -1,2 +1,2 @@
#!/bin/sh
exec "$(dirname "$0")/pre-commit"
exec sh "$(dirname "$0")/pre-commit" pre-merge-commit