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

如何使用Azure DevOps Python API实现用户故事查询、创建及状态修改?

提示:日常开发请务必使用版本控制工具,避免本地文件误删导致代码资产损失。

Azure DevOps User Story 操作实现示例

首先安装依赖包:

pip install azure-devops

通用客户端初始化

from azure.devops.connection import Connection
from msrest.authentication import BasicAuthentication
from azure.devops.v6_0.work_item_tracking.models import JsonPatchOperation

# 配置认证信息
m_token = "你的个人访问令牌"
m_url = 'https://dev.azure.com/logistics/'
m_project = "Manyport"
m_cred = BasicAuthentication('', m_token)

# 建立连接并获取工作项跟踪客户端
m_conn = Connection(base_url=m_url, creds=m_cred)
wit_client = m_conn.clients.get_work_item_tracking_client()

1. 创建带标签的User Story

# 构造工作项字段更新操作
patch_operations = [
    # 设置标题
    JsonPatchOperation(
        op="add",
        path="/fields/System.Title",
        value="测试User Story标题"
    ),
    # 设置描述
    JsonPatchOperation(
        op="add",
        path="/fields/System.Description",
        value="这是User Story的描述内容"
    ),
    # 设置标签,多个标签用分号分隔
    JsonPatchOperation(
        op="add",
        path="/fields/System.Tags",
        value="前端;需求;待排期"
    )
]

# 创建User Story,工作项类型名称根据项目实际配置调整,一般是"User Story"
user_story = wit_client.create_work_item(
    document=patch_operations,
    project=m_project,
    type="User Story"
)

print(f"创建成功,User Story ID:{user_story.id}")

2. 获取User Story信息(标题、描述、ID)

批量获取指定ID的工作项

# 要查询的User Story ID列表
target_ids = [22, 33]
# 指定要返回的字段,也可以不传返回全部字段
fields = ["System.Id", "System.Title", "System.Description", "System.State"]

work_items = wit_client.get_work_items(
    ids=target_ids,
    project=m_project,
    fields=fields
)

for item in work_items:
    print(f"ID:{item.id}")
    print(f"标题:{item.fields['System.Title']}")
    print(f"描述:{item.fields.get('System.Description', '无描述')}")
    print(f"当前状态:{item.fields['System.State']}")
    print("---")

3. 修改User Story状态(激活/关闭)

def update_us_status(us_id, target_status):
    patch_operations = [
        JsonPatchOperation(
            op="replace",
            path="/fields/System.State",
            value=target_status
        )
    ]
    updated_us = wit_client.update_work_item(
        document=patch_operations,
        id=us_id,
        project=m_project
    )
    print(f"ID {us_id} 状态已更新为:{updated_us.fields['System.State']}")

# 激活User Story,状态值根据项目工作流配置调整,一般是"Active"
update_us_status(22, "Active")
# 关闭User Story,状态值一般是"Closed"
update_us_status(33, "Closed")

原有代码问题说明

你之前的代码报错是因为手动实例化WorkItemTrackingClient时没有绑定认证凭证,正确的做法是通过已完成认证的Connection对象调用get_work_item_tracking_client()获取客户端实例,不需要单独初始化客户端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:45:04