AzureDevOpsでパスワードの有効期限を更新する方法

Dec 22 2020

AzureビルドパイプラインでUnitTestプロジェクトを実行している間。次のエラーが発生します:

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.

認証が必要であると記載されています。

この投稿によると、Nuke.Common /NuGet.CommandLineを介してNuGetパッケージを展開するときにAzureAuthを渡す方法は、「パスワードDevOpsの有効期限を更新する」ことをお勧めします

Azure DevOpsで有効期限を更新する方法を誰かに教えてもらえますか?その投稿にコメントする評判があまりなかったので、新しい投稿を作成する必要がありました。

回答

1 DanCsharpster Dec 22 2020 at 22:02

この場合のパスワードは、PATまたはパーソナルアクセストークンを意味すると思います。そのトークンが生成されたユーザーについて、Azure Devopsのそのユーザーとして、[ユーザー設定]-> [パーソナルアクセストークン]をクリックします。次に、目的のトークンを見つけて[編集]をクリックし、新しい目的の有効期限を選択します。

更新:ここで定義されているyamlパイプライン定義にnuget認証タスクを必ず追加してください。

1 LeoLiu-MSFT Dec 24 2020 at 14:53

AzureDevOpsでパスワードの有効期限を更新する方法

エラーログによると、URLにアクセスできることを確認する必要があります。

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

これは、アクセスするために特定の権限を必要とするフィードです。このURLをブラウザでプライベートモードで開いて、アカウントでアクセスする権限があるかどうかを確認できます。

その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

パイプラインの復元タスクで、次のオプションを選択しますか?

通常、このオプションを選択する場合、認証は必要ありません。

2番目のオプションを選択すると、復元タスクの前にNuGet認証タスクを追加して、AzureArtifactsおよびその他のNuGetリポジトリで認証するようにNuGetツールを構成できます。

NuGet資格情報プラグインを使用する以外に、dotnetcliを使用して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

コミュニティメンバーの助けを得た後、AzureDevOpsビルドパイプラインでUnitTestを実行するのに役立つ最終的なソリューションを投稿しています。UnitTestsを実行する前に追加した手順:

  1. NuGet復元タスクを追加しました
  2. NuGet認証タスクを追加しました

これがビルドパイプラインのスクリーンショットです。