Usar fontes upstream em um feed público

O Azure Artifacts permite que os desenvolvedores gerenciem suas dependências a partir de um único feed. Usando fontes upstream, você pode consumir pacotes de feeds e registros públicos, como NuGet.org e npmjs.com. Neste artigo, você aprenderá a:

  • Criar um feed público
  • Habilitar fontes upstream
  • Adicionar uma nova fonte upstream

Pré-requisitos

Importante

Os arquivos de bloqueio de pacote ajudam com compilações reproduzíveis e minimizam os cenários em que um usuário anônimo será solicitado a fornecer credenciais ao usar feeds públicos.

Criar um feed público

Um feed público é um feed com escopo de projeto em um projeto público. Os feeds públicos herdam as configurações de visibilidade do projeto de hospedagem.

  1. Entre em sua organização do Azure DevOps e selecione seu projeto público.

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

    Uma captura de tela mostrando o botão criar feed nos Artefatos do Azure.

  3. Dê um Nome ao feed e selecione Projeto: PublicProject (Recomendado) para seu escopo.

    Uma captura de tela mostrando como criar um novo feed público.

  4. Selecione Criar quando terminar.

Adicionar uma fonte upstream

  1. Entre em sua organização do Azure DevOps e selecione seu projeto público.

  2. Selecione Artefatos e, em seguida, selecione seu feed público.

  3. Selecione o ícone ícone de engrenagem ícone de engrenagem de engrenagem para acessar suas Configurações de Feed.

  4. Selecione Fontes upstream e, em seguida, selecione Adicionar Upstream.

    Uma captura de tela mostrando como adicionar uma fonte upstream em um feed público.

  5. Selecione seu Tipo de origem upstream. Neste exemplo, adicionaremos NuGet.org como uma fonte upstream.

    Uma captura de tela mostrando os diferentes tipos de fontes upstream.

  6. Configure sua origem e selecione Salvar quando terminar.

    Uma captura de tela mostrando como configurar sua origem upstream.

  7. Selecione Salvar para salvar sua nova fonte upstream.

    Uma captura de tela mostrando como salvar a fonte upstream recém-adicionada.

Importante

Os feeds públicos não oferecem suporte ao upstreaming para um feed privado de Artefatos. Se você estiver usando um feed público de Artefatos do Azure, só poderá fazer upstream para registros públicos (NuGet.org, npmjs) ou outros feeds públicos de Artefatos do Azure.

Restaurar pacotes

Execute o seguinte comando em um prompt de comandos com privilégios elevados:

nuget.exe restore

Observação

Você deve ser um Feed e Upstream Reader (Colaborador) ou superior para instalar novas versões de pacotes a partir do upstream. Usuários anônimos só podem instalar pacotes que existem em seus feeds.

Perguntas e respostas

P: Estou tentando restaurar meus pacotes, mas continuo recebendo um erro 401 não autorizado?

O conteúdo de um feed só pode ser alterado por uma identidade autenticada e autorizada que tenha permissões apropriadas no feed. Isso inclui salvar pacotes no feed de uma fonte upstream. Usuários não autenticados (anônimos) podem baixar pacotes já salvos em um feed, mas não podem salvar novos pacotes de um upstream no feed.

Os mantenedores de um projeto devem salvar todas as versões necessárias dos pacotes no feed público. Isso pode ser feito restaurando um projeto usando uma identidade que pode fornecer credenciais para o feed quando solicitado e garantindo que a identidade usada tenha permissões de Feed e Upstream Reader (Colaborador) ou superiores no feed público.

Se usuários anônimos que estão restaurando pacotes para um projeto estiverem sendo repetidamente bloqueados por solicitações de credenciais (resposta 401), as seguintes abordagens reduzirão ou eliminarão o problema:

  1. Evite usar intervalos de versão de pacotes na configuração do projeto. As versões explícitas do pacote garantirão que os clientes de empacotamento solicitem apenas a versão exata necessária.

  2. Quando houver suporte, utilize arquivos de bloqueio para seu ecossistema de empacotamento para que os clientes de empacotamento solicitem apenas as versões específicas necessárias para o projeto durante uma operação de restauração/instalação.

P: Estou tentando restaurar meus pacotes usando o Visual Studio, mas estou percebendo que eles estão sendo extraídos de uma fonte diferente?

R: Verifique se o Visual Studio está usando a fonte referenciada no arquivo nuget.config e não do gerenciador de pacotes NuGet local. Consulte Fontes de pacotes para obter mais detalhes.

Você também pode usar a CLI do NuGet para forçar o NuGet a usar a origem no arquivo de configuração executando o seguinte comando:

nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>