Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Serviços de DevOps do Azure | Azure DevOps Server 2022 | Azure DevOps Server 2020
As fontes upstream dos Artefatos do Azure permitem que os desenvolvedores armazenem convenientemente pacotes de várias fontes em um único feed, incluindo aqueles que você publica e aqueles instalados a partir de feeds externos ou registros públicos, como NuGet.org, npmjs.com. Quando as fontes upstream são ativadas, qualquer pacote instalado a partir de uma fonte upstream é automaticamente salvo no seu feed.
Nota
Para salvar pacotes de upstreams, você deve ter a função Feed e Upstream Reader (Colaborador) ou superior. Consulte Gerenciar permissões para obter mais detalhes.
Porquê utilizar fontes a montante?
Habilitar fontes upstream oferece vários benefícios para gerenciar as dependências do seu produto em um único feed:
Simplicidade: Armazenar todos os seus pacotes em um único feed simplifica seus arquivos de configuração, como NuGet.config, npmrc ou settings.xml. Com apenas um feed em seu arquivo de configuração, você reduz as chances de erros e simplifica sua configuração.
Compilações consistentes: Seu feed resolve solicitações de pacotes em uma ordem definida, garantindo compilações mais previsíveis e confiáveis.
Integridade do Pacote: O seu feed retém metadados sobre pacotes salvos de fontes a montante, permitindo-lhe verificar a sua autenticidade e garantir que esteja a usar as versões originais, não cópias ou versões potencialmente maliciosas.
Confiabilidade: Os pacotes instalados a partir de fontes upstream são salvos automaticamente no seu feed. Isso garante acesso contínuo mesmo se a fonte upstream ficar indisponível devido a manutenção ou outros problemas, para que você possa continuar desenvolvendo e construindo com confiança.
Melhores práticas para os consumidores de embalagens
Para aproveitar ao máximo os benefícios das fontes upstream como consumidor de pacotes, siga estas práticas recomendadas:
1. Use um único feed em seu arquivo de configuração
Para que o seu feed forneça uma restauração determinística, certifique-se de que o seu arquivo de configuração (como nuget.config ou npmrc) faça referência a apenas um feed com fontes habilitadas upstream.
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>
Nota
O NuGet compila vários arquivos de configuração para determinar o conjunto completo de opções a serem aplicadas. O uso do
<clear />
garante que todas as outras fontes de pacotes especificadas em arquivos de configuração de nível superior sejam ignoradas.
2. Organize intencionalmente as suas fontes ascendentes
Se você estiver usando apenas registros públicos como NuGet.org ou npmjs.com, a ordem de suas fontes upstream não importa. As solicitações para o feed seguem a sequência descrita na seção ordem de pesquisa.
No entanto, quando você gerencia várias fontes, como uma combinação de feeds e registros públicos, cada fonte upstream é pesquisada na ordem definida nas definições de configuração do feed. Neste caso, recomendamos que os registos públicos sejam colocados em primeiro lugar na lista de fontes a montante.
Em alguns cenários exclusivos, algumas organizações modificam pacotes de software de código aberto (OSS) para resolver problemas de segurança, aprimorar a funcionalidade ou atender a requisitos internos específicos que exigem a reconstrução interna do pacote, 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 OSS personalizados antes de outros registros públicos. Isso garante que suas versões personalizadas sejam usadas em vez de versões públicas.
Práticas recomendadas para proprietários de feeds e editores de pacotes
Para garantir que seu feed possa ser facilmente configurado como uma fonte upstream, siga estas práticas recomendadas:
1. Use o modo de exibição padrão
A visualização padrão para todos os feeds recém-criados é @Local
, que contém todos os pacotes publicados no seu feed, bem como pacotes salvos de fontes upstream.
Se você quiser usar outros modos de exibição, como um modo de exibição para versões de pacotes recém-lançados, poderá promover seus pacotes para o modo de exibição @Release
e, em seguida, disponibilizar esse modo de exibição para seus consumidores-alvo. Consulte visualizações de feed para obter mais detalhes.
2. Construa um gráfico de pacote
Para construir um gráfico de pacote, basta conectar-se à visualização padrão do feed e instalar o pacote que você deseja compartilhar. Uma vez que um pacote é salvo na visualização padrão, os usuários que desejam consumi-lo poderão resolver o gráfico do pacote e instalar a versão desejada. Os pacotes de fontes upstream são exibidos com base na visualização configurada para a fonte upstream correspondente. Consulte Como os upstreams constroem o conjunto de pacotes disponíveis para obter mais detalhes.
Ordem de pesquisa
Para gerenciadores de pacotes públicos que oferecem suporte a vários feeds, como NuGet e Maven, a ordem na qual os feeds são consultados às vezes pode ser pouco clara ou não determinística. Por exemplo, o NuGet envia consultas paralelas para todos os feeds no arquivo de configuração e processa as respostas de maneira FIFO (first-in, first-out), o que pode levar a resultados inconsistentes.
As fontes upstream 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 em fontes de origem. Cada fonte upstream é pesquisada na ordem em que está listada na configuração do feed.
Nota
Os Artefatos do Azure não dão suporte à pesquisa de pacotes em fontes upstream usando o Gerenciador de Pacotes NuGet no Visual Studio.
Guardar pacotes das fontes de origem
Quando é habilitada uma fonte upstream no seu feed, o Azure Artifacts salva automaticamente uma cópia de qualquer pacote instalado por um colaborador ou superior proveniente da origem upstream.
Por exemplo, você pode instalar pacotes diretamente da fonte upstream usando um comando como npm install express. Como alternativa, os pacotes podem ser instalados como parte de um processo de resolução de dependência. Nesse caso, instalar express também guardaria suas dependências, como accepts.
As fontes upstream fornecem uma proteção importante para seus consumidores e infraestrutura, protegendo-os de interrupções inesperadas. Se a fonte upstream passar por tempo de inatividade, manutenção ou ficar temporariamente indisponível, você ainda poderá recuperar os pacotes necessários do feed e continuar o desenvolvimento.
Nota
Fontes upstream personalizadas são suportadas apenas para pacotes npm.
Sobrepor pacotes de fontes ascendentes
Ao habilitar fontes upstream, lembre-se de que não é possível publicar uma versão de pacote que já exista em uma fonte upstream. Por exemplo, se você habilitar o NuGet.org upstream, não poderá publicar o pacote Newtonsoft.Json 10.0.3, pois essa versão já está disponível no NuGet.org.
Se você precisar publicar uma versão do pacote que já existe em uma de suas fontes upstream, você deve seguir estas etapas:
Desative a fonte upstream relevante.
Publique seu pacote.
Reative a fonte de origem.
Esse processo garante que você possa publicar a versão desejada, mantendo a integridade de suas fontes upstream.
Nota
As versões do pacote são imutáveis. Os pacotes salvos permanecem no feed mesmo se a fonte upstream estiver desativada ou removida.
Estado de saúde das fontes a montante
Se um feed tiver uma fonte upstream com falha, os metadados para pacotes do mesmo protocolo não poderão mais ser atualizados. Para verificar o estado de funcionamento das fontes a montante, siga estes passos:
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 navegar até as Definições do Feed e, em seguida, selecione as Fontes de origem.
Se ocorrer alguma falha, uma mensagem de aviso será exibida. Clicar no estado Falha fornece detalhes adicionais, incluindo o motivo da falha e instruções sobre como resolvê-la.
Nota
Para registros públicos como NuGet.org, há um atraso de 3 a 6 horas entre quando um pacote é enviado para o registro público e quando fica disponível para download. Esse atraso depende do tempo do trabalho e da propagação de dados. No entanto, quando a fonte upstream é um feed de Artefatos do Azure, a latência geralmente não ultrapassa alguns minutos.
Perguntas frequentes
P: Não consigo encontrar o meu pacote apesar de o poder ver num dos upstreams do meu feed?
R: Os pacotes de fontes upstream ficam disponíveis no feed downstream logo após serem publicados. No entanto, o pacote só será visível para os leitores depois de ter sido salvo no feed. Um pacote é salvo quando um usuário com permissões de Feed e Upstream Reader (Colaborador) ou superior instala a versão no feed downstream. Isso faz com que o sistema descendente guarde uma cópia do pacote proveniente do ascendente, após o que ele é guardado permanentemente e fica disponível no sistema descendente para todos os leitores. Isso ocorre quando a versão do pacote se torna visível na secção de versões do pacote da interface da web.
P: O que são visualizações de feed?
R: As visualizações permitem que os desenvolvedores compartilhem seletivamente um subconjunto de versões de pacotes que foram testadas e validadas, excluindo quaisquer pacotes que ainda estejam em desenvolvimento ou não atendam aos critérios de qualidade. Consulte O que são visualizações de feed para obter mais detalhes.
P: Não consigo encontrar o feed que pretendo configurar como fonte upstream?
Certifique-se de que o proprietário do feed compartilhou uma visualização como fonte a montante. Consulte Adicionar um feed em uma organização diferente como uma fonte upstream para mais detalhes.
P: Um utilizador com a função Leitor de Feed pode baixar pacotes de uma fonte a montante?
R: Não. Um utilizador com a função Leitor de Feed em um feed de Artefatos do Azure só pode baixar pacotes que foram salvos no feed. Os pacotes são salvos no feed quando um Leitor de Feed e Upstream (Colaborador), Publicador do Feed (Colaborador) ou Proprietário do Feed instala esses pacotes a partir do upstream.
P: O que acontece quando um usuário exclui ou cancela a publicação de um pacote salvo de uma fonte upstream?
R: O pacote fica indisponível para download no feed e o número da versão é reservado permanentemente. Além disso, o pacote deixará de ser guardado da fonte de origem. As versões anteriores e posteriores do pacote permanecerão inalteradas.
P: O que acontece quando um utilizador marca como obsoleto um pacote salvo de uma fonte upstream?
Quando um utilizador descontinua um pacote, uma mensagem de aviso é adicionada aos metadados do pacote. Este aviso é exibido sempre que o pacote é visualizado ou instalado a partir do feed.