我一直在尝试检索链接到工作项的 Wiki URL,并且我已经能够检索工作项和 Wiki 页面之间的链接。但是,链接返回是 VSTFS 工件链接。是否可以使用提供的查询检索真实的 URL at this page of REST documentation ,或者这仅适用于检索工作项?目前,我在尝试使用类似于下面的 TFS 链接时收到 TF400898 错误。
vstfs:///Wiki/WikiPage/{vstfs identification string}
编辑:当前功能
def getWikiURL(azureToken, parsedTFS):
# parsedTFS[0] == Project ID, parsedTFS[1] == Wiki Repo ID, parsedTFS[2] == [page1, page2, page3]
reqURL = "https://dev.azure.com/{Organization}/" + str(parsedTFS[0]) + "/_apis/_wiki/wikis/" + str(parsedTFS[1]) + "/pages/"
for pageDef in parsedTFS[2]:
reqURL = reqURL + "/" + pageDef
authorization = str(b64.b64encode(bytes(':'+azureToken, 'ascii')), 'ascii)
headers = {
'Accept': 'application/json',
'Authorization' : 'Basic '+authorization
}
r = requests.get(url=reqURL, headers=headers)
strR = r.content.decode("utf-8-sig")
print(strR)
print(strR) 将 b'' 写入控制台
最佳答案
使用此 Rest API:Work Items - Get Work Item ,我们可以通过 request url 获取该工作项的相关 wiki url:
Get https://dev.azure.com/{organization}/{project}/_apis/wit/workitems/{id}?$expand=Relations&api-version=6.0
从响应正文中,我们可以发现 ArtifactLink 的 url 如下所示:
url": "vstfs:///Wiki/WikiPage/7e8XXXXXX3c79%2Ff2bb2XXXXXXe7431d5a61%2Fwiki1".
然后使用这个 Rest API:Artifact Uri Query - Query将工作项链接到此 wiki 页面。
要检索 VSTFS 工件链接的真实 URL,请按照以下步骤操作。请注意,使用 PostMan 来获取结果。并使用PAT authorization具有完全访问权限。
- 经过研究,我发现实际上 VSTFS 工件链接的格式如下:
vstfs:///Wiki/WikiPage/{project id}%2F{wiki repository id}%2F{wiki page name}
- 使用此请求网址:
Get https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wiki repository id}/pages//{wiki page name}
它的响应会告诉您 wiki 页面的 ID。
如果您使用嵌套页面(即{父页面}/{子页面}),则请求网址如下:
Get https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wiki repository id}/pages//{parent page}/{sub page}
- 最后,wiki 页面的真实 URL 如下所示:
https://dev.azure.com/{organization}/{project}/_wiki/wikis/{wiki repository id}/{wiki page id}/{wiki page name}
同样,如果您使用嵌套页面(即{父页面}/{子页面}),则网址如下:
https://dev.azure.com/{organization}/{project}/_wiki/wikis/{wiki repository id}/{wiki page id}/{sub page}
关于azure - 您可以使用 DevOps 工件查询检索 Azure DevOps Wiki 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65619600/