Настройка поведения вышестоящих источников
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Благодаря источникам вышестоящий артефактов Azure разработчики получают удобство использования единого веб-канала для публикации и использования пакетов из веб-каналов Артефактов и популярных общедоступных реестров, таких как NuGet.org или npmjs.com. Ранее веб-каналы Artifact объединили список доступных версий пакетов как самого веб-канала, так и всех настроенных вышестоящий источников.
Вышестоящее поведение — это функция, которая позволяет разработчикам выбирать, хотите ли они использовать внешние исходные версии пакета. Он определяет, какие пакеты доступны из общедоступных реестров для определенных пакетов.
После включения вышестоящий поведения, когда пакет публикуется в веб-канале Azure Artifacts, любая версия из общедоступного реестра заблокирована и недоступна для скачивания.
Этот подход добавляет дополнительный уровень безопасности, предотвращая потенциальное воздействие вредоносных пакетов, которые могли бы вфильтровать общедоступные реестры.
Однако пользователи по-прежнему могут деактивировать параметр поведения вышестоящий, позволяя им использовать пакеты из общедоступных реестров, если они предпочитают это сделать.
Примечание.
Новое поведение не повлияет на версии пакетов, которые в настоящее время используются, так как они сохраняются в @local представлении веб-канала.
Применимые сценарии
В следующем разделе показаны различные распространенные сценарии, в которых поведение вышестоящий активируется для блокировки версий пакетов внешнего источника и других сценариев, в которых нет необходимости блокировать доступ к общедоступным пакетам.
Общедоступные версии заблокированы
Общедоступная версия частного пакета
В этом сценарии команда имеет частный пакет, который был открыт. Поведение вышестоящий в этом случае будет активировано для блокировки новых общедоступных версий (ненадежных пакетов).
Наличие частных и общедоступных пакетов
В этом сценарии, если команда использует сочетание частных и общедоступных пакетов, включение вышестоящий поведения блокирует любые новые версии пакетов из общедоступного реестра.
Общедоступные версии не будут заблокированы
Все пакеты являются частными*
Если все существующие пакеты являются частными, и команда не планирует использовать общедоступные пакеты, новое поведение вышестоящий не влияет на рабочий процесс команды в этом сценарии.
Все пакеты являются общедоступными
В этом сценарии, если команда использует только общедоступные пакеты, будь то из общедоступного реестра или других репозиториев с открытым кодом, новое вышестоящий поведение не влияет на их рабочий процесс каким-либо образом.
Общедоступный пакет, закрытый
В этой ситуации, когда общедоступный пакет преобразуется в частный пакет, новое поведение вышестоящий никак не влияет на рабочий процесс команды.
Разрешить внешние версии
Примечание.
Вы должны быть владельцем канала, чтобы разрешить внешние исходные версии. Дополнительные сведения см. в разделе "Разрешения веб-канала".
Войдите в организацию 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/вышестоящий ing?api-version=6.1-preview.1
Веб-канал project-область d:
$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
Связанные статьи
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по