我正在尝试使用列表项来提取存储库中的所有文件,如下所述:https://learn.microsoft.com/en-us/rest/api/azure/devops/git/items/list?查看=azure-devops-rest-7.0&tabs=HTTP
我正在网络浏览器中加载以下 URL:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repo id}/items?scopePath=/&recursionLevel=Full&api-version=7.0
但它只返回根路径的单个项目:
{
"count":1
,"value":
[
{
"objectId":"64ad7e9229fc73509cadae9e545ed620a5d00846"
,"gitObjectType":"tree"
,"commitId":"8323c75114f5d06a156819358744a4fa3b9788d1"
,"path":"/"
,"isFolder":true
,"url":"https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repo}/items?path=%2F&versionType=Branch&versionOptions=None"
}
]
}
为什么只返回根文件夹?有什么想法吗?
编辑:
其他发现:
&breakme=true
不会导致错误消息。IncludeMetadata
来测试区分大小写不是问题。以下 URL 加载后会产生以下结果:
https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repo id}/items?recursionLevel=full&IncludeContentMetadata=true&breakme=true&api-version=7.0
结果
{
"count": 1,
"value":
[
{
"objectId": "4fc34171cbcaf49141b45c3b9096c101a879c181",
"gitObjectType": "tree",
"commitId": "d43240daf04466e8fbbbb414e5ddd3dcf8a042d1",
"path": "/",
"isFolder": true,
"contentMetadata":
{
"fileName": ""
},
"url": "https://dev.azure.com/{org}/{project}/_apis/git/repositories/{repo}/items?path=%2F&versionType=Branch&versionOptions=None"
}
]
}
我无法解决最初的问题,但 Trees 数据集为我提供了可靠的解决方法。
就我而言,这种情况仅发生在 Edge 等 Web 浏览器上,但不会发生在逻辑应用或 Power Automate 上。