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

Azure DevOps REST API创建工作项:Priority与StackRank字段不生效

Azure DevOps REST API创建工作项时Priority和StackRank字段不生效问题

使用Azure DevOps REST API创建工作项时,尝试设置Microsoft.VSTS.Common.Priority和Microsoft.VSTS.Common.StackRank字段,但工作项创建成功后这两个字段未被赋值,API也没有返回错误提示。

以下是创建工作项的实现代码:

public WorkItemDTO CreateWorkItem(WorkItemDTO workItem, string workItemType)
{
    string tokenFormat = $"{string.Empty}:{GetTokenConfig()}";
    string credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(tokenFormat));

    using (var client = new HttpClient())
    {
        client.BaseAddress = new Uri($"{DEVOPS_ORG_URL}/{GetProjectNameConfig()}/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json-patch+json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);

        string uri = $"_apis/wit/workitems/${workItemType}?api-version=7.1-preview.3";

        var patchDocument = new[]
        {
            new { op = "add", path = "/fields/System.Title", value = workItem.Title },
            new { op = "add", path = "/fields/System.Description", value = workItem.Description },
            new { op = "add", path = "/fields/Microsoft.VSTS.Common.Priority", value = workItem.Priority },
            new { op = "add", path = "/fields/Microsoft.VSTS.Common.StackRank", value = workItem.BusinessValue }
        };

        var jsonContent = JsonConvert.SerializeObject(patchDocument);
        var content = new StringContent(jsonContent, Encoding.UTF8, "application/json-patch+json");

        HttpResponseMessage response = client.PostAsync(uri, content).Result;

        if (response.IsSuccessStatusCode)
        {
            string responseBody = response.Content.ReadAsStringAsync().Result;
            var createdWorkItemEntity = JsonConvert.DeserializeObject<WorkItemEntity>(responseBody);
            var createdWorkItemDTO = _mapper.Map<WorkItemDTO>(createdWorkItemEntity);
            return createdWorkItemDTO;
        }
        else
        {
            Console.WriteLine("Error creating work item. Status code: " + response.StatusCode);
            string responseBody = response.Content.ReadAsStringAsync().Result;
            Console.WriteLine("Response body: " + responseBody);
        }
    }

    return null;
}

已尝试操作

  • 在JSON Patch文档中包含Microsoft.VSTS.Common.Priority和Microsoft.VSTS.Common.StackRank字段
  • 向Azure DevOps REST API发送包含该Patch文档的POST请求

预期与实际结果

  • 预期结果:新建工作项的两个目标字段按提供的值设置
  • 实际结果:工作项创建成功,但两个字段未被赋值,且API无有效错误提示

疑问

  • Patch文档中字段指定是否正确?
  • API版本7.1-preview.3或字段名称是否有问题?
  • 请求格式或API使用是否有遗漏细节?

内容的提问来源于stack exchange,提问作者Neima Mohamed Abdoulkader

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:13:16