Skip to main content

Enterprise Server 3.15 ist derzeit als Release Candidate verfügbar.

database analyze

Analysiert eine Datenbank und erzeugt aussagekräftige Ergebnisse im Kontext des Quellcodes.

Wer kann dieses Feature verwenden?

CodeQL ist für die folgenden Repositorytypen verfügbar:

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

Shell
codeql database analyze --format=<format> --output=<output> [--threads=<num>] [--ram=<MB>] <options>... -- <database> <query|dir|suite|pack>...

Beschreibung

Analysiert eine Datenbank und erzeugt aussagekräftige Ergebnisse im Kontext des Quellcodes.

Führt eine Abfragesammlung (oder einzelne Abfragen) für eine CodeQL-Datenbank aus und erzeugt Ergebnisse, die als Warnungen oder Pfade in SARIF oder einem anderen interpretierten Format formatiert sind.

Dieser Befehl kombiniert die Auswirkungen der Befehle codeql database run-queries und codeql database interpret-results. Wenn du Abfragen ausführen möchtest, deren Ergebnisse nicht den Anforderungen für die Interpretation als Quellcodewarnungen entsprechen, verwendest du stattdessen codeql database run-queries oder codeql query run und anschließend codeql bqrs decode, um die unformatierten Ergebnisse in eine lesbare Notation umzuwandeln.

Optionen

Primäre Optionen

<database>

[Obligatorisch] Pfad zu der CodeQL-Datenbank, die abgefragt werden soll.

<querysuite|pack>...

Auszuführende Abfragen. Jedes Argument hat die Form scope/name@range:path. Dabei gilt Folgendes:

  • scope/name ist der qualifizierte Name eines CodeQL-Pakets.
  • range ist ein SemVer-Bereich.
  • path ist ein Dateisystempfad.

Wenn ein scope/name angegeben ist, sind range und path optional. Ein fehlender range impliziert die neueste Version des angegebenen Pakets. Ein fehlender path impliziert die Standardabfragesammlung des angegebenen Pakets.

Der path kann Folgendes sein: eine *.ql-Abfragedatei, ein Verzeichnis mit einer oder mehreren Abfragen oder eine .qls-Abfragesammlungsdatei. Wenn kein Packname angegeben ist, muss ein path angegeben werden, der relativ zum Arbeitsverzeichnis des aktuellen Prozesses interpretiert wird.

Um einen path anzugeben, der die Literale @ oder : enthält, verwendest du path: als Präfix für das Argument: path:directory/with:and@/chars.

Wenn du einen scope/name und einen path angibst, kann der path nicht absolut sein. Er wird als relativ zum Stamm des CodeQL-Pakets ausgewertet.

Wenn keine Abfragen angegeben sind, ermittelt die CLI automatisch geeignete Abfragen, die ausgeführt werden sollen. Wenn insbesondere zum Zeitpunkt der Datenbankerstellung mit --codescanning-config eine Konfigurationsdatei für die Codeüberprüfung angegeben wurde, werden die Abfragen aus dieser verwendet. Andernfalls werden die Standardabfragen für die zu analysierende Sprache verwendet.

--format=<format>

[Obligatorisch] Das Format, in dem die Ergebnisse ausgegeben werden sollen. Enthält einen der folgenden Werte:

csv: Formatierte durch Trennzeichen getrennte Werte, einschließlich Spalten mit Regel- und Warnungsmetadaten

sarif-latest: Static Analysis Results Interchange Format (SARIF), ein JSON-basiertes Format zum Beschreiben statischer Analyseergebnisse. Diese Formatoption basiert auf der neuesten unterstützten Version (v2.1.0). Sie eignet sich nicht für die Automatisierung, da sie zwischen verschiedenen CodeQL-Versionen unterschiedliche Versionen von SARIF erzeugt.

sarifv2.1.0: SARIF v2.1.0.

graphtext: Ein Textformat, das ein Diagramm darstellt. Nur kompatibel mit Abfragen mit @kind-Diagramm.

