Skip to main content

Como especificar opções de comando em um arquivo de configuração do CodeQL

Você pode salvar opções de comando padrão em um arquivo de configuração do CodeQL.

Quem pode usar esse recurso?

O CodeQL do GitHub é licenciado por usuário após a instalação. Você pode usar o CodeQL somente para determinadas tarefas sob as restrições de licença. Para obter mais informações, confira "Sobre a CLI do CodeQL".

Se você tiver uma licença do GitHub Advanced Security, poderá usar o CodeQL para análise automatizada, integração contínua e entrega contínua. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".

Sobre a especificação de opções de comando em um arquivo de configuração do CodeQL

Você pode salvar opções padrão ou usadas com frequência dos comandos em um arquivo de configuração para cada usuário.

Você pode especificar opções de comando da CodeQL CLI de duas maneiras:

  • Diretamente na linha de comando, usando o sinalizador apropriado.
  • Em um arquivo de configuração (ou config) em que o CodeQL verifica se há opções relevantes sempre que um comando é executado.

Para opções que podem ser alteradas sempre que você executa um comando, a especificação do valor na linha de comando é a maneira mais fácil de passar as informações ao CodeQL. Salvar as opções em um arquivo config é uma boa maneira de especificar as opções que você usa com frequência. Também é uma boa maneira de adicionar pacotes personalizados do CodeQL que você sempre usa ao caminho de pesquisa.

Como usar um arquivo de configuração do CodeQL

Você precisa salvar o arquivo config na página inicial (Linux e macOS) ou no diretório de perfil do usuário (Windows) no subdiretório .config/codeql/. Por exemplo, $HOME/.config/codeql/config.

A sintaxe para especificar opções é a seguinte:

<command> <subcommand> <option> <value>

Para aplicar as mesmas opções a mais de um comando, você pode:

  • Omitir o <subcommand>, o que especificará a opção em cada <subcommand> para o qual é relevante.
  • Omitir <command> e <subcommand>, o que especificará globalmente a opção a cada <command> e <subcommand> para os quais é relevante.

Observações:

  • Os arquivos config aceitam apenas espaços entre sinalizadores de opção e valores. O CodeQL vai gerar um erro se você usar = para especificar um valor de opção.
  • Se você especificar uma opção na linha de comando, o valor config definido para essa opção será substituído.
  • Se você quiser especificar mais de uma opção para um <command> ou <subcommand> globalmente, use uma linha por opção.

Exemplos

  • Para emitir todos os resultados de análise gerados pelo codeql database analyze no formato CSV, você especificaria:

    database analyze --format csv
    

    Aqui, você precisa especificar o comando e o subcomando para impedir que um dos comandos de baixo nível executados durante database analyze passe a mesma opção --format.

  • Para definir a RAM (4096 MB) e o número de threads (4) a serem usados ao executar comandos do CodeQL, especifique o seguinte, em linhas separadas:

    --ram 4096
    --threads 4
    
  • Para especificar globalmente um diretório para CodeQL a fim de verificar pacotes do CodeQL (que não sejam irmãos do diretório de instalação), use:

    --search-path <path-to-directory>