Skip to main content

Esta versão do GitHub Enterprise será descontinuada em 2022-10-12. Nenhum lançamento de patch será feito, mesmo para questões críticas de segurança. Para obter melhor desempenho, segurança aprimorada e novos recursos, atualize para a última versão do GitHub Enterprise. Para obter ajuda com a atualização, entre em contato com o suporte do GitHub Enterprise.

Solução de problemas do executor do CodeQL no seu sistema de CI

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

Code scanning is available for organization-owned repositories in GitHub Enterprise Server. This feature requires a license for GitHub Advanced Security. Para obter mais informações, confira "Sobre o GitHub Advanced Security".

Observação: o CodeQL runner está sendo preterido. No GitHub Enterprise Server 3.0 e superior, você pode instalar a CodeQL CLI versão 2.6.3 para substituir o CodeQL runner.

Para obter mais informações, confira a reprovação do executor do CodeQL. Para obter informações sobre como migrar para a CodeQL CLI, confira "Como migrar do executor do CodeQL para a CLI do CodeQL".

O comando init leva muito tempo para ser concluído

Antes de o CodeQL runner 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.

Quando você usa o CodeQL runner pela primeira vez no computador, o comando init baixa o pacote do CodeQL no computador. Este download pode levar alguns minutos. O pacote de CodeQL fica armazenado em cache entre as execuções. Portanto, se você usar o CodeQL runner novamente na mesma máquina, ele não fará o download do pacote de CodeQL novamente.

Para evitar esse download automático, baixe manualmente o pacote do CodeQL no computador e especifique o caminho usando o sinalizador --codeql-path do comando init.

Nenhum código encontrado durante a criação

Se o comando analyze para o CodeQL runner falhar com um erro No source code was seen during the build, isso indicará que o CodeQL não pôde monitorar o 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 o serviço de detecção de linguagem encontra um arquivo associado a determinada linguagem de programação, como um arquivo .h ou .gyp, mas nenhum código executável correspondente está presente no repositório. Para resolver o problema, você pode definir manualmente as linguagens que deseja analisar usando o sinalizador --languages do comando init. Para obter mais informações, confira "Como configurar o CodeQL runner no seu sistema de CI".

  2. Você está analisando uma linguagem compilada sem usar o comando autobuild e executa as etapas de build por conta própria após a etapa init. Para que a construção funcione, você deverá configurar o ambiente de modo que o CodeQL runner possa monitorar o processo de construção. O comando init gera instruções sobre como exportar as variáveis de ambiente necessárias para que você possa 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 em 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 puder executar o script gerado pelo comando init, use 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 pode ser diferente.

  3. Você está analisando uma linguagem compilada no macOS sem usar o comando autobuild e executa as etapas de build por conta própria após a etapa init. Se a opção SIP (Proteção da Integridade do Sistema) estiver habilitada, que é o padrão nas versões recentes do OSX, poderá ocorrer uma falha na análise. Para corrigir isso, coloque a variável de ambiente $CODEQL_RUNNER antes do comando de build. Por exemplo, se o comando de build for cmd arg1 arg2, você deverá executar $CODEQL_RUNNER cmd arg1 arg2.

  4. 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 CodeQL runner no contêiner ou na máquina onde a tarefa de criação ocorrer. Para obter mais informações, confira "Como executar a verificação de código do CodeQL em um contêiner".