dgml: Directed Graph Markup Language, ein XML-basiertes Format zum Beschreiben von Diagrammen. Nur kompatibel mit Abfragen mit @kind-Diagramm.

dot: Graphviz DOT-Sprache, ein textbasiertes Format zum Beschreiben von Diagrammen. Nur kompatibel mit Abfragen mit @kind-Diagramm.

-o, --output=<output>

[Obligatorisch] Der Ausgabepfad, in den Ergebnisse geschrieben werden sollen. Bei Diagrammformaten sollte dies ein Verzeichnis sein. Das Ergebnis (oder die Ergebnisse, wenn dieser Befehl die Interpretation von mehr als einer Abfrage unterstützt) werden dann in dieses Verzeichnis geschrieben.

--[no-]rerun

Wertet auch Abfragen aus, für die bereits ein BQRS-Ergebnis in der Datenbank gespeichert zu sein scheint.

--no-print-diagnostics-summary

Gibt keine Zusammenfassung der analysierten Diagnose an der Standardausgabe aus.

--no-print-metrics-summary

Gibt keine Zusammenfassung der analysierten Metriken an der Standardausgabe aus.

--max-paths=<maxPaths>

Die maximale Anzahl von Pfaden, die für jede Warnung mit Pfaden erzeugt werden sollen. (Standard: 4)

--[no-]sarif-add-file-contents

[Nur SARIF-Formate] Schließe den vollständigen Dateiinhalt für alle Dateien ein, auf die in mindestens einem Ergebnis verwiesen wird.

--[no-]sarif-add-snippets

[Nur SARIF-Formate] Füge Codeausschnitte für jeden in den Ergebnissen erwähnten Speicherort mit zwei Kontextzeilen vor und nach dem gemeldeten Speicherort hinzu.

--[no-]sarif-add-query-help

[Nur SARIF-Formate] [Veraltet] Schließen Sie die Markdown-Abfragehilfe für alle Abfragen ein. Die Abfragehilfe für /path/to/query.ql wird aus der Datei /path/to/query.md geladen. Wenn dieses Kennzeichen nicht angegeben wird, besteht das Standardverhalten darin, nur Hilfe für benutzerdefinierte Abfragen einzuschließen, d. h. diejenigen in Abfragepaketen, die nicht in der Form von `codeql/<lang&rt;-queries` sind. Diese Option hat keine Auswirkungen, wenn sie an codeql bqrs interpret übergeben wird.

--sarif-include-query-help=<mode>

[Nur SARIF-Formate] Geben Sie an, ob Abfragehilfe in die SARIF-Ausgabe eingeschlossen werden soll. Eine der folgenden Optionen:

always: Abfragehilfe für alle Abfragen einschließen.

custom_queries_only (Standard): Schließen Sie Abfragehilfe nur für benutzerdefinierte Abfragen ein, d. h. diejenigen in Abfragepaketen, die nicht der Form von `codeql/<lang&rt;-queries` sind.

never: Fügen Sie keine Abfragehilfe für Abfragen ein.

Diese Option hat keine Auswirkungen, wenn sie an codeql bqrs interpret übergeben wird.

Verfügbar seit v2.15.2.

--no-sarif-include-alert-provenance

[Erweiterte] [Nur SARIF-Formate] Schließen Sie keine Warnungs-Provenienzinformationen in die SARIF-Ausgabe ein.

Verfügbar seit v2.18.1.

--[no-]sarif-group-rules-by-pack

[Nur SARIF-Formate] Platziere das Regelobjekt für jede Abfrage unter dem entsprechenden QL-Paket in der <run>.tool.extensions-Eigenschaft. Diese Option hat keine Auswirkungen, wenn sie an codeql bqrs interpret übergeben wird.

--[no-]sarif-multicause-markdown

[Nur SARIF-Formate] Bei Warnungen, die mehrere Ursachen haben, werden diese nicht nur als einfache Zeichenfolge, sondern auch als aufgeschlüsselte Liste im Markdown-Format in die Ausgabe aufgenommen.

