Condividi tramite


Usare pacchetti da Crates.io

Azure DevOps Services | Azure DevOps Server 2022

Le origini upstream di Azure Artifacts consentono agli sviluppatori di usare pacchetti da registri pubblici come Crates.io e nuget.org. Questo articolo illustra come configurare il progetto e usare la riga di comando per utilizzare i crate da Crates.io.

Questo articolo illustra come:

  • Creare un feed di Azure Artifacts
  • Connettersi al feed
  • Utilizzare casse dall'upstream

Prerequisiti

Creare un feed

Azure Artifacts consiglia di disporre di un feed dedicato per l'utilizzo di crate da crates.io e di un feed separato esclusivamente per la pubblicazione di crate interne.

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Artefatti e quindi Crea Feed.

  3. Immettere un nome per il feed, definirne la visibilità e quindi selezionare l'ambito. Assicurati di selezionare la casella di controllo Origini upstream per includere i pacchetti dai registri pubblici.

  4. Al termine, fare clic su Crea.

    Screenshot che mostra come creare un feed per il carico a monte.

Connettersi al feed

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Selezionare Artefatti e quindi selezionare il tuo feed dal menu a discesa.

  3. Selezionare Connetti al feed e quindi selezionare Cargo nella barra di navigazione a sinistra.

  4. Se questa è la prima volta che si usa Cargo con Azure Artifacts, assicurarsi di aver installato rustup.

  5. Aggiungere il frammento fornito dalla sezione Installazione del progetto al file .cargo/config.toml nel repository di origine:

    • Feed a livello di progetto:

      [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 con ambito organizzazione:

      [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. Accedere alla raccolta di Azure DevOps e quindi passare al progetto.

  2. Selezionare Artefatti e quindi selezionare il tuo feed dal menu a discesa.

  3. Selezionare Connetti al feed e quindi selezionare Cargo nel riquadro di navigazione a sinistra.

  4. Se questa è la prima volta che si usa Cargo con Azure Artifacts, assicurarsi di aver installato rustup.

  5. Aggiungere il frammento fornito dalla sezione Installazione del progetto al file .cargo/config.toml nel repository di origine:

    • Feed con ambito di progetto

      [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>"
      
    • Feed con ambito della raccolta:

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

Configurare un provider di credenziali

Per usare Cargo con Azure Artifacts, è necessario configurare un provider di credenziali. Le impostazioni specificate configureranno un helper di credenziali predefinito per l'utente corrente:

Incollare il frammento di codice seguente in %USERPROFILE%.cargo\config.toml:

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

Accedere al registro

  1. Creare un token di accesso personale con ambiti per la creazione di pacchetti> e di lettura e scrittura per l'autenticazione con il feed.

  2. Eseguire il comando seguente per accedere al Registro di sistema. Sostituire il segnaposto con il nome del feed e incollare il token di accesso personale creato nel passaggio precedente quando richiesto:

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

Salvare i pacchetti da Crates.io

Nota

Per salvare i pacchetti da upstream, è necessario avere il ruolo Feed e lettore upstream (collaboratore) o versione successiva. Per altri dettagli, vedere Gestire le autorizzazioni .

Dopo aver configurato il progetto, configurato un provider di credenziali e aver eseguito l'accesso al feed, è possibile iniziare a usare i pacchetti da upstream. Azure Artifacts salva una copia di qualsiasi pacchetto che installi dall'upstream al suo feed.

In questo esempio viene usato il serde crate, un framework di serializzazione/deserializzazione:

  1. Esegui il seguente comando nella directory del tuo progetto per aggiungere il crate al file cargo.toml:

    cargo add serde
    
  2. Eseguire il comando seguente per compilare il progetto e consumare il pacchetto:

    cargo build
    

Una volta installato il pacchetto, una copia verrà salvata nel feed. Passare al feed per verificarne la presenza. Il pacchetto deve essere disponibile nel feed, come illustrato di seguito:

Uno screenshot che mostra il *crate serde* importato da upstream.