In diesem Inhalt wird die neueste Version von CodeQL CLI beschrieben. Weitere Informationen zu diesem Thema findest du unter https://github.com/github/codeql-cli-binaries/releases.
Um Details zu den Optionen anzuzeigen, die für diesen Befehl in früheren Releases verfügbar sind, führe den Befehl mit der Option --help
im Terminal aus.
Übersicht
codeql pack install [--force] <options>... -- <dir>
codeql pack install [--force] <options>... -- <dir>
Beschreibung
Installiert Abhängigkeiten für dieses Paket.
Mit diesem Befehl werden die Abhängigkeiten des Pakets installiert. Wenn eine Datei „codeql-pack.lock.yml“ vorhanden ist, werden die in dieser Sperrdatei angegebenen Versionen installiert, sofern sie mit den in der Datei „qlpack.yml“ angegebenen Versionseinschränkungen kompatibel sind. Wenn die in der Sperrdatei angegebenen Abhängigkeitsversionen nicht mit den Einschränkungen dieses Pakets kompatibel sind, installiert dieser Befehl die neueste kompatible Version jeder dieser Abhängigkeiten und aktualisiert die Sperrdatei mit den neu ausgewählten Versionen. Wenn keine Sperrdatei vorhanden ist, installiert dieser Befehl die neueste kompatible Version aller Abhängigkeiten und erstellt eine neue Sperrdatei.
Verfügbar seit v2.6.0
.
Optionen
Primäre Optionen
<dir>
Das Stammverzeichnis des Pakets.
--format=<fmt>
Dient zum Auswählen des Ausgabeformats: text
(Standardwert) oder json
-f, --[no-]force
Erlaubt das Überschreiben bereits vorhandener Pakete.
--[no-]allow-prerelease
Erlaubt Pakete mit Vorabversionsqualifizierern (z. B. X.Y.Z-qualifier
). Ohne dieses Flag werden Vorabversionspakete ignoriert.
Verfügbar seit v2.11.3
.
--lock-override=<file>
[Erweitert] Gibt eine alternative Sperrdatei an, die als Eingabe für die Abhängigkeitsauflösung verwendet werden soll.
--lock-output=<file>
[Erweitert] Gibt einen alternativen Speicherort zum Speichern der von der Abhängigkeitsauflösung generierten Sperrdatei an.
Verfügbar seit v2.14.1
.
--no-strict-mode
[Erweitert] Deaktiviert den Strict-Modus, um eine Warnung beim Auflösen von Paketen in --additional-packs
und anderen lokal aufgelösten Speicherorten zu verhindern. Pakete, die lokal aufgelöst werden, werden nie heruntergeladen
und der Paketsperre nicht hinzugefügt.
--mode=<mode>
[Veraltet] Gibt an, wie Abhängigkeiten aufgelöst werden:
minimal-update
(Standard) : aktualisiert oder erstellt die Datei „codeql-pack.lock.yml“ basierend auf dem vorhandenen Inhalt der Datei „qlpack.yml“. Wenn eine vorhandene Datei „codeql-pack.lock.yml“ die aktuellen Abhängigkeiten in „qlpack.yml“ nicht erfüllt, wird die Sperrdatei gemäß den Anforderungen aktualisiert.
upgrade
: aktualisiert oder erstellt eine Datei „codeql-pack.lock.yml“, damit die neuesten Versionen aller Abhängigkeiten verwendet werden, wobei die Einschränkungen in der Datei „qlpack.yml“ berücksichtigt werden. Dieser Modus wurde durch den Befehl „codeql pack upgrade“ ersetzt.
verify
: überprüft, ob die vorhandene Datei „codeql-pack.lock.yml“ in Bezug auf die in der Datei „qlpack.yml“ angegebenen Abhängigkeiten weiterhin gültig ist, oder löst eine Fehler aus, wenn die Sperrdatei nicht vorhanden ist. Dieser Modus wurde durch den Befehl „codeql pack ci“ ersetzt.
no-lock
: ignoriert die vorhandene Datei „codeql-pack.lock.yml“ und führt eine Auflösung basierend auf der Datei „qlpack.yml“ aus. Erstellt oder aktualisiert die Sperrdatei nicht.
use-lock
: verwendet die vorhandene Datei „codeql-pack.lock.yml“, um Abhängigkeiten aufzulösen, oder erstellt die Sperrdatei, falls sie nicht vorhanden ist.
update
: [Veraltet] aktualisiert oder erstellt eine Datei „codeql-pack.lock.yml“, damit die neuesten Versionen aller Abhängigkeiten verwendet werden, wobei die Einschränkungen in der Datei „qlpack.yml“ berücksichtigt werden. Dieser Modus wurde durch den Befehl „codeql pack upgrade“ ersetzt.
Optionen zum Auflösen von QL-Paketen außerhalb der Paketregistrierung
--search-path=<dir>[:<dir>...]
Eine Liste der Verzeichnisse, in denen QL-Pakete gefunden werden können. Jedes Verzeichnis kann entweder ein QL-Paket (oder ein Bündel von Paketen mit einer Datei vom Typ .codeqlmanifest.json
am Stamm) oder das unmittelbar übergeordnete Element eines oder mehrerer solcher Verzeichnisse sein.
Wenn der Pfad mehrere Verzeichnisse enthält, definiert deren Reihenfolge ihre Rangfolge: Ist ein Paketname, der aufgelöst werden muss, in mehreren der Verzeichnisstrukturen enthalten, wird die erste Angabe verwendet.
Ein entsprechender Verweis beim Auschecken des Open-Source-CodeQL-Repositorys sollte funktionieren, wenn eine der darin enthaltenen Sprachen abgefragt wird.
Wenn du das CodeQL-Repository als gleichgeordnetes Element der entpackten CodeQL-Toolkette ausgecheckt hast, musst du diese Option nicht verwenden. Solche gleichgeordneten Verzeichnisse werden immer nach QL-Paketen durchsucht, die andernfalls nicht gefunden werden können. (Wenn diese Standardeinstellung nicht funktioniert, solltest du unbedingt --search-path
in einer Benutzerkonfigurationsdatei festlegen.)
(Hinweis: Unter Windows wird ;
als Pfadtrennzeichen verwendet.)
--additional-packs=<dir>[:<dir>...]
Bei Angabe dieser Verzeichnisliste werden die Verzeichnisse vor den Verzeichnissen in --search-path
nach Paketen durchsucht. Die Reihenfolge zwischen diesen Elementen spielt keine Rolle. Wenn ein Paketname über diese Liste an zwei verschiedenen Stellen gefunden wird, handelt es sich um einen Fehler.
Dies ist hilfreich, wenn du vorübergehend eine neue Version eines Pakets entwickelst, die auch am Standardpfad vorhanden ist. Andererseits wird davon abgeraten, diese Option in einer Konfigurationsdatei außer Kraft zu setzen. Einige interne Aktionen fügen diese Option direkt hinzu, wodurch alle konfigurierten Werte überschrieben werden.
(Hinweis: Unter Windows wird ;
als Pfadtrennzeichen verwendet.)
Optionen zum Konfigurieren des CodeQL-Paket-Managers
--registries-auth-stdin
Führt eine Authentifizierung bei GitHub Enterprise Server-Containerregistrierungen durch, indem eine durch Trennzeichen getrennte Liste von <registry_url>=<token>-Paaren übergeben wird.
Du kannst https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2
übergeben,
um dich bei zwei GitHub Enterprise Server-Instanzen zu authentifizieren.
Dadurch werden die Umgebungsvariablen CODEQL_REGISTRIES_AUTH und GITHUB_TOKEN überschrieben. Wenn du dich nur bei der Containerregistrierung von github.com authentifizieren musst, kannst du dich stattdessen mit der einfacheren Option --github-auth-stdin
authentifizieren.
--github-auth-stdin
Authentifiziere dich bei der Containerregistrierung auf github.com, indem du auf github.com ein GitHub Apps-Token oder ein persönliches Zugriffstoken über die Standardeingabe übergibst.
Für die Authentifizierung bei Containerregistrierungen in GitHub Enterprise Server übergibst du --registries-auth-stdin
oder verwendest die Umgebungsvariable „CODEQL_REGISTRIES_AUTH“.
Dadurch wird die GITHUB_TOKEN-Umgebungsvariable überschrieben.
Allgemeine Optionen
-h, --help
Zeigt diesen Hilfetext an.
-J=<opt>
[Erweitert] Dient zum Angeben einer Option für die JVM-Instanz, die den Befehl ausführt.
(Beachte, dass Optionen, die Leerzeichen enthalten, nicht ordnungsgemäß verarbeitet werden.)
-v, --verbose
Ermöglicht die inkrementelle Erhöhung der Anzahl ausgegebener Statusmeldungen.
-q, --quiet
Ermöglicht die inkrementelle Verringerung der Anzahl ausgegebener Statusmeldungen.
--verbosity=<level>
[Erweitert] Dient zum expliziten Festlegen des Ausführlichkeitsgrads auf „errors“, „warnings“, „progress“, „progress+“, „progress++“ oder „progress+++“. Überschreibt -v
und -q
:
--logdir=<dir>
[Erweitert] Ermöglicht das Schreiben detaillierter Protokolle in eine oder mehrere Dateien im angegebenen Verzeichnis mit generierten Namen, die Zeitstempel und den Namen des ausgeführten Unterbefehls enthalten.
(Um eine Protokolldatei mit einem Namen zu schreiben, über den du die volle Kontrolle hast, gib stattdessen --log-to-stderr
an, und leite stderr wie gewünscht um.)
--common-caches=<dir>
[Erweitert] Steuert den Speicherort zwischengespeicherter Daten auf dem Datenträger, der zwischen mehreren Ausführungsvorgängen der CLI beibehalten wird, z. B. heruntergeladene QL-Pakete und kompilierte Abfragepläne. Wenn dies nicht explizit festgelegt ist, wird dieses Verzeichnis standardmäßig auf ein Verzeichnis mit dem Namen .codeql
festgelegt, das sich im Startverzeichnis des Benutzer. Es wird erstellt, wenn es noch nicht vorhanden ist.
Verfügbar seit v2.15.2
.