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
相关产品推荐
相关产品推荐

