更新变更日志Skill update-changelog

这个技能用于自动更新软件仓库的变更日志,基于git提交历史生成结构化的变更记录,帮助用户跟踪版本变化和发布信息。关键词:变更日志,git提交,版本控制,DevOps,软件开发,自动化,版本管理。

DevOps 0 次安装 0 次浏览 更新于 3/24/2026

name: update-changelog description: “更新变更日志前阅读此技能”

更新仓库的变更日志,包含当前版本(main)与上一版本之间尚未纳入的更改。如果CHANGELOG.md不存在,则使用CHANGELOG

分步流程

1. 确定基线版本

如果未提供基线版本,使用最近的git标签。您可以使用git describe --tags --abbrev=0来查找它。

2. 查找git提交

使用以下命令收集提交信息:

# 获取基线版本(如果未提供)
git describe --tags --abbrev=0

# 获取自基线版本以来的所有提交
git log <基线版本>..HEAD

3. 更新变更日志

读取现有的变更日志文件(CHANGELOG.md,如果缺少则使用CHANGELOG),检查是否有尚未纳入的更改,然后添加它们。始终只将它们添加到"未发布"部分。如果还没有该部分,请按现有变更日志的风格在顶部添加(例如,## 未发布 对比 ## [未发布])。

编写变更日志的基本规则

内容指南

  • 关注影响用户的显著更改(功能、修复、破坏性变更)
  • 在可用时提及拉取请求(#编号),但不要原始提交哈希
  • 忽略不显著的更改(拼写错误修复、内部重构、次要文档更新)
  • 适当时将相关更改分组在一起
  • 按重要性顺序排列条目:先破坏性变更,然后功能,最后修复

风格指南

  • 使用有效的Markdown语法
  • 每个条目以过去时动词或描述性短语开头
  • 保持条目简洁但足够描述性以理解更改
  • 使用项目符号(*-)表示单个更改
  • 用反引号格式化代码引用(例如,`foo.cleanup`

示例格式

## 2.13.0

* 向 `|sort` 过滤器添加了多键支持。  #827
* 修复 `not undefined` 与严格未定义行为的问题。  #838
* 添加了对Python自由线程的支持。  #841

## 2.12.0

* Python中的项目或属性查找将不再吞没所有错误。  #814
* 添加了 `|zip` 过滤器。  #818
* 修复 `|wordwrap` 过滤器的 `break_on_hyphens` 问题。  #823
* 优先处理 `unknown_method_callback` 的错误消息。  #824
* 在自动转义中忽略 `.jinja` 和 `.jinja2` 扩展名。  #832

好与坏的示例

好的:

  • 修复了TypeScript SDK导致CJS配置错误的问题。
  • 添加了对检查点写入中声明超时延长的支持。
  • 改进了任务声明过期时的错误报告。

坏的:

  • 修复错误(太模糊)
  • 更新依赖项(不显著,除非修复安全漏洞)
  • 重构内部代码结构(内部更改,非用户相关)
  • 修复注释中的拼写错误(不显著)

注意事项

  • 如果当前变更日志已有包含内容的"未发布"部分,请附加到它而不是替换它
  • 保留现有变更日志的风格和格式(标题、项目符号样式、排序和间距)
  • 如果仓库使用不同的默认分支名称,将其视为"当前版本"而不是main
  • 当不确定更改是否显著时,倾向于包含它