Avec l’analyse de variantes multi-référentiels (MRVA), vous pouvez exécuter des requêtes CodeQL sur une liste de jusqu’à 1 000 dépôts à GitHub partir de Visual Studio Code.
Prerequisites
-
Vous devez activer code scanning en utilisant CodeQL sur GitHub, en utilisant soit la configuration par défaut, soit la configuration avancée, avant d’ajouter votre référentiel à une liste pour analyse. Pour plus d’informations sur l’activation de code scanning à l'aide de CodeQL, consultez Définition de la configuration par défaut pour l’analyse du code.
-
Vous devez définir un référentiel de contrôleur avant de pouvoir exécuter votre première analyse des variantes de plusieurs référentiels.
-
Les référentiels de contrôleur peuvent être vides, mais ils doivent avoir au moins une validation.
-
Sur GitHub.com, la visibilité du référentiel du contrôleur peut être « publique » si vous envisagez d’analyser uniquement les dépôts publics. L’analyse des variantes sera gratuite.
-
La visibilité du référentiel du contrôleur doit être « privée » si vous devez analyser des référentiels privés ou internes sur GitHub.com.
Toutes les minutes d’actions que vous utilisez pour exécuter l’analyse des variantes sur des référentiels privés ou internes, au-dessus de la limite gratuite, sont facturées au propriétaire du référentiel. Pour plus d’informations sur les minutes gratuites et la facturation, consultez Facturation des actions GitHub.
Configuration d’un référentiel de contrôleur pour la MRVA
-
Dans la vue « Référentiels d’analyse des variantes », cliquez sur Configurer le référentiel de contrôleur pour afficher un champ pour le référentiel de contrôleur.

-
Tapez le propriétaire et le nom du référentiel sur GitHub lequel vous souhaitez utiliser comme dépôt de contrôleur, puis appuyez sur la touche Entrée.
-
Si vous êtes invité à vous authentifier avec GitHub, suivez les instructions et connectez-vous à votre compte. Une fois que vous avez terminé, une invite de GitHub Authentification peut demander l’autorisation d’ouvrir dans Visual Studio Code; cliquez sur Ouvrir.
Le nom du référentiel du contrôleur est enregistré dans vos paramètres pour l’extension CodeQL . Pour plus d’informations sur la modification du référentiel du contrôleur, consultez « Personnalisation des paramètres ».
Exécution d’une requête à l’échelle à l’aide de la MRVA
-
Par défaut, la vue « Référentiels d’analyse de variantes » affiche les listes par défaut des Top 10, Top 100 et Top 1000 principaux référentiels publics sur GitHub.com pour la langue que vous analysez. Si votre référentiel de contrôleur est hébergé sur SUBDOMAIN.ghe.com, ces listes ne sont pas disponibles.
-
Si vous le souhaitez, vous pouvez ajouter un nouveau référentiel, une nouvelle organisation ou une nouvelle liste.
-
Dans la vue « Référentiels d’analyse des variantes », cliquez sur + pour ajouter une nouvelle base de données.
-
Dans le menu déroulant, sélectionnez À partir d’un GitHub référentiel ou de tous les référentiels de l’organisation ou du GitHub propriétaire.
-
Tapez l’identificateur du référentiel ou de l’organisation que vous souhaitez utiliser dans le champ.
-
-
GitHub Sélectionnez le référentiel ou les référentiels sur lesquels vous souhaitez exécuter votre requête.
-
Ouvrez la requête que vous souhaitez exécuter, cliquez avec le bouton droit dans le fichier de requête, puis sélectionnez CodeQL: Exécuter l’analyse de variantes pour démarrer l’analyse de variantes.
Remarque
Pour annuler une exécution d’analyse des variantes, cliquez sur Arrêter la requête dans la vue « Résultats de l’analyse des variantes ».
Sélection d’un référentiel ou d’une organisation unique GitHub pour l’analyse
-
Dans la vue « Référentiels d’analyse des variantes », cliquez sur + pour ajouter une nouvelle base de données.
-
Dans le menu déroulant, sélectionnez À partir d’un GitHub référentiel ou de tous les référentiels de l’organisation ou du GitHub propriétaire.
-
Tapez l’identificateur du référentiel ou de l’organisation que vous souhaitez utiliser dans le champ.
Erreurs et avertissements
Lorsque vous exécutez une MRVA, il existe deux emplacements clés où les erreurs et les avertissements sont affichés :
-
Visual Studio Code erreurs : tout problème lié à la création d’un CodeQL pack et à l’envoi de l'analyse à GitHub est signalé comme Visual Studio Code erreurs dans le coin inférieur droit de l’application. Les informations sont également disponibles dans la vue « Problèmes ». -
« Résultats de l’analyse des variantes » : tous les problèmes liés à l’exécution d’analyse des variantes sont signalés dans cette vue.
Exploration de vos résultats
Dès qu’un flux de travail pour exécuter votre analyse de variante est GitHub en cours d’exécution, une vue « Résultats d’analyse de variante » s’ouvre pour afficher les résultats dès qu’ils deviennent disponibles. Vous pouvez utiliser cette vue pour surveiller la progression, voir les éventuelles erreurs et accéder aux journaux de workflow dans votre référentiel de contrôleur.