--no-sarif-minify

[nur SARIF-Formate] Erstellen von SARIF-Ausgaben mit automatischer Strukturierung und Einrückung. Standardmäßig wird die SARIF-Ausgabe minimiert, um die Größe der Ausgabedatei zu verringern.

--sarif-run-property=<String=String>

[Nur SARIF-Formate] Ein Schlüsselwertpaar, das dem generierten SARIF-Eigenschaftenbehälter „run“ hinzugefügt werden soll. Kann wiederholt werden.

--no-group-results

[Nur SARIF-Formate] Erzeuge ein Ergebnis pro Nachricht und nicht ein Ergebnis pro eindeutigem Speicherort.

--csv-location-format=<csvLocationFormat>

Das Format, in dem Speicherorte in der CSV-Ausgabe erstellt werden sollen. Eines der folgenden Elemente: uri, line-column, offset-length. (Standard: line-column (Zeilenspalte))

--dot-location-url-format=<dotLocationUrlFormat>

Eine Formatzeichenfolge, die das Format definiert, in dem Dateispeicherort-URLs in der DOT-Ausgabe erzeugt werden sollen. Die folgenden Platzhalter können verwendet werden: {path} {start:line} {start:column} {end:line} {end:column}, {offset}, {length}

--[no-]sublanguage-file-coverage

[Nur GitHub.com und GitHub Enterprise Server v3.12.0+] Verwenden Sie Informationen zur Dateiabdeckung in Untersprache. Dadurch werden separate Dateiabdeckungsinformationen für Sprachen berechnet, angezeigt und exportiert, die einen CodeQL-Extraktor wie C und C++, Java und Kotlin sowie JavaScript und TypeScript gemeinsam nutzen.

Verfügbar seit v2.15.2.

--sarif-category=<category>

[Nur SARIF-Formate] [Empfohlen] Geben Sie eine Kategorie für diese Analyse an, die in die SARIF-Ausgabe aufgenommen werden soll. Eine Kategorie kann verwendet werden, um mehrere Analysen zu unterscheiden, die für denselben Commit und dasselbe Repository, aber für verschiedene Sprachen oder verschiedene Teile des Codes durchgeführt wurden.

Wenn du dieselbe Version einer Codebasis mit verschiedenen Methoden (z. B. für verschiedene Sprachen) analysierst und die Ergebnisse zur Präsentation in die Codeüberprüfung auf GitHub hochlädst, sollte sich dieser Wert zwischen den einzelnen Analysen unterscheiden, damit die Codeüberprüfung weiß, dass die Analysen sich gegenseitig ergänzen und nicht ersetzen. (Die Werte sollten zwischen Ausführungen derselben Analyse für verschiedene Versionen der Codebasis konsistent sein.)

Dieser Wert wird (mit einem nachgestellten Schrägstrich, sofern noch nicht vorhanden) als Eigenschaft <run>.automationDetails.id angezeigt.

--no-database-extension-packs

[Erweiterte] Auslassen von Erweiterungspaketen, die während der Datenbankerstellung in der Datenbank gespeichert sind, entweder aus einer Codeüberprüfungskonfigurationsdatei oder aus Erweiterungsdateien, die im Verzeichnis „Erweiterungen“ der analysierten Codebasis gespeichert sind.

--no-database-threat-models

[Erweitert] Lässt die Konfiguration des Bedrohungsmodells aus, die während der Datenbankerstellung in der Datenbank gespeichert sind, aus einer Codeüberprüfungskonfigurationsdatei.

--[no-]download

Lädt vor der Analyse alle fehlenden Abfragen herunter.

Optionen zum Steuern der zu verwendenden Modellpakete

--model-packs=<name@range>...

Eine Liste von CodeQL-Paketnamen, jeweils mit einem optionalen Versionsbereich, die als Modellpakete verwendet werden, um die Abfragen, die ausgewertet werden sollen, anzupassen.

