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

如何自动化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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:30:44