Lorsque votre exécution d’analyse des variantes est planifiée, la vue « Résultats » s’ouvre automatiquement. Initialement, la vue affiche une liste de chaque référentiel qui a été planifié pour l’analyse. À mesure que chaque référentiel est analysé, la vue est mise à jour pour afficher un résumé du nombre de résultats. Pour afficher les résultats détaillés d’un référentiel (y compris les chemins d’accès aux résultats), cliquez sur le nom du référentiel.
Pour chaque référentiel, vous pouvez voir :
-
Nombre de résultats trouvés par la requête
-
Visibilité du référentiel
-
Si l’analyse est toujours en cours d’exécution ou si elle est terminée
-
Nombre d'étoiles que possède le dépôt sur GitHub
Affichage des résultats d’un référentiel
-
Cliquez sur le nom du référentiel pour afficher un résumé de chaque résultat.
-
Explorez les informations disponibles pour chaque résultat à l’aide de liens vers les fichiers sources sur GitHub. Pour les requêtes de flux de données, il y aura un lien supplémentaire « Afficher les chemins ».

Exportation de vos résultats
Vous pouvez exporter vos résultats pour une analyse plus approfondie ou pour en discuter avec des collaborateurs. Dans la vue « Résultats », cliquez sur Exporter les résultats pour exporter les résultats vers un gist secret sur GitHub ou vers un fichier Markdown dans votre espace de travail.
Création d’une liste personnalisée de référentiels
Remarque
CodeQL l’analyse nécessite toujours une CodeQL base de données pour exécuter des requêtes. Lorsque vous exécutez une analyse de variantes sur une liste de référentiels, votre requête est exécutée uniquement sur les référentiels qui disposent actuellement d’une CodeQL base de données disponible pour le téléchargement. La meilleure façon de rendre un référentiel disponible pour l’analyse de variantes consiste à activer code scanning avec CodeQL. Pour plus d'informations sur l'activation de code scanning à l'aide de CodeQL, consultez [AUTOTITLE](/code-security/how-tos/scan-code-for-vulnerabilities/configure-code-scanning/configuring-default-setup-for-code-scanning).
-
Dans la vue « Référentiels d’analyse des variantes », cliquez sur l’icône « Ajouter une liste ».

-
Tapez un nom pour la nouvelle liste, puis appuyez sur Entrée.
-
Sélectionnez votre liste dans la vue, puis cliquez sur + pour ajouter un référentiel à votre liste.
Gestion de vos listes personnalisées de référentiels
Vous pouvez gérer et modifier vos listes personnalisées en cliquant avec le bouton droit sur le nom de la liste ou le nom d’un référentiel dans la liste, puis en sélectionnant une option dans le menu local.
Les listes personnalisées sont stockées dans votre espace de travail dans un fichier databases.json. Si vous souhaitez modifier ce fichier directement dans , vous pouvez l’ouvrir en Visual Studio Codecliquant sur { } dans l’en-tête d’affichage.
Par exemple, si vous souhaitez continuer à analyser un ensemble de référentiels ayant des résultats pour votre requête, cliquez sur Copier la liste des référentiels dans la vue « Résultats de l’analyse des variantes » pour ajouter une liste des seuls référentiels qui ont des résultats dans le presse-papiers en tant que JSON.
Dans l’exemple d’extrait de code suivant, my-organization/my-repository a renvoyé des résultats pour une requête :
{
"name": "new-repo-list",
"repositories": [
"my-organization/my-repository"
]
}
Vous pouvez ensuite insérer la new-repo-list des référentiels databases.jsonpour faciliter l’accès dans la vue « Référentiels d’analyse des variantes ».
Utilisation de la recherche de code GitHub pour ajouter des dépôts à une liste personnalisée
Remarque
Cette fonctionnalité utilise le code hérité via l’API de recherche de code GitHub. Pour plus d’informations sur la syntaxe à utiliser, consultez Recherche de code (hérité).
Vous pouvez utiliser la recherche de code directement dans l’extension CodeQL pour ajouter un sous-ensemble de référentiels à partir GitHub d’une liste personnalisée.
Par exemple, pour ajouter tous les référentiels de l’organisation rails sur GitHub, recherchez org:rails.
Vous pouvez ajouter un maximum de 1 000 référentiels à une liste personnalisée par recherche.
-
Dans la vue « Référentiels d’analyse des variantes », choisissez la liste à laquelle vous souhaitez ajouter des référentiels. Vous pouvez créer une liste ou choisir une liste existante qui contient déjà des référentiels.
-
Cliquez avec le bouton droit sur la liste que vous avez choisie, puis cliquez sur Ajouter des référentiels avec GitHub recherche de code.
-
Dans la fenêtre contextuelle qui s’affiche en haut de l’application, sous la barre de recherche, sélectionnez une langue pour votre recherche dans les choix de la liste déroulante.
-
Dans la barre de recherche, tapez la requête de recherche que vous souhaitez utiliser et appuyez sur Entrée.
Vous pouvez afficher la progression de votre recherche dans le coin inférieur droit de l’application dans une zone avec le texte Searching for repositories.... Si vous cliquez sur Annuler, aucun référentiel n’est ajouté à votre liste. Une fois l’opération terminée, vous verrez que les référentiels qui en résultent apparaissent dans la liste déroulante sous votre liste personnalisée dans la vue Référentiels d’analyse des variantes.
Certains des référentiels résultants n’ont CodeQL pas de bases de données et certains peuvent ne pas autoriser l’accès par l’extension CodeQL pour Visual Studio Code. Lorsque vous exécutez une analyse sur la liste, la vue « Résultats de l’analyse des variantes » affiche les référentiels qui ont été analysés, qui ont refusé l’accès et qui n’ont pas CodeQL de base de données.
Exécution CodeQL de requêtes avec analyse des variantes sur plusieurs référentiels sur des runners auto-hébergés
Pour exécuter CodeQL des requêtes avec l’analyse de variantes multi-référentiels sur des exécuteurs auto-hébergés, vous devez d’abord vous assurer que vous avez ajouté un exécuteur auto-hébergé à votre référentiel de contrôleurs, ou vous assurer que le référentiel du contrôleur a accès à un exécuteur de niveau organisation ou entreprise.
Vous devez ensuite ajouter une nouvelle variable de référentiel Actions dans votre référentiel de contrôleur avec le nom MRVA_RUNNER_OS contenant une liste au format JSON des étiquettes de l’exécuteur auto-hébergé que vous souhaitez utiliser. Par exemple:
["self-hosted", "macOS", "ARM64"]
Remarque
Vous devez définir la variable MRVA_RUNNER_OS sous les variables de référentiel Actions dans les paramètres de votre référentiel de contrôleur, et non une variable d’environnement ou un secret Actions sous vos paramètres Actions ou dans le fichier .yml de votre workflow.
Consultez « Stocker des informations dans des variables ».
Pour plus d’informations, consultez « Ajout d’exécuteurs auto-hébergés » et « Gestion de l’accès aux exécuteurs auto-hébergés à l’aide de groupes ».
Lorsque vous exécutez une requête avec l’analyse des variantes à plusieurs référentiels sur un exécuteur auto-hébergé, l’analyse est entièrement exécutée sur l’exécuteur auto-hébergé. Vous n’avez pas besoin de créer de nouveaux flux de travail, mais vous devez spécifier quel référentiel CodeQL pour l’extension Visual Studio Code doit être utilisé en tant que référentiel de contrôleur. À mesure que l’analyse de chaque référentiel se termine, les résultats sont envoyés à VS Code pour que vous puissiez les consulter.