วิธีอัปเดตวันหมดอายุของรหัสผ่านใน Azure DevOps

Dec 22 2020

ขณะรันโครงการ UnitTest ใน Azure build pipeline ฉันได้รับข้อผิดพลาดในการร้อง:

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.

ระบุว่าจำเป็นต้องมีการรับรองความถูกต้อง

ตามโพสต์นี้วิธีการส่ง Azure Auth เมื่อปรับใช้ NuGet Package ผ่าน Nuke.Common / NuGet.CommandLineวิธีแก้ปัญหาที่แนะนำคือ " อัปเดตวันที่หมดอายุในรหัสผ่าน DevOps "

ใครสามารถบอกได้ว่าฉันจะอัปเดตวันหมดอายุบน Azure DevOps ได้อย่างไร ฉันไม่มีชื่อเสียงมากนักในการแสดงความคิดเห็นในโพสต์นั้นดังนั้นฉันจึงต้องสร้างโพสต์ใหม่

คำตอบ

1 DanCsharpster Dec 22 2020 at 22:02

สำหรับรหัสผ่านในกรณีนี้ฉันเชื่อว่านี่หมายถึง PAT หรือ Personal Access Token สำหรับผู้ใช้ใดก็ตามที่สร้างโทเค็นในฐานะผู้ใช้รายนั้นใน Azure Devops ให้คลิกที่การตั้งค่าผู้ใช้ -> โทเค็นการเข้าถึงส่วนบุคคล จากนั้นค้นหาโทเค็นที่ต้องการแล้วคลิกแก้ไขจากนั้นเลือกวันหมดอายุที่ต้องการใหม่

ปรับปรุง: ตรวจสอบเพื่อเพิ่มงานรับรองความถูกต้องในความหมาย nuget yaml ท่อที่กำหนดไว้ที่นี่

1 LeoLiu-MSFT Dec 24 2020 at 14:53

วิธีอัปเดตวันหมดอายุของรหัสผ่านใน 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>

หากคุณกำลังใช้เอเจนต์ส่วนตัวเพื่อสร้างไปป์ไลน์คุณสามารถอัปเดตรหัสผ่านในเซิร์ฟเวอร์ได้โดยตรง:

ฟีด NuGet ส่วนตัว - การจำรหัสผ่าน

หมายเหตุ: แม้ว่าฉันจะสามารถเปิด URL นั้นในเบราว์เซอร์ของฉันได้ แต่ฉันยังไม่พบแพ็คเกจนี้จากฟีดนั้นหลังจากที่ฉันเพิ่มแหล่งที่มาของฟีดนั้นใน Visual Studio ของฉันเป็นการทดสอบพบเพียงแพ็คเกจเท่านั้นmicrosoft.portal.testframework(ไม่แน่ใจว่าสิทธิ์ของฉันไม่เพียงพอหรือไม่ ):

1 HughLin-MSFT Dec 23 2020 at 15:55

ในภารกิจกู้คืนไปป์ไลน์ของคุณคุณเลือกตัวเลือกต่อไปนี้หรือไม่:

โดยปกติแล้วการเลือกตัวเลือกนี้ไม่จำเป็นต้องมีการรับรองความถูกต้อง

หากคุณเลือกตัวเลือกที่สองคุณสามารถเพิ่มงานรับรองความถูกต้องของ NuGetก่อนเรียกคืนงานเพื่อกำหนดค่าเครื่องมือ 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

นี่คือกรณีที่คุณสามารถอ้างถึง

Azhar Dec 28 2020 at 18:37

หลังจากได้รับความช่วยเหลือจากสมาชิกในชุมชนแล้วฉันกำลังโพสต์โซลูชันสุดท้ายของฉันซึ่งช่วยให้ฉันรัน UnitTest ใน AzureDevOps build pipeline ขั้นตอนที่ฉันเพิ่มก่อนที่จะเรียกใช้ UnitTests:

  1. เพิ่มงาน NuGet restore
  2. เพิ่มงานรับรองความถูกต้องของ NuGet

นี่คือภาพหน้าจอสร้างไปป์ไลน์