Använda paket från Crates.io
Azure DevOps Services
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
- Anslut till ditt flöde
- Förbruka lådor från uppströms
Förutsättningar
En Azure DevOps-organisation. Skapa en organisation om du inte redan har gjort det.
Ett Azure DevOps-projekt. Skapa ett projekt om du inte har något.
Ladda ned och installera rustup.
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.
Logga in på din Azure DevOps-organisation och navigera sedan till projektet.
Välj Artefakter och välj sedan Skapa feed.
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.
Välj Skapa när du är klar.
Anslut till ditt flöde
Logga in på din Azure DevOps-organisation och navigera sedan till projektet.
Välj Artefakter och välj sedan din feed från den nedrullningsbara menyn.
Välj Anslut som ska matas och välj sedan Last i det vänstra navigeringsfönstret.
Om det är första gången du använder Last med Azure Artifacts kontrollerar du att du har installerat rustup.
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
Skapa en personlig åtkomsttoken med omfång för att paketera>läs- och skrivomfattningar för att autentisera med ditt flöde.
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 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:
Kör följande kommando i projektkatalogen för att lägga till lådan i din cargo.toml:
cargo add serde
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: