Azure DevOps:发布管道中的PATCH REST调用返回(403)禁止

时间:2019-03-13 14:31:17

标签: powershell oauth-2.0 azure-devops authorization azure-devops-rest-api

上下文

我将PowerShell脚本与Azure PowerShell任务(任务版本4. *预览版)一起使用,以触发某个版本发布管道的最新版本。通过

检索了最后一个发行版的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

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

问题

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

  

(403)禁止

所以问题是如何启用OAuth令牌进行此类REST调用?

1 个答案:

答案 0 :(得分:0)

问题在于,默认情况下,与OAuth令牌相关的权限不足以进行PATCH调用。

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

add user