【问题标题】:How to update the expiration date on the password in Azure DevOps如何在 Azure DevOps 中更新密码的到期日期
【发布时间】:2020-12-22 14:26:17
【问题描述】:

在 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.

它声明需要身份验证。

根据这篇帖子How to pass Azure Auth when Deploying NuGet Package via Nuke.Common/NuGet.CommandLine,建议的解决方案是“更新密码 DevOps 的到期日期”。

谁能告诉我如何更新 Azure DevOps 的到期日期。 我在该帖子中评论的声誉并不高,因此我不得不创建一个新帖子。

【问题讨论】:

    标签: azure azure-devops nuget


    【解决方案1】:

    对于这种情况下的密码,我相信这意味着 PAT 或个人访问令牌。对于生成该令牌的任何用户,作为 Azure Devops 中的该用户,单击用户设置 -> 个人访问令牌。然后找到所需的令牌并单击编辑,然后选择新的所需到期日期。

    更新:确保在定义 here 的 yaml 管道定义中添加 nuget 身份验证任务。

    【讨论】:

    • 在用户设置下,我验证了 PAT 所有令牌都处于活动状态且未过期。在 Azure DevOps 中运行管道时是否需要除 PAT 之外的任何其他授权?
    • 也许我们应该退后一步,验证一些事情。这个 nuget 提要与您的构建管道在同一个组织下,对吗?您如何在管道中设置 nuget 身份验证?我认为这个文档可能会对您有所帮助:docs.microsoft.com/en-us/azure/devops/pipelines/tasks/package/…
    • 是的,看起来我错过了 nuget 身份验证。实际上我正在使用 .npmrc 文件来验证 npm 以恢复 nuget。在我将此任务与管道中的 NuGet 还原任务一起添加到我的构建管道中之后,然后再运行 UnitTest,它就可以工作了。谢谢!
    • 很高兴你能成功!如果您可以继续并将其标记为已接受的答案,那么此问题将不再出现在未回答列表中。我将更新我的答案以包含该任务。
    【解决方案2】:

    如何在 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>
    

    如果您使用私有代理来构建管道,您也可以直接在服务器中更新密码:

    Private NuGet Feed - Remembering Password

    注意:即使我可以在浏览器中打开该 URL,但在我的 Visual Studio 中添加该提要源作为测试后,我仍然无法从该提要中找到此包,只能找到包 microsoft.portal.testframework(不是确定我的权限是否不足):

    【讨论】:

    • 是的,我可以访问该 URL。但是在我的情况下,我无法在 nuget.config 文件中添加 PAT,因为将相同的文件添加到生产中。我在这里使用的身份验证模式是 .npmrc 文件,在构建管道中添加它之后,我的构建工作。感谢您提供详细信息。它使我对身份验证更加清晰,现在我知道身份验证也可以在 nuget.config 文件中完成。谢谢!
    • @Azhar,可以理解,那么,如果您自己解决了这个问题?如果是,请您分享您的解决方案作为答案,这样可以帮助遇到相同问题的其他社区成员,我们可以存档此线程,谢谢。
    • 通过社区成员的帮助,我得以解决。但是,我发布了可能对其他社区成员有所帮助的最终解决方案。谢谢!
    【解决方案3】:

    在你的管道的恢复任务中,你是否选择了以下选项:

    通常选择此选项不需要身份验证。

    如果选择第二个选项,则可以在还原任务之前添加NuGet authenticate 任务,以配置 NuGet 工具以使用 Azure Artifacts 和其他 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
    

    这是一个case,你可以参考。

    【讨论】:

    • 我正在使用第二个选项“我的 NuGet.config 中的馈送”,因为我有要为其还原包的 UnitTest 项目的 NuGet.config 文件。
    • 您可以尝试在还原任务之前添加 NuGet 身份验证任务或使用 dotnet cli 将凭据添加到 nuget 源
    【解决方案4】:

    在获得社区成员的帮助后,我发布了我的最终解决方案,该解决方案帮助我在 AzureDevOps 构建管道中运行 UnitTest。 我在运行 UnitTests 之前添加的步骤:

    1. 添加了 NuGet 恢复任务
    2. 添加了 NuGet 身份验证任务

    这是构建管道的屏幕截图。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多