无法在 Azure DevOps 中按 artifactSourceId 筛选 API
Cannot filter by artifactSourceId in Azure DevOps API
给定一个已知的 buildDefinitionId,我正在尝试确定依赖于构建输出的(一个或多个)发布定义。
声明我可以以 {projectGuid}:{BuildDefinitionId}
格式传递 artifactSourceId
参数,但是当我尝试传递此参数时,我得到 every 发布定义对于指定的项目。
使用 url : 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
,它仍然会 return 一个 所有 发布定义的列表。
这似乎是 api 的错误,但如果有人有任何见解或解决方法,我将不胜感激。
您需要使用参数 $expand=artifacts
(不是 $expand=artifact
)来展开工件详细信息。
关于参数 artifactSourceId
,您需要同时使用参数 artifactType
和 artifactSourceId
来过滤具有给定 artifactSourceId 的发布定义。
给定一个已知的 buildDefinitionId,我正在尝试确定依赖于构建输出的(一个或多个)发布定义。
声明我可以以 {projectGuid}:{BuildDefinitionId}
格式传递 artifactSourceId
参数,但是当我尝试传递此参数时,我得到 every 发布定义对于指定的项目。
使用 url : 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
,它仍然会 return 一个 所有 发布定义的列表。
这似乎是 api 的错误,但如果有人有任何见解或解决方法,我将不胜感激。
您需要使用参数 $expand=artifacts
(不是 $expand=artifact
)来展开工件详细信息。
关于参数 artifactSourceId
,您需要同时使用参数 artifactType
和 artifactSourceId
来过滤具有给定 artifactSourceId 的发布定义。