在官方Documentation of AzureDevOps REST API中,用于更新附件的JSON正文如下:
[
{
"op": "test",
"path": "/rev",
"value": 3
},
{
"op": "replace",
"path": "/relations/2/attributes/comment",
"value": "Adding traceability to dependencies"
}
]
这个数字2
(在relations/2/
中是哪里来的?
到目前为止,我已经知道它是从零开始的,但是我无法弄清楚它与附件的匹配方式。
通过更新附件的注释,我已经能够理解是哪个,但是我无法理解逻辑。
以下测试案例中与3个附件相关的信息对应于:该魔术索引/附件名称/附件ID(每次创建附件时增加)/出现在URL中的附件ID:
有什么主意吗?
答案 0 :(得分:1)
此数字是关系的从零开始的索引。这些关系包括附件,但也包括链接,这可能会使您感到困惑。
例如,使用Python REST API,代码可能如下:
def get_relation_idx(tc, attachment_id):
"""Return the index in relations corresponding to a the attachment id (or part of it)"""
for idx, rel in enumerate(tc.relations):
if rel.rel == "AttachedFile" and attachment_id in rel.url:
return idx
return None
attachment_id = "87042366"
tc = wit_client.get_work_item(12345, expand="Relations")
idx = get_relation_idx(tc, attachment_id)
print("Attachment {} has index {}".format(attachment_id, idx))