Восстановление Nuget возвращает 401 несанкционированных во время сборки Jenkins для пакетов в фиде артефактов DevOps Azure. - PullRequest
0 голосов
/ 31 октября 2019

У нас есть сборка 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?

1 Ответ

0 голосов
/ 02 ноября 2019

Попробуйте использовать имя токена личного доступа (PAT) в качестве имени пользователя. Это имя, которое вы дали ПАТ при создании

...