Optionen zum Steuern der zu verwendenden Bedrohungsmodelle

--threat-model=<name>...

Eine Liste der Bedrohungsmodelle, die aktiviert oder deaktiviert werden sollen.

Das Argument ist der Name eines Bedrohungsmodells, dem optional ein „!“ vorangestellt ist. Wenn kein ‚!’ vorhanden ist, werden das benannte Bedrohungsmodell und alle untergeordneten Elemente aktiviert. Wenn ein ‚!’ vorhanden ist, werden das benannte Bedrohungsmodell und alle untergeordneten Elemente deaktiviert.

Das Bedrohungsmodell ‚Standard’ ist standardmäßig aktiviert, kann jedoch durch Angabe von ‚---threat-model !default’ deaktiviert werden.

Das Bedrohungsmodell ‚alle’ kann verwendet werden, um alle Bedrohungsmodelle zu aktivieren oder zu deaktivieren.

Die Optionen für das --Bedrohungsmodell werden in der entsprechenden Reihenfolge verarbeitet. Beispielsweise ermöglicht ‚---threat-model local --threat-model !environment’ alle Bedrohungsmodelle in der Gruppe ‚lokal’, mit Ausnahme des Bedrohungsmodells ‚Umgebung’.

Diese Option hat nur Auswirkungen auf Sprachen, die Bedrohungsmodelle unterstützen.

Verfügbar seit v2.15.3.

Optionen zum Steuern der Abfrageauswertung

--[no-]tuple-counting

[Erweitert] Zeigt die Tupelanzahl für jeden Auswertungsschritt in den Protokollen der Abfrageauswertung an. Bei Angabe der Option --evaluator-log wird die Tupelanzahl sowohl in die textbasierten als auch in die strukturierten JSON-Protokolle eingeschlossen, die durch den Befehl erstellt werden. (Dies kann bei der Optimierung der Leistung von komplexem QL-Code hilfreich sein.)

--timeout=<seconds>

[Erweitert] Dient zum Festlegen der Timeoutlänge für die Abfrageauswertung in Sekunden.

Das Timeoutfeature ist für Fälle vorgesehen, in denen die Auswertung einer komplexen Abfrage zu lange dauern würde. Es ist keine effektive Methode zur Begrenzung der Gesamtdauer der Abfrageauswertung. Die Auswertung kann fortgesetzt werden, solange jeder Teil der Berechnung, für den eine separate Zeiterfassung erfolgt, innerhalb des Timeouts abgeschlossen wird. Derzeit sind diese Teile mit separater Zeiterfassung „RA-Ebenen“ der optimierten Abfrage. Dies kann sich aber noch ändern.

Ohne Timeoutangabe oder bei Angabe eines Nullwerts wird kein Timeout festgelegt. (Einzige Ausnahme ist codeql test run: Hier gilt ein Standardtimeout von fünf Minuten.)

-j, --threads=<num>

Dient zum Festlegen, wie viele Threads für die Abfrageauswertung verwendet werden sollen.

Der Standardwert lautet 1. Du kannst 0 übergeben, um jeweils einen Thread pro Kern auf dem Computer zu verwenden, oder -N, um N Kerne ungenutzt zu lassen. (Es wird allerdings immer noch mindestens ein Thread verwendet.)

--[no-]save-cache

[Erweitert] Dient zum aggressiven Schreiben von Zwischenergebnissen in den Datenträgercache. Dies nimmt mehr Zeit in Anspruch und benötigt (viel) mehr Speicherplatz, kann jedoch die nachfolgende Ausführung ähnlicher Abfragen beschleunigen.

--[no-]expect-discarded-cache

[Erweitert] Hiermit kannst du entscheiden, welche Prädikate ausgewertet werden sollen und was in den Datenträgercache geschrieben werden soll (basierend auf der Annahme, dass der Cache nach Ausführung der Abfragen geleert wird).

--[no-]keep-full-cache

