Share via


Pakketten uit Crates.io gebruiken

Azure DevOps Services

Met upstream-bronnen van Azure Artifacts kunnen ontwikkelaars pakketten van openbare registers gebruiken, zoals Crates.io en nuget.org. In dit artikel wordt u begeleid bij het instellen van uw project en het gebruik van de opdrachtregel voor het verbruik van kratten uit Crates.io.

In dit artikel wordt uitgelegd hoe u het volgende kunt doen:

  • Een Azure Artifacts-feed maken
  • Verbinding maken naar uw feed
  • Kratten van upstream verbruiken

Vereisten

Een feed maken

Azure Artifacts raadt aan om een speciale feed te gebruiken voor het verbruik van kratten uit crates.io en een afzonderlijke feed uitsluitend voor het publiceren van interne kratten.

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens Feed maken.

  3. Voer een naam in voor uw feed, definieer de zichtbaarheid en selecteer vervolgens uw bereik. Schakel het selectievakje Upstream-bronnen in om pakketten uit openbare registers op te nemen.

  4. Selecteer Maken wanneer u klaar bent.

    Een schermopname die laat zien hoe u een feed voor lading upstream maakt.

Verbinding maken naar uw feed

  1. Meld u aan bij uw Azure DevOps-organisatie en navigeer vervolgens naar uw project.

  2. Selecteer Artefacten en selecteer vervolgens uw feed in de vervolgkeuzelijst.

  3. Selecteer Verbinding maken om te voeren en selecteer vervolgens Cargo in het linkernavigatiedeelvenster.

  4. Als dit de eerste keer is dat u Cargo gebruikt met Azure Artifacts, controleert u of u roest hebt geïnstalleerd.

  5. Voeg het opgegeven fragment in de sectie Project-installatie toe aan uw .cargo/config.toml-bestand in uw bronopslagplaats:

    • Feed met projectbereik:
    [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 met organisatiebereik:
    [registries]
    <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
    
    [source.crates-io]
    replace-with = "<FEED_NAME>"
    

Een referentieprovider configureren

Als u Cargo wilt gebruiken met Azure Artifacts, moet u een referentieprovider instellen. Met de opgegeven instellingen wordt een standaardreferentiehulp voor de huidige gebruiker geconfigureerd:

Plak het volgende fragment in uw %USERPROFILE%.cargo\config.toml:

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

Meld u aan bij uw register

  1. Maak een persoonlijk toegangstoken met lees- en schrijfbereiken voor pakketten>om te verifiëren met uw feed.

  2. Voer de volgende opdracht uit om u aan te melden bij uw register. Vervang de tijdelijke aanduiding door de naam van uw feed en plak het persoonlijke toegangstoken dat u in de vorige stap hebt gemaakt wanneer u hierom wordt gevraagd:

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

Pakketten opslaan vanuit Crates.io

Notitie

Als u pakketten wilt opslaan vanuit upstreams, moet u de rol Feed en Upstream Reader (Samenwerker) of hoger hebben. Zie Machtigingen voor meer informatie.

Nu we ons project hebben ingesteld, een referentieprovider hebben geconfigureerd en zich hebben aangemeld bij onze feed, kunnen we pakketten van upstream gaan gebruiken. Azure Artifacts slaat een kopie op van elk pakket dat u vanuit upstream naar uw feed installeert.

In dit voorbeeld gebruiken we de serde kist, een serialisatie-/deserialisatieframework:

  1. Voer de volgende opdracht uit in uw projectmap om de krat toe te voegen aan uw cargo.toml:

    cargo add serde
    
  2. Voer de volgende opdracht uit om uw project te bouwen en uw krat te gebruiken:

    cargo build
    

Zodra uw pakket is geïnstalleerd, wordt er een kopie opgeslagen in uw feed. Navigeer naar uw feed om de aanwezigheid ervan te controleren. Uw pakket moet beschikbaar zijn in uw feed, zoals hieronder wordt weergegeven:

Een schermopname van de *serde*-krat die is verbruikt vanuit de upstream.