Skip to main content

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

bqrs interpret

[Sanitär] Interpretieren von Daten in einem einzelnen BQRS.

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 bqrs interpret --format=<format> --output=<output> -t=<String=String> [--threads=<num>] [--source-archive=<sourceArchive>] [--source-location-prefix=<sourceLocationPrefix>] <options>... -- <bqrs-file>

Beschreibung

[Sanitär] Interpretieren von Daten in einem einzelnen BQRS.

Ein Befehl, der eine einzelne BQRS-Datei gemäß den bereitgestellten Metadaten interpretiert und eine Ausgabe im angegebenen Format generiert.

Optionen

Primäre Optionen

<bqrs-file>

[Obligatorisch] Die zu interpretierende BQRS-Datei

--format=<format>

[Obligatorisch] Das Format, in dem die Ergebnisse geschrieben 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.

-t=<String=String>

[Obligatorisch] Ein Schlüsselpaar für Abfragemetadaten. Wiederhole dies für jeden Metadatenabschnitt. Es müssen mindestens die Schlüssel „kind“ und „id“ angegeben werden. Schlüssel müssen nicht mit dem Präfix @ versehen werden.

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

-j, --threads=<num>

Die Anzahl der Threads, die für die Berechnung von Pfaden verwendet werden.

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

--column-kind=<columnKind>

[Nur SARIF] Die Spaltenart, die zum Interpretieren von Positionsspalten verwendet wird. Eines der folgenden Elemente: utf8, utf16, utf32, bytes.

--[no-]unicode-new-lines

[Nur SARIF] Gibt an, ob die Unicode-Zeilenvorschubzeichen LS (Zeilentrennzeichen, U+2028) und PS (Absatztrennzeichen, U+2029) bei der Interpretation von Positionszeilennummern als neue Zeilen betrachtet werden.

Quellarchivoptionen – sind zusammen oder gar nicht anzugeben

-s, --source-archive=<sourceArchive>

Das Verzeichnis oder die ZIP-Datei, die das Quellarchiv enthält.

-p, --source-location-prefix=<sourceLocationPrefix>

Der Dateipfad im ursprünglichen Dateisystem, in dem der Quellcode gespeichert wurde.

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.