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

如何配置semantic-release以汇总PR中所有提交信息至版本发布说明

实现semantic-release展示PR所有提交的发布说明

当然可以实现这个需求!下面分两种场景给你详细说明:

一、基于当前的压缩合并(Squash Merge)流程

因为压缩合并后master分支只会保留一条合并提交,semantic-release默认只会分析这条提交。要让它获取PR中的所有原始提交,需要通过以下步骤配置:

  1. 确保CI环境能获取PR信息
    在你的CI配置(比如GitHub Actions、GitLab CI)中,要拿到触发发布的PR编号。比如GitHub Actions里,PR合并时github.event.pull_request.number会带PR编号;GitLab CI可以用CI_MERGE_REQUEST_IID变量。

  2. 拉取PR的所有原始提交
    在semantic-release执行前,加一个步骤用git命令获取该PR的所有提交记录:

    # 假设PR编号存在$PR_NUMBER变量中
    git fetch origin pull/$PR_NUMBER/head
    # 列出该PR分支相对于master的所有提交哈希
    COMMITS=$(git log --pretty=format:"%H" master..origin/pull/$PR_NUMBER/head)
    
  3. 配置semantic-release基于这些提交生成说明
    修改你的semantic-release配置文件(比如.releaserc.json),调整提交分析和说明生成的逻辑:

    {
      "plugins": [
        ["@semantic-release/commit-analyzer", {
          "preset": "angular",
          "parserOpts": {
            "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
          }
        }],
        ["@semantic-release/release-notes-generator", {
          "preset": "angular",
          "parserOpts": {
            "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES"]
          },
          "writerOpts": {
            "commitsSort": ["subject", "scope"]
          }
        }]
        // 保留你原本使用的其他插件(如git、npm等)
      ]
    }
    

    同时在semantic-release的执行命令中,通过--commits参数传入之前获取的提交列表,让工具基于这些原始提交生成分类汇总的发布说明。

二、调整工作流程(推荐方案)

如果允许修改现有流程,**放弃压缩合并,改用普通合并(Create a merge commit)或变基合并(Rebase and merge)**会更简单:

  • 普通合并:PR合并后,master分支会保留PR里的所有原始提交,同时新增一条合并提交。semantic-release默认会自动分析所有这些提交,按照Angular规范分类生成你想要的汇总式发布说明。
  • 变基合并:PR的提交会被线性合并到master分支,同样保留所有原始提交,semantic-release无需额外配置就能直接生成完整的变更说明。

这种方式只需要在Git仓库的合并设置里,把默认合并方式改成普通合并或变基合并即可,完全不用额外写脚本或调整插件配置。

效果验证

无论采用哪种方式,配置完成后下次发布的Release Notes都会符合你的预期:

1.17.0 (2021-06-29)
Features:
Adding feature 1, closes #252 #276
Adding feature 2, closes #177
Adding feature 3
Bug fixes:
Fixes #188
Resolves #192

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:37:33