首页 > 解决方案 > 如何以编程方式链接 Azure DevOps 中的分支和工作项

问题描述

我试图找到一种方法,通过我正在构建的应用程序(基本上就是这个,但在 C# 控制台应用程序中)在 Azure DevOps 中添加一个分支作为链接。

我逐渐熟悉了 VisualStudio Services 和 TeamFoundation .NET 库,并尝试使用已经通过 DevOps UI 创建的这些链接之一来获取一个工作项,并将其移植到另一个工作项,如下所示:

var workItemWithBranchLink = await _WorkItemTrackingHttpClient.GetWorkItemAsync(3985, expand: WorkItemExpand.Relations);
var workItemWithoutBranchLink = await _WorkItemTrackingHttpClient.GetWorkItemAsync(3988, expand: WorkItemExpand.Relations);
var document = new JsonPatchDocument();
document.Add(new JsonPatchOperation()
{
    Operation = Operation.Add,
    Path = "/relations",
    Value = workItemWithBranchLink.Relations 
});
await _WorkItemTrackingHttpClient.UpdateWorkItemAsync(document, (int)workItemWithoutBranchLink.Id);

但是,这会引发异常

Microsoft.VisualStudio.Services.WebApi.Patch.PatchOperationFailedException:'工作项补丁不支持修补路径 /relations 处的顶级属性。

由于workItemWithoutBranchLink.Relations为空,我不确定我还能如何修补它。

有任何想法吗?

标签: c#azure-devopsazure-devops-rest-api

解决方案


尝试将您的路径更新为"/relations/-". 我不确定 .net 库中的补丁格式是否遵循Rest API,但似乎很可能给出了顶级属性错误消息。即,如果您添加 a/-您不再处于顶层。

似乎也是此示例库中使用的格式。


推荐阅读