1
0

chore: 新增 backend-code-lint 变更计划,更新 .gitignore

This commit is contained in:
2026-04-24 00:19:56 +08:00
parent 1d7e839b49
commit 4c78ab6cc8
10 changed files with 539 additions and 0 deletions

View File

@@ -0,0 +1,54 @@
# Pre-commit Hook
## Purpose
定义基于 lefthook 的 pre-commit hook 配置,在 git commit 时自动运行 lint 检查,拦截违规代码提交。
## ADDED Requirements
### Requirement: lefthook 配置
系统 SHALL 通过 `lefthook.yml` 配置 pre-commit hook。
#### Scenario: 配置文件位置
- **WHEN** 配置 lefthook
- **THEN** 配置文件 SHALL 位于项目根目录 `lefthook.yml`
#### Scenario: pre-commit hook 安装
- **WHEN** 开发者首次克隆项目
- **THEN** 运行 `lefthook install` SHALL 安装 git hooks
- **THEN** hooks SHALL 自动注册到 .git/hooks/
### Requirement: Go 文件变更触发 lint
系统 SHALL 在 Go 文件变更时自动运行 golangci-lint。
#### Scenario: 检测到 Go 文件变更
- **WHEN** git commit 中包含 backend/**/*.go 文件的变更
- **THEN** SHALL 自动运行 golangci-lint
#### Scenario: 增量检查
- **WHEN** 运行 lint
- **THEN** SHALL 只检查 staged 文件(使用 --new-from-rev HEAD
- **THEN** SHALL NOT 检查整个代码库
#### Scenario: lint 通过
- **WHEN** golangci-lint 检查通过
- **THEN** commit SHALL 正常完成
#### Scenario: lint 失败
- **WHEN** golangci-lint 检查发现违规
- **THEN** commit SHALL 被拒绝
- **THEN** SHALL 显示具体的违规信息和修复建议
#### Scenario: 无 Go 文件变更
- **WHEN** git commit 不包含 Go 文件变更
- **THEN** SHALL NOT 运行 golangci-lint
- **THEN** commit SHALL 正常完成