Partager via


Utiliser des packages à partir de Crates.io

Azure DevOps Services | Azure DevOps Server 2022

Les sources en amont d’Azure Artifacts permettent aux développeurs de consommer des packages à partir de registres publics tels que Crates.io et nuget.org. Cet article vous guide tout au long de la configuration de votre projet et de l’utilisation de la ligne de commande pour consommer des Crates à partir de Crates.io.

Cet article vous guidera tout au long des étapes suivantes :

  • Créer un flux Azure Artifacts
  • Se connecter à votre flux
  • Consommer des crates en amont

Prérequis

Créer un flux

Azure Artifacts recommande d’avoir un flux dédié pour consommer des crates à partir de crates.io et un flux distinct exclusivement pour la publication de crates internes.

  1. Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Artifacts, puis sélectionnez Créer un flux.

  3. Entrez un nom pour votre flux, définissez sa visibilité, puis sélectionnez votre étendue. Veillez à cocher la case à cocher Sources en amont pour inclure des packages à partir de registres publics.

  4. Sélectionnez Créer lorsque vous avez terminé.

    Capture d’écran montrant comment créer un flux pour le chargement en amont.

Se connecter à votre flux

  1. Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Artefacts, puis sélectionnez votre flux dans le menu déroulant.

  3. Sélectionnez Se connecter au flux, puis sélectionnez Cargo dans le volet de navigation gauche.

  4. S’il s’agit de la première utilisation de Cargo avec Azure Artifacts, vérifiez que vous avez installé rustup.

  5. Ajoutez l’extrait de code fourni de la section d’installation de Project à votre fichier .cargo/config.toml dans votre dépôt source :

    • Flux dans l’étendue du projet :

      [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>"
      
    • Flux d’étendue de l’organisation :

      [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. Connectez-vous à votre collection Azure DevOps puis accédez à votre projet.

  2. Sélectionnez Artefacts, puis sélectionnez votre flux dans le menu déroulant.

  3. Sélectionnez Se connecter au flux, puis sélectionnez Cargo dans le volet de navigation gauche.

  4. S’il s’agit de la première utilisation de Cargo avec Azure Artifacts, vérifiez que vous avez installé rustup.

  5. Ajoutez l’extrait de code fourni de la section d’installation de Project à votre fichier .cargo/config.toml dans votre dépôt source :

    • Flux dans l’étendue du projet :

      [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>"
      
    • Flux délimité à la collection :

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

Configurer un fournisseur d’informations d’identification

Pour utiliser Cargo avec Azure Artifacts, vous devez configurer un fournisseur d’informations d’identification. Les paramètres fournis configurent un helper d’informations d’identification par défaut pour l’utilisateur actuel :

Collez l’extrait de code suivant dans votre %USERPROFILE%.cargo\config.toml :

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

Connectez-vous à votre registre

  1. Créez un jeton d’accès personnel avec des portées de Mise en package>Lecture et écriture pour vous authentifier auprès de votre flux.

  2. Exécutez la commande suivante pour vous connecter à votre registre. Remplacez l’espace réservé par le nom de votre flux et collez le jeton d’accès personnel que vous avez créé à l’étape précédente lorsque vous y êtes invité :

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

Enregistrer des packages à partir de Crates.io

Remarque

Pour enregistrer des packages à partir d’amont, vous devez disposer du rôle Flux et Lecteur en amont (Collaborateur) ou supérieur. Pour plus d’informations, consultez Gérer les autorisations .

Maintenant que nous avons configuré notre projet, configuré un fournisseur d’informations d’identification et connecté à notre flux, nous pouvons commencer à consommer des packages en amont. Azure Artifacts enregistre une copie de tout package que vous installez en amont vers votre flux.

Dans cet exemple, nous consommons la serde caisse, une infrastructure de sérialisation/désérialisation :

  1. Exécutez la commande suivante dans votre répertoire de projet pour ajouter la caisse à votre cargo.toml :

    cargo add serde
    
  2. Exécutez la commande suivante pour générer votre projet et consommer votre caisse :

    cargo build
    

Une fois votre package installé, une copie est enregistrée dans votre flux. Accédez à votre flux pour vérifier sa présence. Votre package doit être disponible dans votre flux, comme indiqué ci-dessous :

Capture d’écran montrant la caisse *serde* consommée en amont.