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

Dec 22 2020

При запуске проекта 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 при развертывании пакета NuGet через Nuke.Common / NuGet.CommandLine, предлагаемое решение - « обновить дату истечения срока действия пароля DevOps ».

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

Ответы

1 DanCsharpster Dec 22 2020 at 22:02

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

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

1 LeoLiu-MSFT Dec 24 2020 at 14:53

Как обновить срок действия пароля в 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(не уверен, что мои разрешения недостаточны ):

1 HughLin-MSFT Dec 23 2020 at 15:55

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

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

Если вы выберете второй вариант, вы можете добавить задачу проверки подлинности 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

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

Azhar Dec 28 2020 at 18:37

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

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

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