0

Azure DevOps でリリース パイプラインを作成しました。私はスピネーカー内で展開を行っています。デプロイが成功または失敗すると、デプロイ ステータス レポートは Azure DevOps のリリース パイプライン ステージに到達するはずです。

これを達成する方法は?Rest-Apiで可能ですか?

4

1 に答える 1

2

REST API を介して Azure DevOps リリース パイプライン ステージをトリガーすることができます。

最初にReleases-Create REST API を使用してリリースを作成できます。

 POST https://vsrm.dev.azure.com/{organization}/{project}/_apis/release/releases?api-version=6.1-preview.8

このリリースで特定のステージをトリガーする場合。その後、 Releases - Update Release Environmentを使用できます。

PATCH https://vsrm.dev.azure.com/{organization}/{project}/_apis/Release/releases/{releaseId}/environments/{environmentId}?api-version=6.1-preview.7

以下の PowerShell スクリプトの例を参照してください。ここの手順に従って、個人用アクセス トークンを取得できます。

$url = "https://vsrm.dev.azure.com/{org}/{proj}/_apis/release/releases?api-version=6.1-preview.8"

$PAT="Personnal Access Token"

$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($PAT)"))

$body = '{
  "definitionId": releaseDefinitionId,
 }'

#Create a release
$releaseInfo = Invoke-RestMethod -Uri $url -Headers @{Authorization = ("Basic {0}" -f $base64AuthInfo)} -Method post -Body  $body -ContentType "application/json"

#Trigger a specific stage
$releaseId = $releaseInfo.id
$EnvironmentIds = $releaseInfo.environments | select id

#Trigger the second stage
$EnvUrl = "https://vsrm.dev.azure.com/{org}/{proj}/_apis/Release/releases/$($releaseId)/environments/$($EnvironmentIds[1].id)?api-version=6.1-preview.7"

$envBody='{
"status": "inProgress"
}'

Invoke-RestMethod -Uri $EnvUrl -Headers @{Authorization = ("Basic {0}" -f $base64AuthInfo)} -Method patch -Body $envBody -ContentType "application/json"
于 2020-09-29T08:38:51.923 に答える