Skip to main content
Nous publions des mises à jour fréquentes de notre documentation, et la traduction de cette page peut encore être en cours. Pour obtenir les informations les plus actuelles, consultez la documentation anglaise.

Utilisation de requêtes personnalisées avec CodeQL CLI

Vous pouvez écrire vos propres requêtes CodeQL pour rechercher des vulnérabilités et des erreurs spécifiques.

GitHub CodeQL est concédé sous licence par utilisateur lors de l’installation. Vous pouvez utiliser CodeQL uniquement pour certaines tâches soumises aux restrictions de licence. Pour plus d’informations, consultez « À propos de CodeQL CLI ».

Si vous disposez d’un compte GitHub Enterprise et d’une licence GitHub Advanced Security, vous pouvez utiliser CodeQL pour l’analyse automatisée, l’intégration continue et la livraison continue. Vous pouvez créer un compte d’entreprise en contactant l’équipe des ventes. Pour plus d’informations, consultez « À propos de GitHub Advanced Security ».

Remarque : Cet article a été migré à partir du site web de documentation CodeQL en janvier 2023.

À propos des requêtes personnalisées et de CodeQL CLI

Vous pouvez personnaliser vos analyses CodeQL en écrivant vos propres requêtes pour mettre en évidence des vulnérabilités ou des erreurs spécifiques.

Cette rubrique concerne spécifiquement l’écriture de requêtes à utiliser avec la commande database analyze pour produire des résultats interprétés.

Remarque : Les requêtes exécutées avec database analyze ont des exigences de métadonnées strictes. Vous pouvez également exécuter des requêtes à l’aide des sous-commandes de niveau plomberie suivantes :

  • database run-queries, qui génère des résultats non interprétés dans un format binaire intermédiaire appelé BQRS.
  • query run, qui génère des fichiers BQRS ou affiche les tables de résultats directement dans la ligne de commande. L’affichage des résultats directement dans la ligne de commande peut être utile pour le développement de requêtes itératives à l’aide de l’interface CLI.

Les requêtes exécutées avec ces commandes n’ont pas les mêmes exigences de métadonnées. Toutefois, pour enregistrer des données lisibles par l’homme, vous devez traiter chaque fichier de résultats BQRS avec la sous-commande de plomberie bqrs decode. Par conséquent, dans la plupart des cas d’usage, il est plus simple d’utiliser l’analyse de base de données (database analyze) pour générer directement des résultats interprétés.

É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

Les métadonnées de requête sont incluses en haut de chaque fichier de requête. Elles fournissent aux utilisateurs des informations sur la requête et indique à CodeQL CLI comment traiter les résultats de la 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 metric et @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.

Remarque : Les exigences en matière de métadonnées peuvent différer si vous voulez utiliser votre requête avec d’autres applications. Pour plus d’informations, consultez « Métadonnées pour les requêtes CodeQL ».

Contribution au dépôt CodeQL

Si vous voulez partager votre requête avec d’autres utilisateurs CodeQL, vous pouvez ouvrir une demande de tirage dans le dépôt CodeQL. Pour plus d’informations, consultez Contribution à CodeQL.

Pour aller plus loin