Skip to main content

Revendo alterações de dependência em um pull request

Se um pull request tiver alterações nas dependências, você poderá ver um resumo do que alterou e se há vulnerabilidades conhecidas em qualquer uma das dependências.

Quem pode usar esse recurso?

A revisão de dependência está disponível para os seguintes tipos de repositório:

  • Repositórios públicos no GitHub.com
  • Repositórios de propriedade da organização em GitHub Enterprise Cloud com GitHub Advanced Security habilitado

Sobre a análise de dependência

Revisão de dependências ajuda você a entender as alterações de dependência e o impacto de segurança dessas alterações em cada pull request. Ele fornece uma visualização facilmente compreensível de mudanças de dependência, com um diff avançado na aba "Arquivos alterados" de uma solicitação de pull. A revisão de dependências informa você:

  • Quais dependências foram adicionadas, removidas ou atualizadas, junto com as datas de versão.
  • Quantos projetos usam esses componentes.
  • Dados de vulnerabilidade para essas dependências.

Revisão de dependência permite a você "desloque para a esquerda". Você pode usar as informações preditivas fornecidas para capturar dependências vulneráveis antes que elas cheguem à produção. Para obter mais informações, confira "Sobre a análise de dependência".

É possível usar o ação de revisão de dependência para impor revisões de dependência em solicitações de pull no repositório. O ação de revisão de dependência verifica as solicitações de pull em busca de alterações de dependência e gera um erro quando novas dependências têm vulnerabilidades conhecidas. A ação tem o suporte de um ponto de extremidade de API que compara as dependências entre duas revisões e relata as diferenças.

Para obter mais informações sobre a ação e o ponto de extremidade da API, consulte a documentação dependency-review-action e "Pontos de extremidade da API REST para revisão de dependências".

É possível configurar o ação de revisão de dependência de acordo com suas necessidades especificando o tipo de vulnerabilidade de dependência que você deseja capturar. Para obter mais informações, confira "Configuração da revisão de dependência".

Revisar as dependências em um pull request

  1. Abaixo do nome do repositório, clique em Solicitações de pull.

    Captura de tela da página principal de um repositório. Na barra de navegação horizontal, uma guia, rotulada como "Solicitações de pull", é destacada em laranja escuro.

  2. Na lista de solicitações pull, clique na solicitação pull que você quer revisar.

  3. Na solicitação de pull, clique em Arquivos alterados.

    Captura de tela das guias de uma solicitação de pull. A guia "Arquivos alterados" está contornada em laranja escuro.

  4. Se a solicitação de pull contiver muitos arquivos, use o menu suspenso Filtro de arquivo para recolher todos os arquivos que não registram dependências. Isso fará com que seja mais fácil focar a sua revisão nas alterações de dependência.

    Captura de tela da guia "Arquivos alterados". Uma lista suspensa rotulada como "Filtro de arquivo" está expandida, exibindo uma lista de tipos de arquivo com caixas de seleção.
    A revisão sobre dependências fornece uma visão mais clara do que mudou nos grandes arquivos de bloqueio, em que o diff de origem não é renderizado por padrão.

    Observação: as comparações avançadas de revisão de dependência não estão disponíveis para arquivos JavaScript estáticos confirmados, como jquery.js.

  5. À direita do cabeçalho de um arquivo de manifesto ou de bloqueio, exiba a revisão de dependências clicando em .

    Captura de tela da guia "Arquivos alterados" de uma solicitação de pull. O botão usado para exibir a comparação sofisticada, rotulada com um ícone de arquivo, está contornado em laranja escuro.

  6. Verifique as dependências listadas na revisão sobre dependências.

    Captura de tela dos avisos de vulnerabilidade em uma revisão de dependência para uma solicitação de pull.

    Quaisquer dependências adicionadas ou alteradas com vulnerabilidades são listadas primeiro, ordenadas por gravidade e, posteriormente, pelo nome da dependência. Isso significa que as dependências de severidade mais elevadas estão sempre na parte superior de uma revisão de dependência. Outras dependências estão listadas em ordem alfabética pelo nome das dependências.

    O ícone ao lado de cada dependência indica se a dependência foi adicionada (), atualizada () ou removida () nesta solicitação de pull.

    Outras informações incluem:

    • A versão, ou intervalo de versão, da nova dependência, atualizada ou excluída.
    • Para uma versão específica de uma dependência:
      • A idade daquela versão da dependência.
      • O número de projetos que são dependentes deste software. Essa informação é tirada do gráfico de dependências. Verificar o número de dependentes pode ajudar você a evitar adicionar acidentalmente a dependência incorreta.
      • A licença usada por esta dependência, se estas informações estiverem disponíveis. Isso é útil se você desejar evitar o código com certas licenças usadas no seu projeto.

    Quando uma dependência tem uma vulnerabilidade conhecida, a mensagem de aviso inclui:

    • Uma breve descrição da vulnerabilidade.
    • Vvulnerabilidades e Exposições Comuns (CVE) ou um número de identificação de GitHub Security Advisories (GHSA). Você pode clicar nesse ID para saber mais sobre a vulnerabilidade.
    • A gravidade da vulnerabilidade.
    • A versão da dependência na qual a vulnerabilidade foi corrigida. Se você estiver revisando um pull request para alguém, você pode pedir ao contribuidor para atualizar a dependência para a versão corrigida ou para uma versão posterior.
  7. É possível que você também queira revisar o diff da fonte, porque pode haver alterações no manifesto ou arquivo de bloqueio que não mudam as dependências, ou pode haver dependências que GitHub não pode analisar e que, consequentemente, não aparecem na revisão de dependências.

    Para voltar à exibição de comparação de origem, clique no botão .

    Captura de tela da guia "Arquivos alterados" de uma solicitação de pull. O botão usado para exibir a comparação de origem, rotulada com um ícone de código, está contornado em laranja escuro.