azure-devops - 无法在 Azure DevOps API 中按 artifactSourceId 进行筛选
问题描述
给定一个已知的 buildDefinitionId,我试图确定依赖于构建输出的(一个或多个)发布定义。
声明我可以传递artifactSourceId
格式的参数,{projectGuid}:{BuildDefinitionId}
但是当我尝试传递这个参数时,我得到了指定项目的每个发布定义。
使用网址:https://vsrm.dev.azure.com/my-company/d4155bbc-d85f-4aaf-9a8e-0ba70272cca4/_apis/release/definitions?artifactSourceId=d4155bbc-d85f-4aaf-9a8e-0ba70272cca4:950&api-version=5.0
在我的项目中,我得到了 553 个构建定义的列表。在响应正文中搜索工件键d4155bbc-d85f-4aaf-9a8e-0ba70272cca4:950
({projectGuid}:{buildDefinitionId}) 会给我预期的 2 个结果,如下所示:
"artifacts": [
{
"sourceId": "d4155bbc-d85f-4aaf-9a8e-0ba70272cca4:950",
"type": "Build",
"alias": "my-build-definition",
// more fields here
}
]
奇怪的是,如果我不传入artifactSourceId
参数,我根本不会在响应中获得任何工件数据 - 包括我指定$expand=artifact
参数时 - 但我可以指定artifactSourceId=xyz
它仍然会返回所有发布定义的列表。
这似乎是 api 的一个错误,但如果有人有任何见解或解决方法,我将不胜感激。
解决方案
您需要使用参数$expand=artifacts
(不是$expand=artifact
)来扩展工件详细信息。
关于 parameter artifactSourceId
,您需要使用 parametersartifactType
和artifactSourceId
一起过滤具有给定 artifactSourceId 的 Release 定义。
推荐阅读
- ios - 如何在 pdf 中设置可编辑文本字段(注释)的值?
- wordpress - 在 WooCommerce 电子邮件通知中添加基于产品标签的自定义消息
- android - Kotlin 和 Retrofit:如何处理 HTTP 400 响应?
- python - 我不断收到 StyleGAN 的断言错误
- tensorflow - 如何从 TF Hub 获取 Bert 分词器的词汇文件
- geoserver - Geoserver ncWMS 扩展,GetTimeseries 不起作用
- python - 列表中的中值时间增量
- jenkins - 如何使用 httprequest 插件 jenkins 发送任何文件
- powerbi - Power BI DAX:如何提取第二最近的日期
- java - 可信网络活动 (TWA) 与原生应用内购买相结合