You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程在Azure Artifact Feed中查找包版本的Git标签?

获取Azure DevOps Artifact包版本对应的Git标签/代码信息

要编程获取包版本关联的Git标签或代码信息,需要通过Azure DevOps的几个API串联查询,核心是关联包版本到构建任务,再从构建任务中提取Git相关数据:

步骤1:获取包版本的元数据,提取关联构建ID

调用Packages API获取目标包版本的详细信息,重点关注返回结果中的properties字段,其中包含构建关联信息:

GET https://pkgs.dev.azure.com/{组织名}/{项目名}/_apis/packaging/feeds/{FeedID}/packages/{包ID}/versions/{版本号}?api-version=7.1-preview.1

在返回的JSON里,找到Microsoft.VisualStudio.Services.Build.BuildUri属性(格式类似vstfs:///Build/Build/{构建ID}),从中提取出构建ID。

如果你的包是通过自定义流程发布的,建议在发布时手动添加Git标签/提交哈希作为包的自定义属性(比如在dotnet pack时添加/p:GitTag=你的标签名),这样可以直接在包元数据的properties中读取,无需走构建API。

步骤2:通过构建ID获取Git分支/标签信息

用提取到的构建ID调用Builds API,获取构建任务的详细数据:

GET https://dev.azure.com/{组织名}/{项目名}/_apis/build/builds/{构建ID}?api-version=7.1-preview.7

返回结果中:

  • sourceBranch:如果构建来自Git标签,该字段值为refs/tags/{标签名},直接提取即可;如果来自分支,则是分支路径。
  • sourceVersion:对应代码的Git提交哈希,可用于后续验证或查找关联标签。

步骤3:(可选)通过提交哈希确认Git标签

如果需要通过提交哈希反向查找对应的标签,调用Git Tags API:

GET https://dev.azure.com/{组织名}/{项目名}/_apis/git/repositories/{仓库ID}/tags?api-version=7.1-preview.1

遍历返回的标签列表,找到objectId与sourceVersion匹配的项,其name就是对应的Git标签。

注意事项

  • 确保调用API的账号拥有Packaging Read和Build Read权限,否则会返回权限不足错误。
  • 如果包是手动上传而非通过Pipeline构建发布的,默认不会关联构建信息,需要在上传时手动注入Git相关元数据(比如使用nuget push时添加-Properties GitTag=xxx)。

内容的提问来源于stack exchange,提问作者KazM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 23:54:51