我正在尝试使用VSTS API删除项目上的所有父链接,并将这些父项设置为相关项目。
https://www.visualstudio.com/en-us/docs/integrate/api/wit/work-items#update-work-items
我不完全理解删除关系所需的“路径”是如何工作的 - 我有时会得到不一致的结果,有时它不起作用(所以,我明显做错了)
我假设它只是API返回的顺序。所以,例如:
索引[2]项< - 这是我要删除的那个,所以我使用索引2
.setAudience()
文档说明Path是:
要添加,替换,删除或测试的值的路径。 对于特定关系,请使用“relations / Id”。 对于所有关系,请使用“/ relations /-".
索引当然不是Id,但我如何准确地得到关系/ Id?
答案 0 :(得分:1)
答案 1 :(得分:0)
' id
'在'/relation/id'
路径中实际上是一个索引。您检索工作项定义,然后'id'
是'relations'
数组中链接的索引。因此,你的假设是正确的。
证据:给定一个包含2个链接的工作项,如果您尝试删除/修改ID> = 2,它将回答:
{" $ id":" 1"," innerException":null," message":"索引out of范围 for path /relations/2."," typeName": " Microsoft.VisualStudio.Services.WebApi.Patch.PatchOperationFailedException, Microsoft.VisualStudio.Services.WebApi,Version = 14.0.0.0, Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a"," typeKey": " PatchOperationFailedException"," errorCode":0," eventId":3000}
0和1,id
工作正常。
我可能错了,但我猜测在'replace'
操作之前使用'add'
操作时可能会出错。例如,您需要在链接的'comment'
内添加'attributes'
,然后才能修改(即'替换'操作)其值。