Uso de paquetes de carga desde Crates.io

Servicios de Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Los orígenes ascendentes de Azure Artifacts permiten a los desarrolladores consumir paquetes de registros públicos como Crates.io y nuget.org. Este artículo le guiará a través de la configuración del proyecto y el uso de la línea de comandos para consumir Crates desde Crates.io.

Requisitos previos

Producto Requisitos
Azure DevOps - Una organización de Azure DevOps .
- Un proyecto de Azure DevOps .
- Descargue e instale rustup. Necesitará Cargo versión 1.74.0 o posterior.

Crear feed

Azure Artifacts recomienda tener un feed dedicado para consumir contenedores de crates.io y una fuente independiente exclusivamente para publicar contenedores internos. Si ya tiene un feed de Azure Artifacts, vaya a la sección siguiente. De lo contrario, cree uno nuevo de la siguiente manera:

  1. Inicie sesión en su organización de Azure DevOps y vaya al proyecto.

  2. Seleccione Artifacts y, a continuación, seleccione Crear fuente.

  3. Proporcione un nombre para su canal, seleccione la visibilidad para definir quién puede ver sus paquetes y elija el ámbito del canal. Marca la casilla Incluir paquetes de fuentes públicas comunes para habilitar las fuentes de origen en tu feed.

  4. Seleccione Crear cuando haya terminado.

    Captura de pantalla que muestra cómo crear un feed para consumir crates del origen de Crates.io.

Conexión a la fuente

Ahora que tiene una fuente, debe configurar el archivo config.toml , configurar un proveedor de credenciales y, a continuación, iniciar sesión en el registro para autenticarse con la fuente.

Configuración del proyecto

  1. Inicie sesión en su organización de Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione tu feed en el menú desplegable.

  3. Seleccione Conectar a la fuente y, a continuación, seleccione Cargo en el panel de navegación izquierdo.

  4. Copie el fragmento de código de la sección Configuración del proyecto y péguelo en el archivo .cargo/config.toml en el repositorio de origen. Debería tener un aspecto similar al siguiente:

    • Fuente con ámbito de proyecto:

      [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>"
      
    • Feed con ámbito de organización:

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      
  1. Inicie sesión en la colección de Azure DevOps y vaya al proyecto.

  2. Seleccione Artefactos y, a continuación, seleccione tu feed en el menú desplegable.

  3. Seleccione Conectar a la fuente y, a continuación, seleccione Cargo en el panel de navegación izquierdo.

  4. Copie el fragmento de código de la sección Configuración del proyecto y péguelo en el archivo .cargo/config.toml en el repositorio de origen. Debe tener un aspecto similar al siguiente:

    • Fuente con ámbito de proyecto:

      [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>"
      
    • Fuente con ámbito de colección:

      [registries]
      <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<COLLECTION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
      
      [source.crates-io]
      replace-with = "<FEED_NAME>"
      

Configuración de un proveedor de credenciales

Para usar Cargo con Azure Artifacts, debe configurar un proveedor de credenciales. La siguiente configuración establecerá un asistente de credenciales predeterminado para el usuario:

Pegue el fragmento de código siguiente en el %USERPROFILE%.cargo\config.toml:

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

Inicia sesión en el registro

  1. Cree un token de acceso personal con ámbitos de lectura y escritura >de empaquetado para autenticarse con el feed.

  2. Ejecute el siguiente comando para iniciar sesión en el registro. Sustituye <FEED_NAME> por el nombre de tu feed y, cuando se te solicite, pega el token de acceso personal que has creado anteriormente.

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

Guardar paquetes de Crates.io

Ahora que tu proyecto está configurado, el proveedor de credenciales está configurado y estás autenticado con tu feed, puedes empezar a consumir paquetes de fuentes de origen. Azure Artifacts guarda automáticamente una copia de cualquier paquete que instale desde el origen primario a su feed.

El siguiente ejemplo muestra cómo consumir el reqwest crate, una biblioteca de cliente HTTP utilizada para realizar solicitudes HTTP:

  1. Agregue el contenedor a cargo.toml ejecutando el siguiente comando en el directorio del proyecto:

    cargo add reqwest
    
  2. Ejecute el siguiente comando para compilar su proyecto y usar su crate:

    cargo build
    

Una vez instalado el paquete, se guardará una copia en el feed. Para comprobarlo, navegue hasta su feed en Azure DevOps. El paquete debería estar disponible en tu feed, tal y como se muestra a continuación:

Captura de pantalla que muestra el crate reqwest en un feed de Azure Artifacts después de guardarlo desde Crates.io.

Nota:

Para guardar paquetes desde orígenes upstream, debe tener el rol Feed and Upstream Reader (Collaborator) o uno superior. Consulte Roles y permisos del feed para obtener más detalles.