如何通过Azure DevOps API/命令按标签筛选仓库URL及获取标签ID
解决Azure DevOps API标签相关问题
1. 通过标签名称获取标签ID(Sha1Id)
你需要使用List Annotated Tags API获取仓库的所有标签,再根据名称筛选对应的标签ID:
- 请求地址:
GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/annotatedtags?api-version=7.0 - 该接口返回仓库下所有注释标签的完整列表,包含每个标签的
name(标签名称)和objectId(Sha1Id)字段。 - 获取响应后,直接根据目标标签名称过滤出对应的
objectId即可。
示例响应片段:
{ "value": [ { "name": "v1.0.0", "objectId": "abc123xyz...", // 其他字段 } ] }
2. 筛选带有相同标签名称的所有仓库URL
实现这个需求需要分两步操作:
- 第一步:获取项目下所有仓库列表,使用List Repositories API:
请求地址:GET https://dev.azure.com/{organization}/{project}/_apis/git/repositories?api-version=7.0
响应中每个仓库项包含url(仓库API地址)和id(repositoryId)字段。 - 第二步:遍历每个仓库,调用上述的List Annotated Tags API,检查返回的标签列表中是否存在目标标签名称。若存在,记录该仓库的URL。
补充:创建注释标签的名称参数
你提到的创建注释标签API支持指定标签名称,只需在POST请求的请求体中传入name字段,示例请求体如下:
{ "name": "v1.0.0", "target": { "objectId": "def456uvw..." }, "message": "Release version 1.0.0" }
内容的提问来源于stack exchange,提问作者Clair
相关产品推荐
相关产品推荐

