Skip to main content

Cette version de GitHub Enterprise Server n'est plus disponible depuis le 2026-06-02. Aucune publication de correctifs n’est effectuée, même pour les problèmes de sécurité critiques. Pour de meilleures performances, une sécurité améliorée et de nouvelles fonctionnalités, effectuez une mise à niveau vers la dernière version de GitHub Enterprise. Pour obtenir de l’aide sur la mise à niveau, contactez le support GitHub Enterprise.

Requêtes CodeQL personnalisées

Les requêtes personnalisées étendent CodeQLl’analyse de sécurité intégrée pour détecter les vulnérabilités et appliquer des normes de codage spécifiques à votre codebase.

Qui peut utiliser cette fonctionnalité ?

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

Qu’est-ce que les requêtes personnalisées CodeQL ?

Les requêtes personnalisées étendent CodeQLl’analyse de sécurité intégrée pour détecter les vulnérabilités, les normes de codage et les modèles spécifiques à votre codebase.

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 :

  • requêtes d’exécution de base de données, 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.

Quand utiliser des requêtes personnalisées

Utilisez des requêtes personnalisées pour :

  • Détecter les vulnérabilités spécifiques à l’architecture ou aux infrastructures de votre application
  • Appliquer les normes de codage spécifiques à l’organisation ou les meilleures pratiques
  • Rechercher des modèles non couverts par les packs de requêtes standard CodeQL
  • Analyser les bases de données CodeQL avec la commande database analyze en utilisant le CodeQL CLI pour produire des résultats interprétés

Structure de la requête

Les requêtes personnalisées sont écrites dans les fichiers de requête, qui sont enregistrés avec l’extension .ql . Ces fichiers contiennent également des métadonnées importantes qui fournissent des informations sur l’objectif de la requête et indiquent comment CodeQL CLI traiter les résultats. Les propriétés requises sont les suivantes :

  • Identificateur de requête (@id)  : lettres minuscules ou chiffres, délimités par / ou -
  • Type de requête (@kind)  : l’un des éléments suivants :
    • problem - Alerte simple
    • path-problem - Alerte avec séquence d’emplacement du code
    • diagnostic - Résolution des problèmes d’extracteur
    • metric - Métrique récapitulative (nécessite @tags summary)

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 les métadonnées des CodeQL requêtes.

Pour plus d’informations sur les métadonnées de requête, consultez Métadonnées pour CodeQL les requêtes et le guide de style des métadonnées de requête.

Documentation sur les requêtes

La documentation sur les requêtes aide les utilisateurs à comprendre ce qu’une requête détecte et comment résoudre les problèmes identifiés. Vous pouvez inclure de la documentation pour vos requêtes personnalisées dans deux formats :

  • Fichiers Markdown : enregistrés en même temps que la requête, peuvent être inclus dans les fichiers SARIF et affichés dans l’interface code scanning utilisateur
  • .qhelp fichiers : cohérent avec les requêtes standard CodeQL , mais doit être converti en Markdown pour une utilisation avec code scanning

Lorsque des fichiers SARIF contenant l’aide associée aux requêtes sont téléversés vers GitHub, la documentation apparaît dans l’interface utilisateur de code scanning pour toute alerte générée par la requête.

Pour plus d’informations, consultez les fichiers d’aide.

Partage de requêtes personnalisées

Vous pouvez partager des requêtes personnalisées avec la communauté en publiant vos propres packs de requêtes. Consultez « Publication et utilisation de packs CodeQL ».

Lectures complémentaires