使用完全递归时,Azure DevOps REST API 列表项目未返回所有项目

问题描述 投票:0回答:2

我正在尝试使用列表项来提取存储库中的所有文件,如下所述: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"
        }
    ]
}
  • 仓库中有文件。
  • 我在不同项目中测试了一些存储库——结果相同。
  • 我尝试从子文件夹中提取数据,认为我达到了数据上限...没有任何更改,只是所选文件夹的根目录。
  • 其他 REST API 有效:我可以获取所有存储库、所有签入以及从给定签入获取更改。
  • 我是系统管理员。

为什么只返回根文件夹?有什么想法吗?

编辑:

其他发现:

  • 参数似乎不区分大小写。
  • 无效或虚构的参数将被忽略(例如,添加
    &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"
        }
    ]
}
azure-devops azure-devops-rest-api azure-repos
2个回答
0
投票

我无法解决最初的问题,但 Trees 数据集为我提供了可靠的解决方法。

https://learn.microsoft.com/en-us/rest/api/azure/devops/git/trees/get?view=azure-devops-rest-7.0&tabs=HTTP


0
投票

就我而言,这种情况仅发生在 Edge 等 Web 浏览器上,但不会发生在逻辑应用或 Power Automate 上。

© www.soinside.com 2019 - 2024. All rights reserved.