Partilhar via


Use pacotes de Crates.io

Serviços de DevOps do Azure | Azure DevOps Server 2022

As fontes upstream dos Artefatos do Azure permitem que os desenvolvedores consumam pacotes de registros públicos, como Crates.io e nuget.org. Este artigo irá guiá-lo através da configuração do seu projeto e usando a linha de comando para consumir Crates de Crates.io.

Este artigo irá guiá-lo através de como:

  • Criar um feed de Artefatos do Azure
  • Conecte-se ao seu feed
  • Consumir caixas a montante

Pré-requisitos

Criar um feed

O Azure Artifacts recomenda ter um feed dedicado para consumir caixas de crates.io e um feed separado exclusivamente para publicar caixas internas.

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione Criar feed.

  3. Introduza um Nome para o feed, defina a respetiva Visibilidade e, em seguida, selecione o seu Âmbito. Certifique-se de marcar a caixa de seleção Fontes upstream para incluir pacotes de registros públicos.

  4. Selecione Criar quando terminar.

    Uma captura de tela mostrando como criar um feed para carga a montante.

Conecte-se ao seu feed

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione seu feed no menu suspenso.

  3. Selecione Conectar ao feed e, em seguida, selecione Carga no painel de navegação esquerdo.

  4. Se esta for a primeira vez que utiliza o Cargo com Artefactos do Azure, certifique-se de que instalou o rustup.

  5. Adicione o trecho fornecido da seção Configuração do projeto ao arquivo .cargo/config.toml no repositório de origem:

    • Feed com escopo do projeto:

      [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 com escopo da organização:

      [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. Entre em sua coleção de DevOps do Azure e navegue até seu projeto.

  2. Selecione Artefatos e, em seguida, selecione seu feed no menu suspenso.

  3. Selecione Conectar ao feed e, em seguida, selecione Carga no painel de navegação esquerdo.

  4. Se esta for a primeira vez que utiliza o Cargo com Artefactos do Azure, certifique-se de que instalou o rustup.

  5. Adicione o trecho fornecido da seção Configuração do projeto ao arquivo .cargo/config.toml no repositório de origem:

    • Feed com escopo do projeto:

      [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 com escopo de coleção:

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

Configurar um provedor de credenciais

Para usar o Cargo com o Azure Artifacts, você precisa configurar um provedor de credenciais. As configurações fornecidas configurarão um auxiliar de credenciais padrão para o usuário atual:

Cole o seguinte trecho em seu %USERPROFILE%.cargo\config.toml:

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

Inicie sessão no seu registo

  1. Crie um token de acesso pessoal com Packaging>Read & escreva escopos para autenticar com seu feed.

  2. Execute o seguinte comando para iniciar sessão no registo. Substitua o espaço reservado pelo nome do feed e cole o token de acesso pessoal criado na etapa anterior quando solicitado:

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

Salvar pacotes do Crates.io

Nota

Para salvar pacotes de upstreams, você deve ter a função Feed e Upstream Reader (Colaborador) ou superior. Consulte Gerenciar permissões para obter mais detalhes.

Agora que configuramos nosso projeto, configuramos um provedor de credenciais e fazemos login em nosso feed, podemos começar a consumir pacotes do upstream. O Azure Artifacts salva uma cópia de qualquer pacote que você instalar do upstream para o seu feed.

Neste exemplo, consumimos o serde crate, uma estrutura de serialização/desserialização:

  1. Execute o seguinte comando no diretório do projeto para adicionar a caixa ao seu cargo.toml:

    cargo add serde
    
  2. Execute o seguinte comando para construir seu projeto e consumir sua caixa:

    cargo build
    

Assim que o pacote estiver instalado, uma cópia será salva no seu feed. Navegue até o feed para verificar sua presença. Seu pacote deve estar disponível em seu feed, como mostrado abaixo:

Uma captura de tela mostrando a caixa *serde* consumida a montante.