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 trabalhar com CodeQL fontes de consulta diretamente para trabalhar ou contribuir para consultas compartilhadas de software livre.

1. Baixar o CodeQL CLI arquivo tar

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

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 novo CodeQL diretório

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

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 CodeQL consultas

O CodeQL repositório contém as consultas e bibliotecas necessárias para CodeQL análise de todos os idiomas com suporte. Clone uma cópia desse repositório em codeql-home.

Por padrão, a raiz do repositório clonado será chamada de codeql. Renomeie essa pasta codeql-repo 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 git clone git@github.com:github/codeql.git codeql-repo na pasta codeql-home.

Nesse repositório, as consultas e bibliotecas são organizadas em CodeQL Pacotes. Junto com as próprias consultas, os pacotes CodeQL contêm metadados importantes que informam CodeQL CLI como processar os arquivos de consulta. Para obter mais informações, consulte Como criar e trabalhar com pacotes do CodeQL.

Observação

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

  • Para as consultas que devem ser usadas com a versão mais recente CodeQL CLI , confira a ramificação marcada codeql-cli/latest. Você deve usar esse branch para bancos de dados que você criou usando o CodeQL CLI ou baixou recentemente do GitHub.
  • Para obter as consultas mais atualizadas CodeQL , confira a main ramificação. Esse branch representa a versão mais recente da análise CodeQL.

4. Extraia o arquivo CodeQL CLI tar

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

Por exemplo, se o caminho da cópia do repositório CodeQL estiver em $HOME/codeql-home/codeql-repo, extraia a CLI para $HOME/codeql-home/.

5. Iniciar codeql

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 sua CodeQL CLI configuração

          CodeQL CLI tem subcomandos que você pode executar para verificar se você está configurado corretamente para criar e analisar bancos de dados:
  • Execute codeql resolve languages para mostrar quais linguagens estão disponíveis para a criação do banco de dados. Isso listará os idiomas compatíveis por padrão em seu CodeQL CLI pacote.
  • Execute codeql resolve qlpacks para mostrar quais CodeQL pacotes a CLI pode encontrar. Isso exibirá os nomes de todos os CodeQL pacotes diretamente disponíveis para o CodeQL CLI. Devem estar inclusos:
    • Pacotes de consultas para cada linguagem com suporte, por exemplo, codeql/{language}-queries. 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, codeql/{language}-all. 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, codeql/{language}-examples. Esses pacotes contêm snippets de CodeQL que quem escreve consultas pode achar úteis.
    • Pacotes herdados que garantem que consultas e bibliotecas personalizadas criadas usando produtos mais antigos sejam compatíveis com sua versão.CodeQL