Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервисы Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022
При выпуске пакета важно убедиться, что все зависимости этого пакета доступны в вашем репозитории, путем их получения из вышестоящего источника. После получения пакета из вышестоящего источника, его копия сохраняется в вашем фиде. Это гарантирует, что даже если вышестоящий источник становится недоступным, копия будет по-прежнему доступна как для вас, так и для потребителей веб-канала.
Как источники формируют набор доступных пакетов
Так как каналы Azure Artifacts могут иметь другие каналы в качестве вышестоящих источников, существует потенциал для создания циклов вышестоящих источников, где канал A перенаправляет запросы к каналу B, который перенаправляет запросы к каналу C, и в конечном итоге канал C перенаправляет запросы обратно к каналу A. Такой цикл, если его не контролировать должным образом, может привести к проблемам с запросами пакетов, создавая бесконечный цикл, в котором пользователь запрашивает пакет из канала A, а затем A запрашивает от B, затем B запрашивает от C, и, наконец, C запрашивает обратно в A, формируя цикл.
Восходящие источники предназначены для предотвращения таких ситуаций. Когда фид ищет пакет из своих вышестоящих источников, он получает пакеты в виде, настроенном для этого источника. Это означает, что запрос веб-канала A не активирует транзитивный запрос для канала C (A -> B -> C), так как представления доступны только для чтения. В результате веб-канал A будет иметь доступ к любым пакетам из C, которые пользователем ранее были сохранены в B, но не к полному набору пакетов, доступных в C.
Это возлагает ответственность на фид B за обеспечение того, чтобы локальные пакеты представляли полный граф зависимостей. Таким образом, пользователи, использующие пакет B через вышестоящий источник из другого канала, могут успешно разрешить граф зависимостей и установить нужный пакет B без проблем.
Пример: создание набора доступных пакетов
Рассмотрим три канала: Fabrikam, Contoso и AdventureWorks. На этой иллюстрации мы рассмотрим доступные пакеты для фида Fabrikam при вводе вышестоящих источников.
Изначально Fabrikam не имеет вышестоящих источников, что позволяет пользователям, подключенным к Fabrikam, устанавливать только версии 1.0.0 и 2.0.0 пакета мини-приложений. Аналогичным образом компания Contoso не имеет вышестоящих источников, ограничивая пользователей, подключенных к Contoso, только устанавливать версии 1.0.0 и 3.0.0 пакета Gizmos. Это же относится к веб-каналу AdventureWorks, где подключенные пользователи могут устанавливать только версии 1.0.0 и 2.0.0 пакета "Гаджеты" или версии 1.0.0 пакета "Вещи".
Теперь давайте рассмотрим сценарий, в котором Contoso добавляет AdventureWorks в качестве вышестоящего источника. Когда пользователь подключен к Contoso, он получает доступ к более широкому спектру пакетов. Они могут установить любую версию Gizmos, Gadgets или Things. Например, если пользователь устанавливает Gadgets@2.0.0, эта конкретная версия пакета сохраняется в Contoso с ссылкой обратно на AdventureWorks.
Теперь рассмотрим ситуацию, когда веб-канал Fabrikam добавляет Contoso в качестве вышестоящего источника. Пользователь, подключенный к Fabrikam, может установить любую версию мини-приложений, любую версию Gizmos, но ТОЛЬКО СОХРАНЕННЫе версии гаджетов (2.0.0).
Пользователь не сможет установить версию 1.0.0.0 гаджетов или любую версию вещей, так как эти версии пакетов не были сохранены пользователем Contoso.