Ă 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
-
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.
-
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.
-
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
-
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.
-
Si vous le souhaitez, vous pouvez ajouter un nouveau référentiel, une organisation ou une liste.
-
Dans la vue « RĂ©fĂ©rentiels dâanalyse de variantes », cliquez + pour ajouter une nouvelle base de donnĂ©es.
-
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.
-
Tapez lâidentificateur du rĂ©fĂ©rentiel ou de lâorganisation que vous souhaitez utiliser dans le champ.
-
-
SĂ©lectionnez le rĂ©fĂ©rentiel ou les rĂ©fĂ©rentiels GitHub 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Ă©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
-
Dans la vue « RĂ©fĂ©rentiels dâanalyse de variantes », cliquez + pour ajouter une nouvelle base de donnĂ©es.
-
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.
-
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.
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
-
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 ».
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 ».
-
Dans la vue « RĂ©fĂ©rentiels dâanalyse de variantes », cliquez sur lâicĂŽne « Ajouter une liste ».
-
Tapez le nom de la nouvelle liste, puis appuyez sur Entrée.
-
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.json
pour 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.
-
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.
-
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.
-
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 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.