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.

Solução de problemas de varredura de código do CodeQL no seu sistema de CI

Se você tiver problemas com Executor do CodeQL, você poderá solucionar esses problemas usando essas dicas.

Varredura de código is available in public repositories, and in private repositories owned by organizations with an Segurança Avançada license. Para obter mais informações, consulte "produtos de GitHub

Neste artigo

Observação: Os Executor do CodeQL está atualmente em fase beta e sujeito a alterações.

O comando init leva muito tempo

Antes de o Executor do CodeQL poder criar e analisar o código, ele precisa acessar o pacote de CodeQL que contém a CLI de CodeQL e as bibliotecas de CodeQL.

Ao usar o Executor do CodeQL pela primeira vez na sua máquina, o comando init faz o download do pacote de CodeQL para a sua máquina. Este download pode levar alguns minutos. O pacote de CodeQL fica armazenado em cache entre as execuções. Portanto, se você usar o Executor do CodeQL novamente na mesma máquina, ele não fará o download do pacote de CodeQL novamente.

Para evitar este download automático, você pode fazer o download manualmente do pacote de CodeQL para a sua máquina e especificar o caminho usando o parâmetro --codeql-path do comando init.

Nenhum código encontrado durante a criação

Se o comando analisar para o Executor do CodeQL falhar com um erro Nenhum código fonte foi visto durante a criação, isto indica que CodeQL não conseguiu monitorar o seu código. Há várias explicações para essa falha.

  1. A detecção automática da linguagem identificou uma linguagem compatível, mas não há código analisável dessa linguagem no repositório. Um exemplo típico é quando nosso serviço de detecção de linguagem encontra um arquivo associado a uma determinada linguagem de programação, como um arquivo .h, or .gyp, mas nenhum código executável correspondente está presente no repositório. Para resolver o problema, você pode definir manualmente as linguagens que você deseja analisar usando o sinalizador --languages do comando init. Para obter mais informações, consulte "Configurar o Varredura de código no seu sistema de CI".

  2. Você está analisando uma linguagem compilada sem usar o comando autobuild e você mesmo executa os passos de criação após a etapa init. Para que a criação funcione, você deve configurar o ambiente de modo que Executor do CodeQL possa monitorar o código. O comando init gera instruções sobre como exportar as variáveis de ambiente necessárias. Portanto, você pode copiar e executar o script depois de executar o comando init.

    • No macOS e no Linux:
      $ . codeql-runner/codeql-env.sh
    • No Windows, usando o shell de comando (cmd) ou um arquivo de lote (.bat):
      > call codeql-runner\codeql-env.bat
    • No Windows, usando o PowerShell:
      > cat codeql-runner\codeql-env.sh | Invoke-Expression

    As variáveis de ambiente também são armazenadas no arquivo codeql-runner/codeql-env.json. Este arquivo contém um único objeto JSON que mapeia chaves de variável de ambiente com valores. Se você não conseguir executar o script gerado pelo comando init, você poderá usar os dados no formato JSON.

    Observação:Se você usou o sinalizador --temp-dir do comando init para especificar um diretório personalizado para arquivos temporários, o caminho para os arquivos codeql-env podem ser diferentes.

  1. O código é criado em um contêiner ou em uma máquina separada. Se você usar uma criação em contêiner ou se você externalizar a criação para outra máquina, certifique-se de executar Executor do CodeQL no contêiner ou na máquina onde a tarefa de criação ocorrer. Para obter mais informações, consulte "Executar a varredura de código do CodeQL em um contêiner".

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.