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

Node.js调用Azure DevOps API创建工作项时遭遇404错误求助

排查Azure DevOps创建工作项的404错误

1. 修正API URL格式

你当前的请求URL存在格式错误,Azure DevOps创建工作项的API要求工作项类型前必须加上$符号。正确的URL拼接方式需要在workItemType前添加转义后的$(模板字符串中用$$表示单个$):

const url = `${orgUrl}/${projectName}/_apis/wit/workitems/$${workItemType}?api-version=7.1`;

修正后完整URL应为:https://dev.azure.com/OrganisationName/ProjectName/_apis/wit/workitems/$Task?api-version=7.1

2. 调整请求体与Content-Type

Azure DevOps的工作项创建接口要求使用JSON Patch格式的请求体,且Content-Type必须设置为application/json-patch+json,而非普通的application/json。你需要修改请求体结构和请求头:

// 重新构造请求体为JSON Patch操作数组
const workItemData = [
  { op: 'add', path: '/fields/System.Title', value: short_description },
  { op: 'add', path: '/fields/System.AreaPath', value: projectName },
  { op: 'add', path: '/fields/System.IterationPath', value: projectName },
  { op: 'add', path: '/fields/Microsoft.VSTS.Common.Priority', value: urgency },
  { op: 'add', path: '/fields/Microsoft.VSTS.Common.State', value: 'To Do' },
  { op: 'add', path: '/fields/System.AssignedTo', value: assigned_to }
];

// 调整请求的Content-Type
const response = await axios.post(url, workItemData, {
  headers: {
    'Content-Type': 'application/json-patch+json',
    'Authorization': `Basic ${Buffer.from(`:${pat}`).toString('base64')}`,
  },
});

3. 验证基础配置准确性

  • 确认organisationName和projectName与Azure DevOps平台上的名称完全一致(区分大小写)
  • 检查PAT的权限范围:确保已勾选Work Items (Read & Write),且作用域覆盖目标组织/项目
  • 验证System.AreaPath和System.IterationPath的取值:如果项目下有细分的区域/迭代层级,需传入完整路径(例如ProjectName\\TeamArea)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 07:26:13