Authentifizierung für GitHubContainer registries
Sie können Pakete veröffentlichen und private Pakete herunterladen, indem Sie sich bei der entsprechenden GitHubContainer registry anmelden.
Sie können sich auf zwei Arten bei Container registry authentifizieren:
- Übergeben Sie die
--github-auth-stdinOption an den CodeQL CLI, und geben Sie dann ein GitHub Apps Token oder personal access token über die Standardeingabe an. - Legen Sie die Umgebungsvariable
GITHUB_TOKENauf ein GitHub Apps Token oder personal access tokenein .
Veröffentlichen Ihres CodeQL Pakets
Wenn Sie Ihr CodeQL Paket für andere Personen freigeben möchten, können Sie es in der Container registryDatei veröffentlichen.
Konfigurieren der qlpack.yml-Datei vor der Veröffentlichung
Sie können die Konfigurationsdetails Ihres CodeQL Pakets vor der Veröffentlichung überprüfen und ändern. Öffnen Sie die qlpack.yml-Datei in Ihrem bevorzugten Text-Editor.
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:` muss dem `<scope>/<pack>` Format folgen, wobei `<scope>` die Organisation ist, zu der Sie veröffentlichen, und `<pack>` der Name für das Paket ist. -
Es ist maximal eine
defaultSuite- bzw.defaultSuiteFile-Komponente zulässig. Dies sind zwei verschiedene Möglichkeiten, eine auszuführende Standardabfragesammlung zu definieren: die erste durch direktes Angeben von Abfragen in der Datei „qlpack.yml“ und die zweite durch Angeben einer Abfragesammlung im Paket.
Wird ausgeführt codeql pack publish
Wenn Sie bereit sind, ein Paket auf GitHubContainer registry zu veröffentlichen, können Sie den folgenden Befehl im Stammverzeichnis des Pakets ausführen:
codeql pack publish
Das veröffentlichte Paket wird im Abschnitt "Pakete" der GitHub Organisation angezeigt, der durch den Bereich in der qlpack.yml Datei angegeben ist.
Hinweis
Wenn Sie Modellpakete veröffentlichen, um die GitHubContainer registry-Abdeckung auf alle Repositorys in einer Organisation als Teil einer Standardkonfiguration zu erweitern, müssen Sie sicherstellen, dass Repositorys, die Codescanning ausführen, auf diese Modellpakete zugreifen können. Weitere Informationen findest du unter Bearbeiten der Konfiguration des Standardsetups und Konfigurieren der Zugriffssteuerung und Sichtbarkeit von Paketen.
Herunterladen eines vorhandenen CodeQL Pakets
Um ein Paket auszuführen, das eine andere Person erstellt hat, müssen Sie es zuerst herunterladen, indem Sie den folgenden Befehl ausführen:
codeql pack download <scope>/<pack>@x.x.x
-
`<scope>`: der Name der Organisation, von der Sie herunterladen. -
`<pack>`: der Name des Pakets, das du herunterladen möchtest. -
`@x.x.x`: eine optionale Versionsnummer. Wenn sie nicht angegeben wird, wird die neueste Version heruntergeladen.
Dieser Befehl akzeptiert Argumente für mehrere Pakete.
Wenn Sie Skripts schreiben, die eine bestimmte Versionsnummer eines herunterzuladenden Abfragepakets angeben, denken Sie daran, dass Sie möglicherweise auch zu einer neueren Version des Abfragepakets wechseln müssen, wenn Sie Ihre Version CodeQL auf eine neuere Version des Abfragepakets aktualisieren. Neuere Versionen von CodeQL_können_ eine beeinträchtigte Leistung bieten, wenn sie mit Abfragepaketen verwendet wird, die an eine sehr alte Version angeheftet wurden. Weitere Informationen findest du unter Referenz zu CodeQL-Abfragepaketen.
Verwenden eines CodeQL Pakets zum Analysieren einer CodeQL Datenbank
Führen Sie den folgenden Befehl aus, um eine CodeQL Datenbank mit einem CodeQL Paket zu analysieren:
codeql database analyze <database> <scope>/<pack>@x.x.x:<path>
-
`<database>`: die CodeQL zu analysierende Datenbank. -
`<scope>`: der Name der GitHub Organisation, in der das Paket veröffentlicht wird. -
`<pack>`: der Name des Packs, das du verwendest. -
`@x.x.x`: eine optionale Versionsnummer. Wenn sie nicht angegeben wird, wird die neueste Version verwendet. -
`:<path>`: ein optionaler Pfad zu einer Abfrage, einem Verzeichnis oder einer Suite von Abfragen. Wenn dieser nicht angegeben wird, wird die Standardabfragesammlung des Pakets verwendet.
Der analyze Befehl führt die Standardsuite aller angegebenen CodeQL Pakete aus. Sie können mehrere CodeQL Pakete angeben, die für die Analyse einer CodeQL Datenbank verwendet werden sollen. Beispiel:
codeql <database> analyze <scope>/<pack> <scope>/<other-pack>
Hinweis
Der codeql pack download-Befehl speichert das heruntergeladene Paket an einem internen Ort, der nicht für lokale Änderungen vorgesehen ist. Unerwartetes (und schwer zu behebendes) Verhalten kann auftreten, wenn das Paket nach dem Herunterladen geändert wird. Weitere Informationen zum Anpassen von Paketen findest du unter Erstellen und Arbeiten mit CodeQL-Paketen.