【发布时间】:2020-03-17 18:06:45
【问题描述】:
我正在尝试使用此 Azure DevOps API 调用:
GET https://dev.azure.com/{organization}/_apis/projects/{projectId}?api-version=5.1
记录了here,当我有它的ID 时检索项目的名称。请注意,管道正在尝试检索项目的项目信息,而不是定义它的项目。下面是代码,当管道提供自己的项目 ID 时可以使用:
$VstsBaseRestUrl = "$(System.TeamFoundationCollectionUri)"
$projectsUrl = "$VstsBaseRestUrl/_apis/projects/${{ parameters.project }}?api-version=5.1"
$rawResponse = Invoke-WebRequest -UseDefaultCredentials -Uri $projectsUrl -Method Get -ContentType "application/json" -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
响应返回为:
{"$id":"1","innerException":null,"message":"VS800075: The project with id 'vstfs:///Classification/TeamProject/xxxxx' does not exist, or you do not have permission to access it.","typeName":"Microsoft.TeamFoundation.Core.WebApi.ProjectDoesNotExistException, Microsoft.TeamFoundation.Core.WebApi","typeKey":"ProjectDoesNotExistException","errorCode":0,"eventId":3000}
我使用了正确的项目 ID,那么如何授予管道权限以授权此调用?
注意:如果不需要,我宁愿不使用 PAT,即以某种方式将其授予构建帐户,以便 SYSTEM_ACCESSTOKEN 方法继续工作。
【问题讨论】:
标签: permissions azure-devops azure-devops-rest-api