获取与基于先前版本的 Azure DevOps 版本关联的提交

问题描述 投票:0回答:1

在 Azure DevOps 中工作时,特别是在发布管道中,您会在舞台上看到一个漂亮的窗口,显示此特定版本中的提交。

我想在我的管道中使用此信息,这样我就可以记录进入特定版本的提交并将它们发布到不同的位置。

BUILD_SOURCEVERSION
变量可用,但这是来自最新提交的哈希值。

我尝试使用 Azure DevOps REST API 并对

https://vsrm.{{instance}}/{{teamproject}}/_apis/release/releases/{{releaseId}}?api-version=4.1-preview.6
执行了 GET,但我认为其中没有任何我可以使用的信息。
我认为 Pipelines- 和 Build 端点也没有为此提供任何有用的信息。但我可能是错的。

有可以调用的更改端点

https://vsrm.{{instance}}/{{teamproject}}//_apis/Release/releases/{{releaseId}}/changes?baseReleaseId={{previousReleaseId}
。这个效果很好,但我仍然需要
previousReleaseId
,更具体地说是舞台运行的最后一个版本 ID。

有人知道如何获取版本的提交列表吗?

git azure-devops azure-devops-rest-api
1个回答
0
投票

您可以使用rest api Releases - List(带有release

defintionid
)来获取目标版本中的上一个版本ID。

GET https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?definitionId={definitionId}&api-version=7.1-preview.8

PowerShell 脚本示例如下:

Param(
   [string]$orgnurl = "https://vsrm.dev.azure.com/ORGNAME",
   [string]$projectName = "PROJECTNAME",
   [string]$DefinitionId = "1", #Release definition ID
   [string]$user = "",
   [string]$token = "PAT"
)

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))

# to get the previous release id:

$getreleaseuri = "$orgnurl/$projectName/_apis/release/releases?definitionId=$DefinitionId" + "&api-version=7.1-preview.8"

$releases = Invoke-RestMethod -Uri $getreleaseuri -Method GET -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

$currentreleaseid = $releases.value[0].id

$previousreleaseid = $releases.value[1].id

Write-Host $previousreleaseid $currentreleaseid # check previous release id and current release id

# get changes assosiated with the current release

$uri = "$orgnurl/$projectName/_apis/release/releases/$currentreleaseid/changes?baseReleaseId=3"

Write-Host $uri  # check uri to get the changes

$commits = Invoke-RestMethod -Uri $uri -Method GET -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

foreach ($commit in $commits.value.id) {
    Write-Host $commit
}

© www.soinside.com 2019 - 2024. All rights reserved.