Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.
GitHub AE is currently under limited release.

Configuring code scanning for a repository

You can configure code scanning for a repository to find security vulnerabilities in your code.

Who can use this feature

If you have write permissions to a repository, you can configure code scanning for that repository.

está disponível para os repositórios pertencentes à organização no GitHub AE. Esse é um recurso do GitHub Advanced Security (gratuito durante a versão beta). Para obter mais informações, confira "About GitHub Advanced Security".

Opções para configurar a code scanning

Você decide como gerar alertas de code scanning e quais ferramentas usar no nível de um repositório. O GitHub AE 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, confira os marcadores a seguir e "Sobre a code scanning".

  • CodeQL : usa GitHub Actions (confira abaixo) ou executa a análise de CodeQL em um sistema de CI (integração contínua) de terceiros (confira "Sobre CodeQL code scanning em seu sistema de CI").

  • Terceiros: usa GitHub Actions ou ferramentas de terceiros e carrega resultados no GitHub AE (confira "Como carregar um arquivo SARIF no GitHub").

    Se você executar a verificação de código usando várias configurações, às vezes, um alerta terá várias origens de análise. Se um alerta tiver várias origens de análise, você poderá ver o status do alerta para cada origem de análise na página de alertas. Para obter mais informações, confira "Sobre alertas de digitalização de códigos".

Observação: este artigo descreve os recursos disponíveis na versão da ação do CodeQL e o pacote da CodeQL CLI associado incluído na versão inicial desta versão do GitHub AE. Se sua empresa usa uma versão mais recente da ação CodeQL, confira a versão GitHub Enterprise Cloud deste artigo para obter informações sobre os recursos mais recentes.

Pré-requisitos

Antes de configurar code scanning para um repositório, você deverá garantir que haja pelo menos um executor de GitHub Actions auto-hospedado disponível para o repositório.

Os proprietários da empresa, administradores de organização e repositórios podem adicionar executores auto-hospedados. Para obter mais informações, confira "Sobre os executores auto-hospedados" e "Como adicionar executores auto-hospedados".

Como configurar manualmente a code scanning

  1. No sua empresa, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em Segurança. Guia Segurança

  2. À direita de "Alertas do ", clique em Configurar code scanning . Se os alertas do code scanning estiverem ausentes, você precisará pedir a um proprietário da organização ou administrador de repositório para habilitar GitHub Advanced Security. Para obter mais informações, veja "Gerenciar configurações de segurança e análise em sua organização" ou "Gerenciar configurações de segurança e análise em seu repositório".

  3. Em "Introdução à code scanning", clique em Configurar este fluxo de trabalho no Fluxo de trabalho de análise do CodeQL ou em um fluxo de trabalho de terceiros. O botão "Configurar este fluxo de trabalho" no título "Introdução à code scanning"Os fluxos de trabalho só serão exibidos 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ó fica habilitado se a análise do CodeQL dá suporte às linguagens presentes no repositório.

  4. Para personalizar como code scanning 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 a ele. No entanto, muitos dos fluxos de trabalho de terceiros exigem configuração adicional, portanto, leia os comentários no fluxo de trabalho antes de fazer commit.

    Para obter mais informações, confira "Como personalizar a code scanning".

  5. Clique na lista suspensa Iniciar commit e digite uma mensagem de commit. Iniciar commit

  6. Escolha se você gostaria de confirmar diretamente na ramificação padrão ou criar uma ramificação e iniciar uma solicitação de pull. Escolher o local do commit

  7. Clique em Confirmar novo arquivo ou Propor novo arquivo.

No Fluxo de trabalho de análise do CodeQL sugerido, a code scanning está configurada para analisar o código cada vez que você efetua push de uma alteração para a ramificação padrão ou para qualquer ramificação protegida ou quando aciona uma solicitação de pull na ramificação padrão. Como resultado, code scanning vai começar agora.

Os gatilhos on:pull_request e on:push para varredura de código são úteis para finalidades diferentes. Para obter mais informações, confira "Como personalizar a code scanning".

Configuração em lote da code scanning

Você pode configurar a code scanning em vários repositórios de uma vez usando um script. Caso deseje usar um script para gerar solicitações de pull que adicionam um fluxo de trabalho do GitHub Actions a vários repositórios, confira o repositório jhutchings1/Create-ActionsPRs para ver um exemplo do uso do PowerShell ou nickliffen/ghas-enablement para as equipes que não têm o PowerShell e desejam usar o NodeJS.

Visualizar a saída do registro de code scanning

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

  1. Abaixo do nome do repositório, clique em Actions. Guia Actions no menu de navegação do repositório principal

    Você verá uma lista que inclui uma entrada para executar o fluxo de trabalho de code scanning. 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 code scanning

  2. Clique na entrada para o fluxo de trabalho de code scanning.

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

    Saída do log do fluxo de trabalho de code scanning

  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 code scanning que foram identificados. Para obter mais informações, confira "Como gerenciar alertas da code scanning do seu repositório".

Observação: se você gerou uma solicitação de pull para adicionar o fluxo de trabalho da code scanning ao repositório, os alertas da solicitação de pull só são exibidos diretamente na página da quando a solicitação de pull é mesclada. Se algum alerta for encontrado, você poderá vê-los antes da mesclagem da solicitação de pull clicando no link NUMBER alertas encontrados no banner da página da .

Clique no link "n alertas encontrados"

Entendendo as verificações de pull request

Cada fluxo de trabalho de code scanning 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 code scanning 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)." Clique em Detalhes em uma entrada da análise da code scanning para ver os dados de log. Isso permite que você corrija um problema caso ocorra uma falha no trabalho de análise. Por exemplo, para a análise de code scanning de linguagens compiladas, isto pode acontecer se a ação não puder criar o código.

Verificações de pull request de code scanning

Quando os trabalhos de code scanning forem concluídos, GitHub calcula se quaisquer alertas foram adicionados pelo pull request e adiciona a entrada " results / TOOL NAME" à lista de verificações. Depois que a code scanning for executada, pelo menos, uma vez, clique em Detalhes para ver os resultados da análise.

Se você usar uma solicitação de pull para adicionar a code scanning ao repositório, logo verá a mensagem "Análise não encontrada" ao clicar em Detalhes nos resultados da verificação de /NOME DA FERRAMENTA.

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 code scanning tentou comparar para determinar quais alertas foram introduzidos ou corrigidos no pull request.

Por exemplo, na captura de tela acima, code scanning 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 code scanning 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 code scanning 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 code scanning a um repositório, o branch de base ainda não foi analisado. Portanto, não é possível computar esses detalhes. Neste caso, ao clicar na verificação de resultados na solicitação de pull você verá a mensagem "Análise não encontrada".

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

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

    Para ver se um branch foi verificado, acesse a página da , 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 base à especificação on:push e on:pull_request no fluxo de trabalho da code scanning nesse branch e fazer uma alteração que atualize a solicitação de pull em aberto que você deseja verificar.

  • 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 code scanning.

  • 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 code scanning neste commit mais recente e, em seguida, faça push de uma alteração para o pull request reiniciar code scanning.

Próximas etapas

Depois de configurar a code scanning, e permitir que suas ações sejam concluídas, você pode: