Skip to main content

ExĂ©cution de requĂȘtes CodeQL Ă  grande Ă©chelle avec l’analyse de variantes multi-rĂ©fĂ©rentiels

Vous pouvez exĂ©cuter des requĂȘtes CodeQL sur un grand nombre de rĂ©fĂ©rentiels sur GitHub depuis Visual Studio Code.

À propos de l’exĂ©cution de requĂȘtes CodeQL Ă  grande Ă©chelle avec l’analyse de variantes multi-rĂ©fĂ©rentiels

Avec l’analyse de variantes multi-rĂ©fĂ©rentiels (MRVA), vous pouvez exĂ©cuter des requĂȘtes CodeQL sur une liste allant jusqu’à 1000 rĂ©fĂ©rentiels sur GitHub depuis Visual Studio Code.

Lorsque vous exĂ©cutez MRVA sur une liste de rĂ©fĂ©rentiels, votre requĂȘte est exĂ©cutĂ©e sur chaque rĂ©fĂ©rentiel avec une base de donnĂ©es CodeQL disponible pour analyser. GitHub crĂ©e et stocke la base de donnĂ©es CodeQL la plus rĂ©cente pour les branches par dĂ©faut de milliers de rĂ©fĂ©rentiels publics, y compris chaque rĂ©fĂ©rentiel qui exĂ©cute code scanning en utilisant CodeQL.

Vous devez activer code scanning Ă  l’aide de CodeQL sur GitHub, Ă  l’aide de la configuration par dĂ©faut ou de la configuration avancĂ©e, avant d’ajouter votre dĂ©pĂŽt Ă  une liste pour analyse. Pour plus d’informations sur l’activation code scanning Ă  l’aide de CodeQL, consultez « DĂ©finition de la configuration par dĂ©faut pour l’analyse du code Â».

Comment MRVA exĂ©cute des requĂȘtes sur les bases de donnĂ©es CodeQL sur GitHub.com

Lorsque vous exĂ©cutez MRVA, l’analyse est entiĂšrement exĂ©cutĂ©e Ă  l’aide de GitHub Actions. Vous n’avez pas besoin de crĂ©er de flux de travail, mais vous devez spĂ©cifier quel rĂ©fĂ©rentiel le CodeQL pour l’extension Visual Studio Code doit utiliser 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 vous permettre d’afficher.

L’extension CodeQL gĂ©nĂšre un pack CodeQL avec votre bibliothĂšque et toutes les dĂ©pendances de bibliothĂšque. Le pack CodeQL et votre liste de rĂ©fĂ©rentiels sĂ©lectionnĂ©s sont publiĂ©s sur un point de terminaison d’API sur GitHub, ce qui dĂ©clenche un flux de travail dynamique GitHub Actions dans votre rĂ©fĂ©rentiel de contrĂŽleur. Le flux de travail fait tourner plusieurs projets parallĂšles pour exĂ©cuter la requĂȘte CodeQL sur les rĂ©fĂ©rentiels de la liste, en optimisant l’exĂ©cution des requĂȘtes. À mesure que chaque rĂ©fĂ©rentiel est analysĂ©, les rĂ©sultats sont traitĂ©s et affichĂ©s dans VS Code.

Prérequis

  • Vous devez dĂ©finir un rĂ©fĂ©rentiel de contrĂŽleur avant de pouvoir exĂ©cuter votre premiĂšre analyse de variantes multi-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 de contrĂŽleur peut ĂȘtre « publique Â» si vous envisagez d’analyser uniquement les rĂ©fĂ©rentiels publics. L’analyse des variantes sera gratuite.

  • La visibilitĂ© du rĂ©fĂ©rentiel de 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 de 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 GitHub Actions Â».

