У нас есть сборка CI, работающая в Дженкинс. У нас есть фид пакетов NuGet в DevOps Azure, и мы получаем ошибку 401 Unauthorized
при восстановлении пакетов NuGet во время сборки:
https://pkgs.dev.azure.com/X/_packaging/FeedName@Release/nuget/v3/index.json: Невозможно загрузить индекс сервиса для источникаhttps://pkgs.dev.azure.com/X/_packaging/FeedName@Release/nuget/v3/index.json. Код состояния ответа не указывает на успех: 401 (не авторизован).
Настройка Jenkins:
- Windows 10
- Jenkins 2.199
- NuGet 5.3.1.6268
- Java 1.8.0_191
- Jenkins работает как служба Windows, вошедшая в систему «Локальная система».
У меня установлен поставщик учетных данных NuGet на компьютере Jenkins, но я установил его, когда вошел в систему под своим именем. Я повторил шаги, которые предпринял на своем ноутбуке, чтобы обойти эту проблему. Мой ноутбук работает. Сервер Jenkins не работает, и я думаю, что он как-то связан с поставщиком учетных данных NuGet, который не работает с учетной записью «Локальная система», но не знаю, как это исправить.
Сборка контролируетсяСценарий PowerShell и команда восстановления NuGet выглядят следующим образом:
& "$solutionPath"\.nuget\NuGet.exe restore "$solutionFile"
$solutionPath
- это папка, в которой существует файл .sln для Visual Studio $solutionFile
- этоточное имя файла .sln
После прочтения Как указать учетные данные для внешних фидов нугетов в VSTS восстановление наджетов Я также добавил новый "источник" в локальную установку NuGetчерез:
.\.nuget\NuGet.exe sources add -name "FeedName" -source "https://pkgs.dev.azure.com/X/_packaging/FeedName@Release/nuget/v3/index.json" -username <my username> -password <my personal access token> -configfile .\.nuget\NuGet.config
Имена пользователей, которые я пробовал:
- Мое действительное имя пользователя
- Мой e-mail
- И просто
.
,подобно тому, как конфигурации Jenkins необходимо проходить аутентификацию с помощью DevOps Azure при получении последней версии нашего кода с помощью TFVC
Аргумент -password
был копированием и вставкой токена личного доступа с разрешениями на чтение / запись дляAzure DevOpsподача артефактов.
Но опять же, когда я это сделал, меня переместили на компьютер Jenkins в качестве имени пользователя, и у меня все еще возникает та же проблема.
Как исправить 401 Unauthorized
при восстановлении пакетов NuGet во время сборки Jenkins, когда пакеты поступают из потока NuGet артефактов DevOps Azure?