0

我在项目 A 中有一个 azure devops yaml 管道,试图在同一组织内的项目 B 中下载一个工件。它使用如下配置的 DownloadBuildArtifacts@0 任务:

 - task: DownloadBuildArtifacts@0
  inputs:
    buildType: 'specific'
    project: 'f0a63c0e-a678-44ea-92f4-490def403add'
    pipeline: '38'
    buildVersionToDownload: 'latest'
    downloadType: 'single'
    artifactName: 'drop'
    downloadPath: '$(System.ArtifactsDirectory)/Common'

其中“f0a63c0e-a678-44ea-92f4-490def403add”是项目 B 的项目 ID,38 是在项目 B 中生成工件的构建管道定义 ID。在项目 B 中的管道中执行时可以正常工作。但失败并出现错误下面当我尝试从项目 A 中的管道运行相同的任务时。

##[error]Failed in getBuildId with error: Error: VS800075: The project with id 'vstfs:///Classification/TeamProject/f0a63c0e-a678-44ea-92f4-490def403add' does not exist, or you do not have permission to access it.
##[error]Error: VS800075: The project with id 'vstfs:///Classification/TeamProject/f0a63c0e-a678-44ea-92f4-490def403add' does not exist, or you do not have permission to access it.
Finishing: DownloadBuildArtifacts

项目 A 似乎无权访问项目 B。我在哪里以及如何设置这些权限?

更新:我按照这篇文章https://github.com/MicrosoftDocs/azure-devops-docs/issues/6790中的建议检查了“将工作授权范围限制为当前项目”选项,但它已被禁用。所以不确定还需要什么其他设置。

4

1 回答 1

0

实际上,本文中解释的“将工作授权范围限制为当前项目”选项是答案https://github.com/MicrosoftDocs/azure-devops-docs/issues/6790。我只是在其中一个管道中禁用它。一旦我在两个管道中设置它,它就开始工作了。仅供参考 在组织级别存在相同的设置选项。

于 2020-07-21T16:58:24.250 回答