Usar pacotes do Crates.io
Azure DevOps Services | 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.
Este artigo orientará você sobre como:
- Criar um feed do Azure Artifacts
- Conectar-se ao seu feed
- Consumir caixas do upstream
Pré-requisitos
Uma organização do Azure DevOps. Criar uma organização, caso ainda não tenha criado.
Um projeto do Azure DevOps. Crie um projeto se você não tiver um.
Baixe e instale o rustup.
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.
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione Criar Feed.
Insira um Nome para seu feed, defina sua Visibilidade e selecione seu Escopo. Certifique-se de marcar a caixa de seleção Fontes upstream para incluir pacotes de registros públicos.
Selecione Criar quando terminar.
Conectar-se ao seu feed
Entre na sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e, em seguida, selecione Carga no painel de navegação esquerdo.
Se esta for a primeira vez que usa o Cargo com Azure Artifacts, verifique se você instalou o rustup.
Adicione o snippet fornecido da seção Configuração do projeto ao arquivo .cargo/config.toml no repositório de origem:
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>"
Entre na sua coleção do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione o feed no menu suspenso.
Selecione Conectar ao feed e, em seguida, selecione Carga no painel de navegação esquerdo.
Se esta for a primeira vez que usa o Cargo com Azure Artifacts, verifique se você instalou o rustup.
Adicione o snippet fornecido da seção Configuração do projeto ao arquivo .cargo/config.toml no repositório de origem:
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 configurações fornecidas configurarão um auxiliar de credenciais padrão para o usuário atual:
Cole o seguinte snippet em seu %USERPROFILE%.cargo\config.toml:
[registry]
global-credential-providers = ["cargo:token", "cargo:wincred"]
Faça login no seu registro
Crie um Token de acesso pessoal com escopos de Empacotamento>Leitura e gravação para autenticar com seu feed.
Execute o seguinte comando para fazer login no registro. Substitua o espaço reservado pelo nome do seu feed e cole o token de acesso pessoal que você criou 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
Observação
Para salvar pacotes de upstreams, você deve ter a função Feed e Leitor Upstream (Colaborador) ou superior. Consulte Gerenciar permissões para obter mais detalhes.
Agora que configuramos nosso projeto, configuramos um provedor de credenciais e fizemos login em nosso feed, podemos começar a consumir pacotes do upstream. O Azure Artifacts salva uma cópia de qualquer pacote instalado do upstream no feed.
Neste exemplo, consumimos a serde
caixa, uma estrutura de serialização/desserialização:
Execute o seguinte comando no diretório do projeto para adicionar a caixa ao cargo.toml:
cargo add serde
Execute o seguinte comando para construir seu projeto e consumir sua caixa:
cargo build
Depois que o pacote estiver instalado, uma cópia será salva no feed. Navegue até seu feed para verificar sua presença. Seu pacote deve estar disponível em seu feed, conforme mostrado abaixo: