如何通过Azure DevOps REST API获取工作项关联的生成定义ID?
Azure DevOps工作项关联生成/发布定义ID获取方案
核心结论
工作项与交付对应的生成、发布定义之间存在明确关联关系,你直接调用基础工作项接口未查询到关联字段,是因为默认接口响应未展开关联关系数据,可通过调整接口参数实现查询。
具体操作步骤
- 第一步:调用工作项接口时添加
$expand=relations参数,拉取工作项的全量关联数据,接口示例如下:https://dev.azure.com/{organizationName}/_apis/wit/workItems/{ID}?api-version=6.0&$expand=relations - 第二步:解析接口返回的
relations数组,筛选对应关联条目:- 关联生成的条目:
rel属性值为ArtifactLink,且name属性为Build,条目中的url字段格式为vstfs:///Build/Build/{buildId},提取末尾数字即可得到关联的生成ID - 关联发布的条目:
rel属性值为ArtifactLink,且name属性为Release,条目中的url字段格式为vstfs:///ReleaseManagement/Release/{releaseId},提取末尾数字即可得到关联的发布ID
- 关联生成的条目:
- 第三步:根据拿到的生成/发布ID,调用对应接口查询定义ID:
- 获取生成定义ID:调用生成查询接口,返回结果中
definition.id字段即为所需的生成定义ID,接口示例:https://dev.azure.com/{organizationName}/{projectName}/_apis/build/Builds/{buildId}?api-version=6.0 - 获取发布定义ID:调用发布查询接口,返回结果中
releaseDefinition.id字段即为所需的发布定义ID,接口示例:https://vsrm.dev.azure.com/{organizationName}/{projectName}/_apis/release/releases/{releaseId}?api-version=6.0
- 获取生成定义ID:调用生成查询接口,返回结果中
场景适配提示
如果单个工作项关联了多个生成/发布记录,可结合你之前拉取的两个版本的发布时间范围,过滤出时间匹配的关联记录,即可匹配到对应交付版本的生成/发布定义。
内容的提问来源于stack exchange,提问作者Sneha Dominic
相关产品推荐
相关产品推荐

