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

Azure DevOps仓库实现语义化版本自动升级及变更日志生成求助

基于Azure DevOps实现语义化版本+自动版本升级+变更日志方案

1. 锁死main分支的提交入口

  • 进入Azure DevOps仓库的「设置」→「分支策略」,找到main分支:
    • 勾选「要求拉取请求才能合并」,禁止任何人直接提交到main分支
    • 设置合并方式为压缩合并,确保所有分支提交被压缩为单个提交
    • 在「合并选项」中勾选「使用拉取请求标题作为合并提交的标题」,彻底解决Azure默认生成的<Merged PR #PR_NUMBER>不符合规范的问题

2. 强制PR标题符合Conventional Commits规范

  • 配置PR验证流水线,用脚本校验PR标题格式:
    • 示例PowerShell脚本(直接放到流水线任务中即可):
      $prTitle = "$(System.PullRequest.Title)"
      $pattern = "^(feat|fix|docs|style|refactor|perf|test|chore)\: .+"
      if ($prTitle -notmatch $pattern) {
          Write-Error "PR标题不符合Conventional Commits规范,格式应为:feat: 新增XX功能 / fix: 修复XX问题"
          exit 1
      }
      
    • 将这个流水线设置为PR的必需检查项,只有标题符合规范才能进入合并流程

3. 自动版本升级与变更日志生成

方案A:使用Azure DevOps市场扩展(快速实现)

  • 安装「Semantic Versioning」扩展,在合并到main分支的流水线中添加以下任务:
    1. 运行「Semantic Versioning」任务,基于main分支的规范提交记录自动计算新版本(根据feat/fix等类型升级minor/patch版本)
    2. 运行「Conventional Changelog」任务,自动生成或更新CHANGELOG.md文件
    3. 添加「Git Commit」任务,将新版本号文件(比如VERSION)和CHANGELOG.md提交回main分支(需确保流水线服务账号有仓库写入权限)

方案B:自定义脚本实现(灵活可控)

  • 在流水线中添加Node.js脚本任务:
    1. 安装依赖:
    npm install conventional-changelog-cli semver -g
    
    1. 生成变更日志:
    conventional-changelog -p angular -i CHANGELOG.md -s -r 0
    
    1. 计算新版本号(示例逻辑,可按需调整):
    current_version=$(cat VERSION)
    last_commit_msg=$(git log -1 --pretty=%B)
    if [[ $last_commit_msg == "feat:"* ]]; then
        new_version=$(semver $current_version -i minor)
    elif [[ $last_commit_msg == "fix:"* ]]; then
        new_version=$(semver $current_version -i patch)
    else
        new_version=$current_version
    fi
    echo $new_version > VERSION
    
    1. 提交变更:
    git config user.name "Azure DevOps Pipeline"
    git config user.email "devops@example.com"
    git add VERSION CHANGELOG.md
    git commit -m "chore: 升级版本到$new_version"
    git push origin main
    

关键说明

  • 功能分支的旧提交无需修改,压缩合并后main分支只保留PR标题对应的规范提交,不会影响版本计算和变更日志
  • 无需在本地配置commitizen或钩子,所有管控都在Azure DevOps端完成,降低团队协作成本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 07:17:46