Отправьте пакет Nuget в Azure DevOps

Я пытаюсь отправить пакет Nuget в DevOps Azure с MAC.

Я создал фид артефактов DevOps Azure и попытался отправить пакет, используя:

dotnet nuget push 
  --source "https://pkgs.dev.azure.com/MyProject/_packaging/MyFeed/nuget/v2" 
  --api-key "MyToken" 
  "MyPackage.nupkg"

Я сгенерировал токен следующим образом:

https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops

Я дал полный доступ пользователю, когда сгенерировал токен.

Я продолжаю иметь ошибку:

error: Unable to load the service index for source https://pkgs.dev.azure.com/mdmoura/_packaging/Moleky/nuget/v3/index.json.
error: Response status code does not indicate success: 401 (Unauthorized).

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

Чего мне не хватает?

1 ответ

Не могли бы вы попробовать это сделать:

dotnet nuget add source "https://pkgs.dev.azure.com/MyProject/_packaging/MyFeed/nuget/v2" --name MyFeed --username "YourUserName" --password "YourPatToken"

А потом

dotnet nuget push "MyPackage.nupkg" --source MyFeed --api-key az

Это эквивалент способа nuget, описанного здесь: https://docs.microsoft.com/en-us/azure/devops/artifacts/nuget/publish?view=azure-devops#create-and-publish-your-own-nuget-package

В фиде конвейер не аутентифицирован. Вам необходимо добавить задачу проверки подлинности, прежде чем пытаться отправить пакеты nuget. Попробуйте следующее

- task: NuGetAuthenticate@0
  displayName: 'Authenticate in NuGet feed'
- script: dotnet nuget push $(PATH_PIPELINE_ARTIFACT_NAME)/**/*.nupkg --source MyProject --api-key MyToken
  displayName: 'Uploads nuGet packages'

Обратите внимание на NuGetAuthenticate@0задача пройти аутентификацию заранее. Для проверки подлинности больше ничего не требуется, поскольку кажется, что вы используете артефакты Azure DevOps. В противном случае вам придется создавать соединение (подробнее https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/package/nuget-authenticate?view=azure-devops)

По команде dotnet nuget push обратите внимание, я написал полный путь с регулярным выражением **/*.nupkg. Используйте или замените этоPATH_PIPELINE_ARTIFACT_NAMEпеременная с путем, по которому в настоящее время находятся ваши загружаемые пакеты nuGet. Регулярное выражение позволит вам публиковать ВСЕ пакеты nuGet в этой папке.

Почему ты бежишь dotnet nuget push вместо nuget push?

Обратите внимание: API_KEY здесь может быть любым непустым значением, согласно документам: https://docs.microsoft.com/en-us/azure/devops/artifacts/get-started-nuget?view=azure-devops&tabs=new-nav

Другие вопросы по тегам