Использование пакетов из Crates.io

Azure DevOps Services

Источники артефактов Azure вышестоящий позволяют разработчикам использовать пакеты из общедоступных реестров, таких как Crates.io и nuget.org. В этой статье описано, как настроить проект и использовать командную строку для использования crates из Crates.io.

В этой статье описано, как:

  • Создание веб-канала артефактов Azure
  • Подключение в веб-канал
  • Использование ящиков из вышестоящий

Необходимые компоненты

Создание веб-канала

Azure Artifacts рекомендует использовать выделенный веб-канал для использования контейнеров из crates.io и отдельного канала исключительно для публикации внутренних ящиков.

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите артефакты и нажмите кнопку "Создать веб-канал".

  3. Введите имя веб-канала, определите его видимость и выберите область. Убедитесь, что проверка проверка почтовых источников, чтобы включить пакеты из общедоступных реестров.

  4. После завершения работы выберите Создать.

    Снимок экрана: создание веб-канала для грузовых вышестоящий.

Подключение в веб-канал

  1. Войдите в организацию Azure DevOps и перейдите к проекту.

  2. Выберите артефакты и выберите веб-канал в раскрывающемся меню.

  3. Выберите Подключение для канала, а затем выберите Cargo в области навигации слева.

  4. Если вы впервые используете Cargo с Azure Artifacts, убедитесь, что вы установили rustup.

  5. Добавьте предоставленный фрагмент кода в раздел установки Project в файл .cargo/config.toml в исходном репозитории:

    • Веб-канал Project-область d:
    [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>"
    

Настройка поставщика учетных данных

Чтобы использовать Cargo с артефактами Azure, необходимо настроить поставщика учетных данных. Указанные параметры настраивают вспомогательный компонент учетных данных по умолчанию для текущего пользователя:

Вставьте следующий фрагмент кода в файл %USERPROFILE%.cargo\config.toml:

[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]

Вход в реестр

  1. Создайте личный маркер доступа с помощью область упаковки>и записи, чтобы пройти проверку подлинности с помощью веб-канала.

  2. Выполните следующую команду, чтобы войти в реестр. Замените заполнитель именем веб-канала и вставьте личный маркер доступа, созданный на предыдущем шаге при появлении запроса:

    "Basic " + [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("PAT:" + (Read-Host -MaskInput "Enter PAT"))) | cargo login --registry <FEED_NAME>
    

Сохранение пакетов из Crates.io

Примечание.

Чтобы сохранить пакеты из вышестоящий, необходимо иметь роль веб-канала и средства чтения выше или выше. Дополнительные сведения см. в разделе Разрешения.

Теперь, когда мы настроили проект, настроили поставщика учетных данных и вошли в наш веб-канал, мы можем начать использовать пакеты из вышестоящий. Артефакты Azure сохраняют копию любого пакета, который вы устанавливаете из вышестоящий в веб-канал.

В этом примере используется serde crate, платформа сериализации и десериализации:

  1. Выполните следующую команду в каталоге проекта, чтобы добавить к файлу cargo.toml запись:

    cargo add serde
    
  2. Выполните следующую команду, чтобы создать проект и использовать ваш ящик:

    cargo build
    

После установки пакета копия будет сохранена в веб-канале. Перейдите к веб-каналу, чтобы проверить его присутствие. Пакет должен быть доступен в веб-канале, как показано ниже:

Снимок экрана, на котором показана скорость *serde*, потребляемая из вышестоящий.