Powershell脚本使用Devops API触发一个发布管道



我正在尝试创建一个Powershell脚本,使用DevOps API创建一个新版本。

我可以使用invoke rest方法看到管道信息,但不能触发管道。能帮我一下吗?

谢谢,万卡特拉曼·莱马克里斯

没有很好的文档记录,但是要开始发布,您必须将状态更新为inProgress

$updateReleaseUri = "$($vrsmBaseUri)_apis/Release/releases/$($releaseId)/environments/$($environmentId)?api-version=6.0-preview"
$updateReleaseJsonBody = @{status = 'inProgress' }
$updateReleaseJsonBody = $updateReleaseJsonBody | ConvertTo-Json -Depth 100
Invoke-RestMethod -Uri $updateReleaseUri -Method Patch -Headers $headers -Body $updateReleaseJsonBody -ContentType 'application/json'

裁判:https://learn.microsoft.com/en - us/rest/api/azure/devops/release/releases/update -释放- environment?view=azure - devops -休息- 6.0

您可以使用特定的端点">发布-创建";触发发布管道。

您至少需要向该端点提供的必需参数是definitionId您想要触发的发布管道的。

下面是完整的PowerShell脚本演示作为参考。我已经用这个脚本进行了测试,它可以像预期的那样工作。

$pat = '{Personal Access Token}'
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $pat)))
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", ("Basic {0}" -f $base64AuthInfo))
$headers.Add("Content-Type", "application/json")
$uri = "https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=6.0"
$body = '{ "definitionId": {definitionId} }'
Invoke-RestMethod -Uri $uri -Headers $headers -Body $body -Method POST | ConvertTo-Json -Depth 10

最新更新