Einrichten von CodeQL CLI
Hinweis
In diesem Artikel werden die Features beschrieben, die im CodeQL CLI 2.18.4-Bundle im ursprünglichen Release von GitHub Enterprise Server 3.15 enthalten sind.
Wenn dein Websiteadministrator deine CodeQL CLI auf eine neuere Version aktualisiert hat, findest du in der GitHub Enterprise Cloud-Version dieses Artikels Informationen über die neuesten Features.
Zum Ausführen von CodeQL Befehlen müssen Sie die CodeQL CLI So einrichten, dass sie auf die Tools, Abfragen und Bibliotheken zugreifen kann, die zum Erstellen und Analysieren von Datenbanken erforderlich sind.
Dies CodeQL CLI unterstützt eine Reihe von Anwendungsfällen und Verzeichnisstrukturen. In diesem Artikel wird ein einfaches Setup erläutert, das für die meisten Benutzer und Umgebungen funktioniert.
Wenn Sie beabsichtigen, die CodeQL CLI Sicherheitsforschung zu verwenden oder Abfragen zu testen oder mitzuwirken, benötigen Sie möglicherweise eine erweiterte Einrichtung. Weitere Informationen findest du unter Informationen zur CodeQL-CLI.
Bevor Sie anfangen
Wenn du macOS auf Apple Silicon (z. B. Apple M1) verwendest, stelle sicher, dass die Entwicklertools für die Xcode-Befehlszeile und Rosetta 2 installiert sind.
Hinweis
Dies CodeQL CLI ist derzeit nicht mit nicht-glibc Linux-Distributionen wie (muslc-based) Alpine Linux kompatibel.
1. Herunterladen des Tar-Archivs CodeQL CLI
Das CodeQL CLI-Downloadpaket ist ein tar-Archiv, das Tools, Skripts und verschiedene für CodeQL spezifische Dateien enthält. Wenn du keine GitHub Enterprise-Lizenz besitzt, stimmst du mit dem Herunterladen dieses Archivs den GitHub CodeQL-Geschäftsbedingungen zu.
Du solltest das CodeQL-Paket aus https://github.com/github/codeql-action/releases herunterladen. Das Paket enthält Folgendes:
- CodeQL CLI product
- Eine kompatible Version der Abfragen und Bibliotheken von https://github.com/github/codeql
- Vorkompilierte Versionen aller im Paket enthaltenen Abfragen
Hinweis
Für GitHub Enterprise Server 3.15 wird die CodeQL CLI-Version 2.18.4 empfohlen.
Sie sollten immer das CodeQL-Bundle verwenden. Dies stellt Kompatibilität und weitaus bessere Leistung sicher, als ein separater Download von CodeQL CLI und Check-Out der CodeQL-Abfragen. Wenn du die CLI nur auf einer bestimmten Plattform ausführst, lade die entsprechende codeql-bundle-PLATFORM.tar.zst-Datei herunter. Alternativ kannst du codeql-bundle.tar.zst herunterladen. Diese Datei enthält die CLI für alle unterstützten Plattformen.
Es gibt auch tar.gz-Varianten des Bundles, die mit den tar.zst-Varianten identisch sind, außer dass, sie mit dem weniger effizienten Gzip-Algorithmus komprimiert sind. Der einzige Grund zum Herunterladen der tar.gz-Varianten ist, wenn Sie ältere Dekomprimierungstools verwenden, die den Zstandard-Komprimierungsalgorithmus nicht unterstützen.
2. Extrahieren des Tar-Archivs CodeQL CLI
Extrahieren Sie das CodeQL CLI Tar-Archiv in ein Verzeichnis Ihrer Wahl.
Optional: Stellen Sie das CodeQL CLI In Ihrem CI-System zur Verfügung
Wenn Sie eine Analyse in einem CI-System durchführen CodeQLcode scanning möchten, stellen Sie sicher, dass der vollständige Inhalt des CodeQL CLI Bundles für jeden CI-Server verfügbar ist, der eine Analyse ausführt.
Du hast beispielsweise folgende Möglichkeiten:
- Kopieren Sie das Bündel von einem zentralen internen Speicherort, und extrahieren Sie es auf jedem Server oder
- Verwenden Sie die REST-API, um das Bundle direkt GitHubherunterzuladen, um sicherzustellen, dass Sie die neuesten Verbesserungen für Abfragen erhalten. Weitere Informationen findest du unter REST-API-Endpunkte für Releases und Releaseressourcen.
3. Starten von codeql
Nach der Extraktion kannst du CodeQL-Prozesse ausführen, indem du die ausführbare codeql-Datei auf verschiedene Arten ausführst:
- Indem du
<extraction-root>/codeql/codeqlausführst, wobei<extraction-root>der Ordner ist, in dem du das CodeQL CLI-Paket extrahiert hast - Indem du
<extraction-root>/codeqlzu deinemPATHhinzufügst, damit du die ausführbare Datei einfach alscodeqlausführen kannst
An diesem Punkt kannst du die CodeQL-Befehle ausführen. Eine vollständige Liste der CodeQL CLI-Befehle findest du unter Leitfaden zu CodeQL-CLI-Befehlen.
Hinweis
Wenn Sie Zu Ihrem PATHAdd-In hinzufügencodeql, kann darauf zugegriffen werden, indem CodeQLVisual Studio Code Sie Abfragen kompilieren und ausführen können. Weitere Informationen zum Konfigurieren VS Code für den Zugriff auf die CodeQL CLIDatei finden Sie unter Das Verwalten der CodeQL-CLI in der VS Code-Erweiterung.
Testen der CodeQL CLI Konfiguration
Nachdem Sie das CodeQL CLI Bundle extrahiert haben, können Sie den folgenden Befehl ausführen, um zu überprüfen, ob die CLI ordnungsgemäß zum Erstellen und Analysieren von Datenbanken konfiguriert ist:
-
`codeql resolve packs` wenn `/<extraction root>/codeql` auf der `PATH` steht. - Andernfalls
/<extraction root>/codeql/codeql resolve packs.
Wenn du erfolgreich bist, solltest du eine Ausgabe ähnlich dem unten stehenden Auszug sehen:
Searching directories specified by `--additional-packs`. All directories have equal priority.
Searching in:
No packs were found at this location.
Searching directories specified by `--search-path`. Directories are searched in order.
Searching the root of the CodeQL distribution.
Searching in:
<extraction root>
The following packs were found:
codeql/java-all@<version>: (library) <extraction root>/qlpacks/codeql/javat-all/<version>/qlpack.yml
codeql/java-queries@<version>: (query) <extraction root>/qlpacks/codeql/java-queries/<version>/qlpack.yml
codeql/javascript-all@<version>: (library) <extraction root>/qlpacks/codeql/javascript-all/<version>/qlpack.yml
codeql/javascript-queries@<version>: (query) <extraction root>/qlpacks/codeql/javascript-queries/<version>/qlpack.yml
codeql/swift-all@<version>: (library) <extraction root>/qlpacks/codeql/swift-all/<version>/qlpack.yml
codeql/swift-queries@<version>: (query) <extraction root>/qlpacks/codeql/swift-queries/<version>/qlpack.yml
...
Die Ergebnisse wurden aus Gründen der Übersichtlichkeit verkürzt dargestellt. Die tatsächlichen Ergebnisse werden länger und detaillierter sein.
Du solltest überprüfen, ob die Ausgabe die erwarteten Sprachen enthält und ob der Verzeichnisspeicherort der qlpack-Dateien korrekt ist. Der Speicherort sollte sich innerhalb des extrahierten CodeQL CLI Bundles befinden, wie im vorherigen Beispiel gezeigt als <extraction root>. Wenn die CodeQL CLI qlpacks für die erwarteten Sprachen nicht gefunden werden können, überprüfen Sie, ob Sie das CodeQL Bundle heruntergeladen haben und keine eigenständige Kopie der .CodeQL CLI
Du kannst auch codeql resolve languages ausführen, um die für die Datenbankerstellung verfügbaren Sprachen anzuzeigen. Dadurch werden die sprachen aufgeführt, die standardmäßig in Ihrem CodeQL CLI Paket unterstützt werden.
Optional kannst du einige CodeQL-Pakete mit vorkompilierten Abfragen herunterladen, die du ausführen möchtest. Weitere Informationen findest du unter Anpassen der Analyse mit CodeQL-Paketen.
Der codeql resolve packs Befehl ist nützlich, um Probleme zu diagnostizieren, wenn die CodeQL CLI Abfragepakete, die Sie für die Analyse erwarten, nicht finden können.
Hinweis
Der codeql resolve packs Befehl ist in den CodeQL CLI Versionen 2.19.0 und höher verfügbar. Für frühere Versionen des CLI solltest du den codeql resolve qlpacks-Befehl ausführen, der eine ähnliche, aber weniger detaillierte Ausgabe liefert.
Nächste Schritte
Informationen zum Vorbereiten des Codes, der von autoTITLE CodeQL CLIanalysiert werden soll, finden Sie unter Vorbereiten des Codes für die CodeQL-Analyse.