首页 > 解决方案 > Azure DevOps:发布管道中的 PATCH REST 调用返回 (403) 禁止

问题描述

语境

我使用带有 Azure PowerShell 任务(任务版本 4.* 预览版)的 PowerShell 脚本来触发某个发布管道的最新版本。通过检索最后一个版本的 id 以及相关环境的 id

GET https://vsrm.dev.azure.com/$azureDevOpsOrganizationName/$azureDevOpsProjectName/_apis/release/deployments?queryOrder=descending&`$top=1&definitionId=$azureDevOpsReleasePipelineId&definitionEnvironmentId=$azureDevOpsReleaseEnvironmentId&api-version=5.0

我想通过 PATCH REST 调用触发相关发布

PATCH https://vsrm.dev.azure.com/$azureDevOpsOrganizationName/$azureDevOpsProjectName/_apis/Release/releases/$lastDeploymentId/environments/$($lastDeploymentEnvironmentId)?api-version=5.0-preview.6

具有以下身体

$triggerMostRecentReleaseBody = @{
    comment = 'some comment'
    status = 2
    scheduledDeploymentTime = $null
}
$triggerMostRecentReleaseBodyJSON = $triggerMostRecentReleaseBody | ConvertTo-Json

为了能够进行这些 REST 调用,我启用了 OAuth 令牌以在管道中可用:

oauth

$env:SYSTEM_ACCESSTOKEN并通过PowerShell 脚本检索令牌。

问题

GET 请求工作得很好,但是在执行 PATCH 调用时它返回错误

(403) 禁止

那么问题是如何启用 OAuth 令牌来进行此类 REST 调用?

标签: powershelloauth-2.0azure-devopsauthorizationazure-devops-rest-api

解决方案


问题是与 OAuth 令牌相关的权限默认不足以进行 PATCH 调用。

要授予必要的权限,请将Project Collection Build Service (xxx)用户添加到Project Administrators组:

添加用户


推荐阅读