Usar fontes upstream em um feed público
Serviços de DevOps do Azure
Os Artefatos do Azure permitem 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, vai aprender a:
- Criar um feed público
- Habilitar fontes upstream
- Adicionar uma nova fonte a montante
Pré-requisitos
Uma organização Azure DevOps. Crie uma organização, se ainda não tiver uma.
Um projeto de DevOps do Azure. Crie um novo projeto se ainda não tiver um.
Defina a visibilidade do seu projeto como pública.
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.
Entre em sua organização do Azure DevOps e selecione seu projeto público.
Selecione Artefatos e, em seguida, selecione Criar feed.
Dê um Nome ao feed e selecione Projeto: PublicProject (Recomendado) para seu escopo.
Selecione Criar quando terminar.
Importante
Os feeds públicos não suportam o upstreaming para um feed privado de Artefactos. 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 de Artefatos Públicos do Azure.
Adicionar uma fonte upstream
Entre em sua organização do Azure DevOps e selecione seu projeto público.
Selecione Artefatos e, em seguida, selecione seu feed público.
Selecione o ícone de engrenagem para acessar as Configurações de feed.
Selecione Fontes Upstream e, em seguida, selecione Adicionar Upstream.
Selecione seu tipo de fonte upstream. Neste exemplo, adicionaremos NuGet.org como uma fonte upstream.
Configure sua fonte e selecione Adicionar quando terminar.
Selecione Salvar para salvar sua nova fonte upstream.
Importante
Os arquivos de bloqueio de pacote são necessários para salvar pacotes NuGet e Dotnet de fontes upstream em um feed público.
Restaurar pacotes
Execute o seguinte comando no diretório do projeto para restaurar os pacotes:
Nota
Você deve ser um Feed e Upstream Reader (Colaborador) ou superior para instalar novas versões de pacotes a partir do upstream. Os usuários anônimos só podem instalar pacotes que existem em seu feed.
Q&A
P: Estou a tentar restaurar os meus pacotes, mas continuo a receber um erro não autorizado 401?
O conteúdo de um feed só pode ser alterado por uma identidade autenticada e autorizada que tenha as permissões apropriadas no feed. Isso inclui salvar pacotes no feed de uma fonte a montante. Os 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 os 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:
Evite usar intervalos de versões 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.
Quando suportado, 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: Certifique-se de que o Visual Studio está usando a fonte referenciada em seu 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 fonte em seu arquivo de configuração executando o seguinte comando:
nuget restore -config <PATH_TO_NUGET_CONFIG_FILE>