[Erweitert] Dient zum Festlegen, dass der Datenträgercache nach Abschluss der Auswertung nicht bereinigt werden soll. Das kann Zeit sparen, wenn du später ohnehin codeql dataset cleanup oder codeql database cleanup verwendest.

--max-disk-cache=<MB>

Dient zum Festlegen des maximalen Speicherplatzes, der vom Datenträgercache für Zwischenergebnisse von Abfragen beansprucht werden darf.

Wird diese Größe nicht explizit konfiguriert, versucht der Auswerter, basierend auf der Größe des Datasets und der Komplexität der Abfragen eine angemessene Menge an Cachespeicherplatz zu verwenden. Durch explizites Festlegen eines höheren Grenzwerts (im Vergleich zur Standardnutzung) können mehr Daten zwischengespeichert werden, was spätere Abfragen beschleunigen kann.

--min-disk-free=<MB>

[Erweitert] Dient zum Festlegen der Zielmenge des freien Speicherplatzes im Dateisystem.

Ohne Angabe von --max-disk-cache versucht der Auswerter nach Möglichkeit, die Nutzung des Datenträgercaches einzuschränken, wenn der freie Speicherplatz im Dateisystem diesen Wert unterschreitet.

--min-disk-free-pct=<pct>

[Erweitert] Dient zum Festlegen des Zielanteils des freien Speicherplatzes im Dateisystem.

Ohne Angabe von --max-disk-cache versucht der Auswerter nach Möglichkeit, die Nutzung des Datenträgercaches einzuschränken, wenn der freie Speicherplatz im Dateisystem diesen Prozentsatz unterschreitet.

--external=<pred>=<file.csv>

Eine CSV-Datei, die Zeilen für das externe Prädikat <pred> enthält. Für --external können mehrere Optionen angegeben werden.

--xterm-progress=<mode>

[Erweitert] Steuert, ob die Statusnachverfolgung während der QL-Auswertung mithilfe von xterm-Steuersequenzen angezeigt werden soll. Mögliche Werte:

no: Generiert keinen aufwendigen Status und geht von einem einfachen Terminal aus.

auto (Standardwert): Ermittelt automatisch, ob der Befehl in einem geeigneten Terminal ausgeführt wird.

yes: Geht davon aus, dass das Terminal mit xterm-Kontrollsequenzen kompatibel ist. Das Feature muss weiterhin die Größe des Terminals automatisch ermitteln können, und wird bei Angabe von -q deaktiviert.

25x80 (oder ähnlich): Wie yes, und gibt auch explizit die Größe des Terminals an.

25x80:/dev/pts/17 (oder ähnlich): Zeigt einen aufwendigen Status in einem anderen Terminal als stderr an. In erste Linie für interne Tests nützlich.

Optionen zum Steuern der Ausgabe strukturierter Auswertungsprotokolle

--evaluator-log=<file>

[Erweitert] Dient zum Ausgeben strukturierter Protokolle zur Leistung des Auswerters für die angegebene Datei. Das Format dieser Protokolldatei kann ohne vorherige Ankündigung geändert werden. Es handelt sich jedoch um einen Datenstrom von JSON-Objekten, die entweder durch zwei Neue-Zeile-Zeichen (standardmäßig) getrennt werden – oder durch ein einzelnes, wenn die Option --evaluator-log-minify übergeben wird. Verwende codeql generate log-summary <file>, um eine stabilere Zusammenfassung dieser Datei zu erstellen, und vermeide eine direkte Analyse der Datei. Die Datei wird überschrieben, wenn sie bereits vorhanden ist.

--evaluator-log-minify

[Erweitert] Wenn die Option --evaluator-log zusammen mit dieser Option übergeben wird, wird die Größe des generierten JSON-Protokolls minimiert. Dies beeinträchtigt allerdings die Lesbarkeit.

Optionen zum Steuern des RAM-Verbrauchs

-M, --ram=<MB>

