Partilhar via


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 Azure Artifacts 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ã a mostrar como criar um feed para consumir crates de Crates.io a partir da origem.

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 Azure Artifacts, 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:

Uma captura de ecrã mostrando o pacote reqwest listado num feed do Azure Artifacts após ser guardada 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.