Dela via


Använda paket från Crates.io

Azure DevOps Services | Azure DevOps Server 2022

Uppströmskällor i Azure Artifacts gör det möjligt för utvecklare att använda paket från offentliga register som Crates.io och nuget.org. I den här artikeln får du hjälp med att konfigurera projektet och använda kommandoraden för att använda crates från Crates.io.

Den här artikeln vägleder dig genom hur du:

  • Skapa en Azure Artifacts-feed
  • Ansluta till din feed
  • Förbruka lådor från uppströms

Förutsättningar

Skapa en feed

Azure Artifacts rekommenderar att du har ett dedikerat flöde för att använda lådor från crates.io och ett separat flöde exklusivt för publicering av interna lådor.

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan Skapa feed.

  3. Ange ett namn för feeden, definiera dess synlighet och välj sedan omfånget. Kontrollera kryssrutan Uppströmskällor för att inkludera paket från offentliga register.

  4. Välj Skapa när du är klar.

    En skärmbild som visar hur du skapar ett flöde för last uppströms.

Ansluta till din feed

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.

  3. Välj Anslut för att mata och välj sedan Last i det vänstra navigeringsfönstret.

  4. Om det är första gången du använder Last med Azure Artifacts kontrollerar du att du har installerat rustup.

  5. Lägg till det angivna kodfragmentet i avsnittet Projektkonfiguration i filen .cargo/config.toml i källlagringsplatsen:

    • Flöde med projektomfattning:
    [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>"
    
    • Flöde med organisationsomfattning:
    [registries]
    <FEED_NAME> = { index = "sparse+https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/Cargo/index/" }
    
    [source.crates-io]
    replace-with = "<FEED_NAME>"
    

Konfigurera en provider för autentiseringsuppgifter

Om du vill använda Last med Azure Artifacts måste du konfigurera en provider för autentiseringsuppgifter. De angivna inställningarna konfigurerar en standardhjälp för autentiseringsuppgifter för den aktuella användaren:

Klistra in följande kodfragment i din %USERPROFILE%.cargo\config.toml:

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

Logga in i registret

  1. Skapa en personlig åtkomsttoken med omfång för att paketera>läs- och skrivomfattningar för att autentisera med ditt flöde.

  2. Kör följande kommando för att logga in i registret. Ersätt platshållaren med feedens namn och klistra in den personliga åtkomsttoken som du skapade i föregående steg när du tillfrågas:

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

Spara paket från Crates.io

Kommentar

Om du vill spara paket från uppströms måste du ha rollen Feed och Upstream Reader (Kollaboratör) eller högre. Mer information finns i Hantera behörigheter .

Nu när vi har konfigurerat vårt projekt, konfigurerat en provider för autentiseringsuppgifter och loggat in i vårt flöde kan vi börja använda paket uppströms. Azure Artifacts sparar en kopia av alla paket som du installerar från uppströms till feeden.

I det här exemplet använder serde vi lådan, ett serialiserings-/deserialiseringsramverk:

  1. Kör följande kommando i projektkatalogen för att lägga till lådan i din cargo.toml:

    cargo add serde
    
  2. Kör följande kommando för att skapa projektet och använda din låda:

    cargo build
    

När paketet har installerats sparas en kopia i feeden. Gå till feeden för att verifiera dess närvaro. Paketet ska vara tillgängligt i feeden, enligt nedan:

En skärmbild som visar den *serde* crate som förbrukas från uppströms.