我运行az pipelines release list --org $organization --project $project --top 1000 -o table
获取$ project中的所有发行版。我刚刚获得了前100个版本-我报告了一个错误https://github.com/Azure/azure-devops-cli-extension/issues/937)
要解决该限制,我尝试根据releaseDefinition名称从z管道发行列表中过滤输出(使用--query),以仅获取此数据集的子集,而不是达到此100个项目的限制-希望在此之前对其进行过滤输出数据集。不幸的是,它没有起作用,因为它没有进行预过滤,而是加载了前100个项目,然后过滤了该数据集。
有人有解决方法吗?
谢谢
我不认为这是一个错误;只是没有记录在案的API限制。 Azure CLI没问题,因为CLI所做的全部就是对后端Azure API端点进行REST调用。
API端点的100结果限制是API保持响应请求大小可管理并限制DDOS功能的相当普遍的限制。
但是您希望--query
预过滤结果。因此,让我们看一下GitHub上的CLI代码。 Here you can see the CLI making the API call:
...
releases = client.get_releases(definition_id=definition_id,
project=project,
source_branch_filter=source_branch,
top=top,
status_filter=status)
return releases
而且我们看到的是,API级别的唯一过滤是top
。 --query
参数未在API请求中传递。由于API当前最多只能返回100个项目,因此CLI只能从API获取100个项目。
这意味着其余--query
过滤参数由CLI在客户端进行处理,该CLI仅具有最多前100个结果。
为了获得100多个结果,他们需要向API添加另一个参数以允许返回100多个结果。