DSpirit
DSpirit

Reputation: 2280

How to set the Description of an Azure DevOps Release via script?

In Azure DevOps I'm trying to set the release description via PowerShell / CMD in order to have a dynamic description of my releases based on the input of the artifacts from the build step.

I've tried setting the release variables via powershell like:

Write-Host "##vso[task.setvariable variable=release.releasedescription;]bar"
Write-Host "##vso[task.setvariable variable=RELEASE_RELEASEDESCRIPTION;]bar"

But that didn't work and the description field remains always empty.

Is there any tweak / setting that would help achieve this behavior?

Upvotes: 2

Views: 3625

Answers (4)

Suki Ji-MSFT
Suki Ji-MSFT

Reputation: 743

Here is the PowerShell script to set release description in DevOps. Before the stage that need approval, add a PowerShell task to invoke REST API to change the release description. Please use your own orgName, projectName, PAT and modify the release description.

$url = https://vsrm.dev.azure.com/<orgName>/<ProjectName>/_apis/release/releases/$(Release.ReleaseId)?api-version=6.0
$token="PAT"
$base64AuthInfo= [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$head = @{ Authorization =" Basic $base64AuthInfo" }
$pipeline = Invoke-RestMethod -Uri $url -Headers $head -Method Get
$Pipeline.description = "<Modify the release description>"
$body = $Pipeline | ConvertTo-Json -Depth 100


$url2=https://vsrm.dev.azure.com/<orgName>/<ProjectName>/_apis/release/releases/$(Release.ReleaseId)?api-version=6.0
$resp = Invoke-RestMethod -Uri $url2 -Method Put -Headers $head -Body $body -ContentType application/json

Upvotes: 1

sh0rtcircuit
sh0rtcircuit

Reputation: 494

For anyone who simply wants to set the name of an Azure Pipelines run, you can find the description here.

TLDR: Set the top-level name: attribute.

Upvotes: 1

SantoKan
SantoKan

Reputation: 1

You could do this too:

   - bash: |
        echo "Updating pipeline job Run description"
        echo "##vso[build.updatebuildnumber]$(Build.BuildNumber) $(App_Name)"
      displayName: "Set pipeline job Run description for Azure DevOps console"

Upvotes: 0

Shayki Abramczyk
Shayki Abramczyk

Reputation: 41595

What you tried to do is just to set the environment variable that contains the release description data and not set the "real" release description, so after the release finished the description not changed.

If you want to set the release description during the release you can try to do it with Azure DevOps Rest API - Update Release.

So add a PowerShell task that executes the Rest API with Invoke-RestMethod, get the current release with GET method and then update the release with PUT, in the body change the description to the new one.

Upvotes: 2

Related Questions