Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Configurar a varredura de código para um repositório

Você pode configurar Varredura de código adicionando um fluxo de trabalho ao seu repositório.

If you have write permissions to a repository, you can set up or configure Varredura de código for that repository.

Varredura de código is available for all public repositories. Varredura de código is also available in private repositories owned by organizations that use GitHub Enterprise Cloud and have a license for Segurança Avançada GitHub. Para obter mais informações, consulte "Sobre Segurança Avançada GitHub".

Opções para configuração de Varredura de código

Você decide como gerar alertas de Varredura de código e quais ferramentas usar no nível de um repositório. O GitHub fornece suporte totalmente integrado para a análise do CodeQL e também é compatível com ferramentas de análise usando ferramentas de terceiros. Para obter mais informações, consulte "Sobre Varredura de código

Tipo de análise Opções para gerar alertas
CodeQL Using GitHub Actions (see "Setting up Varredura de código using actions") or running CodeQL analysis in a third-party continuous integration (CI) system (see "About CodeQL Varredura de código in your CI system").
Third‑party Using GitHub Actions (see "Setting up Varredura de código using actions") or generated externally and uploaded to GitHub (see "Uploading a SARIF file to GitHub").

If you run code scanning using multiple configurations, then sometimes an alert will have multiple analysis origins. If an alert has multiple analysis origins, you can view the status of the alert for each analysis origin on the alert page. Para obter mais informações, consulteSobre as origens da análise".

Configurar Varredura de código usando fluxos de trabalho iniciais

Note: Starter workflows for Segurança Avançada have been consolidated in a "Security" category in the Actions tab of a repository. This new configuration is currently in beta and subject to change.

GitHub provides starter workflows for security features such as Varredura de código. Você pode usar esses fluxos de trabalho sugeridos para construir seus fluxos de trabalho de Varredura de código, ao invés de começar do zero. Os fluxos de trabalho iniciais de Varredura de código estão disponíveis apenas para o seu repositório se Varredura de código estiver habilitado.

Usando ações para executar Varredura de código usará minutos. Para obter mais informações, consulte "Sobre a cobrança do GitHub Actions."

  1. No GitHub.com, navegue até a página principal do repositório.
  2. Under your repository name, click Actions. Aba Ações na navegação principal do repositório
  3. Se o repositório já tiver pelo menos um fluxo de trabalho configurado e em execução, clique em Novo fluxo de trabalho e vá para a etapa 5. Se, atualmente, não houver fluxos de trabalho configurados para o repositório, vá para a próxima etapa. Captura de tela do botão novo fluxo de trabalho
  4. Role para baixo até a categoria "Segurança" e clique em Configurar no fluxo de trabalho que você deseja configurar, ou clique em Visualizar todos para ver todos os fluxos de trabalho de segurança disponíveis. Captura de tela da seção de segurança de fluxos de trabalho
  5. No painel direito da página do fluxo de trabalho, clique em Documentação e siga as instruções na tela para adaptar o fluxo de trabalho às suas necessidades. Screenshot of the Documentation tab for starter workflows Para obter mais informações, consulte "Usndo fluxos de trabalho iniciais" e "Configurando Varredura de código."

Configurando Varredura de código manualmente

Você pode configurar Varredura de código em qualquer repositório público onde tenha acesso de gravação.

Usando ações para executar Varredura de código usará minutos. Para obter mais informações, consulte "Sobre a cobrança do GitHub Actions."

  1. No GitHub.com, navegue até a página principal do repositório.

  2. No seu nome de repositório, clique em Segurança. Guia de segurança

  3. À direita dos alertas de "Varredura de código ", clique em Configurar Varredura de código. Para obter mais informações, consulte "Gerenciando as configurações de segurança e análise da sua organização" ou "gerenciando configurações de segurança e análise do seu repositório". Botão "Configurar Varredura de código" à direita de "Varredura de código" na Visão Geral de Segurança

  4. Em "Começar com Varredura de código", clique em Configurar este fluxo de trabalho no Fluxo de trabalho de análise do CodeQL ou em um fluxo de trabalho de terceiros. "Set up this workflow" button under "Get started with Varredura de código" headingOs fluxos de trabalho são exibidos apenas se forem relevantes para as linguagens de programação detectadas no repositório. O Fluxo de trabalho de análise do CodeQL é sempre exibido, mas o botão "Configurar este fluxo de trabalho" só é habilitado se a análise de CodeQL for compatível com as linguagens presentes no repositório.

  5. Para personalizar como Varredura de código faz a varredura do seu código, edite o fluxo de trabalho.

    Geralmente, você pode fazer commit do Fluxo de trabalho de análise do CodeQL sem fazer nenhuma alteração nele. No entanto, muitos dos fluxos de trabalho de terceiros exigem uma configuração adicional. Portanto, leia os comentários no fluxo de trabalho antes de fazer o commit.

    Para obter mais informações, consulte "Configurando Varredura de código."

  6. Use o menu suspenso Iniciar commit e digite uma mensagem de commit. Iniciar commit

  7. Escolha se você gostaria de fazer commit diretamente no branch-padrão ou criar um novo branch e iniciar um pull request. Escolher onde fazer commit

  8. Clique em Fazer commit do novo arquivo ou Propor novo arquivo.

No Fluxo de trabalho de análise do CodeQL padrão, Varredura de código está configurado para analisar o seu código cada vez que você fizer push de uma alteração no branch-padrão ou em qualquer branch protegido, ou criar um pull request contra o branch padrão. Como resultado, Varredura de código vai começar agora.

Os gatilhos on:pull_request e on:push para digitalização de código são úteis para diferentes finalidades. Para obter mais informações, consulte "Digitalizando pull requests" e "Digitalizando ao fazer push".

