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

semantic-release触发的Git发布缺失变更描述问题求助

semantic-release自动生成的Git发布缺失发布说明与变更描述

我在应用中部署了semantic-release及相关版本控制插件,用来简化版本管理、标签创建与发布流程。但自动生成的Git发布始终缺失发布说明与变更描述,尽管我多次调整releaserc.yml配置问题仍未解决,自动发布说明对我们的自动化流程至关重要,希望能排查解决。

我的releaserc.yml配置如下:

branches:
  - '+([0-9])?(.{+([0-9]),x}).x'
  - main
  - master
  - name: alpha
    prerelease: true
plugins:
  - "@semantic-release/commit-analyzer"
  - "@semantic-release/release-notes-generator"
  - - "@semantic-release/exec"
    - prepareCmd: |
        mvn --batch-mode --no-transfer-progress versions:set -DgenerateBackupPoms=false -DnewVersion=${nextRelease.version} -s settings.xml\
          && npm version ${nextRelease.version} --allow-same-version --force --workspaces\
      publishCmd: |
        mvn --batch-mode --no-transfer-progress -U clean deploy -s settings.xml \
          && mvn --batch-mode --no-transfer-progress release:update-versions -s settings.xml \
          && git ls-files --modified pom.xml **/pom.xml | xargs git add \
          && git commit -m "[skip ci] prepare for next development iteration" \
          && git push
      verifyReleaseCmd: |
        echo ${nextRelease.version} > .VERSION
  - - "@semantic-release/git"
    - assets:
        - "pom.xml"
        - "**/pom.xml"
        - "package.json"
        - "package-lock.json"
        - "js/package.json"
        - "js-internal/package.json"
  - "@semantic-release/github"
analyzeCommits:
  - path: "@semantic-release/commit-analyzer"
    releaseRules:
      - type: "breaking"
        release: "major"
      - type: "feat"
        release: "minor"
      - type: "update"
        release: "minor"
      - type: "fix"
        release: "patch"
      - type: "docs"
        release: "patch"
      - type: "style"
        release: "patch"
      - type: "refactor"
        release: "patch"
      - type: "perf"
        release: "patch"
      - type: "test"
        release: "patch"
      - type: "chore"
        release: "patch"
      - type: "revert"
        release: "patch"

问题根源与修复步骤

  1. 自定义commit类型未被release-notes-generator识别
    你配置中定义了update这个自定义commit类型,并通过commit-analyzer的规则触发minor版本升级,但@semantic-release/release-notes-generator默认的约定式提交预设不识别该类型,导致对应commit无法被纳入发布说明。需要给该插件添加自定义类型映射,将所有用到的commit类型对应到发布说明的章节中:

    plugins:
      - "@semantic-release/commit-analyzer"
      - - "@semantic-release/release-notes-generator"
        - preset: conventionalcommits
          presetConfig:
            types:
              - type: feat
                section: "Features"
              - type: update
                section: "Updates"
                hidden: false
              - type: fix
                section: "Bug Fixes"
              - type: docs
                section: "Documentation"
              - type: style
                section: "Styles"
              - type: refactor
                section: "Code Refactoring"
              - type: perf
                section: "Performance Improvements"
              - type: test
                section: "Tests"
              - type: chore
                section: "Chores"
              - type: revert
                section: "Reverts"
              - type: breaking
                section: "Breaking Changes"
    
  2. 确认commit格式符合规范
    所有commit message必须遵循<type>: <description>的格式(比如update: 升级依赖版本),否则commit-analyzer无法正确分类commit,release-notes-generator也无法生成对应变更描述。

  3. 简化analyzeCommits配置(可选)
    你当前的analyzeCommits配置可以内嵌到@semantic-release/commit-analyzer的插件配置中,让结构更清晰:

    plugins:
      - - "@semantic-release/commit-analyzer"
        - releaseRules:
            - type: "breaking"
              release: "major"
            - type: "feat"
              release: "minor"
            - type: "update"
              release: "minor"
            - type: "fix"
              release: "patch"
            - type: "docs"
              release: "patch"
            - type: "style"
              release: "patch"
            - type: "refactor"
              release: "patch"
            - type: "perf"
              release: "patch"
            - type: "test"
              release: "patch"
            - type: "chore"
              release: "patch"
            - type: "revert"
              release: "patch"
    
  4. 测试配置有效性
    使用dry-run模式验证配置是否能生成正确的发布说明:

    npx semantic-release --dry-run
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:25:33