Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
As fontes upstream do Azure Artifacts permitem que os desenvolvedores armazenem pacotes de várias origens em um único feed, incluindo pacotes publicados no feed e aqueles instalados de registros públicos, como NuGet.org ou npmjs.com. Depois que as fontes upstream estiverem habilitadas, qualquer pacote instalado de uma fonte upstream será salvo automaticamente no feed.
Observação
Para salvar pacotes de upstreams, você deve ter a função Feed e Leitor upstream (Colaborador) ou superior. Consulte as funções e permissões do Feed para obter mais detalhes.
Por que usar fontes upstream?
Habilitar fontes upstream oferece várias vantagens para gerenciar as dependências do produto em um único feed:
Simplicidade: armazenar todos os pacotes em um único feed simplifica seus arquivos de configuração como NuGet.config, npmrc ou settings.xml. Com apenas um feed no arquivo de configuração, você reduz a complexidade da instalação e minimiza erros.
Builds consistentes: o feed resolve requisições de pacotes em uma ordem definida, ajudando a garantir builds previsíveis e confiáveis em diferentes ambientes.
Integridade do Pacote: O feed retém metadados sobre pacotes salvos de fontes upstream, permitindo que você verifique sua autenticidade e assegure-se de que está usando as versões originais, não cópias ou versões potencialmente maliciosas.
Confiabilidade: pacotes instalados de fontes originais são salvos automaticamente no seu feed. Isso garante o acesso contínuo mesmo que a fonte upstream fique temporariamente indisponível devido à manutenção ou outros problemas para que você possa continuar desenvolvendo e criando com confiança.
Práticas recomendadas para consumidores de pacotes
Para aproveitar ao máximo os benefícios das fontes upstream como um consumidor de pacote, siga estas práticas recomendadas:
Use um único feed no arquivo de configuração
Para que o feed forneça uma restauração determinística, verifique se o arquivo de configuração (como nuget.config ou npmrc) referencia apenas um feed com fontes upstream habilitadas.
Exemplos:
registry=https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/npm/registry/ always-auth=true<packageSources> <clear /> <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" /> </packageSources>Observação
O NuGet compila vários arquivos de configuração para determinar o conjunto completo de opções a serem aplicadas. Usar
<clear />garante que todas as outras fontes de pacote especificadas em arquivos de configuração de nível superior sejam ignoradas.
Ordene suas fontes de origem intencionalmente
Se você estiver usando apenas registros públicos como NuGet.org ou npmjs.com, a ordem das fontes upstream não afetará o comportamento. As solicitações para o feed seguem a sequência descrita na seção ordem de pesquisa.
No entanto, ao gerenciar várias fontes, como uma combinação de feeds e registros públicos, cada fonte upstream é pesquisada na ordem definida nas configurações do feed. Nesses casos, recomendamos colocar os registros públicos em primeiro lugar na lista de fontes upstream.
Em alguns cenários exclusivos, algumas organizações modificam pacotes de software de software livre (OSS) para resolver preocupações de segurança, aprimorar a funcionalidade ou atender a requisitos internos específicos que exigem a recriação do pacote internamente, em vez de obtê-lo diretamente de um repositório público. Se sua organização seguir essa prática, coloque a fonte upstream que contém esses pacotes de OSS personalizados antes de outros registros públicos. Isso garante que suas versões personalizadas sejam usadas em vez das públicas.
Práticas recomendadas para proprietários de feed e editores de pacotes
Para garantir que o feed possa ser facilmente configurado como uma fonte upstream, siga estas práticas recomendadas:
Usar a exibição padrão
Todos os feeds recém-criados usam a @Local exibição por padrão. Essa exibição inclui:
- Pacotes publicados diretamente no feed.
- Pacotes salvos de fontes de origem.
Se você quiser usar outras exibições, como um modo de exibição para versões de pacote recém-lançadas, poderá promover seus pacotes para o modo de exibição @Release e, em seguida, disponibilizar essa exibição para seus consumidores de destino. Consulte Exibições de feed para obter mais detalhes.
Construir um grafo de pacote
Para construir um grafo de pacote, basta conectar-se ao modo de exibição padrão do feed e instalar o pacote que você deseja compartilhar. Depois que um pacote for salvo no modo de exibição padrão, os usuários que desejarem consumi-lo poderão resolver o grafo do pacote e instalar a versão desejada. Os pacotes de fontes ascendentes são exibidos com base na visualização configurada para a respectiva fonte ascendente. Consulte Como os upstream constroem o conjunto de pacotes disponíveis para obter mais detalhes.
Ordem de pesquisa
Para gerenciadores de pacotes públicos que dão suporte a vários feeds, como NuGet e Maven, a ordem na qual os feeds são consultados às vezes pode não ser clara ou não determinística. Por exemplo, o NuGet envia consultas paralelas a todos os feeds no arquivo de configuração e processa as respostas de maneira "primeiro a entrar, primeiro a sair" (FIFO), o que pode levar a resultados inconsistentes.
As fontes upstream do Azure Artifacts eliminam essa incerteza impondo uma ordem de pesquisa estruturada pesquisando o feed e suas fontes upstream na seguinte ordem:
Pacotes que foram publicados diretamente no feed.
Pacotes que foram salvos de uma fonte upstream.
Pacotes disponíveis a partir de fontes upstream. Cada fonte upstream é pesquisada na ordem em que está listada na configuração do feed.
Observação
O Azure Artifacts não dá suporte à pesquisa de pacotes em fontes upstream usando o Gerenciador de Pacotes NuGet no Visual Studio.
Salvar pacotes de fontes upstream
Quando uma fonte upstream é habilitada no feed, o Azure Artifacts salva automaticamente uma cópia de qualquer pacote instalado por um colaborador ou superior dessa fonte upstream.
Por exemplo, você pode instalar pacotes diretamente da fonte upstream usando um comando como o npm install express. Como alternativa, os pacotes podem ser instalados como parte da resolução de dependência, então instalar express também armazenaria suas dependências, como accepts.
As fontes upstream oferecem uma proteção crítica para seus consumidores e infraestrutura. Se o registro público tiver tempo de inatividade, manutenção ou ficar temporariamente indisponível, você ainda poderá obter os pacotes necessários do seu feed e continuar seu desenvolvimento.
Observação
As fontes upstream personalizadas só têm suporte para pacotes npm.
Substituir pacotes de fontes upstream
Quando as fontes upstream estão habilitadas no feed, você não pode publicar uma versão do pacote que já existe em uma dessas fontes upstream. Por exemplo, se o NuGet.org upstream estiver habilitado, você não poderá publicar Newtonsoft.Json 10.0.3 no feed, já que essa versão já está disponível no NuGet.org.
Para substituir uma versão do pacote de uma fonte upstream:
Desabilite a fonte upstream relevante.
Publique a versão do pacote desejado no feed.
Reabilite a fonte upstream.
Esse fluxo de trabalho garante que você possa publicar a versão desejada mantendo a integridade de suas fontes upstream.
Observação
As versões do pacote são imutáveis. Os pacotes salvos permanecem no feed mesmo se a origem upstream estiver desabilitada ou removida.
Estado de saúde das fontes upstream
Se um feed tiver uma origem upstream com falha, os metadados para pacotes que usam o mesmo protocolo não poderão mais ser atualizados. Para verificar o status de integridade de suas fontes upstream, siga estas etapas:
Entre em sua organização do Azure DevOps e navegue até seu projeto.
Selecione Artefatos e, em seguida, selecione seu feed no menu suspenso.
Selecione o
para abrir configurações do Feed, em seguida, selecione Fontes upstream.
Se ocorrer alguma falha, uma mensagem de aviso será exibida. Selecione o status com falha para exibir informações detalhadas, incluindo a causa da falha e as etapas para resolvê-la.
Observação
Para registros públicos como NuGet.org, normalmente há um atraso de 3 a 6 horas entre quando um pacote é enviado por push para o registro público e quando ele fica disponível para download. Esse atraso depende do tempo do trabalho e da propagação de dados. No entanto, quando a origem upstream é um feed do Azure Artifacts, a latência geralmente não é superior a alguns minutos.