У меня есть частный пакет Azure DevOps, который я использую в проекте API.
Для этого у меня есть в этом проекте API следующее:
<?xml version = "1.0" encoding = "utf-8"?>
<configuration>
<packageSources>
<clear />
<add key = "nuget" value = "https://api.nuget.org/v3/index.json" />
<add key = "mypack" value = "https://pkgs.dev.azure.com/org/_packaging/mypack/nuget/v3/index.json" />
</packageSources>
<packageSourceCredentials>
<mypack>
<add key = "Username" value = "EmailUserInDevOps" />
<add key = "ClearTextPassword" value = "TokenFromDevOps" />
</mypack>
</packageSourceCredentials>
</configuration>
Он отлично работает на моей машине разработки...
Но я также хочу построить проект API с помощью DevOps.
Для этого я подключаю DevOps к репозиторию Github, где находится проект API.
Но в этом репозитории у меня нет файла Nuget.config.
У меня его нет, чтобы не раскрывать мой пароль ленте mypack.
Как я могу это решить?
Добавьте в сборку шаг восстановления NuGet и укажите его в канале артефактов.
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
command: 'restore'
restoreSolution: '$(Build.SourcesDirectory)/WhateverProject.sln'
feedsToUse: 'select'
vstsFeed: 'feed guid'
includeNuGetOrg: true
Дополнительная проверка подлинности не требуется, так как она выполняется в контексте службы, которая уже прошла проверку подлинности для вашего фида артефактов.
@MiguelMoura Вам не нужно вводить учетные данные. Я обновил свой ответ.
Что вы имеете в виду под Feed Guid в vstsFeed? Я пытался использовать имя канала, а также URL-адрес канала, и ни один из них не работал.
@MiguelMoura Я имею в виду именно то, что сказал: GUID фида. Это уникальный идентификатор, а не URL или имя. Самый простой способ, который я нашел, - это использовать визуальный дизайнер и нажать кнопку «Просмотреть YAML» или использовать REST API для получения информации о фиде.
Просто чтобы обновить, vstsFeed
теперь должно быть именем канала, а не гидом канала. Я думаю, что это относительно недавнее обновление Azure DevOps.
У меня уже есть такой шаг, но мой azure-pipelines.yml находится в репозитории GitHub. Таким образом, учетные данные, которые я указал, доступны в репозитории Github.