hookehuyr

chore(husky): 修复 git hooks 问题

- 移除废弃的 shebang 和 husky.sh 导入
- 修复 pre-commit hook 中的 ESLint 文件列表传递问题
- 移除所有交互式确认,改为提示信息
- 添加 husky 和 chore 到允许的 commit scope 列表
- 优化 hooks 以兼容 husky v10

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 -#!/usr/bin/env sh
2 -. "$(dirname -- "$0")/_/husky.sh"
3 -
4 # 颜色定义 1 # 颜色定义
5 RED='\033[0;31m' 2 RED='\033[0;31m'
6 GREEN='\033[0;32m' 3 GREEN='\033[0;32m'
...@@ -24,7 +21,7 @@ echo "" ...@@ -24,7 +21,7 @@ echo ""
24 TYPES="feat|fix|docs|style|refactor|perf|test|chore|revert" 21 TYPES="feat|fix|docs|style|refactor|perf|test|chore|revert"
25 22
26 # 允许的范围(常见模块) 23 # 允许的范围(常见模块)
27 -SCOPES="material|product|user|auth|api|ui|config|build|ci|release" 24 +SCOPES="material|product|user|auth|api|ui|config|build|ci|release|husky|chore"
28 25
29 # 正则表达式:type(scope): subject 26 # 正则表达式:type(scope): subject
30 # 示例:feat(material): 添加文档列表分类导航 27 # 示例:feat(material): 添加文档列表分类导航
......
1 -#!/usr/bin/env sh
2 -. "$(dirname -- "$0")/_/husky.sh"
3 -
4 # 颜色定义 1 # 颜色定义
5 GREEN='\033[0;32m' 2 GREEN='\033[0;32m'
6 BLUE='\033[0;34m' 3 BLUE='\033[0;34m'
......
1 -#!/usr/bin/env sh
2 -. "$(dirname -- "$0")/_/husky.sh"
3 -
4 # 颜色定义 1 # 颜色定义
5 RED='\033[0;31m' 2 RED='\033[0;31m'
6 GREEN='\033[0;32m' 3 GREEN='\033[0;32m'
...@@ -28,10 +25,10 @@ else ...@@ -28,10 +25,10 @@ else
28 echo " - $file" 25 echo " - $file"
29 done 26 done
30 27
31 - # 运行 ESLint 28 + # 运行 ESLint(检查整个 src 目录,避免文件列表传递问题)
32 echo "" 29 echo ""
33 echo " 🔍 运行 ESLint..." 30 echo " 🔍 运行 ESLint..."
34 - if ! pnpm lint --quiet "$STAGED_FILES"; then 31 + if ! pnpm lint --quiet; then
35 echo "" 32 echo ""
36 echo " ${RED}❌ ESLint 检查失败${NC}" 33 echo " ${RED}❌ ESLint 检查失败${NC}"
37 echo " ${YELLOW}请运行 'pnpm lint' 查看详细错误并修复${NC}" 34 echo " ${YELLOW}请运行 'pnpm lint' 查看详细错误并修复${NC}"
...@@ -56,12 +53,6 @@ if [ -n "$STAGED_FILES" ]; then ...@@ -56,12 +53,6 @@ if [ -n "$STAGED_FILES" ]; then
56 echo " ${YELLOW}⚠️ 发现 console.log/debug/info 语句${NC}" 53 echo " ${YELLOW}⚠️ 发现 console.log/debug/info 语句${NC}"
57 echo " ${YELLOW}建议:生产代码应移除调试语句${NC}" 54 echo " ${YELLOW}建议:生产代码应移除调试语句${NC}"
58 echo "" 55 echo ""
59 - echo " 是否继续提交?(y/n)"
60 - read -r response
61 - if [ ! "$response" = "y" ]; then
62 - echo " ${RED}❌ 已取消提交${NC}"
63 - exit 1
64 - fi
65 fi 56 fi
66 57
67 # 检查 debugger 58 # 检查 debugger
...@@ -119,18 +110,11 @@ if [ "$NEEDS_REVIEW" = true ]; then ...@@ -119,18 +110,11 @@ if [ "$NEEDS_REVIEW" = true ]; then
119 echo " ${YELLOW}原因:${NC}" 110 echo " ${YELLOW}原因:${NC}"
120 echo "$REVIEW_REASON" 111 echo "$REVIEW_REASON"
121 echo "" 112 echo ""
122 - echo " ${BLUE}在 VSCode 中让 Claude Code 进行审查:${NC}" 113 + echo " ${BLUE}建议在 VSCode 中让 Claude Code 进行审查:${NC}"
123 echo " 1. 保存所有文件" 114 echo " 1. 保存所有文件"
124 echo " 2. 对 Claude Code 说:'请审查我的代码改动'" 115 echo " 2. 对 Claude Code 说:'请审查我的代码改动'"
125 echo " 3. 根据审查报告修复 P0 问题" 116 echo " 3. 根据审查报告修复 P0 问题"
126 - echo " 4. 重新提交"
127 echo "" 117 echo ""
128 - echo " ${YELLOW}是否跳过审查继续提交?(y/n)${NC}"
129 - read -r response
130 - if [ ! "$response" = "y" ]; then
131 - echo " ${RED}❌ 已取消提交,请先进行代码审查${NC}"
132 - exit 1
133 - fi
134 fi 118 fi
135 119
136 echo " ${GREEN}✅ 改动规模检查通过${NC}" 120 echo " ${GREEN}✅ 改动规模检查通过${NC}"
...@@ -163,12 +147,6 @@ if [ -z "$CHANGELOG_MODIFIED" ]; then ...@@ -163,12 +147,6 @@ if [ -z "$CHANGELOG_MODIFIED" ]; then
163 echo " - **测试状态**: 已通过" 147 echo " - **测试状态**: 已通过"
164 echo " - **备注**: 其他说明" 148 echo " - **备注**: 其他说明"
165 echo "" 149 echo ""
166 - echo " ${YELLOW}是否继续提交(不更新 CHANGELOG)?(y/n)${NC}"
167 - read -r response
168 - if [ ! "$response" = "y" ]; then
169 - echo " ${RED}❌ 已取消提交,请先更新 CHANGELOG.md${NC}"
170 - exit 1
171 - fi
172 else 150 else
173 echo " ${GREEN}✅ CHANGELOG.md 已更新${NC}" 151 echo " ${GREEN}✅ CHANGELOG.md 已更新${NC}"
174 fi 152 fi
......
1 -#!/usr/bin/env sh
2 -. "$(dirname -- "$0")/_/husky.sh"
3 -
4 # 颜色定义 1 # 颜色定义
5 RED='\033[0;31m' 2 RED='\033[0;31m'
6 GREEN='\033[0;32m' 3 GREEN='\033[0;32m'
...@@ -16,17 +13,11 @@ echo "" ...@@ -16,17 +13,11 @@ echo ""
16 CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) 13 CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
17 REMOTE_BRANCH=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "") 14 REMOTE_BRANCH=$(git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null || echo "")
18 15
19 -# 如果是新分支,提示用户 16 +# 如果是新分支,自动继续
20 if [ -z "$REMOTE_BRANCH" ]; then 17 if [ -z "$REMOTE_BRANCH" ]; then
21 echo " ${YELLOW}⚠️ 检测到新分支: $CURRENT_BRANCH${NC}" 18 echo " ${YELLOW}⚠️ 检测到新分支: $CURRENT_BRANCH${NC}"
22 echo " ${YELLOW}这将是首次推送到远程${NC}" 19 echo " ${YELLOW}这将是首次推送到远程${NC}"
23 echo "" 20 echo ""
24 - echo " ${BLUE}是否继续?(y/n)${NC}"
25 - read -r response
26 - if [ ! "$response" = "y" ]; then
27 - echo " ${RED}❌ 已取消 Push${NC}"
28 - exit 1
29 - fi
30 fi 21 fi
31 22
32 # ============================================ 23 # ============================================
...@@ -44,12 +35,6 @@ if [ "$UNPUSHED_COMMITS" -gt 5 ]; then ...@@ -44,12 +35,6 @@ if [ "$UNPUSHED_COMMITS" -gt 5 ]; then
44 echo " ${BLUE}最近的提交:${NC}" 35 echo " ${BLUE}最近的提交:${NC}"
45 git log --oneline -5 36 git log --oneline -5
46 echo "" 37 echo ""
47 - echo " ${YELLOW}是否继续推送?(y/n)${NC}"
48 - read -r response
49 - if [ ! "$response" = "y" ]; then
50 - echo " ${RED}❌ 已取消 Push${NC}"
51 - exit 1
52 - fi
53 fi 38 fi
54 39
55 echo " ${GREEN}✅ 提交历史检查通过${NC}" 40 echo " ${GREEN}✅ 提交历史检查通过${NC}"
...@@ -71,14 +56,6 @@ echo "" ...@@ -71,14 +56,6 @@ echo ""
71 echo " ${BLUE}即将推送的提交:${NC}" 56 echo " ${BLUE}即将推送的提交:${NC}"
72 git log --oneline @{u}..HEAD 2>/dev/null || git log --oneline -3 57 git log --oneline @{u}..HEAD 2>/dev/null || git log --oneline -3
73 58
74 -echo ""
75 -echo " ${YELLOW}是否确认推送?(y/n)${NC}"
76 -read -r response
77 -if [ ! "$response" = "y" ]; then
78 - echo " ${RED}❌ 已取消 Push${NC}"
79 - exit 1
80 -fi
81 -
82 # ============================================ 59 # ============================================
83 # 所有检查通过 60 # 所有检查通过
84 # ============================================ 61 # ============================================
......