Compartilhar via


Usar pacotes de carga de Crates.io

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

As fontes upstream do Azure Artifacts permitem que os desenvolvedores consumam pacotes de registros públicos, como Crates.io e nuget.org. Este artigo orientará você na configuração do projeto e no uso da linha de comando para consumir Crates do Crates.io.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização do Azure DevOps.
- Um projeto do Azure DevOps .
– Baixar e instalar o rustup. Você precisará da versão cargo 1.74.0 ou posterior.

Criar um feed

O Azure Artifacts recomenda ter um feed dedicado para consumir crates do crates.io e um feed separado exclusivamente para publicar crates internos. Se você já tiver um feed do Azure Artifacts, vá para a próxima seção. Caso contrário, crie um novo da seguinte maneira:

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

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

  3. Forneça um nome para o feed, selecione a Visibilidade para definir quem pode exibir seus pacotes e escolha o Escopo do feed. Marque a caixa de seleção Incluir pacotes de fontes públicas comuns para habilitar fontes upstream no feed.

  4. Selecione Criar quando terminar.

    Uma captura de tela mostrando como criar um feed para consumir crates de Crates.io upstream.

Conectar-se ao seu feed

Agora que você tem um feed, você precisa configurar o arquivo config.toml , configurar um provedor de credenciais e fazer logon no registro para autenticar com o feed.

Configuração do projeto

  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 para alimentar e, em seguida, selecione Carga no painel de navegação esquerdo.

  4. Copie o snippet da seção de instalação do Project e cole-o no arquivo .cargo/config.toml no repositório de origem. Ele deve ser semelhante ao seguinte:

    • Feed no 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 no 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 do Azure DevOps e navegue até seu projeto.

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

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

  4. Copie o snippet da seção de instalação do Project e cole-o no arquivo .cargo/config.toml no repositório de origem. Ele deve ser semelhante a:

    • Feed no 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 seguintes configurações definirão um auxiliar de credencial padrão para o usuário:

Cole o seguinte snippet no %USERPROFILE%.cargo\config.toml:

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

Faça login no seu registro

  1. Crie um Token de acesso pessoal com escopos de Empacotamento>Leitura e gravação para autenticar com seu feed.

  2. Execute o seguinte comando para fazer login no registro. Substitua <FEED_NAME> pelo nome do feed e, quando promovido, cole o token de acesso pessoal criado anteriormente.

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

Salvar pacotes do Crates.io

Agora que seu projeto está configurado, o provedor de credenciais está configurado e você é autenticado com o feed, você pode começar a consumir pacotes de fontes upstream. O Azure Artifacts salva automaticamente uma cópia de qualquer pacote que você instalar da origem para o seu feed.

O exemplo a seguir demonstra como consumir o reqwest crate, uma biblioteca de clientes HTTP usada para fazer solicitações HTTP:

  1. Adicione o crate ao cargo.toml executando o seguinte comando no diretório do projeto:

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

    cargo build
    

Depois que o pacote for instalado, uma cópia será salva no feed. Você pode verificar isso navegando até o feed no Azure DevOps. O pacote deve estar disponível no feed, conforme mostrado abaixo:

Uma captura de tela exibindo o crate reqwest listado em um feed do Azure Artifacts após ter sido baixado do Crates.io.

Observação

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