Configuration d’un rĂ©fĂ©rentiel de contrĂŽleurs pour MRVA

  1. Dans la vue « RĂ©fĂ©rentiels d’analyse de variantes Â», cliquez sur Configurer le rĂ©fĂ©rentiel de contrĂŽleurs pour afficher un champ pour le rĂ©fĂ©rentiel de contrĂŽleurs.

    Capture d’écran de la vue « RĂ©fĂ©rentiels d’analyse de variantes Â». Le bouton « Configurer le rĂ©fĂ©rentiel de contrĂŽleurs Â» est mis en surbrillance en orange foncĂ©.

  2. Saisissez le propriétaire et le nom du référentiel sur GitHub que vous souhaitez utiliser comme votre référentiel de contrÎleur et appuyez sur la touche Entrée.

  3. 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 l’authentification GitHub 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 « Personnaliser les paramĂštres Â».

ExĂ©cution d’une requĂȘte Ă  grande Ă©chelle Ă  l’aide de MRVA

  1. Par dĂ©faut, la vue « RĂ©fĂ©rentiels d’analyse de variantes Â» affiche les listes par dĂ©faut des 10 premiers, 100 premiers et 1000 dĂ©pĂŽts 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.

  2. Si vous le souhaitez, vous pouvez ajouter un nouveau référentiel, une organisation ou une liste.

    1. Dans la vue « RĂ©fĂ©rentiels d’analyse de variantes Â», cliquez + pour ajouter une nouvelle base de donnĂ©es.

    2. Dans le menu dĂ©roulant, sĂ©lectionnez ** Dans un rĂ©fĂ©rentiel GitHub** ou Tous les rĂ©fĂ©rentiels de l’org ou du propriĂ©taire GitHub.

    3. Tapez l’identificateur du rĂ©fĂ©rentiel ou de l’organisation que vous souhaitez utiliser dans le champ.

  3. SĂ©lectionnez le rĂ©fĂ©rentiel ou les rĂ©fĂ©rentiels GitHub sur lesquels vous souhaitez exĂ©cuter votre requĂȘte.

    Capture d’écran de la vue « RĂ©fĂ©rentiels d’analyse de variantes Â». La ligne « octo-org/octo-repo Â» est mise en surbrillance bleue et son bouton « SĂ©lectionner Â» surlignĂ© en orange.

  4. 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Ă©cutez l’analyse des variantes pour dĂ©marrer l’analyse de variantes.

Remarque

Pour annuler une exĂ©cution d’analyse de 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 GitHub pour l’analyse

  1. Dans la vue « RĂ©fĂ©rentiels d’analyse de variantes Â», cliquez + pour ajouter une nouvelle base de donnĂ©es.

  2. Dans le menu dĂ©roulant, sĂ©lectionnez ** Dans un rĂ©fĂ©rentiel GitHub** ou Tous les rĂ©fĂ©rentiels de l’org ou du propriĂ©taire GitHub.

  3. 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 MRVA, il existe deux emplacements clĂ©s oĂč les erreurs et les avertissements sont affichĂ©s :

  • Erreurs Visual Studio Code : les problĂšmes liĂ©s Ă  la crĂ©ation d’un pack CodeQL et Ă  l’envoi de l’analyse Ă  GitHub sont signalĂ©s en tant qu’erreurs Visual Studio Code dans le coin infĂ©rieur droit de l’application. Les informations sont Ă©galement disponibles dans la vue « ProblĂšmes Â».

  • « RĂ©sultats de l’analyse de variantes Â» : tous les problĂšmes liĂ©s Ă  l’exĂ©cution d’analyse de variante sont signalĂ©s dans cette vue.

Exploration de vos résultats

DĂšs qu’un flux de travail pour exĂ©cuter votre analyse de variantes sur GitHub est en cours d’exĂ©cution, une vue « RĂ©sultats de l’analyse de variantes Â» s’ouvre pour afficher les rĂ©sultats dĂšs qu’ils sont prĂȘts. Vous pouvez utiliser cette vue pour surveiller la progression, voir les erreurs et accĂ©der aux journaux de flux de travail dans votre rĂ©fĂ©rentiel de contrĂŽleur.

