Как вы загружаете артефакты из другого проекта в той же организации в Azure Devops?
У меня есть конвейер azure DevOps yaml в проекте A, который пытается загрузить артефакт в проекте 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, а 38 - идентификатор определения конвейера сборки, создающий артефакт в проекте B. Это отлично работает при выполнении в конвейере в рамках проекта B. Но происходит сбой с ошибкой ниже, когда я пытаюсь запустить ту же задачу из конвейера в Project 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, но он был отключен. Поэтому не уверен, какие еще настройки нужны.
1 ответ
На самом деле вариант "Ограничить область авторизации заданий текущим проектом", как объясняется в этом сообщении, является ответом https://github.com/MicrosoftDocs/azure-devops-docs/issues/6790. Просто отключил в одном из конвейеров. Как только я установил его в обоих конвейерах, он заработал. К вашему сведению. Такой же вариант настройки существует на уровне организации.