Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020
Внешние источники Azure Artifacts позволяют разработчикам централизованное управление пакетами, используя один фид для хранения как опубликованных пакетов, так и тех, которые загружаются из общедоступных реестров, таких как NuGet.org.
Вышестоящий источник предлагает несколько преимуществ для управления зависимостями, включая простоту, надежность и целостность пакетов. См. Что такое высшие источники? для получения более подробной информации.
Разрешить внешние исходные версии
Эта функция позволяет разработчикам контролировать, следует ли использовать версии пакетов из общедоступных реестров, таких как NuGet.org или npmjs.com.
После включения переключателя "Разрешить внешние версии" для конкретного пакета версии из общедоступного реестра становятся доступными для сохранения в канале. По умолчанию этот параметр отключен, добавляя дополнительный уровень безопасности, уменьшая уязвимость к потенциально вредоносным пакетам из общедоступных реестров. Изменение этого параметра не влияет на версии пакетов, которые уже сохранены в хранилище. Эти версии остаются доступными независимо от этого параметра. Вы должны быть владельцем канала, чтобы включить функцию разрешения внешних исходных версий.
Разрешить внешние версии пакета
Чтобы включить использование внешних версий для определенного пакета, выполните следующие действия.
Примечание.
Вы должны быть владельцем канала, чтобы разрешить версии, полученные извне.
Войдите в Azure DevOps, а затем перейдите к проекту.
Выберите Артефакты, а затем выберите ваш веб-канал в раскрывающемся меню.
Выберите пакет, нажмите кнопку с многоточием для получения дополнительных параметров, а затем выберите "Разрешить внешние исходные версии".
Чтобы включить эту функцию, установите переключатель "Разрешить внешние версии ", а затем нажмите кнопку "Закрыть " после завершения.
Разрешить внешние версии с помощью REST API
Чтобы включить внешние версии для определенного пакета с помощью REST API, используйте следующие конечные точки:
Разрешить внешние версии с помощью 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Настройка поведения вышестоящей передачи Разрешите внешние исходные версии пакета, задав для этого значение versionsFromExternalUpstreamsAllowExternalVersions.$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"
Примечание.
Для распространения изменений в верхнем уровне по службе может потребоваться время. Если ваш пакет недоступен после обновления параметров, подождите до трёх часов, чтобы изменения вступили в силу.
Применимые сценарии
В этом разделе описываются распространенные сценарии, в которых внешние версии (пакеты из общедоступных реестров) заблокированы или разрешены для сохранения в веб-канале. В остальной части этой статьи мы называем пакеты из общедоступных реестров общедоступными пакетами и пакетами, хранящимися в веб-канале Артефактов Azure, как частные пакеты.
Сценарий 1. Общедоступные версии блокируются
Общедоступные версии блокируются при включении функции "Разрешить внешние версии " в следующих двух случаях:
Общедоступная версия частного пакета
Если частный пакет позже становится общедоступным, фид блокирует любые новые версии с тем же именем пакета из общедоступных источников.
Наличие частных и общедоступных пакетов
Если команда использует как частные, так и общедоступные пакеты, веб-канал блокирует все новые версии пакетов из общедоступного реестра, когда включена разрешенная внешняя версия.
Сценарий 2. Разрешены общедоступные версии
Общедоступные версии можно сохранить в канале, если функция "Разрешить внешние версии" включена в следующих трех случаях:
Все пакеты являются частными
Если все пакеты закрыты и команда не планирует использовать общедоступные пакеты, включение этого параметра не влияет на рабочий процесс команды.
Все пакеты являются общедоступными
Если команда использует только общедоступные пакеты из реестров или репозиториев с открытым кодом, включение параметра не влияет на рабочий процесс.
Общедоступный пакет стал частным
При преобразовании общедоступного пакета в частный включение настройки "разрешить внешние версии" не влияет на рабочий процесс команды.