Skip to main content

Resolver alertas de varredura de código

Na visualização de segurança, você pode exibir, corrigir ou descartar alertas de possíveis vulnerabilidades ou erros no código do seu projeto.

Quem pode usar esse recurso?

Usuários com com acesso para gravação

Perguntar a GitHub Copilot Chat (Chat do GitHub Copilot) sobre alertas de code scanning

Com uma licença GitHub Copilot Enterprise, você também pode pedir ajuda ao Bate-papo do Copiloto para entender melhor alertas de segurança, incluindo os alertas de code scanning, nos repositórios da sua organização. Para saber mais, confira Como fazer perguntas ao GitHub Copilot no GitHub.

Gerar correções sugeridas para alertas de code scanning

Correção automática do GitHub Copilot pode gerar correções para alertas identificados pela análise de code scanning. A maioria dos tipos de alerta CodeQL são compatíveis. Para saber mais, confira Uso responsável da Correção Automática do Copilot para verificação de código.

Observação

Você não precisa de uma assinatura do GitHub Copilot para usar o Correção automática do GitHub Copilot. O Correção automática do Copilot está disponível para todos os repositórios públicos no GitHub.com, bem como repositórios internos ou privados de propriedade de organizações e empresas que tenham uma licença para o GitHub Code Security.

  1. Em GitHub, acesse a página principal do repositório.
  2. Abaixo do nome do repositório, clique em Security. Caso não consiga ver a guia "Security", selecione o menu suspenso e clique em Security.
    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.
  3. Na barra lateral esquerda, clique em Code scanning.
  4. Clique no nome de um alerta.
  5. Se Correção automática do Copilot puder sugerir uma correção, na parte superior da página, clique em Gerar correção.
  6. Depois que a correção sugerida for gerada, na parte inferior da página, você poderá clicar em Criar PR com correção para gerar automaticamente uma solicitação de pull com a correção sugerida. Uma nova ramificação é criada a partir da ramificação padrão, a correção gerada é confirmada e uma solicitação de pull em versão preliminar é criada. Você pode testar e editar a correção sugerida da mesma forma que faria com qualquer outra correção.