Configuração em massa de Varredura de código

Você pode configurar Varredura de código em vários repositórios de uma vez usando um script. Se você desejar de usar um script para levantar pull requests que adicionam um fluxo de trabalho de GitHub Actions a vários repositórios, consulte o repositório jhutchings1/Create-ActionsPRs para ver um exemplo usando PowerShell ou nickliffen/ghas-enablement para equipes que não possuem PoweSshell e que gostariam de usar o NodeJS.

Visualizar a saída do registro de Varredura de código

Depois de configurar o Varredura de código para o seu repositório, você poderá inspecionar a saída das ações conforme forem executadas.

  1. Under your repository name, click Actions. Aba Ações na navegação principal do repositório

    Você verá uma lista que inclui uma entrada para executar o fluxo de trabalho de Varredura de código. O texto da entrada é o título que você deu à sua mensagem de commit.

    Lista de ações que mostram o fluxo de trabalho de Varredura de código

  2. Clique na entrada para o fluxo de trabalho de Varredura de código.

  3. Clique no nome do trabalho à esquerda. Por exemplo, Analise (LANGUAGE).

    Saída do log do fluxo de trabalho de Varredura de código

  4. Revise a saída de log das ações deste fluxo de trabalho enquanto elas são executadas.

  5. Depois que todos os trabalhos forem concluídos, você poderá visualizar os as informações dos alertas de Varredura de código que foram identificados. Para obter mais informações, consulte "Gerenciar alertas de Varredura de código para o seu repositório".

Observação: Se você criou um pull request para adicionar o fluxo de trabalho de Varredura de código ao repositório, os alertas desse pull request não serão exibidos diretamente na página de Varredura de código até que o pull request seja mesclado. Se algum alerta for encontrado, você poderá visualizá-los, antes do merge do pull request, clicando no link dos n alertas encontrados no banner na página de Varredura de código.

Clique no link "n alertas encontrados"

Entendendo as verificações de pull request

Cada fluxo de trabalho de Varredura de código que você configurar para ser executado em pull requests sempre terá pelo menos duas entradas listadas na seção de verificações de um pull request. Há uma entrada para cada um dos trabalhos de análise no fluxo de trabalho e uma entrada final para os resultados da análise.

Os nomes das verificações de análise de Varredura de código assumem a forma: "TOOL NAME / JOB NAME (TRIGGER)." Por exemplo, para CodeQL, a análise do código C++ tem a entrada "CodeQL / Analyze (cpp) (pull_request)." Você pode clicar em Detalhes em uma entrada de análise de Varredura de código para ver os dados de registro. Isso permite que você corrija um problema caso ocorra uma falha no trabalho de análise. Por exemplo, para a análise de Varredura de código de linguagens compiladas, isto pode acontecer se a ação não puder criar o código.

Verificações de pull request de Varredura de código

Quando os trabalhos de Varredura de código forem concluídos, GitHub calcula se quaisquer alertas foram adicionados pelo pull request e adiciona a entrada "Varredura de código results / TOOL NAME" à lista de verificações. Depois de Varredura de código ser executado pelo menos uma vez, você poderá clicar em Detalhes para visualizar os resultados da análise. If you used a pull request to add Varredura de código to the repository, you will initially see an "Analysis not found" message when you click Details on the "Varredura de código results / TOOL NAME" check.

Análise não encontrada para mensagem de commit

A tabela lista uma ou mais categorias. Cada categoria está relacionada a análises específicas, para a mesma ferramenta e commit, realizadas em uma linguagem diferente ou em uma parte diferente do código. Para cada categoria a tabela mostra as duas análises que Varredura de código tentou comparar para determinar quais alertas foram introduzidos ou corrigidos no pull request.

Por exemplo, na captura de tela acima, Varredura de código encontrou uma análise para o commit do merge do pull request, mas não há análise para o cabeçalho do branch principal.

Motivos para a mensagem "Análise não encontrada"

Depois que Varredura de código analisou o código em um pull request, ele precisa comparar a análise do branch de tópico (o branch que você usou para criar o pull request) com a análise do branch de base (o branch no qual você deseja mesclar o pull request). Isso permite que Varredura de código calcule quais alertas foram recém-introduzidos pelo pull request, que alertas já estavam presentes no branch de base e se alguns alertas existentes são corrigidos pelas alterações no pull request. Inicialmente, se você usar um pull request para adicionar Varredura de código a um repositório, o branch de base ainda não foi analisado. Portanto, não é possível computar esses detalhes. In this case, when you click through from the results check on the pull request you will see the "Analysis not found" message.

Há outras situações em que não pode haver análise para o último commit do branch de base para um pull request. Isso inclui:

  • O pull request foi levantado contra um branch diferente do branch padrão, e este branch não foi analisado.

    Para verificar se um branch foi verificado, acesse a página Varredura de código, clique no menu suspenso Branch e selecione o branch relevante.

    Escolha um branch no menu suspenso Branch

    A solução nesta situação é adicionar o nome do branch de base para a especificação on:push e on:pull_request no fluxo de trabalho de Varredura de código nesse branch e, em seguida, fazer uma alteração que atualize o pull request aberto que você deseja escanear.

  • O último commit no branch de base para o pull request está atualmente sendo analisado e a análise ainda não está disponível.

    Aguarde alguns minutos e depois faça push de uma alteração no pull request para acionar o recurso de Varredura de código.

  • Ocorreu um erro ao analisar o último commit no branch base e a análise para esse commit não está disponível.

    Faça merge uma mudança trivial no branch de base para acionar Varredura de código neste commit mais recente e, em seguida, faça push de uma alteração para o pull request reiniciar Varredura de código.

Próximas etapas

Após configurar a opção Varredura de código, e permitir que suas ações sejam concluídas, você pode: