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.
-
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 comandoinit
. Para obter mais informações, confira "Como configurar o CodeQL runner no seu sistema de CI". -
Você está analisando uma linguagem compilada sem usar o comando
autobuild
e executa as etapas de build por conta própria após a etapainit
. 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 comandoinit
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 comandoinit
.- 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 comandoinit
, use os dados no formato JSON.Observação: se você usou o sinalizador
--temp-dir
do comandoinit
para especificar um diretório personalizado para arquivos temporários, o caminho para os arquivoscodeql-env
pode ser diferente. - No macOS e no Linux:
-
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 etapainit
. 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 forcmd arg1 arg2
, você deverá executar$CODEQL_RUNNER cmd arg1 arg2
. -
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".