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

使用Azure DevOps Python API创建工作项时遇400错误求助

Azure DevOps Python API 创建工作项返回400状态码的排查方案

以下是几种常见的原因及对应解决方法:

  • 项目参数传递错误
    你代码中用core_client.get_project(MY_PROJECT_ID)返回的project对象直接传给create_work_item的project参数,但该参数要求传入项目名称字符串或项目ID字符串,而非Project对象。将project=project改为project=MY_PROJECT_ID(或项目名称字符串)即可。

  • PAT权限不足
    检查你的个人访问令牌(PAT)是否配置了工作项写入权限,且令牌作用范围覆盖目标项目。权限不足会触发400或403错误。

  • 工作项类型名称不匹配
    确认目标项目中确实存在名为Bug的工作项类型,部分项目可能自定义了类型名称(比如中文环境下可能叫"缺陷"),名称不匹配会导致接口无法识别,返回400。

  • 缺失必填字段
    不同项目的Bug模板可能有额外必填字段,比如System.AreaPath、System.IterationPath等,仅填写标题和描述可能不满足要求。可以通过Azure DevOps网页端创建Bug,查看必填字段后,在patch文档中补充对应add操作。

修正后的示例代码

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

personal_access_token = "MY_PAT"
organization_url = f'https://dev.azure.com/{MY_ORG}'
project_identifier = "MY_PROJECT_ID"  # 直接用项目ID或名称字符串

# 创建连接
credentials = BasicAuthentication('', personal_access_token)
connection = Connection(base_url=organization_url, creds=credentials)

wit_client = connection.clients.get_work_item_tracking_client()

def create_patch_operation(op, field, value):
    patch = JsonPatchOperation()
    patch.op = op
    patch.path = f'/fields/{field}'
    patch.value = value
    return patch

patch_document = [
    create_patch_operation('add', 'System.Title', "Testing"),
    create_patch_operation('add', 'System.Description', "Hoping to create a new work item."),
    # 补充必填字段,根据你的项目模板调整
    create_patch_operation('add', 'System.AreaPath', f"{MY_ORG}\\{project_identifier}"),
    create_patch_operation('add', 'System.IterationPath', f"{MY_ORG}\\{project_identifier}\\\\Iteration 1")
]

# project参数使用字符串类型的ID或名称
wit_client.create_work_item(document=patch_document, project=project_identifier, type="Bug")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 10:53:22