Permissions 我是否可以向管道授予权限,以便它可以使用API在Azure Devops中读取不同项目的信息?

Permissions 我是否可以向管道授予权限,以便它可以使用API在Azure Devops中读取不同项目的信息?,permissions,azure-devops,azure-devops-rest-api,Permissions,Azure Devops,Azure Devops Rest Api,我正在尝试使用此Azure DevOps API调用: GET https://dev.azure.com/{organization}/_apis/projects/{projectId}?api-version=5.1 文档化,以便在我有项目ID时检索项目名称。请注意,管道正在尝试检索项目信息,而不是定义它的项目的信息。以下代码在管道提供自己的项目ID时起作用: $VstsBaseRestUrl = "$(System.TeamFoundationCollectionUri)"

我正在尝试使用此Azure DevOps API调用:

GET https://dev.azure.com/{organization}/_apis/projects/{projectId}?api-version=5.1
文档化,以便在我有项目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,即以某种方式将其授予构建帐户,以便系统访问令牌方法继续工作。
  • 我如何授予管道授权此呼叫的权限
假设您调用上述RESTAPI从项目A中的管道检索项目B的信息

您需要向项目A的生成服务帐户授予项目B中的
查看项目级信息
。以下是详细步骤

1、进入项目B(您要检索信息的项目)的项目设置-->权限-->选择生成管理员组(您也可以创建新组)

2、单击生成管理员组的成员选项卡-->单击添加-->添加项目A的生成服务帐户

项目A的构建服务帐户是这样的:项目的名称构建服务(组织的名称),例如项目A构建服务(组织的名称)

可选:

您还可以在项目B中创建一个新组,并将项目a的生成服务帐户添加到其成员中。并确保允许查看项目级信息


谢谢李维。非常感谢您的快速答复。