Como atualizar a data de expiração da senha no Azure DevOps

Dec 22 2020

Durante a execução do projeto UnitTest no pipeline de compilação do Azure. Recebo o erro abaixo:

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.

Ele afirma que a autenticação é necessária.

De acordo com esta postagem, Como passar a autenticação do Azure ao implantar o pacote NuGet por meio do Nuke.Common / NuGet.CommandLine, a solução sugerida é " atualizar a data de expiração na senha DevOps ".

Alguém pode dizer como posso atualizar a data de expiração no Azure DevOps. Eu não tinha muita reputação para comentar naquele post, então tive que criar um novo post.

Respostas

1 DanCsharpster Dec 22 2020 at 22:02

Para senha, neste caso, acredito que significa PAT ou token de acesso pessoal. Para qualquer usuário que o token foi gerado, como esse usuário no Azure Devops, clique em configurações do usuário -> tokens de acesso pessoais. Em seguida, encontre o token desejado e clique em editar, em seguida, escolha uma nova data de expiração desejada.

Atualização: certifique-se de adicionar a tarefa de autenticação nuget na definição de pipeline yaml definida aqui .

1 LeoLiu-MSFT Dec 24 2020 at 14:53

Como atualizar a data de expiração da senha no Azure DevOps

De acordo com o log de erros, você deve se certificar de que consegue acessar o URL:

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

Este é um feed que requer certas permissões de acesso. Você pode abrir este URL em seu navegador em modo privado para verificar se você tem permissão para acessar com sua conta.

Se você pudesse acessar esse URL, você poderia tentar adicionar o seguinte ao seu 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>

Se você estiver usando um agente privado para construir o pipeline, também poderá atualizar a senha diretamente no servidor:

Feed NuGet Privado - Lembrando Senha

Nota: Mesmo se eu pudesse abrir esse URL em meu navegador, mas ainda não consegui encontrar este pacote daquele feed depois de adicionar essa fonte de feed em meu Visual Studio como teste, só poderia encontrar o pacote microsoft.portal.testframework(não tenho certeza se minhas permissões são insuficientes ):

1 HughLin-MSFT Dec 23 2020 at 15:55

Na tarefa de restauração do seu pipeline, você seleciona a seguinte opção:

Normalmente, a escolha desta opção não requer autenticação.

Se você selecionar a segunda opção, poderá adicionar uma tarefa de autenticação NuGet antes da tarefa de restauração para configurar ferramentas NuGet para autenticação com artefatos do Azure e outros repositórios NuGet.

Além de usar o plug-in de credencial NuGet, você também pode usar o dotnet cli para adicionar credenciais à origem do nuget.

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

Aqui está um caso que você pode consultar.

Azhar Dec 28 2020 at 18:37

Depois de obter ajuda dos membros da comunidade, estou postando minha solução final que me ajudou a executar o UnitTest no pipeline de compilação AzureDevOps. As etapas que adicionei antes de executar UnitTests:

  1. Adicionada tarefa de restauração NuGet
  2. Adicionada tarefa de autenticação NuGet

Aqui está a captura de tela do pipeline de construção.