Observação
O administrador do site precisa habilitar a code scanning antes que você possa usar esse recurso. Para saber mais, confira Como configurar a verificação de código do seu dispositivo.
Talvez você não consiga habilitar ou desabilitar o code scanning se um proprietário da empresa tiver definido uma política de GitHub Code Security no nível da empresa. Para saber mais, confira Como impor políticas para segurança e análise de código na empresa.
Como alternativa à execução da code scanning no GitHub usando GitHub Actions, você pode analisar o código em um sistema externo de integração contínua ou de entrega/implantação contínua (CI/CD) e, em seguida, fazer upload dos resultados no GitHub.
Observação
Há suporte para o upload de dados SARIF a serem exibidos como resultados da code scanning no GitHub nos repositórios pertencentes à organização com o GitHub Code Security habilitado. Para saber mais, confira Gerenciando as configurações de segurança e análise do repositório.
Configurando sua ferramenta de análise
Primeiro, você precisará baixar a ferramenta de análise de sua preferência e configurá-la com seu sistema de CI.
Se estiver usando a CodeQL CLI, você precisará disponibilizar todo o conteúdo do pacote da CodeQL CLI para cada servidor de CI no qual deseja executar análises do CodeQL code scanning. Para saber mais, confira Como configurar a CLI do CodeQL.
Depois de disponibilizar sua ferramenta de análise para os servidores em seu sistema de CI, você estará pronto para gerar dados.
Como analisar o código
Para analisar o código com a CodeQL CLI ou outra ferramenta de análise, você deverá verificar o código que deseja analisar e configurar o ambiente da base de código, certificando-se de que todas as dependências estejam disponíveis. Talvez você também queira encontrar o comando de compilação para a base de código, normalmente disponível no arquivo de configuração do seu sistema de CI.
Em seguida, você pode concluir as etapas para analisar sua base de código e produzir resultados, que serão diferentes de acordo com a ferramenta de análise estática que estiver usando.
Se estiver usando a CodeQL CLI, primeiro será necessário criar um banco de dados do CodeQL a partir do seu código e, em seguida, analisar esse banco de dados para produzir resultados SARIF. Para saber mais, confira Como preparar seu código para a análise do CodeQL e Como analisar o código com as consultas CodeQL.
Gerando um token para autenticação com GitHub
Cada servidor de CI precisa de um GitHub App ou personal access token para fazer upload dos resultados no GitHub, independentemente de você estar usando a CodeQL CLI, a API REST ou outro método. Você precisa usar um token de acesso ou um GitHub App com a permissão de gravação security_events. Se os servidores de CI já usassem um token com esse escopo para fazer check-out de repositórios do GitHub, você poderia usar o mesmo token. Caso contrário, crie um token com a permissão de gravação security_events e adicione-o ao repositório de segredos do sistema de CI. Para obter informações, consulte Sobre a criação de Aplicativos do GitHub e Gerenciar seus tokens de acesso pessoal.
Para obter mais informações sobre os diversos métodos de upload de resultados para o GitHub, confira Fazer o upload de arquivo SARIF para o GitHub.
Como fazer upload dos resultados para o GitHub
Depois de analisar seu código, produzir resultados SARIF e verificar se você pode se autenticar com o GitHub, será possível fazer upload dos resultados no GitHub. Para obter mais informações sobre os diferentes métodos que você pode usar para carregar seus resultados, consulte Fazer o upload de arquivo SARIF para o GitHub.
Para obter detalhes específicos sobre o upload dos seus resultados para o GitHub usando a CodeQL CLI, confira Como carregar os resultados da análise do CodeQL no GitHub.
Por padrão, code scanning espera um arquivo de resultados SARIF por análise de um repositório. Consequentemente, quando se faz o upload de um segundo arquivo SARIF para um compromisso, ele é tratado como uma substituição do conjunto original de dados. Uma sugestão é carregar dois arquivos SARIF diferentes para uma análise quando, por exemplo, sua ferramenta de análise gera um arquivo SARIF diferente para cada linguagem analisada ou para cada conjunto de regras usado. Se quiser carregar mais de um conjunto de resultados para um commit em um repositório, você deverá identificar cada conjunto de resultados como um conjunto exclusivo. A maneira de especificar uma categoria para um upload de SARIF varia de acordo com o método de análise. Para saber mais, confira Suporte SARIF para a varredura de código.