gitlink-cli/skills/gitlink-changelog/references/classify-rules.md

3.0 KiB

变更分类规则

前置条件: 先阅读 ../../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.nameauthor.login
  • PR: author.login

去重后生成贡献者名单,写入 Release Notes 末尾。

References