Use pacotes de carga de Crates.io

Serviços de DevOps do Azure | Azure DevOps Server | 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.

Pré-requisitos

Produto Requisitos
Azure DevOps - Uma organização Azure DevOps .
- Um projeto do Azure DevOps .
- Baixe e instale rustup. Você precisará do Cargo versão 1.74.0 ou posterior.

Criar um feed

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

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

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

  3. Forneça um Nome para seu feed, selecione a Visibilidade para definir quem pode visualizar 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 em seu feed.

  4. Selecione Criar quando terminar.

    Captura de ecrã que mostra como criar um feed para consumir crates do repositório upstream Crates.io.

Conecte-se ao seu feed

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

Configuração do projeto

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

  2. Selecione Artefatose, em seguida, selecione o seu feed no menu suspenso.

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

  4. Copie o trecho da seção Configuração do projeto e cole-o no arquivo .cargo/config.toml no repositório de origem. Deve ser semelhante ao seguinte:

    • Feed específico de 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 abrangência 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 Artefatose, em seguida, selecione o seu feed no menu suspenso.

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

  4. Copie o trecho da seção Configuração do projeto e cole-o no arquivo .cargo/config.toml no repositório de origem. Deve ser semelhante a:

    • Feed específico de 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 delimitado por 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 Artefactos do Azure, você precisa configurar um provedor de credenciais. As seguintes configurações definirão um auxiliar de credenciais padrão para o usuário:

Cole o seguinte trecho no %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 permissões de Packaging Leitura & escrita para autenticar com o seu feed.

  2. Execute o seguinte comando para iniciar sessão no registo. 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ê está autenticado com seu feed, você pode começar a consumir pacotes de fontes upstream. Os Artefatos do Azure guardam automaticamente uma cópia de qualquer pacote que instales do upstream no teu feed.

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

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

    cargo add reqwest
    
  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. Você pode verificar isso navegando até seu feed no Azure DevOps. O pacote deve estar disponível no seu feed, como mostrado abaixo:

Captura de ecrã que mostra o crate reqwest listado num feed do Artefactos do Azure depois de ter sido guardado a partir do Crates.io.

Nota

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