Azure Артефакты выдают ошибку 401 при публикации пакета nuget - PullRequest
0 голосов
/ 08 мая 2020

Отправка пакета Nuget в Azure Artifacts всегда дает ошибку 401. Обратите внимание, что ключ API был только что скопирован с портала Azure. В чем может быть проблема?

do tnet nuget pu sh out / MonoTorrent.1.0.39.nupkg -s "myfeed" -k "myapikey"

Вывод:

Отправка MonoTorrent.1.0.39.nupkg на 'https://pkgs.dev.azure.com/myacct/c7fc868d-fd14-4f27-a36a-8ff9add6482c/_packaging/c2fe5b0f-251b-4017-9848-ed4b906d9fc0/nuget/v2/' ...

PUT https://pkgs.dev.azure.com/myacct/c7fc868d-fd14-4f27-a36a-8ff9add6482c/_packaging/c2fe5b0f-251b-4017-9848-ed4b906d9fc0/nuget/v2/

Несанкционированный https://pkgs.dev.azure.com/myacct/c7fc868d-fd14-4f27-a36a-8ff9add6482c/_packaging/c2fe5b0f-251b-4017-9848-ed4b906d9fc0/nuget/v2/ 1248 мс

ошибка: код состояния ответа не указывает на успех: 401 (неавторизованный).

Nuget.Config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="myfeed" value="https://pkgs.dev.azure.com/myacct/myproject/_packaging/myfeed/nuget/v3/index.json" />
  </packageSources>
    <myfeed>
      <add key="Username" value="myliveidemail" />
      <add key="ClearTextPassword" value="myapikey" />
    </myfeed>
</configuration>

1 Ответ

1 голос
/ 11 мая 2020

1. Похоже, вы пытаетесь добавить учетные данные в файл Nuget.config, это не рекомендуется , потому что:

Мы настоятельно рекомендуем не проверять ваш PAT в управления источником. Любой, у кого есть доступ к вашему PAT, может получить доступ к вашим Azure DevOps Services.

Хотя это не рекомендуется, это должно работать. Для меня я использую такую ​​команду:

dotnet nuget push --source "myfeed" --api-key az Test.1.0.0.nupkg

И Nuget.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="myfeed" value="https://pkgs.dev.azure.com/myacct/myproject/_packaging/myfeed/nuget/v3/index.json" />
  </packageSources>
    <myfeed>
      <add key="Username" value="lancel" />
      <add key="ClearTextPassword" value="YourPat, instead of the APIkey" />
    </myfeed>
</configuration>

Это означает, что вам нужно создать PAT , который ограничен организации, к которым вы хотите получить доступ со следующими разрешениями: упаковка (чтение), упаковка (чтение и запись) или упаковка (чтение, запись и управление).

Тогда это должно быть <add key="ClearTextPassword" value="%PAT%" />.

2. И еще одно направление - использовать Azure Поставщик учетных данных артефактов в неинтерактивном сценарии ios.

Запустите вспомогательный сценарий, чтобы установить его автоматически и установить переменную VSS_NUGET_EXTERNAL_FEED_ENDPOINTS. Значение этой переменной должно быть:

{"endpointCredentials": [{"endpoint":"https://pkgs.dev.azure.com/myacct/myproject/_packaging/myfeed/nuget/v3/index.json", "password":"PAT"}]}

https://dev.azure.com/MerlinPack/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...