Skip to main content

Spécification des options de commande dans un fichier de configuration CodeQL

Vous pouvez enregistrer les options de commande par défaut dans un fichier de configuration CodeQL.

Qui peut utiliser cette fonctionnalité ?

CodeQL est disponible pour les types de référentiels suivants :

À propos de la spécification d’options de commande dans un fichier de configuration CodeQL

Vous pouvez enregistrer les options par défaut ou fréquemment utilisées pour vos commandes dans un fichier de configuration par utilisateur.

Vous pouvez spécifier les options de commande CodeQL CLI de deux manières :

  • Directement dans la ligne de commande à l’aide de l’indicateur approprié
  • Dans un fichier de configuration (ou config) dans lequel CodeQL recherche les options pertinentes chaque fois qu’une commande est exécutée

Pour les options susceptibles de changer chaque fois que vous exécutez une commande, le moyen le plus pratique de transférer les informations à CodeQL consiste à spécifier la valeur sur la ligne de commande. L’enregistrement d’options dans un fichier config est un bon moyen de spécifier les options que vous utilisez fréquemment. C’est également un bon moyen d’ajouter des packs CodeQL personnalisés que vous utilisez régulièrement à votre chemin de recherche.

Utilisation d’un fichier de configuration CodeQL

Vous devez enregistrer le fichier config dans votre répertoire de base (Linux et macOS) ou de profil utilisateur (Windows) dans le sous-répertoire .config/codeql/. Par exemple : $HOME/.config/codeql/config.

La syntaxe pour la spécification des options est la suivante :

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

Pour appliquer les mêmes options à plusieurs commandes, vous pouvez :

  • Omettre la <subcommand>, qui spécifie l’option pour chaque <subcommand> pour laquelle elle est pertinente
  • Omettre la <command> et la <subcommand>, qui spécifient globalement l’option pour chaque <command> et <subcommand> pour lesquelles elles sont pertinentes

Remarques :

  • Les fichiers config acceptent des espaces uniquement entre les indicateurs et les valeurs d’option. CodeQL génère une erreur si vous utilisez = pour spécifier une valeur d’option.
  • Si vous spécifiez une option dans la ligne de commande, cela remplace la valeur config définie pour cette option.
  • Si vous souhaitez spécifier plusieurs options pour une <command>, pour une <subcommand> ou de manière globale, utilisez une ligne par option.

Exemples

  • Pour sortir tous les résultats d’analyse générés par codeql database analyze au format CSV, vous devez spécifier :

    database analyze --format csv
    

    Ici, vous devez spécifier la commande et la sous-commande pour éviter que la même option --format soit transférée aux commandes de bas niveau exécutées pendant database analyze.

  • Pour définir la RAM (4 096 Mo) et le nombre de threads (4) à utiliser pour l’exécution des commandes CodeQL, spécifiez les éléments suivants sur des lignes distinctes :

    --ram 4096
    --threads 4
    
  • Pour spécifier globalement un répertoire dans lequel CodeQL recherche les packs CodeQL (qui ne soit pas un répertoire frère du répertoire d’installation), utilisez :

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