You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

semantic release配置:CHANGELOG包含commit subject/body/footer

Semantic Release 配置CHANGELOG展示Commit完整正文、脚注的实现方法

默认配置下,semantic release 依赖的@semantic-release/release-notes-generator插件只会提取commit message的主题(subject)写入更新日志,通过自定义模板配置可以实现正文(body)、脚注(footer)的完整展示,具体操作如下:

核心配置逻辑

负责生成更新日志内容的是@semantic-release/release-notes-generator插件,@semantic-release/changelog仅负责把生成好的内容写入CHANGELOG.md文件,所有内容渲染规则都要配置在前者的参数中,配错插件位置是最常见的配置失效原因。

可直接参考如下可用配置,写入你的.releaserc、release.config.js等配置文件:

{
  "plugins": [
    "@semantic-release/commit-analyzer",
    ["@semantic-release/release-notes-generator", {
      "preset": "conventionalcommits",
      "presetConfig": {
        "commitTemplate": "* {{header}}\n{{#if body}}\n\n{{body}}\n{{/if}}{{#if footer}}\n\n{{footer}}\n{{/if}}"
      }
    }],
    ["@semantic-release/changelog", {
      "changelogFile": "CHANGELOG.md"
    }],
    // 保留你原有其他插件配置即可,比如npm发布、git提交等
    "@semantic-release/npm",
    "@semantic-release/git"
  ]
}

配置不生效常见排查点

  • 检查commit格式是否符合Conventional Commits规范:正文、脚注必须和主题之间保留空行,否则解析器会把后续内容判定为主题的一部分,不会拆分到body、footer字段,自然无法正常渲染。标准格式参考:

fix: 修复文件上传大小限制失效问题

调整了服务端校验逻辑,补充了100M以上文件的分片上传支持

Closes #456

  • 如果你使用了第三方自定义的changelog预设,部分预设会硬编码仅渲染commit主题的模板,这种情况需要像上面示例一样显式传入commitTemplate参数,覆盖预设自带的渲染规则。
  • 测试配置时注意:semantic release只会处理上次版本发布之后的新commit,历史版本已经生成的changelog内容不会被重新渲染,验证配置可以用dry-run模式查看实时生成的更新日志内容,不需要实际发版。
  • 如果你使用的是非官方的第三方日志生成插件,配置逻辑一致,找到对应插件控制单条commit渲染的模板配置项,把body、footer字段加入渲染规则即可。

内容的提问来源于stack exchange,提问作者Peter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:15:45