Cet article traite spécifiquement de l’écriture de requêtes à utiliser avec la commande analyse de base de données pour produire des résultats interprétés. Pour plus d’informations conceptuelles sur les requêtes personnalisées, consultez Requêtes CodeQL personnalisées.
Écriture d’une requête valide
Avant d’exécuter une analyse personnalisée, vous devez écrire une requête valide et l’enregistrer dans un fichier avec une extension .ql. Une documentation complète est disponible pour vous aider à écrire des requêtes. Pour plus d’informations, consultez Requêtes CodeQL.
Inclusion des métadonnées de requête
Lors de l’exécution de requêtes avec la commande database analyze, vous devez inclure les deux propriétés suivantes pour garantir que les résultats sont interprétés correctement :
-
Identificateur de requête (
@id) : séquence de mots composés de lettres minuscules ou de chiffres, délimités par/ou par-, identifiant et classifiant la requête. -
Type de requête (
@kind) : identifie la requête comme une alerte simple (@kind problem), une alerte documentée par une séquence d’emplacements de code (@kind path-problem), pour la résolution des problèmes de l’extracteur (@kind diagnostic) ou une métrique récapitulative (@kind metricet@tags summary).
Pour plus d’informations sur ces propriétés de métadonnées, consultez Métadonnées pour les requêtes CodeQL et Guide de style pour les métadonnées de requête.
Empaquetage de requêtes personnalisées
Lorsque vous écrivez des requêtes à partager avec d’autres personnes, enregistrez-les dans un pack CodeQL personnalisé.
Pour empaqueter vos requêtes personnalisées :
- Créez un paquet CodeQL avec un fichier
qlpack.ymlau répertoire racine. - Enregistrez vos requêtes personnalisées (
.qlfichiers) dans la racine du pack ou ses sous-répertoires. - Configurez le
qlpack.ymlfichier pour spécifier :- Comment compiler les requêtes
- Dépendances sur d’autres CodeQL packs et bibliothèques
- Définitions de suites de requêtes Pour plus d’informations sur les propriétés de
qlpack.yml, consultez Personnalisation de l’analyse avec des packs CodeQL.
- Publiez votre pack dans GitHub Packages - le GitHub Container registry. Pour plus d’informations, consultez « Personnalisation de l’analyse avec des packs CodeQL ».
Inclusion d’une aide aux requêtes pour les requêtes CodeQL personnalisées dans les fichiers SARIF
Pour plus d’informations sur les formats d’aide et de documentation des requêtes, consultez Requêtes CodeQL personnalisées.
Pour inclure l’aide sur les requêtes dans les fichiers SARIF lors de l’exécution d’analyses de code :
-
Rédigez votre demande d'aide dans l’un des formats suivants : * Fichier Markdown : Enregistrez un fichier Markdown en même temps que votre requête portant le même nom (par exemple,
my-query.mdpourmy-query.ql) * **.qhelpfichier** : rédigez l'assistance pour les requêtes au format.qhelp, puis convertissez-la en Markdown avant d’exécuter l’analyse. Pour plus d’informations, consultez Fichiers d’aide aux requêtes et Test des fichiers d’aide aux requêtes. -
Exécutez
codeql database analyzeavec l’option--sarif-add-query-help.codeql database analyze <database> --format=sarif-latest --output=results.sarif --sarif-add-query-helpRemarque
L’option
--sarif-add-query-helpest disponible à partir de CodeQL CLI v2.7.1 et versions ultérieures. -
Chargez le fichier SARIF sur GitHub.
Lectures complémentaires
-
[Requêtes CodeQL](https://codeql.github.com/docs/writing-codeql-queries/codeql-queries/#codeql-queries)