Capture d’écran de « RĂ©sultats d’analyse de variantes Â» montrant une exĂ©cution pour « FileAccessToHttp.ql Â». Les cercles bleus indiquent le nombre de rĂ©sultats trouvĂ©s ou « - Â» toujours en cours d’exĂ©cution.

Lorsque votre exĂ©cution d’analyse de variantes est planifiĂ©e, la vue « RĂ©sultats Â» s’ouvre automatiquement. Initialement, l’affichage 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

  • Indique si l’analyse est toujours en cours d’exĂ©cution ou si elle est terminĂ©

  • Nombre d’étoiles que le rĂ©fĂ©rentiel contient sur GitHub

Affichage des rĂ©sultats d’un rĂ©fĂ©rentiel

  1. Cliquez sur le nom du référentiel pour afficher un résumé de chaque résultat.

  2. 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 Â».

    Capture d’écran de la vue « RĂ©sultats de l’analyse des variantes Â», avec des liens bleus vers les fichiers sources GitHub. Le lien « Afficher les chemins Â» est mis en Ă©vidence en orange foncĂ©.

Exporter vos résultats

Vous pouvez exporter vos rĂ©sultats pour une analyse plus approfondie ou pour les 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

L’analyse CodeQL nĂ©cessite toujours une base de donnĂ©es CodeQL 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 ont actuellement une base de donnĂ©es CodeQL 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 code scanning Ă  l’aide de CodeQL, consultez « DĂ©finition de la configuration par dĂ©faut pour l’analyse du code Â».

  1. Dans la vue « RĂ©fĂ©rentiels d’analyse de variantes Â», cliquez sur l’icĂŽne « Ajouter une liste Â».

    Capture d’écran de la vue « RĂ©sultats de l’analyse des variantes Â». L’icĂŽne « add-list Â» est mise en surbrillance en orange foncĂ©.

  2. Tapez le nom de la nouvelle liste, puis appuyez sur Entrée.

  3. SĂ©lectionnez votre liste dans l’affichage, 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 un nom de 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 Visual Studio Code, vous pouvez l’ouvrir en cliquant 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 les rĂ©sultats d’une requĂȘte ont Ă©tĂ© obtenus :

{
    "name": "new-repo-list",
    "repositories": [
        "my-organization/my-repository"
    ]
}

Vous pouvez ensuite insĂ©rer le new-repo-list des rĂ©fĂ©rentiels databases.jsonpour faciliter l’accĂšs dans la vue « RĂ©fĂ©rentiels d’analyse de variantes Â».

Utilisation de la recherche de code GitHub pour ajouter des référentiels à une liste personnalisée

Remarque

Cette fonctionnalitĂ© utilise la recherche de code hĂ©ritĂ©e 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 depuis GitHub vers 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.

  1. Dans la vue « RĂ©fĂ©rentiels d’analyse de 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.

  2. Cliquez avec le bouton droit de la souris sur la liste que vous avez choisie, puis cliquez sur Ajouter des dépÎts avec GitHub recherche de code.

  3. 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.

  4. 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 de variantes.

Certains rĂ©fĂ©rentiels rĂ©sultants n’ont pas de bases de donnĂ©es CodeQL 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 de base de donnĂ©es CodeQL.

ExĂ©cution de requĂȘtes CodeQL avec analyse de variantes multi-rĂ©fĂ©rentiels sur des exĂ©cuteurs auto-hĂ©bergĂ©s

Pour exĂ©cuter des requĂȘtes CodeQL avec analyse de variantes multi-rĂ©fĂ©rentiels sur des exĂ©cuteurs auto-hĂ©bergĂ©s, vous devez tout 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 au niveau de l’organisation ou de l’entreprise.

Vous devez ensuite ajouter une nouvelle variable de rĂ©fĂ©rentiel Actions dans votre rĂ©fĂ©rentiel de contrĂŽleurs 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 flux de travail. 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 de variantes multi-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 le CodeQL pour l’extension Visual Studio Code doit utiliser 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 vous permettre d’afficher.