Die Abfrageauswertung bemüht sich, ihren Gesamtspeicherbedarf unter diesem Wert zu halten. (Bei großen Datenbanken kann es jedoch vorkommen, dass der Schwellenwert durch dateigesicherte Speicherzuordnungen überschritten wird, die bei Speicherauslastung auf einen Datenträger ausgelagert werden können).

Der Wert sollte mindestens 2048 MB betragen; kleinere Werte werden transparent aufgerundet.

Optionen zum Steuern der QL-Kompilierung

--warnings=<mode>

Behandeln von Warnungen vom QL-Compiler Enthält einen der folgenden Werte:

hide: unterdrückt Warnungen

show (Standard) : gibt Warnungen aus, setzt die Kompilierung aber fort.

error: behandelt Warnungen als Fehler.

--no-debug-info

Gibt keine Informationen zum Quellspeicherort in RA zum Debuggen aus.

--[no-]fast-compilation

[Veraltet] [Erweitert] Lässt besonders langsame Optimierungsschritte aus.

--no-release-compatibility

[Erweitert] Verwendet die neuesten Compilerfeatures auf Kosten der Portabilität.

Von Zeit zu Zeit werden neue QL-Sprachfeatures und Evaluatoroptimierungen vom QL-Evaluator für einige Releases unterstützt, bevor sie standardmäßig im QL-Compiler aktiviert werden. Dadurch wird sichergestellt, dass die Leistung beim Entwickeln von Abfragen mit dem neuesten CodeQL-Release auch von etwas älteren Releases erreicht werden kann, die möglicherweise noch für die Codeüberprüfung oder CI-Integrationen verwendet werden.

Wenn es für dich nicht wichtig ist, ob deine Abfragen mit anderen (früheren oder späteren) CodeQL-Releases kompatibel sind, kannst du manchmal eine etwas höhere Leistung erzielen, indem du dieses Flag verwendest, um die neuesten Verbesserungen im Compiler frühzeitig zu aktivieren.

Wenn Releases keine neuen Verbesserungen aufweisen, führt diese Option im Hintergrund keine Aktionen aus. Daher kannst du sie bedenkenlos dauerhaft in deiner globalen CodeQL-Konfigurationsdatei festlegen.

Verfügbar seit v2.11.1.

--[no-]local-checking

Führt die anfänglichen Überprüfungen nur für den verwendeten Teil der QL-Quelle durch.

--no-metadata-verification

Überprüft eingebettete Abfragemetadaten in QLDoc-Kommentaren nicht auf Gültigkeit.

--compilation-cache-size=<MB>

[Erweitert] Setzt den Standardwert für die maximale Größe des Verzeichnisse für den Kompilierungscache außer Kraft.

--fail-on-ambiguous-relation-name

[Erweitert] Schlägt die Kompilierung fehl, wenn während der Kompilierung ein mehrdeutiger Beziehungsname generiert wird.

Optionen zum Einrichten der Kompilierungsumgebung

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

--library-path=<dir>[:<dir>...]

[Erweitert] Eine optionale Liste von Verzeichnissen, die dem unformatierten Suchpfad für den Import von QL-Bibliotheken hinzugefügt werden. Sollte nur verwendet werden, wenn du QL-Bibliotheken verwendest, die nicht als QL-Pakete gepackt wurden.

(Hinweis: Unter Windows wird ; als Pfadtrennzeichen verwendet.)

--dbscheme=<file>

[Erweitert] Definiert explizit, für welche Abfragen des Datenbankschemas kompiliert werden sollen. Sollte nur von Aufrufer*innen angegeben werden, die sehr genau wissen, was sie tun.

--compilation-cache=<dir>

[Erweitert] Gibt ein zusätzliches Verzeichnis an, das als Kompilierungscache verwendet werden soll.

--no-default-compilation-cache

[Erweitert] Verwendet keine Kompilierungscaches an Standardspeicherorten, z. B. im QL-Paket mit der Abfrage oder im Verzeichnis der CodeQL-Toolkette.

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.