azure - 能否使用 DevOps 工件查询检索 Azure DevOps Wiki?
问题描述
我一直在尝试检索链接到工作项的 Wiki URL,并且我已经能够检索到工作项和 Wiki 页面之间的链接。但是,链接返回是 VSTFS 工件链接。是否可以使用REST 文档的此页面上提供的查询来检索真实的 URL ,或者这仅适用于检索工作项?我目前在尝试使用类似于下面的 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'' 写入控制台
解决方案
以下是我的维基结构。
要获取访问 wiki3 页面的 url 并使用您的函数,下面的脚本应该按预期工作。请运行命令:$ pip install requests
如果您尚未安装该requests
库。
import base64 as b64
import requests
def getWikiURL(azureToken, parsedTFS):
#azureToken == PAT, parsedTFS[0] == Project ID, parsedTFS[1] == Wiki Repo ID, parsedTFS[2] == ["wiki1","wiki2","wiki3"]
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)
getWikiURL("azureToken",["Project ID", "Wiki Repo ID", ["wiki1","wiki2","wiki3"]])
推荐阅读
- excel - 如何在excel中减去两个日期和时间字段
- cocoa - 子类化 NSTextStorage 中断列表编辑
- java - UnsatisfiedDependencyException Spring MVC 项目上下文根问题
- kotlin - 用于开放层次结构的 Map 属性委托
- django - get_object_or_404 在用户模型上不起作用
- winforms - 在datagrid winforms c#中禁用选择行
- php - 刷新 Google Calendar API 的访问令牌
- clickhouse - 如何在 servral sql 条件下创建索引?
- cqrs - 是否有关于如何应用 CQRS 和 CQRS 问题的硬定义
- php - 不知道从哪里开始使用 REST API 创建 ServiceNow 事件