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

如何通过Azure DevOps REST API使新建工作项排待办列表首位?

问题

我希望通过API创建特定工作项时,该工作项能直接处于Azure DevOps待办列表的第一位。请问此需求是否可以实现?我当前使用Python的requests库编写工作项创建代码,具体代码如下:

def create_inquiry(ticket_id,df):
    create_headers = {
        'Content-Type': 'application/json-patch+json',
        'Accept': 'application/json-patch+json',
        'Authorization': 'Basic '+authorization
        }     
    create_data = [
        
        {
            "op":"add",
            "path": "/fields/System.Title",
            "from": None,
            "value": f"{df.loc[ticket_id, 'title']}"
        },
        {
            "op":"add",
            "path": "/fields/Custom.Solving" ,
            "from": None,
            "value": f"{df.loc[ticket_id,'description']}"
        },
        {
            "op":"add",
            "path": "/fields/Custom.Tickets",
            "from": None,
            "value": f"{ticket_id}"
        },
        {
            "op":"add",
            "path": "/fields/System.State",
            "from": None,
            "value": "To do"
        },   
        {
            "op":"add",
            "path": "/fields/System.AssignedTo",
            "from": None,
            "value": f"{df.loc[ticket_id,'collaborator']}"
        },
        {
            "op":"add",
            "path": "/fields/Microsoft.VSTS.Common.Priority",
            "from": None,
            "value": f"{df.loc[ticket_id,'priority_id']}"
        }
    ]

    response = requests.post(create_url, headers=create_headers,json=create_data)
    # print(response.status_code)
    if response.status_code == 200:
        response = response.json()
        df.loc[ticket_id,"HasWI"] = True
        print(response['id'])
        df.loc[ticket_id,"WorkItem_Id"] = response['id']
        # link_work_item(ticket_id,response['id'])
    else:
        print("error")
解答

可以实现,核心是控制工作项的排序字段,让它符合待办列表的排序规则,从而排在首位。Azure DevOps待办列表的排序逻辑通常依赖以下字段(取决于项目配置):

  • Microsoft.VSTS.Common.Priority:数值越小优先级越高(1为最高级别)
  • Microsoft.VSTS.Common.Rank:直接控制待办项顺序,值越小越靠前
  • System.CreatedDate:部分配置会按最新创建时间排序,但这不是默认待办排序逻辑

具体实现方法

  1. 设置最高优先级
    如果你的待办列表按优先级排序,确保将Microsoft.VSTS.Common.Priority设为1。

  2. 手动指定Rank值
    若待办列表按Rank排序,需要让新工作项的Rank值小于现有所有待办项的Rank:

    • 先调用Azure DevOps查询API,获取当前"To do"状态下所有工作项的最小Rank值
    • 将新工作项的Rank设为该最小值减1,确保它排在第一位

修改后的代码示例

在create_data数组中添加或调整以下字段:

# 强制设置最高优先级
{
    "op":"add",
    "path": "/fields/Microsoft.VSTS.Common.Priority",
    "from": None,
    "value": 1
},
# 添加Rank字段控制排序(假设当前最小Rank为1000000000,设为更小的值)
{
    "op":"add",
    "path": "/fields/Microsoft.VSTS.Common.Rank",
    "from": None,
    "value": 999999999
}

注意事项

  • 先确认项目待办列表的排序规则:在Azure DevOps界面待办列表右上角点击「排序」查看当前依赖的字段
  • 若无法修改Rank字段,检查项目工作项类型配置,确保该字段允许编辑
  • 动态获取最小Rank值能避免硬编码带来的冲突,建议通过查询API实现这一步骤

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:50:25