Как обновить срок действия пароля в Azure DevOps

Во время выполнения проекта UnitTest в конвейере сборки Azure. Я получаю следующую ошибку:

Restoring NuGet package Microsoft.Portal.TestFramework.UnitTest.6.672.0.5.
  GET https://msazure.pkgs.visualstudio.com/_packaging/ae95f9fe-9452-4aa1-b167-92a7fcfc670f/nuget/v3/flat2/microsoft.portal.testframework.unittest/6.672.0.5/microsoft.portal.testframework.unittest.6.672.0.5.nupkg
  GET https://msazure.pkgs.visualstudio.com/_packaging/d387a8da-063b-4a96-afb8-093924314a98/nuget/v3/flat2/microsoft.portal.testframework.unittest/6.672.0.5/microsoft.portal.testframework.unittest.6.672.0.5.nupkg
  GET https://msazure.pkgs.visualstudio.com/_packaging/ab5b6ade-9b91-4eb5-8dc6-eacc4a5cdda7/nuget/v3/flat2/microsoft.portal.testframework.unittest/6.672.0.5/microsoft.portal.testframework.unittest.6.672.0.5.nupkg
MSBuild auto-detection: using msbuild version '16.8.2.56705' from 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin'.
  GET https://api.nuget.org/v3-flatcontainer/microsoft.portal.testframework.unittest/6.672.0.5/microsoft.portal.testframework.unittest.6.672.0.5.nupkg
  NotFound https://api.nuget.org/v3-flatcontainer/microsoft.portal.testframework.unittest/6.672.0.5/microsoft.portal.testframework.unittest.6.672.0.5.nupkg 57ms
    [CredentialProvider]Using the ADAL UI  flow for uri https://msazure.pkgs.visualstudio.com/_packaging/Toolset/nuget/v3/index.json. User sign-in required in a pop-up authentication window.

В нем указано, что требуется аутентификация.

Согласно этому сообщению Как передать Azure Auth при развертывании пакета NuGet через Nuke.Common/NuGet.CommandLine предлагаемое решение — «обновить дату истечения срока действия пароля DevOps».

Может ли кто-нибудь сказать, как я могу обновить дату истечения срока действия Azure DevOps. У меня не было большой репутации, чтобы комментировать этот пост, поэтому мне пришлось создать новый пост.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
2
0
688
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Для пароля в этом случае, я полагаю, это означает PAT или токен личного доступа. Для любого пользователя, который был сгенерирован, этот токен, как этот пользователь в Azure Devops, щелкните пользовательские настройки -> токены личного доступа. Затем найдите нужный токен и нажмите «Изменить», затем выберите новую желаемую дату истечения срока действия.

Обновление: обязательно добавьте задачу аутентификации nuget в определение конвейера yaml, определенное здесь.

В настройках пользователя я проверил PAT, все токены активны и срок их действия не истек. Существует ли какая-либо другая авторизация помимо PAT, которая требуется при запуске конвейера в Azure DevOps?

Azhar 23.12.2020 07:19

Может быть, мы должны сделать шаг назад и проверить некоторые вещи. Этот фид nuget находится в той же организации, что и ваш конвейер сборки, верно? Как у вас настроена проверка подлинности nuget в вашем конвейере? Я думаю, что этот документ может вам помочь: learn.microsoft.com/en-us/azure/devops/pipelines/tasks/packa‌​ge/…

Dan Csharpster 23.12.2020 16:15

Да, похоже, мне не хватало аутентификации nuget. На самом деле я использую файл .npmrc для аутентификации npm для восстановления nuget. После того, как я добавил эту задачу в свой конвейер сборки вместе с задачей восстановления NuGet в конвейере перед запуском UnitTest, все заработало. Спасибо!

Azhar 24.12.2020 12:33

Я рад, что у вас все получилось! Если вы можете пойти дальше и отметить это как принятый ответ, этот вопрос перестанет отображаться в списке без ответа. Я обновлю свой ответ, чтобы включить задачу.

