#azure-devops #nuget
#azure-devops #nuget
Вопрос:
У меня есть частный пакет в 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.
Как я могу это решить?
Ответ №1:
Добавьте шаг восстановления NuGet в свою сборку и укажите его на канал артефактов.
- task: NuGetCommand@2
displayName: 'NuGet restore'
inputs:
command: 'restore'
restoreSolution: '$(Build.SourcesDirectory)/WhateverProject.sln'
feedsToUse: 'select'
vstsFeed: 'feed guid'
includeNuGetOrg: true
Дополнительная проверка подлинности не требуется, поскольку она выполняется в контексте службы, которая уже прошла проверку подлинности в вашем канале артефактов.
Комментарии:
1. У меня уже есть такой шаг, но мои azure-конвейеры. yml находится в репозитории GitHub. Таким образом, учетные данные, которые я туда поместил, отображаются в репозитории Github.
2. @MiguelMoura Вам не нужно вводить учетные данные. Я обновил свой ответ.
3. Что вы имеете в виду под идентификатором канала в vstsFeed? Я попытался использовать название канала, а также URL-адрес канала, но ни один из них не сработал.
4. @MiguelMoura Я имею в виду именно то, что я сказал: идентификатор канала. Это уникальный идентификатор, а не URL-адрес или имя. Самый простой способ, который я нашел, — это использовать визуальный конструктор и нажать кнопку «Просмотреть YAML» или использовать REST API для получения информации о фиде.
5. Просто для обновления,
vstsFeed
теперь вместо guid канала должно быть имя канала. Я думаю, что это относительно недавнее обновление Azure DevOps.