File tree Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Expand file tree Collapse file tree 1 file changed +52
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /bin/sh
2
+
3
+ # Husky commit-msg hook to prevent Claude attribution in commit messages
4
+ # This is a shell script version that works without Node.js
5
+
6
+ if [ -z " $1 " ]; then
7
+ echo " ❌ Error: No commit message file provided"
8
+ exit 1
9
+ fi
10
+
11
+ COMMIT_MSG_FILE=" $1 "
12
+
13
+ if [ ! -f " $COMMIT_MSG_FILE " ]; then
14
+ echo " ❌ Error: Commit message file not found: $COMMIT_MSG_FILE "
15
+ exit 1
16
+ fi
17
+
18
+ # Read the commit message
19
+ COMMIT_MSG=$( cat " $COMMIT_MSG_FILE " )
20
+
21
+ # Define patterns to detect Claude attribution (using grep -E for extended regex)
22
+ CLAUDE_PATTERNS=" 🤖 Generated with.*Claude|Generated with.*Claude Code|Co-Authored-By: Claude|claude\.com/claude-code|@anthropic\.com|Claude Code.*anthropic|Generated with \[Claude Code\]|\[Claude Code\]\(https://claude\.com/claude-code\)"
23
+
24
+ # Colors for console output
25
+ RED=' \033[31m'
26
+ YELLOW=' \033[33m'
27
+ GREEN=' \033[32m'
28
+ RESET=' \033[0m'
29
+
30
+ # Check for Claude attribution patterns
31
+ if echo " $COMMIT_MSG " | grep -iE " $CLAUDE_PATTERNS " > /dev/null 2>&1 ; then
32
+ FOUND_ATTRIBUTION=true
33
+ MATCH=$( echo " $COMMIT_MSG " | grep -iE " $CLAUDE_PATTERNS " | head -1)
34
+ else
35
+ FOUND_ATTRIBUTION=false
36
+ fi
37
+
38
+ if [ " $FOUND_ATTRIBUTION " = true ]; then
39
+ echo " ${RED} ❌ COMMIT REJECTED${RESET} "
40
+ echo " ${YELLOW} ⚠️ Commit message contains Claude attribution.${RESET} "
41
+ echo " "
42
+ echo " Found Claude attribution pattern:"
43
+ echo " • Match: \" $MATCH \" "
44
+ echo " "
45
+ echo " Please edit your commit message to remove Claude attribution."
46
+ echo " Use: git commit --amend -m \" your new message\" "
47
+ echo " "
48
+ exit 1
49
+ fi
50
+
51
+ echo " ${GREEN} ✅ Commit message validated - no Claude attribution detected${RESET} "
52
+ exit 0
You can’t perform that action at this time.
0 commit comments