Использование пакетов из Crates.io
Azure DevOps Services | Azure DevOps Server 2022
Источники вышестоящих источников артефактов Azure позволяют разработчикам использовать пакеты из общедоступных реестров, таких как Crates.io и nuget.org. В этой статье описано, как настроить проект и использовать командную строку для использования crates из Crates.io.
В этой статье описано, как:
- Создание веб-канала артефактов Azure
- Подключение к веб-каналу
- Использование ящиков из вышестоящего потока
Необходимые компоненты
Организация Azure DevOps. Создайте организацию , если вы еще не сделали этого.
Проект Azure DevOps. Создайте проект , если у вас его нет.
Скачайте и установите rustup.
Создание веб-канала
Azure Artifacts рекомендует использовать выделенный веб-канал для использования контейнеров из crates.io и отдельного канала исключительно для публикации внутренних ящиков.
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты и нажмите кнопку "Создать веб-канал".
Введите имя веб-канала, определите его видимость и выберите область. Установите флажок " Вышестоящий источник" , чтобы включить пакеты из общедоступных реестров.
После завершения работы выберите Создать.
Подключение к веб-каналу
Войдите в организацию Azure DevOps и перейдите к проекту.
Выберите артефакты и выберите веб-канал в раскрывающемся меню.
Выберите "Подключиться к каналу" и выберите "Cargo " в области навигации слева.
Если вы впервые используете Cargo с Azure Artifacts, убедитесь, что вы установили rustup.
Добавьте предоставленный фрагмент из раздела установки Project в файл .cargo/config.toml в исходном репозитории:
Веб-канал с областью действия проекта:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Веб-канал с областью действия организации:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Войдите в коллекцию Azure DevOps и перейдите к проекту.
Выберите артефакты и выберите веб-канал в раскрывающемся меню.
Выберите "Подключиться к каналу" и выберите "Cargo " в области навигации слева.
Если вы впервые используете Cargo с Azure Artifacts, убедитесь, что вы установили rustup.
Добавьте предоставленный фрагмент из раздела установки Project в файл .cargo/config.toml в исходном репозитории:
Веб-канал с областью действия проекта:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Веб-канал с областью действия коллекции:
[registries] <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" } [source.crates-io] replace-with = "<FEED_NAME>"
Настройка поставщика учетных данных
Чтобы использовать Cargo с артефактами Azure, необходимо настроить поставщика учетных данных. Указанные параметры настраивают вспомогательный компонент учетных данных по умолчанию для текущего пользователя:
Вставьте следующий фрагмент кода в файл %USERPROFILE%.cargo\config.toml:
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
Вход в реестр
Создайте личный маркер доступа с областями чтения и записи для>проверки подлинности в веб-канале.
Выполните следующую команду, чтобы войти в реестр. Замените заполнитель именем веб-канала и вставьте личный маркер доступа, созданный на предыдущем шаге при появлении запроса:
"Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
Сохранение пакетов из Crates.io
Примечание.
Чтобы сохранить пакеты из вышестоящих версий, необходимо иметь роль "Канал" и "Средство чтения выше" ("Совместная работа") или более поздней версии. Дополнительные сведения см. в разделе "Управление разрешениями ".
Теперь, когда мы настроили проект, настроили поставщика учетных данных и вошли в наш веб-канал, мы можем начать использовать пакеты из вышестоящего канала. Azure Artifacts сохраняет копию любого пакета, который вы устанавливаете из вышестоящего канала.
В этом примере используется serde
crate, платформа сериализации и десериализации:
Выполните следующую команду в каталоге проекта, чтобы добавить к файлу cargo.toml запись:
cargo add serde
Выполните следующую команду, чтобы создать проект и использовать ваш ящик:
cargo build
После установки пакета копия будет сохранена в веб-канале. Перейдите к веб-каналу, чтобы проверить его присутствие. Пакет должен быть доступен в веб-канале, как показано ниже: