Comment mettre à jour la date d'expiration du mot de passe dans Azure DevOps

Dec 22 2020

Lors de l'exécution du projet UnitTest dans le pipeline de build Azure. J'obtiens une erreur ci-dessous:

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.

Il indique que l'authentification est requise.

Selon ce post Comment passer Azure Auth lors du déploiement du package NuGet via Nuke.Common / NuGet.CommandLine, la solution suggérée est de « mettre à jour la date d'expiration du mot de passe DevOps ».

Quelqu'un peut-il dire comment puis-je mettre à jour la date d'expiration sur Azure DevOps. Je n'avais pas beaucoup de réputation à commenter dans ce post, j'ai donc dû créer un nouveau post.

Réponses

1 DanCsharpster Dec 22 2020 at 22:02

Pour le mot de passe dans ce cas, je pense que cela signifie PAT ou Personal Access Token. Quel que soit l'utilisateur généré par ce jeton, en tant qu'utilisateur dans Azure Devops, cliquez sur Paramètres utilisateur -> jetons d'accès personnels. Recherchez ensuite le jeton souhaité et cliquez sur Modifier, puis choisissez une nouvelle date d'expiration souhaitée.

Mise à jour: assurez-vous d'ajouter la tâche d'authentification nuget dans la définition du pipeline yaml définie ici .

1 LeoLiu-MSFT Dec 24 2020 at 14:53

Comment mettre à jour la date d'expiration du mot de passe dans Azure DevOps

Selon le journal des erreurs, vous devez vous assurer que vous pouvez accéder à l'URL:

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

Il s'agit d'un flux qui nécessite certaines autorisations pour y accéder. Vous pouvez ouvrir cette URL dans votre navigateur en mode privé pour vérifier si vous avez l'autorisation d'accéder avec votre compte.

Si vous pouviez accéder à cette URL, vous pouvez essayer d'ajouter les éléments suivants dans votre 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>

Si vous utilisez un agent privé pour créer le pipeline, vous pouvez également mettre à jour le mot de passe directement sur le serveur:

Flux NuGet privé - Mémorisation du mot de passe

Remarque: même si je pouvais ouvrir cette URL dans mon navigateur, mais que je ne pouvais toujours pas trouver ce package à partir de ce flux après avoir ajouté cette source de flux dans mon Visual Studio en tant que test, je ne pourrais trouver que le package microsoft.portal.testframework(Je ne sais pas si mes autorisations sont insuffisantes ):

1 HughLin-MSFT Dec 23 2020 at 15:55

Dans la tâche de restauration de votre pipeline, sélectionnez-vous l'option suivante:

En général, le choix de cette option ne nécessite pas d'authentification.

Si vous sélectionnez la deuxième option, vous pouvez ajouter une tâche d' authentification NuGet avant la tâche de restauration pour configurer les outils NuGet afin de s'authentifier avec Azure Artifacts et d'autres référentiels NuGet.

Outre l'utilisation du plug-in d'informations d'identification NuGet, vous pouvez également utiliser le cli dotnet pour ajouter des informations d'identification à la source nuget.

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

Voici un cas auquel vous pouvez vous référer.

Azhar Dec 28 2020 at 18:37

Après avoir obtenu l'aide des membres de la communauté, je publie ma solution finale qui m'a aidé à exécuter le test UnitTest dans le pipeline de build AzureDevOps. Les étapes que j'ai ajoutées avant d'exécuter UnitTests:

  1. Ajout de la tâche de restauration NuGet
  2. Ajout de la tâche d'authentification NuGet

Voici la capture d'écran du pipeline de construction.