Cách cập nhật ngày hết hạn trên mật khẩu trong Azure DevOps

Dec 22 2020

Trong khi chạy dự án UnitTest trong Azure xây dựng đường ống. Tôi gặp lỗi sau:

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.

Nó nói rằng xác thực là bắt buộc.

Theo bài đăng này Làm thế nào để vượt qua Azure Auth khi triển khai NuGet Package qua Nuke.Common / NuGet.CommandLine , giải pháp được đề xuất là " cập nhật ngày hết hạn trên mật khẩu DevOps ".

Bất cứ ai có thể cho biết làm thế nào tôi có thể cập nhật ngày hết hạn trên Azure DevOps. Tôi không có nhiều danh tiếng để bình luận trong bài đăng đó vì vậy tôi phải tạo một bài đăng mới.

Trả lời

1 DanCsharpster Dec 22 2020 at 22:02

Đối với mật khẩu trong trường hợp này, tôi tin rằng điều này có nghĩa là PAT hoặc Mã truy cập cá nhân. Đối với bất kỳ người dùng nào mã thông báo đó được tạo, với tư cách là người dùng đó trong Azure Devops, hãy nhấp vào cài đặt người dùng -> mã thông báo truy cập cá nhân. Sau đó, tìm mã thông báo mong muốn và nhấp vào chỉnh sửa, sau đó chọn ngày hết hạn mong muốn mới.

Cập nhật: đảm bảo thêm tác vụ xác thực nuget trong định nghĩa đường ống yaml được xác định tại đây .

1 LeoLiu-MSFT Dec 24 2020 at 14:53

Cách cập nhật ngày hết hạn trên mật khẩu trong Azure DevOps

Theo nhật ký lỗi, bạn nên đảm bảo rằng bạn có thể truy cập URL:

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

Đây là nguồn cấp dữ liệu yêu cầu một số quyền nhất định để truy cập. Bạn có thể mở URL này trong trình duyệt của mình ở chế độ riêng tư để kiểm tra xem bạn có quyền truy cập bằng tài khoản của mình hay không.

Nếu bạn có thể truy cập URL đó, bạn có thể thử thêm thông tin sau vào 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>

Nếu bạn đang sử dụng tác nhân riêng để xây dựng đường dẫn, bạn cũng có thể cập nhật trực tiếp mật khẩu trong máy chủ:

Nguồn cấp dữ liệu NuGet riêng tư - Ghi nhớ mật khẩu

Lưu ý: Ngay cả khi tôi có thể mở URL đó trong trình duyệt của mình, nhưng tôi vẫn không thể tìm thấy gói này từ nguồn cấp dữ liệu đó sau khi tôi thêm nguồn cấp dữ liệu đó trong Visual Studio của mình dưới dạng thử nghiệm, chỉ có thể tìm thấy gói microsoft.portal.testframework(Không chắc chắn nếu quyền của tôi không đủ ):

1 HughLin-MSFT Dec 23 2020 at 15:55

Trong tác vụ khôi phục đường ống của bạn, bạn có chọn tùy chọn sau:

Thông thường việc chọn tùy chọn này không yêu cầu xác thực.

Nếu bạn chọn tùy chọn thứ hai, bạn có thể thêm một tác vụ xác thực NuGet trước khi khôi phục tác vụ để định cấu hình các công cụ NuGet để xác thực với Azure Artifacts và các kho NuGet khác.

Bên cạnh việc sử dụng plugin thông tin đăng nhập NuGet, Bạn cũng có thể sử dụng cli dotnet để thêm thông tin đăng nhập vào nguồn nuget.

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

Đây là một trường hợp bạn có thể tham khảo.

Azhar Dec 28 2020 at 18:37

Sau khi nhận được sự trợ giúp từ các thành viên trong cộng đồng, tôi đang đăng giải pháp cuối cùng của mình để giúp tôi chạy UnitTest trong quy trình xây dựng AzureDevOps. Các bước tôi đã thêm trước khi chạy UnitTests:

  1. Đã thêm tác vụ khôi phục NuGet
  2. Đã thêm tác vụ xác thực NuGet

Đây là ảnh chụp màn hình xây dựng đường ống.