Skip to main content

Verificando o código-fonte da CLI do CodeQL

Configure o CodeQL CLI diretamente do código-fonte.

Quem pode usar esse recurso?

O CodeQL está disponível para os seguintes tipos de repositórios:

Alguns usuários preferem usar fontes de consulta do CodeQL diretamente para trabalhar com consultas compartilhadas de código aberto ou contribuir para elas.

1. Baixar o arquivo tar da CodeQL CLI

O pacote de download do CodeQL CLI é um arquivo tar que contém ferramentas, scripts e vários arquivos específicos do CodeQL. Se você não tiver uma licença do GitHub Enterprise, baixando esse arquivo, você estará concordando com os termos e condições do GitHub CodeQL.

Baixe o pacote do CodeQL em https://github.com/github/codeql-action/releases. O pacote contém:

  • produto de CodeQL CLI
  • Uma versão compatível das consultas e bibliotecas do https://github.com/github/codeql
  • Versões pré-compiladas de todas as consultas incluídas no pacote

Observação

Para o GitHub Enterprise Server 3.17, recomendamos o CodeQL CLI versão 2.20.7.

Use sempre o pacote CodeQL. Fazer isso garante a compatibilidade e proporciona um desempenho muito melhor que um download separado da CodeQL CLI e o check-out das consultas da CodeQL. Se estiver executando apenas a CLI em uma plataforma específica, baixe o arquivo codeql-bundle-PLATFORM.tar.zst apropriado. Como alternativa, você pode baixar codeql-bundle.tar.zst, que contém a CLI para todas as plataformas compatíveis.

Existem também variantes tar.gz do pacote, que são idênticas às variantes tar.zst, exceto por serem compactadas usando o algoritmo gzip menos eficiente. A única razão para baixar as variantes tar.gz é se você estiver usando ferramentas de descompactação mais antigas que não suportam o algoritmo de compactação Zstandard.

2. Criar um diretório do CodeQL

Crie um diretório no qual você pode colocar a CLI e todas as consultas e bibliotecas que deseja usar. Por exemplo, .

As operações de pesquisa internas da CLI procuram automaticamente em todos os diretórios irmãos os arquivos usados na criação e na análise do banco de dados. Com esses componentes no próprio diretório, a CLI não pesquisa diretórios irmãos não relacionados, garantindo que todos os arquivos estejam disponíveis sem especificar outras opções na linha de comando.

3. Obter uma cópia local das consultas do CodeQL

O repositório do CodeQL contém as consultas e as bibliotecas necessárias para que o CodeQL analise todas as linguagens com suporte. Clone uma cópia desse repositório em .

Por padrão, a raiz do repositório clonado será chamada de . Renomeie essa pasta para evitar conflitos com a CodeQL CLI que você extrairá na etapa 1. Se você usar o Git na linha de comando, poderá clonar e renomear o repositório em uma só etapa executando na pasta .

Nesse repositório, as consultas e as bibliotecas são organizadas em pacotes do CodeQL. Junto com as consultas, os pacotes do CodeQL contêm metadados importantes que informam à CodeQL CLI como processar os arquivos de consulta. Para saber mais, confira AUTOTITLE.

Observação

Existem diferentes versões das consultas CodeQL disponíveis para diferentes usuários. Confira a versão correta para seu caso de uso:

  • Para as consultas que devem ser usadas com a versão mais recente da CodeQL CLI, confira o branch marcado como . Você deve usar esta ramificação para bancos de dados criados usando o CodeQL CLI ou que baixou recentemente do GitHub.
  • Para obter as consultas mais atualizadas do CodeQL, confira o branch . Esse branch representa a versão mais recente da análise do CodeQL.

4. Extrair o arquivo tar da CodeQL CLI

Extraia o arquivo tar para o diretório criado na etapa 2.

Por exemplo, se o caminho para a cópia do repositório do CodeQL for , extraia a CLI para .

5. Iniciar

Após a extração, você poderá executar processos do CodeQL executando o executável codeql de algumas maneiras:

  • Ao executar <extraction-root>/codeql/codeql, em que <extraction-root> é a pasta na qual você extraiu o pacote da CodeQL CLI.
  • Adicione o <extraction-root>/codeql ao PATH, para que você possa executar o executável apenas como codeql.

Neste ponto, você pode executar comandos do CodeQL. Para ver uma lista completa dos comandos da CodeQL CLI, confira Manual de comandos da CLI do CodeQL.

6. Verificar a configuração da CodeQL CLI

A CodeQL CLI tem subcomandos que você pode executar para verificar se está tudo configurado corretamente para a criação e análise de bancos de dados:

  • Execute para mostrar quais linguagens estão disponíveis para a criação do banco de dados. Isso listará as linguagens com suporte por padrão no pacote da CodeQL CLI.
  • Execute para mostrar quais pacotes do CodeQL a CLI pode encontrar. Isso exibirá os nomes de todos os pacotes do CodeQL diretamente disponíveis para os dados da CodeQL CLI. Devem estar inclusos:
    • Pacotes de consultas para cada linguagem com suporte, por exemplo, . Esses pacotes contêm as consultas padrão que serão executadas para cada análise.
    • Pacotes de biblioteca para cada idioma suportado, por exemplo, . Esses pacotes contêm bibliotecas de consulta, como fluxo de controle e bibliotecas de fluxo de dados, que podem ser úteis para quem escreve consultas.
    • Pacotes de exemplo para cada linguagem com suporte, por exemplo, . Esses pacotes contêm snippets do CodeQL que podem ser úteis para quem escreve consultas.
    • Pacotes herdados que garantem que consultas e bibliotecas criadas usando produtos mais antigos sejam compatíveis com a versão do CodeQL.