Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Azure Artifacts 업스트림 원본을 사용하면 개발자가 단일 피드를 사용하여 게시된 패키지와 NuGet.org 같은 공용 레지스트리에서 사용하는 패키지를 모두 저장하여 패키지 관리를 중앙 집중화할 수 있습니다.
업스트림 원본은 단순성, 안정성 및 패키지 무결성을 포함하여 종속성을 관리하는 데 몇 가지 이점을 제공합니다. 자세한 내용은 업스트림 원본이란? 및을 참조하십시오.
외부 소스 버전 허용
이 기능을 사용하면 개발자가 NuGet.org 또는 npmjs.com 같은 공용 레지스트리에서 패키지 버전을 사용할지 여부를 제어할 수 있습니다.
특정 패키지에 대해 외부 버전 허용 토글을 사용하도록 설정하면 공용 레지스트리의 버전을 피드에 저장할 수 있게 됩니다. 기본적으로 이 옵션은 사용할 수 없으므로 공용 레지스트리에서 잠재적으로 악의적인 패키지에 대한 노출을 줄여 보안 계층을 추가합니다. 이 설정을 변경해도 피드에 이미 저장된 패키지 버전에는 영향을 주지 않습니다. 이러한 버전은 이 설정에 관계없이 계속 액세스할 수 있습니다. 피드 소유자여야 외부 소스에서 제공된 버전을 허용하는 기능을 활성화할 수 있습니다.
패키지에 대한 외부 버전 허용
특정 패키지에 대해 외부 버전을 사용할 수 있도록 하려면 다음 단계를 수행합니다.
참고
외부 소스 버전을 허용하려면 피드 소유자 여야 합니다.
Azure DevOps에 로그인한 다음, 프로젝트로 이동합니다.
아티팩트를 선택한 후 드롭다운 메뉴에서 피드를 선택합니다.
패키지를 선택하고, 줄임표 단추를 선택하여 추가 옵션을 선택한 다음, 외부 소스 버전 허용을 선택합니다.
외부 버전 허용을 설정/해제하여 기능을 사용하도록 설정한 다음, 완료되면 닫기를 선택합니다.
REST API를 사용하여 외부 버전 허용
REST API를 사용하여 특정 패키지에 대해 외부 버전을 사용하도록 설정하려면 다음 엔드포인트를 사용합니다.
| 패키지 유형 | API 엔드포인트 |
|---|---|
| NuGet |
-
업스트림 동작 설정 - 업스트림 동작 가져오기 |
| npm |
-
업스트림 동작 설정 - 범위가 지정된 업스트림 동작 설정 - 패키지 업스트림 동작 가져오기 - 범위가 지정된 패키지 업스트림 동작 가져오기 |
| 파이썬 |
-
업스트림 동작 가져오기 - 업스트림 동작 설정 |
| Maven |
-
업스트림 동작 가져오기 - 업스트림 동작 설정 |
| 화물 |
-
업스트림 동작 가져오기 - 업스트림 동작 설정 |
PowerShell을 사용하여 외부 버전 허용
PowerShell을 사용하여 특정 패키지에 대해 외부 버전을 사용하도록 설정하려면 다음 단계를 수행합니다.
개인 액세스 토큰에 대한 환경 변수를 만듭니다.
$env:PATVAR = "YOUR_PERSONAL_ACCESS_TOKEN"개인 액세스 토큰을 Base64로 인코딩된 문자열로 변환하고 HTTP 요청 헤더를 생성합니다.
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$env:PatVar"))) $headers = @{ Authorization = "Basic $token" }피드 유형에 따라 엔드포인트 URL을 생성합니다.
프로젝트 범위의 정보 피드
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"조직 전체 피드:
$url = "https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_apis/packaging/feeds/<FEED_NAME>/<PROTOCOL>/packages/<PACKAGE_NAME>/upstreaming?api-version=7.2-preview.1"
시나리오에 따라 테이블에서 명령을 실행합니다.
조치 Description Command 업스트림 동작 가져오기 패키지의 업스트림 동작 상태를 검색합니다. 이전 단계에서 가져온 $url및$headers를 사용합니다.Invoke-RestMethod -Uri $url -Headers $headers업스트림 동작 설정 패키지의 외부 소스 버전을 허용하려면 versionsFromExternalUpstreams를AllowExternalVersions로 설정하십시오.$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"업스트림 동작 지우기 versionsFromExternalUpstreams을Auto로 설정하여 업스트림 동작을 재설정합니다.$body = '{"versionsFromExternalUpstreams": "Auto"}'
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"
참고
업스트림 동작을 변경하면 서비스 전체에 전파하는 데 시간이 걸릴 수 있습니다. 설정을 업데이트한 후 패키지를 사용할 수 없는 경우 변경 내용이 적용되는 데 최대 3시간이 걸릴 수 있습니다.
적용 가능한 시나리오
이 섹션에서는 외부 버전(퍼블릭 레지스트리의 패키지)이 차단되거나 피드에 저장되는 것을 허용하는 일반적인 시나리오에 대해 설명합니다. 이 문서의 나머지 부분에 대해서는 퍼블릭 레지스트리의 패키지를 Azure Artifacts 피드에 저장된 퍼블릭 패키지 및 패키지를 프라이빗 패키지라고 합니다.
시나리오 1: 공용 버전이 차단됨
다음 두 경우에서 외부 버전 허용 기능을 사용하도록 설정하면 퍼블릭 버전이 피드에 저장되지 않도록 차단됩니다.
공개된 프라이빗 패키지 버전
프라이빗 패키지가 나중에 공개되면 피드는 공용 원본에서 동일한 패키지 이름을 가진 새 버전을 차단합니다.
프라이빗 및 퍼블릭 패키지 모두 필요
팀에서 프라이빗 및 퍼블릭 패키지를 모두 사용하는 경우 피드는 허용 외부 버전이 사용하도록 설정된 경우 공용 레지스트리에서 새 패키지 버전을 차단합니다.
시나리오 2: 공용 버전 허용
다음 세 가지 경우 에서 외부 버전 허용 기능을 사용하도록 설정하면 공용 버전을 피드에 저장할 수 있습니다.
모든 패키지는 비공개입니다.
모든 패키지가 비공개이고 팀에서 퍼블릭 패키지를 사용할 계획이 없는 경우 이 설정을 사용하도록 설정해도 팀 워크플로에 영향을 주지 않습니다.
모든 패키지는 공용입니다.
팀에서 레지스트리 또는 오픈 소스 리포지토리에서 퍼블릭 패키지를 단독으로 사용하는 경우 설정을 사용하도록 설정해도 워크플로에 영향을 주지 않습니다.
비공개로 만든 퍼블릭 패키지
공용 패키지가 나중에 프라이빗으로 변환되는 경우 허용 외부 버전 설정을 사용하도록 설정해도 팀의 워크플로에 영향을 주지 않습니다.