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
Une organisation Azure DevOps. Créez une organisation si vous n’en avez pas déjà une.
Un projet Azure DevOps. Créez un projet si vous n’en avez pas.
Téléchargez et installez rustup.
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.
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Artifacts, puis sélectionnez Créer un flux.
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.
Sélectionnez Créer lorsque vous avez terminé.
Se connecter à votre flux
Connectez-vous à votre organisation Azure DevOps puis accédez à votre projet.
Sélectionnez Artefacts, puis sélectionnez votre flux dans le menu déroulant.
Sélectionnez Se connecter au flux, puis sélectionnez Cargo dans le volet de navigation gauche.
S’il s’agit de la première utilisation de Cargo avec Azure Artifacts, vérifiez que vous avez installé rustup.
Ajoutez l’extrait de code fourni dans la section Installation de Project à votre fichier .cargo/config.toml dans votre dépôt source :
- Flux à l'échelle 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 à l'échelle 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>"
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
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.
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 :
Exécutez la commande suivante dans votre répertoire de projet pour ajouter la caisse à votre cargo.toml :
cargo add serde
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 :