Проблемы с аутентификацией при отправке пакетов во внутренний фид пакетов Azure Dev Ops - PullRequest
0 голосов
/ 10 июля 2019

У меня возникают проблемы с выяснением, как проверять подлинность и отправлять пакеты в частную ленту Azure Dev Ops - Artifacts. У меня есть догадка, что this - это то, что я ищу, но не слишком уверен, как именно он используется при использовании dotnet nuget push. Документация показывает только, как использовать его при использовании пакетов, а не при публикации пакетов в частном фиде Nuget (например, артефактах).

При использовании задачи DotNetCoreCLI@V2 с переменной окружения system.debug, установленной в значение true (для увеличения детализации журнала), я вижу, что за кулисами есть URL, который извлекается в качестве URL фида.

В задаче сборки это выглядит так

sr/bin/dotnet nuget push /home/vsts/work/1/s/src/{ProjectName}/bin/Release/{MyPackage}.0.4.5-alpha-1911.nupkg --source https://pkgs.dev.azure.com/{MyOrganisation}/_packaging/7064a25a-fa3a-7dc1-a8cb-9d05a01100ef/nuget/v3/index.json --api-key VSTS

Исходный URL-адрес создается для каждой сборки как уникальный, и я думаю, что это как-то связано с моей проблемой. Сам канал указывает URL-адрес канала как https://pkgs.dev.azure.com/{MyOrganisation}/_packaging/{MyProject}/nuget/v3/index.json при переходе к параметрам канала в самом Azure Dev Ops.

Так что, к сожалению, ничего не получалось. Я подумал, что было бы здорово, если бы я мог использовать токен частного доступа (PAT) для аутентификации во внутреннем фиде Nuget.

Я выясняю это, потому что мне нужно, чтобы это работало как вне среды разработки Azure, так что использование задачи конвейеров Azure в моем случае не годится.

1 Ответ

0 голосов
/ 10 июля 2019

Мне удалось сделать это успешно с помощью NuGet.exe (nuget push вместо dotnet nuget push).

На странице ленты нажмите кнопку «Подключиться к каналу».Там есть ссылка на «Скачать NuGet + поставщик учетных данных».В zip-файле будут находиться копии NuGet.exe и CredentialProvider.VSS.exe.Распакуйте их в одну папку.

Когда вы запускаете nuget push из этого каталога (скопируйте синтаксис команды с той же страницы, где написано «Push a package», подставляя имя вашего файла .nupkg), CredentialProvider запрашивает ваши учетные данные и обрабатываетотдых для тебя.CredentialProvider.VSS.exe должен находиться в том же каталоге, что и NuGet.exe

...