Dan Csharpster 24.12.2020 15:46

В задаче восстановления вашего конвейера вы выбираете следующий параметр:

Обычно выбор этой опции не требует аутентификации.

Если вы выберете второй вариант, вы можете добавить задачу проверки подлинности NuGet перед задачей восстановления, чтобы настроить инструменты NuGet для проверки подлинности с помощью артефактов Azure и других репозиториев NuGet.

Помимо использования подключаемого модуля учетных данных NuGet, вы также можете использовать dotnet cli для добавления учетных данных в источник nuget.

RUN dotnet nuget add source "your-source-url" --name "source-name" --username "useless" --password "$PAT" --store-password-in-clear-text
RUN dotnet restore

Вот кейс, на который вы можете сослаться.

Я использую второй вариант «Каналы в моем NuGet.config», потому что у меня есть файл NuGet.config для проекта UnitTest, для которого я хочу восстановить пакеты.

Azhar 23.12.2020 15:30

Вы можете попробовать добавить задачу проверки подлинности NuGet перед задачей восстановления или использовать dotnet cli для добавления учетных данных в источник nuget.

Hugh Lin 25.12.2020 08:54

Как обновить срок действия пароля в Azure DevOps

Согласно журналу ошибок, вы должны убедиться, что можете получить доступ к URL-адресу:

https://msazure.pkgs.visualstudio.com/_packaging/Toolset/nuget/v3/index.json

Это фид, для доступа к которому требуются определенные разрешения. Вы можете открыть этот URL-адрес в своем браузере в приватном режиме, чтобы проверить, есть ли у вас разрешение на доступ к вашей учетной записи.

Если бы вы могли получить доступ к этому URL-адресу, вы могли бы попробовать добавить следующее в свой nuget.config

<?xml version = "1.0" encoding = "utf-8"?>
<configuration>
  <packageSources>
    <add key = "MyAzureFeed" value = "https://msazure.pkgs.visualstudio.com/_packaging/Toolset/nuget/v3/index.json" />
    <add key = "nuget.org" value = "https://api.nuget.org/v3/index.json" />
  </packageSources>

  <packageSourceCredentials>
    <MyAzureFeed>
      <add key = "Username" value = "YouAccount" />
      <add key = "ClearTextPassword" value = "xxxx(could be your PAT)" />
    </MyAzureFeed>
  </packageSourceCredentials>

</configuration>

Если вы используете частный агент для построения конвейера, вы также можете напрямую обновить пароль на сервере:

Частный канал NuGet — запоминание пароля

Примечание. Даже если бы я мог открыть этот URL-адрес в своем браузере, но я все равно не смог бы найти этот пакет из этого канала после того, как я добавил этот источник канала в свою Visual Studio в качестве теста, смог бы найти только пакет microsoft.portal.testframework (Не уверен, что мои разрешения недостаточный):

Да, я могу получить доступ к URL. Однако в моем случае я не могу добавить PAT в файл nuget.config, так как тот же файл добавляется в производство. Используемый здесь режим аутентификации — файл .npmrc, и после его добавления в конвейер сборки моя сборка заработала. Спасибо за подробную информацию. Это дало мне больше ясности в отношении аутентификации, и теперь я знаю, что аутентификацию также можно выполнить в файле nuget.config. Спасибо!

Azhar 24.12.2020 12:56

Я смог решить, получив помощь от членов сообщества. Однако я опубликовал свое окончательное решение, которое может помочь другим членам сообщества. Спасибо!

Azhar 28.12.2020 12:43

Получив помощь от членов сообщества, я публикую свое окончательное решение, которое помогло мне запустить UnitTest в конвейере сборки AzureDevOps. Шаги, которые я добавил перед запуском UnitTests:

  1. Добавлена ​​задача восстановления NuGet.
  2. Добавлена ​​задача проверки подлинности NuGet.

Вот скриншот конвейера сборки.

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