forked from Gitlink/gitlink-cli
111 lines
3.0 KiB
Markdown
111 lines
3.0 KiB
Markdown
# 变更分类规则
|
|
|
|
> **前置条件:** 先阅读 [`../../gitlink-shared/SKILL.md`](../../gitlink-shared/SKILL.md) 了解认证、全局参数和安全规则。
|
|
|
|
将收集到的 commits、PRs 和 Issues 按类型归类,为生成结构化 Release Notes 做准备。
|
|
|
|
## 分类维度
|
|
|
|
变更按以下维度分类:
|
|
|
|
| 类型 | 图标 | 标题 |
|
|
|------|------|------|
|
|
| 新功能 | ✨ | 新功能 |
|
|
| Bug 修复 | 🐛 | Bug 修复 |
|
|
| 功能改进 | 🔧 | 功能改进 |
|
|
| 破坏性变更 | ⚠️ | 破坏性变更 |
|
|
| 文档 | 📝 | 文档 |
|
|
| 安全修复 | 🔒 | 安全修复 |
|
|
|
|
## 分类依据
|
|
|
|
### 按 Issue 标签分类(最可靠)
|
|
|
|
从 `issue +list` 返回的 `issue_tags` 字段匹配:
|
|
|
|
| Issue 标签 | 对应类型 |
|
|
|------------|----------|
|
|
| `feature`, `enhancement` | 新功能 |
|
|
| `bug`, `fix` | Bug 修复 |
|
|
| `improvement`, `optimize` | 功能改进 |
|
|
| `breaking`, `major` | 破坏性变更 |
|
|
| `docs`, `documentation` | 文档 |
|
|
| `security`, `vulnerability` | 安全修复 |
|
|
|
|
### 按 Commit 关键词分类(辅助)
|
|
|
|
从 `compare` API 返回的 `commit.message` 第一行匹配:
|
|
|
|
| 关键词 | 对应类型 |
|
|
|--------|----------|
|
|
| `feat:`, `add`, `新增` | 新功能 |
|
|
| `fix:`, `bugfix`, `修复` | Bug 修复 |
|
|
| `improve:`, `optimize:`, `refactor:`, `优化`, `重构` | 功能改进 |
|
|
| `BREAKING`, `breaking:`, `!` | 破坏性变更 |
|
|
| `docs:`, `doc` | 文档 |
|
|
| `security:`, `安全` | 安全修复 |
|
|
|
|
### 按 PR 标题分类(辅助)
|
|
|
|
PR 标题通常遵循 Conventional Commits 格式,按前缀匹配:
|
|
|
|
| PR 标题前缀 | 对应类型 |
|
|
|-------------|----------|
|
|
| `feat:` / `feature:` | 新功能 |
|
|
| `fix:` | Bug 修复 |
|
|
| `refactor:` / `perf:` | 功能改进 |
|
|
| `docs:` | 文档 |
|
|
|
|
## 分类优先级
|
|
|
|
1. **Issue 标签**(最准确,优先采用)
|
|
2. **PR 标题前缀**(次之)
|
|
3. **Commit 关键词**(兜底)
|
|
|
|
对于同一个变更,如果 Issue 标签和 commit 关键词都在,以 Issue 标签为准。
|
|
|
|
## 去重
|
|
|
|
以下情况会产生重复条目,需去重:
|
|
|
|
- PR 和 Issue 关联同一个变更 → 合并为一条:`变更描述 (#PR编号, #Issue编号)`
|
|
- 同一变更的多个 commit → 只保留摘要最清晰的一条
|
|
- PR 标题与关联 Issue 主题高度相似 → 合并,优先使用 Issue 的 subject
|
|
|
|
## 输出格式
|
|
|
|
分类完成后,整理为结构化数据供模板填充:
|
|
|
|
```
|
|
新功能:
|
|
- 支持批量关闭 Issue (#123)
|
|
- 新增 Wiki 管理命令 (#130)
|
|
|
|
Bug 修复:
|
|
- 修复 Windows 登录 token 存储失败 (#118)
|
|
|
|
功能改进:
|
|
- 优化 API 请求性能 (#125)
|
|
|
|
破坏性变更:
|
|
- 重构认证模块接口(不向下兼容)(#140)
|
|
|
|
文档:
|
|
- 补充分支映射说明 (#115)
|
|
```
|
|
|
|
## 贡献者收集
|
|
|
|
从 commit 和 PR 数据中提取贡献者列表:
|
|
|
|
- Commit: `author.name` 或 `author.login`
|
|
- PR: `author.login`
|
|
|
|
去重后生成贡献者名单,写入 Release Notes 末尾。
|
|
|
|
## References
|
|
|
|
- [collect-data](collect-data.md) — 数据收集步骤
|
|
- [generate-and-publish](generate-and-publish.md) — 生成 Notes 并发布
|
|
- [SKILL.md](../SKILL.md) — 分类规则速查表
|