首页 > 解决方案 > 通过 REST API 对 Azure DevOps Pipeline 构建进行排队时,是否可以更改“[user] 的手动构建”文本?

问题描述

当我使用REST API在 Azure DevOps Pipelines 中对构建进行排队时,构建显示在构建列表中,Manual build for [user]其中[user]用户的名称与发出 API 请求的令牌相关联。是否可以用自定义文本(例如,Build for PR#1234或类似的)替换它?

编辑:这是 Web UI 构建列表的屏幕截图,其中包含Manual build for [user]我要更改的文本:

Azure DevOps Pipelines Web UI 的屏幕截图

标签: azureazure-devopsazure-pipelines

解决方案


您可以像这样更改描述文本:

Param(
   [string]$vstsAccount = "software",
   [string]$projectName = "project",
   [string]$definitionId = "895",
   [string]$keepForever = "true",
   [string]$personalAccessToken  = "xxxxxx"
)

# Base64-encodes the Personal Access Token (PAT)
$headers = @{Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($personalAccessToken)")) }

# Construct the REST URL
$uri = "https://vsrm.dev.azure.com/$vstsAccount/$projectName/_apis/release/releases?api-version=5.0-preview.8"

Write-Host "Uri :" $uri

$params = 
@"
{
    "definitionId": $definitionId,
    "description": "Create Release from PowerShell Script",
    "artifacts": [],
    "isDraft": false,
    "reason": "VSTS Trigger",
    "manualEnvironments": null,
    "environmentsMetadata": null, 
    "properties": null, 
    "variables": null
}
"@

Write-Host "Request Body :" $params

# Invoke the REST call and capture the results
$result = Invoke-RestMethod -Uri $uri -Method POST -Body $params -Headers $headers -ContentType "application/json" -Verbose -Debug

Write-Host "Result :" $result

# This call should only provide a single result
if ($result.count -eq 0)
{
    Write-host "Unable to locate Release Definition Id $definitionId"
}
else
{
    Write-host "Successfully triggered the VSTS release job !!!"
}

推荐阅读