Skip to main content
Skip to content

Solução de problemas do firewall de pacotes do GitHub

Verifique se os pacotes armazenados em cache ou problemas de configuração explicam os resultados inesperados da instalação com GitHub package firewall.

Observação

Esse recurso está atualmente dentro prévia pública e está sujeito a alterações.

Um pacote ainda é instalado após uma alteração de política

Os gerenciadores de pacotes e proxies de registro podem reutilizar pacotes baixados anteriormente de seus caches locais. Se nenhuma nova solicitação chegar a GitHub package firewall, o firewall não poderá avaliar o pacote em relação à sua política atualizada. Isso pode permitir que um pacote seja instalado depois de alterar uma política ou remover uma exceção.

Verificar o cache do npm local

Verifique: O pacote ainda é instalado com um cache npm vazio, em um ambiente de teste separado, por meio do mesmo ponto de extremidade de firewall?

  1. Observe o nome exato do pacote, a versão e o escopo, se aplicável. Verifique se a política da empresa ou uma exceção permite essa versão.

  2. Em um projeto temporário fora do original, configure o npm para usar o ponto de extremidade e a autenticação da GitHub package firewall mesma empresa, incluindo configurações de registro padrão e específicas do escopo. Mantenha o projeto original e o arquivo de bloqueio inalterados e não limpe um cache npm compartilhado. Consulte Protegendo endpoints com firewall de pacotes do GitHub.

  3. Instale a versão exata usando um diretório de cache novo e vazio. Substitua PACKAGE-NAME, EXACT-VERSIONe EMPTY-CACHE-DIRECTORY pelo nome do pacote, versão e caminho do diretório de cache. A --ignore-scripts opção impede a execução de scripts de ciclo de vida do pacote.

    npm install PACKAGE-NAME@EXACT-VERSION \
      --cache EMPTY-CACHE-DIRECTORY --ignore-scripts
    
  4. Compare o resultado com o projeto original:

    • Se o firewall bloquear o teste, verifique se há diferenças nos pacotes instalados do projeto original, no cache, na configuração do registro e no lockfile. O teste bloqueado por si só não identifica qual diferença permitiu a instalação original.
    • Se o teste for bem-sucedido, verifique se as solicitações para essa versão atingiram o ponto de extremidade de firewall da mesma empresa e verifique novamente a política e as exceções. Não suponha que o npm usou conteúdo em cache.

Cache do Artifactory

Observação

Essas diretrizes se aplicam somente à integração experimental do Artifactory para pacotes npm. Mesmo com um cache npm local vazio, o Artifactory pode fornecer conteúdo armazenado em cache sem enviar uma nova solicitação por meio do firewall.

Se o npm recuperar o pacote do Artifactory, verifique se o Artifactory serviu conteúdo armazenado em cache. Verifique também se o repositório npm virtual usa o remoto com suporte de firewall e não inclui um remoto que recupera o pacote diretamente do registro npm público. Consulte Protegendo endpoints com firewall de pacotes do GitHub.