Отправьте пакет 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