Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Azure Artifacts 업스트림 원본을 사용하면 개발자는 통합 피드를 사용하여 아티팩트 피드와 인기 있는 공용 레지스트리(예: NuGet.org 또는 npmjs.com)에서 패키지를 게시하고 사용할 수 있습니다.
외부 소스 버전 허용
이 기능을 사용하면 개발자가 NuGet.org 또는 npmjs.com 같은 공용 레지스트리에서 패키지 버전을 사용할지 여부를 제어할 수 있습니다.
특정 패키지에 대해 외부 버전 허용 토글을 사용하도록 설정하면 퍼블릭 레지스트리의 버전을 다운로드할 수 있게 됩니다. 기본적으로 이 옵션은 사용할 수 없으므로 공용 레지스트리에서 잠재적으로 악의적인 패키지에 노출되지 않도록 하여 추가 보안 계층을 추가합니다. 피드 소유자여야 외부 소스에서 제공된 버전을 허용하는 기능을 활성화할 수 있습니다.
참고
이 설정을 변경해도 피드에 이미 저장된 패키지 버전에는 영향을 주지 않습니다. 이러한 버전은 이 설정에 관계없이 계속 액세스할 수 있습니다.
적용 가능한 시나리오
다음 섹션에서는 외부 버전(퍼블릭 레지스트리의 패키지)이 차단되거나 피드에 저장되는 것을 허용하는 일반적인 시나리오를 간략하게 설명합니다. 이 문서의 나머지 부분에는 퍼블릭 레지스트리의 패키지를 퍼블릭 패키지 및 Azure Artifacts 피드의 패키지가 프라이빗 패키지라고 합니다.
시나리오 1: 공용 버전이 차단됨
공개된 프라이빗 패키지 버전
이 시나리오에서 팀에는 공개된 프라이빗 패키지가 있습니다. 이 경우 외부 버전 설정으로 인해 피드가 퍼블릭 소스에서 해당 패키지 이름을 가진 새 버전의 사용을 차단합니다.
프라이빗 및 퍼블릭 패키지 모두 필요
이 시나리오에서 팀이 프라이빗 및 퍼블릭 패키지의 조합을 사용하는 경우 외부 소스 패키지를 허용하지 않으면 퍼블릭 레지스트리의 새 패키지 버전이 차단됩니다.
시나리오 2: 공용 버전이 차단되지 않음
모든 패키지는 프라이빗*
모든 기존 패키지가 비공개이고 팀에서 공개 패키지를 사용할 계획이 없는 경우 외부 버전 설정은 이 시나리오에서 팀의 워크플로에 영향을 주지 않습니다.
모든 패키지는 공용입니다.
이 시나리오에서 팀에서 퍼블릭 레지스트리 또는 다른 오픈 소스 리포지토리에서 공용 패키지를 단독으로 사용하는 경우 설정은 워크플로에 어떤 방식으로도 영향을 주지 않습니다.
비공개로 만든 퍼블릭 패키지
이 경우 퍼블릭 패키지가 프라이빗 패키지로 변환되는 경우 외부 버전 설정은 어떤 방식으로든 팀의 워크플로에 영향을 주지 않습니다.
외부 버전 허용
참고
외부 소스 버전을 허용하려면 피드 소유자 여야 합니다. 자세한 내용은 피드 권한을 참조 하세요.
Azure DevOps 조직에 로그인한 다음 프로젝트로 이동합니다.
아티팩트를 선택한 다음, 드롭다운 메뉴에서 피드를 선택합니다.
패키지를 선택한 다음, 더 많은 옵션을 보려면 줄임표 단추를 선택합니다. 외부 소스 버전 허용을 선택합니다.
외부 버전을 허용하려면 토글 단추를 선택합니다. 완료되면 닫기를 선택합니다.
REST API를 사용하여 외부 버전 허용
PowerShell을 사용하여 외부 버전 허용
-
개인 액세스 토큰에 대한 환경 변수를 만듭니다.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"
개인 액세스 토큰을 baser64로 인코딩된 문자열로 변환하고 HTTP 요청 헤더를 생성합니다.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }
엔드포인트 URL을 생성합니다. 예: //pkgs.dev.azure.com/MyOrg/MyProject/_apis/packaging/feeds/MyFeed/nuget/packages/pkg1.0.0.nupkg/upstreaming?api-version=6.1-preview.1
프로젝트 범위의 정보 피드
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
조직 전체 피드:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=6.1-preview.1"
다음 명령을 실행하여 패키지의 업스트림 동작 상태를 검색합니다.
$url
이전 $headers
섹션에서 사용한 것과 동일한 변수입니다.
Invoke-RestMethod -Uri $url -Headers $headers