通过 TFS REST API 将工作项添加到板列
Posted
技术标签:
【中文标题】通过 TFS REST API 将工作项添加到板列【英文标题】:Add work item to board column via TFS REST API 【发布时间】:2020-09-27 10:31:59 【问题描述】:我正在使用 TFS 2018 Rest API 创建工作项。
我可以创建一个工作项,但我希望它转到板上的特定列。
我在创建工作项时尝试传递以下参数来配置列:
"op": "add",
"path": "/fields/System.BoardColumn",
"from": null,
"value": "Waiting worker"
当我使用上述代码发出 Patch 请求以插入工作项时,我收到以下返回:
"$id": "1",
"customProperties":
"ReferenceName": null
,
"innerException": null,
"message": "TF401326: Invalid field status 'ReadOnly' for field 'System.BoardColumn'.",
"typeName": "Microsoft.TeamFoundation.WorkItemTracking.Server.WorkItemFieldInvalidException, Microsoft.TeamFoundation.WorkItemTracking.Server",
"typeKey": "WorkItemFieldInvalidException",
"errorCode": 600171,
"eventId": 3200
如何在特定板上包含工作项?
【问题讨论】:
你查看下面的回复了吗?如果它对您有帮助,您可以Accept it as an Answer,这对阅读此主题的其他社区成员会有所帮助。 【参考方案1】:要更新板列,您应该更新另一个字段,而不是 System.BoardColumn
(他是只读的)。
哪个领域?根据Microsoft Docs,你应该调查字段,你会看到这样的字段:
WEF_432678B52358ACDA34ASDA243489FD343_Kanban.Column
所以您应该找到刚刚创建的工作项的字段并更新该字段:
WorkItem workItem = this.CreateWorkItem("Board Column Test", "User Story");
string wefField = "";
// By the way - I opened PR to improve it, still waiting for the approval...
foreach (var field in workItem.Fields)
if (field.Key.Contains("_Kanban.Column"))
wefField = field.Key.ToString();
break;
patchDocument.Add(
new JsonPatchOperation()
Operation = Operation.Add,
Path = "/fields/" + wefField,
Value = targetColumn
);
WorkItem result = witClient.UpdateWorkItemAsync(patchDocument, Convert.ToInt32(workItem.Id)).Result;
【讨论】:
以上是关于通过 TFS REST API 将工作项添加到板列的主要内容,如果未能解决你的问题,请参考以下文章
是否可以通过自定义扩展或 REST API 添加新的工作项类型?
通过 REST API 将测试结果发布到 TFS 2018 测试用例
将TFS REST API与存储的查询一起使用时是否会编译?
如何使用 API 创建跨 TFS 集合的 TFS/Azure DevOps 工作项查询并将其导出到 Wor/Excel/Outlook 等