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 resolve files <options>... -- <dir>
codeql resolve files <options>... -- <dir>
Beschreibung
[Deep Plumbing] Erweitert mehrere Globs für Dateieinschlüsse/-ausschlüsse.
Dieser Plumbing-Befehl ist für das Erweitern der Befehlszeilenparameter von Unterbefehlen verantwortlich, die für mehrere Dateien ausgeführt werden, die durch ihre Pfade identifiziert werden. Standardmäßig werden alle Dateien eingeschlossen, sodass die Ausführung dieses Befehls ohne Filterargumente alle Dateien in einem Verzeichnis sammelt.
Für die Optionen --include
, --exclude
und --prune
können jeweils Globmuster mit folgenden Platzhalterzeichen angegeben werden:
- Ein einzelnes Fragezeichen (?) entspricht einem beliebigen Zeichen, mit Ausnahme eines Schrägstrichs oder eines umgekehrten Schrägstrichs.
- Ein einzelnes Sternchen (*) entspricht einer beliebigen Anzahl von Zeichen, mit Ausnahme von Schrägstrichen oder umgekehrten Schrägstrichen.
- Das Muster „**“ entspricht null oder mehr vollständigen Verzeichniskomponenten.
Optionen
Primäre Optionen
<dir>
Das zu durchsuchende Verzeichnis.
--format=<fmt>
Dient zum Auswählen des Ausgabeformats: text
(Standardwert) oder json
Optionen zum Einschränken der gesammelten Dateien
--include-extension=<.ext>
Dient zum Einschließen aller Dateien in der Suchverzeichnisstruktur, die über die angegebene Erweiterung verfügen. In der Regel muss der Punkt vor der Erweiterung mit angegeben werden.
Wenn du also beispielsweise --include-extension .xml
übergibst, werden alle Dateien mit der Erweiterung „.xml“ eingeschlossen. Diese Option ist nicht mit negierten Optionen vom Typ --include
kompatibel.
--include=<glob>
Dient zum Einschließen aller Dateien und Verzeichnisse in der Suchverzeichnisstruktur, die dem angegebenen Glob entsprechen. Hierbei wird der relative Pfad der jeweiligen Datei und des jeweiligen Verzeichnisses aus dem Suchverzeichnis verwendet. Wenn das Glob mit einem Ausrufezeichen (!
) beginnt, werden die entsprechenden Dateien und Verzeichnisse stattdessen ausgeschlossen.
Optionen vom Typ --include
werden der Reihe nach verarbeitet, und frühere Optionen werden durch spätere Optionen überschrieben. --include ** --include !sub/*.ts --include sub/main.*
würde beispielsweise sub/main.ts
einschließen (da durch sub/main.*
eingeschlossen), sub/index.ts
ausschließen (da durch !sub/*.ts
ausgeschlossen) und sub/test.js
einschließen (da durch **
eingeschlossen, ohne nachträglich ausgeschlossen zu werden).
--also-match=<glob>
Dient zum Festlegen, dass alle Ergebnisse auch dem angegebenen Glob entsprechen müssen, wobei der relative Pfad der jeweiligen Datei und des jeweiligen Verzeichnisses aus dem Suchverzeichnis verwendet wird. Diese Option hat die gleiche Struktur und die gleiche Interpretation wie --include
, gibt aber eine separate Sequenz von Globs an, die zusammen mit --include
angewendet werden.
--exclude=<glob>
Dient zum Ausschließen aller Dateien und Verzeichnisse, die dem angegebenen Glob entsprechen. Hierbei wird der relative Pfad der jeweiligen Datei und des jeweiligen Verzeichnisses aus dem Suchverzeichnis verwendet. Diese Option überschreibt alle Optionen vom Typ „include“. Diese Option ist nicht mit negierten Optionen vom Typ --include
kompatibel.
--prune=<glob>
Dient zum Ausschließen aller Dateien und Verzeichnisse, die dem angegebenen Glob entsprechen. Hierbei wird der relative Pfad der jeweiligen Datei und des jeweiligen Verzeichnisses aus dem Suchverzeichnis verwendet. Diese Option überschreibt alle Optionen vom Typ „include“. Diese Option ist nicht mit negierten Optionen vom Typ --include
kompatibel.
--size-limit=<bytes>
Dient zum Ausschließen aller Dateien, deren Größe den angegebenen Grenzwert übersteigt. Das Größenlimit wird in Bytes angegeben, kann mit dem Suffix „k“ aber auch in Kibibytes (KiB), mit dem Suffix „m“ in Mebibytes (MiB) und mit dem Suffix „g“ in Gibibytes (GiB) angegeben werden. Diese Option überschreibt alle Optionen vom Typ „include“.
--total-size-limit=<bytes>
Sorgt dafür, dass der Befehl mit einem Fehler beendet wird, wenn die kombinierte Größe aller aufgelösten Dateien den angegebenen Grenzwert übersteigen würde. Das Größenlimit wird in Bytes angegeben, kann mit dem Suffix „k“ aber auch in Kibibytes (KiB), mit dem Suffix „m“ in Mebibytes (MiB) und mit dem Suffix „g“ in Gibibytes (GiB) angegeben werden.
--[no-]follow-symlinks
Dient zum Festlegen, dass allen ggf. vorhandenen symbolischen Verknüpfungen zu ihren Zielen gefolgt werden soll.
--[no-]find-any
Dient zum Festlegen, dass maximal eine Übereinstimmung gefunden werden soll (im Gegensatz zu allen Übereinstimmungen).
Verfügbar seit v2.11.3
.
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
.