如何自动化Azure DevOps待办事项的整理与排序?
解决Azure DevOps待办事项自动化排序并保留手动调整能力的方案
针对你的需求——既要按「发布版本>优先级>严重程度>上次优先级设定日期」自动化排序待办项,又要保留手动调整的灵活性,以下是几种可行方案:
一、内置视图优化方案(快速实现基础排序)
Azure DevOps的待办事项(Backlog)视图支持自定义多列排序规则,且能保留手动调整的结果:
- 进入项目Backlog页面,点击顶部「视图」→「新建视图」
- 添加所需列:发布版本(Iteration Path)、优先级(Priority)、严重程度(Severity)、上次优先级设定日期(你的自定义字段)
- 按住Shift键依次点击上述列头,设置多列排序规则(按需求选择升/降序)
- 保存该自定义视图,之后每次打开此视图都会默认应用预设排序;同时你可以手动拖动待办项调整顺序,调整后视图会通过
System.StackRank字段保留你的自定义排序(该字段是控制待办项显示顺序的核心内置字段)
二、脚本自动化方案(批量更新排序,核心解决遗留项问题)
如果需要批量处理大量遗留待办项,或定期自动同步排序规则,可以通过Azure DevOps REST API编写脚本,批量更新待办项的System.StackRank字段——因为Backlog默认按该字段排序,更新后即可实现预设规则的排序,同时不影响手动拖动调整(拖动会自动修改StackRank值)。
示例PowerShell脚本(按需执行或定时触发)
# 配置参数 $orgUrl = "https://dev.azure.com/你的组织名" $projectName = "你的项目名" $pat = "你的个人访问令牌(PAT,需开启工作项读写权限)" $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$pat")) # 编写WIQL查询,按指定规则排序待办项 $wiqlQuery = @" SELECT [System.Id], [System.Title], [System.StackRank] FROM WorkItems WHERE [System.WorkItemType] IN ('User Story', 'Bug', 'Feature', 'Product Backlog Item') ORDER BY [System.IterationPath] ASC, [Microsoft.VSTS.Common.Priority] ASC, [Microsoft.VSTS.Common.Severity] ASC, [Custom.LastPrioritySetDate] DESC "@ # 执行WIQL查询获取排序后的工作项列表 $queryBody = @{ query = $wiqlQuery } | ConvertTo-Json $queryUrl = "$orgUrl/$projectName/_apis/wit/wiql?api-version=7.1-preview.2" $queryResult = Invoke-RestMethod -Uri $queryUrl -Method Post -Headers @{Authorization = "Basic $base64AuthInfo"} -Body $queryBody -ContentType "application/json" # 批量更新StackRank字段(起始值1000,步长100留足手动调整空间) $stackRank = 1000 foreach ($wiId in $queryResult.workItems.id) { $updateUrl = "$orgUrl/$projectName/_apis/wit/workitems/$wiId?api-version=7.1-preview.3" $updateBody = @( @{ op = "add" path = "/fields/System.StackRank" value = $stackRank } ) | ConvertTo-Json Invoke-RestMethod -Uri $updateUrl -Method Patch -Headers @{Authorization = "Basic $base64AuthInfo"} -Body $updateBody -ContentType "application/json-patch+json" $stackRank += 100 }
脚本说明
- 替换
Custom.LastPrioritySetDate为你实际使用的「上次优先级设定日期」字段引用名 - PAT令牌需在Azure DevOps个人设置中生成,权限勾选「工作项」的「读」和「写」
- 可以将脚本设置为定时任务(如Windows任务计划、Azure DevOps Pipeline定时触发器),定期自动同步排序规则
三、混合方案(兼顾自动化与手动调整)
日常使用自定义Backlog视图(按StackRank排序),需要批量更新排序时执行脚本;平时可随时手动拖动待办项调整顺序,调整结果会通过StackRank字段保留,完全满足你的双重需求。
内容的提问来源于stack exchange,提问作者ACloud_Learner
相关产品推荐
相关产品推荐

