Аналогичное решение для Чада, но я узнал, что вызов конечной точки тега будет намного более результативным, чем конечная точка сравнения; вот решение, которое я принял в PowerShell:
1) Определите ваши Git переменные:
Param(
[string]$repoName,
[string]$commitSha,
[string]$giturl = https://git.<yourgitdomain>.com/api/v3/repos,
[string]$githubheaders = @{"Authorization"="<your autho>"},
[string]$owner = "Example"
)
2) Получить все теги (как это было предложено Чаде):
$tags = (Invoke-Webrequest "$giturl/$owner/$repoName/git/refs/tags" -method get -headers $githubheaders -usebasicparsing).content | ConvertFrom-Json
3) Прокрутите каждый тег, но вызовите теги api, чтобы получить его ша; вы можете просто сравнить, что к желаемому ша:
foreach ($tag in $tags) {
$tagJsonResponse = ((Invoke-Webrequest "$giturl/$owner/$repoName/git/tags/$tagSha" -method get -headers $githubheaders -usebasicparsing).content | ConvertFrom-Json)
$currentTagSha = $tagJsonResponse.object.sha
if($currentTagSha -eq $shaFromTag) {
$tagLabel = $tag.ref -replace "refs/tags/"
Write-host $tagLabel
}
Это добиться такого же результата, как сравнения конечных точек, но без избыточной работы расчета совершающей разницы, это выполняет относительно быстрее.