Skip to main content

database export-diagnostics

[Experimentell] Exportieren von Diagnoseinformationen aus einer Datenbank für eine fehlgeschlagene Analyse

Wer kann dieses Feature verwenden?

GitHub CodeQL wird nach der Installation auf Benutzerbasis lizenziert. Du kannst CodeQL nur für bestimmte Aufgaben unter den Lizenzeinschränkungen verwenden. Weitere Informationen findest du unter Informationen zur CodeQL-CLI.

Wenn du über eine GitHub Advanced Security-Lizenz verfügst, kannst du CodeQL für eine automatisierte Analyse sowie für Continuous Integration und Continuous Delivery verwenden. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

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 export-diagnostics --format=<format> [--output=<output>] <options>... -- <database>

Beschreibung

[Experimentell] Exportieren von Diagnoseinformationen aus einer Datenbank für eine fehlgeschlagene Analyse

Verfügbar seit v2.12.6.

Optionen

Primäre Optionen

<database>

[Obligatorisch] Pfad zur CodeQL-Datenbank, die sich im Aufbau befindet. Dieser muss für die Extraktion mit codeql database init vorbereitet sein.

Wenn die Option --db-cluster angegeben ist, handelt es sich nicht um eine Datenbank als solches, sondern um ein Verzeichnis, das Datenbanken enthält. Es werden dann alle diese Datenbanken zusammen verarbeitet.

--format=<format>

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

raw: Eine Liste von unformatierten, nicht interpretierten Diagnosemeldungen in Form von JSON-Objekten

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.

text: Eine mit Aufzählungspunkten gegliederte Liste von Diagnosemeldungen.

--[no-]db-cluster

Gibt an, dass es sich bei dem in der Befehlszeile angegebenen Verzeichnis nicht um eine Datenbank als solches handelt, sondern um ein Verzeichnis, das eine oder mehrere Datenbanken enthält, die sich im Aufbau befinden. Diese Datenbanken werden zusammen verarbeitet.

-o, --output=<output>

Der Ausgabepfad, an den Diagnoseinformationen geschrieben werden sollen.

--sarif-exit-code=<sarifExitCode>

[Nur SARIF-Formate] Exitcode des fehlerhaften Prozesses.

--sarif-exit-code-description=<sarifExitCodeDescription>

[Nur SARIF-Formate] Grund für die Beendigung des fehlerhaften Prozesses.

--sarif-category=<category>

[Nur SARIF-Formate] Gib 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 angefügten nachstehenden Schrägstrichen, falls nicht bereits vorhanden) als <run>.automationId-Eigenschaft in SARIF v1, <run>.automationLogicalId-Eigenschaft in SARIF v2 und <run>.automationDetails.id-Eigenschaft in SARIF v2.1.0 angezeigt.

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.