Использовать фид артефактов из другого проекта (в пределах той же организации) в качестве исходного источника - PullRequest
1 голос
/ 19 марта 2020

У меня есть следующие настройки в одной организации:

  • Проект A

    • Канал A (Область проекта)
  • Проект B

    • Фид B (объем проекта) с исходными источниками:
      • ProjectA.FeedA
      • nuget.org

На данный момент все пакеты добавляются в локальное представление, которое используется по умолчанию. А в разрешениях «Локальное представление» я настроил его на «Люди в»

Когда я создаю конвейер в ProjectB, который использует шаг «Восстановление Nuget» с фидом «ProjectB.FeedB», я всегда заканчиваю с ошибкой при восстановлении пакетов:

Код состояния ответа не указывает на успешность: 502 (Bad Gateway - не найден вышестоящий источник FeedA@Local, поскольку проект вышестоящего канала с идентификатором 'xxxxx-xxxx- xxxx-xxxx-xxxxxxxxx 'удален или ему были изменены разрешения (идентификатор операции DevOps: XXXXXX-XXXX-XXXX-XXXX-XXXXXX)).)

Я выяснил, что в прошлом все каналы артефактов были «Организационная сфера». При создании каналов сейчас они имеют проектную область. Однако:

  • Я не вижу способа создания фида области организации (кроме использования API).
  • Я не знаю, как преобразовать существующее в фид области организации.
  • Если я могу настроить представление в своем фиде Project-Scoped, чтобы оно было доступно для всей организации, я думаю, это должно работать?

Есть ли какие-либо указатели на как решить это было бы очень кстати!

Ответы [ 3 ]

1 голос
/ 25 марта 2020

Я наконец понял это.

Go до

Настройки проекта> Конвейер> Настройки

Там вы можете увидеть опцию:

Ограничить область авторизации заданий текущим проектом

Этот параметр также доступен в настройках организации!

Azure devops project settings screenshot

0 голосов
/ 20 марта 2020

Я не вижу способа создания фида области организации (кроме использования API).

Боюсь, из-за этой проблемы создание поддержки не поддерживается. новые каналы в рамках организации через пользовательский интерфейс. В настоящее время поддерживается только API остальных для создания каналов для области организации.

До сих пор в нашем официальном предложении о функции для Azure форума Devops существовало такое предложение: Организация каналов новостей . Вы можете комментировать и голосовать там.

Если я смогу настроить представление в своем канале Project-Scoped, чтобы оно было доступно для всей организации, я думаю, это должно работать?

Для этой проблемы вы можете попытаться добавить другие группы Build Service Проекта к разрешениям фида в настройках Разрешения фида.

enter image description here

enter image description here

0 голосов
/ 19 марта 2020

Из документации по topi c похоже, что единственный способ - это использовать API, как вы сказали (выделение мое).

https://docs.microsoft.com/en-us/azure/devops/artifacts/feeds/project-scoped-feeds?view=azure-devops

Если вы обеспокоены тем, что в будущем ваш проект будет опубликован c, и вы хотите, чтобы ваш канал оставался закрытым, , вы можете использовать канал в масштабах организации, который автоматически создается при создании нового организация создана . В качестве альтернативы вы можете использовать API-интерфейс Create Feed, чтобы вручную создать новый канал в области организации . Вам нужно будет установить разрешения по умолчанию для нового канала вручную, используя API Permission API или параметры канала Artifacts. Создание новых каналов организации не рекомендуется .

Таким образом, у вас есть два варианта:

  • Использовать / существующий канал организации или
  • Создание канала организации вручную с помощью API (не рекомендуется).

Однако можно ли использовать специальное задание для проверки подлинности в канале проекта Azure Artifacts перед выполнением восстановить? В настоящее время мы используем фид области проекта из одного проекта в другом проекте (в рамках той же организации) с помощью задачи NuGet Authenticate:

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: 3.1.101
- task: NuGetAuthenticate@0
- task: DotNetCoreCLI@2
  displayName: 'dotnet restore with nuget.config'
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'config'
    nugetConfigPath: 'nuget.config'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...