如何使用Azure DevOps Rest Api获取最新的标签?

3

我想要在Azure DevOps中恢复最新的标签,为此我正在使用以下Uri:

https://dev.azure.com/{organization}/_apis/git/repositories/{repositoryId}/refs?filter=tags/&api-version=5.1

这会返回所有标签。如果我设置$top=1参数,它会返回找到的第一个标签,也就是最老的标签。

所以问题是;

有没有办法获取最新的标签?还是我必须下载所有内容并手动获取最后一个标签?

还有其他检索标签的方法吗?

使用PowerShell进行我的解决方案(我接受建议):

$uriGetTags = 'https://dev.azure.com/{organization}/_apis/git/repositories/{repositoryId}/refs?filter=tags/&api-version=5.1'
$tags = Invoke-WebRequest -Uri $uriGetTags -Headers $Headers | ConvertFrom-Json 

#I Only wants the last element (the newest)
$tag = $tags.value.Get($tags.count-1)
1个回答

2
据我所知,目前没有现成的rest api能够直接获取最新标签。返回的标签按照最早的在顶部排序。即使在UI中管理标签,也是按照最早的在顶部排序。同时也没有相关参数可以获取最新的标签。
作为一种解决方法,你可以编写一个PowerShell脚本来遍历这些返回结果,然后将最后一个结果进行主机托管。

我在考虑这个(一个PowerShell),但是如果我有很多标签...我不想下载大量的数据。我觉得他们没有考虑到这一点。非常感谢你。 - undefined
或许有个好知识(也非常愚蠢):在 AzDo 中,Git 标签是按字母顺序排序的,而不是按创建时间排序。如果你的代码库使用语义化版本控制方案,这将成为一个巨大的问题。例如:1.4.39 将会在 1.4.4 之后,而不是在 1.4.40 之后。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接