Azure DevOps에서 암호의 만료 날짜를 업데이트하는 방법
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 패키지를 배포 할 때 Azure Auth를 전달 하는 방법 제안 된 솔루션은 " 암호 DevOps의 만료 날짜를 업데이트 "하는 것입니다.
누구나 Azure DevOps에서 만료 날짜를 업데이트하는 방법을 알 수 있습니까? 그 게시물에 댓글을다는 평판이별로 없었기 때문에 새 게시물을 작성해야했습니다.
답변
이 경우 비밀번호는 PAT 또는 Personal Access Token을 의미한다고 생각합니다. 토큰이 생성 된 사용자에 대해 Azure Devops의 해당 사용자로 사용자 설정-> 개인 액세스 토큰을 클릭합니다. 그런 다음 원하는 토큰을 찾고 편집을 클릭 한 다음 원하는 새 만료 날짜를 선택합니다.
업데이트 : 여기에 정의 된 yaml 파이프 라인 정의에 너겟 인증 작업을 추가해야합니다 .
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
(내 권한이 충분하지 않은지 확실하지 않음). ) :

파이프 라인의 복원 작업에서 다음 옵션을 선택합니까?

일반적으로이 옵션을 선택하는 데는 인증이 필요하지 않습니다.
두 번째 옵션을 선택하면 복원 작업 전에 NuGet 인증 작업을 추가하여 Azure Artifacts 및 기타 NuGet 리포지토리로 인증하도록 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
참고할 수 있는 사례가 있습니다.
커뮤니티 구성원의 도움을받은 후 AzureDevOps 빌드 파이프 라인에서 UnitTest를 실행하는 데 도움이되는 최종 솔루션을 게시하고 있습니다. UnitTests를 실행하기 전에 추가 한 단계 :
- NuGet 복원 작업 추가
- NuGet 인증 작업 추가
다음은 빌드 파이프 라인 스크린 샷입니다.