Você também pode usar a API Autofix para pontos de extremidade de alertas históricos para gerar, obter e confirmar correções sugeridas.

  •           [Criar uma correção automática para um alerta de varredura de código](/rest/code-scanning/code-scanning#create-an-autofix-for-a-code-scanning-alert)
    
  •           [Obter o status de uma correção automática para um alerta de varredura de código](/rest/code-scanning/code-scanning#get-the-status-of-an-autofix-for-a-code-scanning-alert)
    
  •           [Confirmar uma correção automática para um alerta da varredura de código](/rest/code-scanning/code-scanning#commit-an-autofix-for-a-code-scanning-alert)
    

O Correção automática do Copilot para alertas do code scanning não poderá gerar uma correção para cada alerta em cada situação. O recurso opera com base no melhor esforço e não tem a garantia de ter êxito em 100% das vezes. Para obter informações sobre as limitações das correções geradas automaticamente, confira Limitações das sugestões.

Atribuir alertas a Agente de codificação do Copilot

Observação

Essa opção está atualmente em versão prévia pública e está sujeita a alterações. Agente de codificação do Copilot deve estar disponível no repositório.

Você pode atribuir Copilot para aplicar uma correção automática. Copilot analisa o alerta de varredura de código, cria um plano de correção e implementa as alterações de código necessárias em uma solicitação de pull.

  1. Em GitHub, acesse a página principal do repositório.
  2. Abaixo do nome do repositório, clique em Security. Caso não consiga ver a guia "Security", selecione o menu suspenso e clique em Security.
    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.
  3. Na barra lateral esquerda, clique em Code scanning.
  4. Clique no nome de um alerta.
  5. Se uma correção automática não tiver sido gerada e Correção automática do Copilot puder sugerir uma correção, na parte superior da página, clique em Gerar correção.
  6. No menu do lado direito, clique em Responsáveis.
  7. Selecione "Copilot".

Em até 30 segundos, Copilot abrirá uma solicitação de pull para resolver o alerta e incluirá um resumo das correções e detalhes das alterações feitas. Depois de criada, a solicitação de pull é mostrada na seção "Desenvolvimento".

Corrigir um alerta manually

Qualquer pessoa com permissão de gravação para um repositório pode corrigir um alerta, fazendo o commit de uma correção do código. Se o repositório tiver code scanning agendado para ser executado em pull requests, recomenda-se registrar um pull request com sua correção. Isso ativará a análise de code scanning referente às alterações e irá testar se sua correção não apresenta nenhum problema novo. Para saber mais, confira Alertas de varredura de código de triagem em pull requests.

Você pode usar a pesquisa de texto livre ou os filtros para ver um subconjunto de alertas e depois marcar todos os alertas correspondentes como fechados.

Alertas podem ser corrigidos em um branch, mas não em outro. Você pode usar o filtro "branch", no resumo dos alertas, para verificar se um alerta é corrigido em um branch específico.

Captura de tela da exibição de alertas com as opções de branch expandidas. O filtro "branch" é sublinhado com laranja escuro.

Observe que, se você tiver filtrado os alertas em um branch não padrão, mas os mesmos alertas existirem no branch padrão, a página de qualquer alerta especificado ainda refletirá apenas o status do alerta no branch padrão, mesmo que esse status entre em conflito com o status em um branch não padrão. Por exemplo, um alerta exibido na lista "Abrir" no resumo dos alertas de branch-x pode mostrar o status "Corrigido" na página do alerta, caso o alerta já esteja corrigido no branch padrão. Veja o status do alerta para o branch na seção Branches afetados no lado direito da página de alerta.

Observação

Se você executar code scanning usando várias configurações, o mesmo alerta às vezes será gerado por mais de uma configuração. A menos que você execute todas as configurações regularmente, talvez você veja os alertas corrigidos em uma configuração, mas não em outra. Essas configurações e alertas obsoletos podem ser removidos de um branch. Para obter mais informações, confira Como remover configurações e alertas obsoletos de um branch.

Ignorar alertas

Há duas formas de fechar um alerta. Você pode corrigir o problema no código ou pode ignorar o alerta.

Ignorar um alerta é uma maneira de fechar um alerta que você não acha que precisa ser corrigido. Por exemplo, um erro no código que é usado apenas para testes ou quando o esforço de corrigir o erro é maior do que o benefício potencial de melhorar o código. Você pode ignorar alertas de anotações da code scanning no código ou na lista de resumo na guia Segurança.

Ao descartar um alerta:

  • É rejeitado em todos os ramos.
  • O alerta é removido do número de alertas atuais do projeto.
  • O alerta é movido para a lista "Fechado" no resumo dos alertas, onde você pode reabri-lo, se necessário.
  • O motivo pelo qual você fechou o alerta é registrado.
  • Ou você pode fazer um comentário para registrar o contexto de um alerta ignorado.
  • Da próxima vez que code scanning for executado, o mesmo código não gerará um alerta.

Para ignorar alertas:

  1. Em GitHub, acesse a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Security. Caso não consiga ver a guia "Security", selecione o menu suspenso e clique em Security.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.

  3. Na barra lateral esquerda, clique em Code scanning.

  4. Se você deseja ignorar um alerta, é importante explorar primeiro o alerta para que você possa escolher o motivo correto para ignorá-lo. Clique no alerta que você deseja explorar.

  5. Revise o alerta, clique em Ignorar alerta e escolha ou digite um motivo para fechá-lo.

    Captura de tela de uma falha na verificação de alerta. O botão "Ignorar alerta" está destacado em laranja escuro e o menu suspenso para ignorar é exibido.
    É importante escolher o motivo apropriado no menu suspenso, pois isso pode afetar se uma consulta continua sendo incluída em análise futura. Opcionalmente, você pode fazer um comentário para registrar o contexto de um alerta ignorado. O comentário sobre o alerta ignorado é adicionado à linha do tempo do alerta e pode ser usado como justificativa em auditorias e relatórios. Você pode recuperar ou definir um comentário usando a API REST de verificação de código. O comentário está contido no dismissed_comment do ponto de extremidade alerts/{alert_number}. Para saber mais, confira Pontos de extremidade da API REST para varredura de código.

    Se você ignorar um alerta de CodeQL como um falso resultado positivo, por exemplo, porque o código usa uma biblioteca de sanitização incompatível, considere contribuir para o repositório de CodeQL e melhorar a análise. Para obter mais informações sobre CodeQL, confira Contribuir para CodeQL.

Ignorar múltiplos alertas de uma vez

Se um projeto tem vários alertas que você deseja ignorar pelo mesmo motivo, você pode ignorá-los em massa do resumo de alertas. Normalmente, você pode querer filtrar a lista e, em seguida, ignorar todos os alertas correspondentes. Por exemplo, você pode querer ignorar todos os alertas atuais no projeto que foram marcados para uma vulnerabilidade específica de Enumeração de Fraqueza Comum (CWE).

Reabertura de alertas descartados

Se você descartar um alerta, mas depois perceber que precisa corrigi-lo, poderá reabri-lo e corrigir o problema com o código. Exiba a lista de alertas fechados, localize o alerta, exiba-o e abra-o novamente. Em seguida, você pode corrigir o alerta da mesma forma que qualquer outro alerta.

Como remover configurações obsoletas e alertas de um branch

Você pode ter várias configurações de verificação de código em um repositório individual. Quando executadas, várias configurações podem gerar o mesmo alerta. Além disso, se as configurações forem executadas em agendamentos diferentes, os status do alerta poderão ficar desatualizados para configurações pouco frequentes ou obsoletas. Para obter mais informações sobre alertas de várias configurações, confira Sobre alertas de digitalização de códigos.

  1. Em GitHub, acesse a página principal do repositório.

  2. Abaixo do nome do repositório, clique em Security. Caso não consiga ver a guia "Security", selecione o menu suspenso e clique em Security.

    Captura de tela de um cabeçalho de repositório que mostra as guias. A guia "Segurança" é realçada por um contorno laranja escuro.

  3. Na barra lateral esquerda, clique em Code scanning.

  4. Em "Code scanning", clique em um alerta da code scanning.

  5. Na seção "Branches afetados" da barra lateral, clique no branch desejado.

  6. Na caixa de diálogo "Análise de configurações", revise os detalhes das configurações que relataram esse alerta no branch selecionado. Para excluir uma configuração indesejada para o branch desejado, clique em .

    Se você excluir uma configuração por engano, clique em Cancelar para evitar aplicar as alterações.

    Captura de tela do modal "Análise de configurações". O ícone "Excluir configuração" é contornado em laranja escuro.

  7. Depois de remover as configurações indesejadas e confirmar que as configurações esperadas são exibidas, clique em Salvar alterações.

    Se você salvar as alterações depois de excluir acidentalmente uma configuração, execute novamente a configuração para atualizar o alerta. Para obter mais informações sobre como executar novamente as configurações que usam o GitHub Actions, confira Reexecutando fluxos de trabalho e trabalhos.

Observação

  • Se você remover todas as configurações da code scanning para o branch padrão do repositório, o branch padrão permanecerá na barra lateral "Branches afetados", mas não será analisado por nenhuma configuração.
  • Se você remover todas as configurações da code scanning para qualquer branch diferente do branch padrão do repositório, esse branch será removido da barra lateral "Branches afetados".

Leitura adicional

  •         [AUTOTITLE](/code-security/code-scanning/managing-code-scanning-alerts/triaging-code-scanning-alerts-in-pull-requests)
    
  •         [AUTOTITLE](/code-security/code-scanning/enabling-code-scanning/configuring-default-setup-for-code-scanning)
    
  •         [AUTOTITLE](/code-security/code-scanning/integrating-with-code-scanning/about-integration-with-code-scanning)