Authentification à GitHubContainer registries
Vous pouvez publier des packs et télécharger des packs privés en s’authentifiant auprès des éléments appropriés GitHubContainer registry.
Vous pouvez vous authentifier avec le Container registry de deux manières :
- Transmettez l’option
--github-auth-stdinà CodeQL CLI, puis fournissez un jeton GitHub Apps ou personal access token via l'entrée standard. - Définissez la variable d’environnement
GITHUB_TOKENsur un jeton GitHub Apps ou personal access token.
Publication de votre CodeQL pack
Pour partager votre CodeQL pack avec d’autres personnes, vous pouvez le publier sur le Container registry.
Configuration du fichier qlpack.yml avant la publication
Vous pouvez vérifier et modifier les détails de configuration de votre CodeQL pack avant la publication. Ouvrez le fichier qlpack.yml dans l’éditeur de texte de votre choix.
library: # set to true if the pack is a library. Set to false or omit for a query pack
name: <scope>/<pack>
version: <x.x.x>
description: <Description to publish with the package>
defaultSuite: # optional, one or more queries in the pack to run by default
- query: <relative-path>/query-file>.ql
defaultSuiteFile: default-queries.qls # optional, a pointer to a query-suite in this pack
license: # optional, the license under which the pack is published
dependencies: # map from CodeQL pack name to version range
-
`name:` doit suivre le `<scope>/<pack>` format, où `<scope>` est l’organisation GitHub dans laquelle vous allez publier et `<pack>` est le nom du pack. -
Un maximum d’une
defaultSuiteou d’undefaultSuiteFileest autorisé. Il existe deux façons différentes de définir une suite de requêtes par défaut à exécuter : la première en spécifiant des requêtes directement dans le fichier qlpack.yml et la seconde en spécifiant une suite de requêtes dans le pack.
En cours d’exécution codeql pack publish
Lorsque vous êtes prêt à publier un pack sur celui-ci GitHubContainer registry, vous pouvez exécuter la commande suivante à la racine du répertoire du pack :
codeql pack publish
Le package publié s’affiche dans la section packages de l’organisation GitHub spécifiée par l’étendue du qlpack.yml fichier.
Remarque
Si vous publiez des packs de modèles dans le GitHubContainer registry afin d’étendre la couverture à tous les référentiels d’une organisation dans le cadre d’une configuration par défaut, vous devez vous assurer que les référentiels qui exécutent l’analyse du code peuvent accéder à ces packs de modèles. Pour plus d’informations, consultez « Modification de la configuration d’installation par défaut » et « Configuration du contrôle d’accès et de la visibilité d’un package ».
Téléchargement d’un pack existant CodeQL
Pour exécuter un pack créé par quelqu’un d’autre, vous devez d’abord le télécharger en exécutant la commande suivante :
codeql pack download <scope>/<pack>@x.x.x
-
`<scope>`: nom de l’organisation GitHub à partir de laquelle vous allez télécharger. -
`<pack>` : nom du pack que vous voulez télécharger. -
`@x.x.x` : numéro de version facultatif. S’il est omis, c’est la dernière version qui est téléchargée.
Cette commande accepte des arguments pour plusieurs packs.
Si vous écrivez des scripts qui spécifient un numéro de version particulier d’un pack de requêtes à télécharger, gardez à l’esprit que lorsque vous mettez à jour votre version vers CodeQL une version plus récente, vous devrez peut-être également basculer vers une version plus récente du pack de requêtes. Les versions plus récentes CodeQL__ fournir des performances détériorées lorsqu’elles sont utilisées avec des packs de requêtes épinglés à une version très ancienne. Pour plus d’informations, consultez « Informations de référence sur les packs de requêtes CodeQL ».
Utilisation d’un CodeQL pack pour analyser une CodeQL base de données
Pour analyser une CodeQL base de données avec un CodeQL pack, exécutez la commande suivante :
codeql database analyze <database> <scope>/<pack>@x.x.x:<path>
-
`<database>`: base CodeQL de données à analyser. -
`<scope>`: nom de l’organisation GitHub dans laquelle le pack est publié. -
`<pack>` : nom du pack que vous utilisez. -
`@x.x.x` : numéro de version facultatif. S’il est omis, c’est la dernière version qui est utilisée. -
`:<path>` : chemin facultatif d’une requête, d’un répertoire ou d’une suite de requêtes. S’il est omis, c’est la suite de requêtes par défaut du pack qui est utilisée.
La analyze commande exécute la suite par défaut de tous les packs spécifiés CodeQL . Vous pouvez spécifier plusieurs CodeQL packs à utiliser pour analyser une CodeQL base de données. Par exemple:
codeql <database> analyze <scope>/<pack> <scope>/<other-pack>
Remarque
La commande codeql pack download stocke le pack qu’elle télécharge à un emplacement interne qui n’est pas destiné à la modification locale. Un comportement inattendu (et difficile à résoudre) peut se produire si le pack est modifié après le téléchargement. Pour plus d'informations sur la personnalisation des packs, veuillez consulter la section Création et utilisation de packs CodeQL.