Hinweis
In diesem Artikel werden die Features beschrieben, die im CodeQL CLI 2.20.7-Bundle im ursprünglichen Release von GitHub Enterprise Server 3.17 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.
Informationen zu CodeQL-Paketen
CodeQL-Pakete werden verwendet, um CodeQL-Abfragen und -Bibliotheken zu erstellen, zu teilen, auszuführen und sie als Abhängigkeiten zu nutzen. Du kannst deine CodeQL-Analyse anpassen, indem du Pakete herunterlädst, die von anderen Personen erstellt wurden, und sie auf deiner Codebasis ausführst.
Jedes CodeQL-Paket erfordert eine qlpack.yml-Datei in seinem Stammverzeichnis, die Folgendes angibt:
- Kompilieren der Abfragen
- Abhängigkeiten von anderen CodeQL Paketen und Bibliotheken
- Abfragesuitedefinitionen
Weitere Informationen zu qlpack.yml Eigenschaften finden Sie unter Anpassen der Analyse mit CodeQL-Paketen.
Darüber hinaus kann einCodeQL Folgendes enthalten:
- Benutzerdefinierte Abfragen (
.qldateien) - Bibliotheksdateien
- Abfragesammlungen
- Metadaten
Das CodeQL CLI-Paket enthält Abfragen, die von GitHub-Experten, Sicherheitsforschern und Community-Mitwirkenden verwaltet werden. Wenn du Abfragen ausführen möchtest, die von anderen Organisationen entwickelt wurden, bieten CodeQL-Abfragepakete eine effiziente und zuverlässige Möglichkeit zum Herunterladen und Ausführen von Abfragen, während Modellpakete (öffentliche Vorschau) verwendet werden können, um die code scanning-Analyse zu erweitern, um Bibliotheken und Frameworks zu erkennen, die standardmäßig nicht unterstützt werden.
Arten von CodeQL Packs
Es gibt drei Arten von CodeQL-Paketen: Abfragepakete, Bibliothekspakete und Modellpakete.
-
Abfragepakete enthalten eine Reihe vordefinierter Abfragen, die in einer CodeQL-Datenbank ausgewertet werden können. Abfragepakete sind zum Ausführen konzipiert. Wenn ein Abfragepaket veröffentlicht wird, enthält das Paket zusätzlich zu den Abfragequellen alle transitiven Abhängigkeiten und vorkompilierte Darstellungen jeder Abfrage. Dadurch wird konsistentes und effizientes Ausführen der Abfragen im Paket sichergestellt.
-
Bibliothekspakete sind zum Verwenden durch Abfragepakete oder andere Bibliothekspakete konzipiert und enthalten selbst keine Abfragen. Die Bibliotheken werden nicht separat kompiliert.
-
Modellpakete können verwendet werden, um die code scanning-Analyse zu erweitern, um Bibliotheken und Frameworks zu erkennen, die standardmäßig nicht unterstützt werden. Modellpakete befinden sich derzeit in öffentliche Vorschau und können geändert werden. Während der öffentliche Vorschau stehen Modellpakete für die C/C++, C#, Java/Kotlin, Python, und Ruby-Analyse zur Verfügung. Weitere Informationen zum Erstellen von eigenen Modellpaketen findest du unter Erstellen und Arbeiten mit CodeQL-Paketen.
Wo finden Sie Abfragepakete
Die CodeQL-Standardpakete für alle unterstützten Sprachen werden im Container registry veröffentlicht. Wenn Sie dieCodeQL CLI standardmäßig installiert haben, werden die Kernabfragepakete mit demCodeQL CLI bereits heruntergeladen und stehen Ihnen zur Verfügung. Sie lauten wie folgt:
codeql/cpp-queriescodeql/csharp-queriescodeql/go-queriescodeql/java-queriescodeql/javascript-queriescodeql/python-queriescodeql/ruby-queriescodeql/swift-queries
Weitere Informationen zur Kompatibilität zwischen veröffentlichten Abfragepaketen und verschiedenen CodeQL-Releases finden Sie unter Referenz zu CodeQL-Abfragepaketen.
Du kannst auch CodeQL CLI verwenden, um eigene CodeQL-Pakete zu erstellen, Abhängigkeiten zu Paketen hinzuzufügen und Abhängigkeiten zu installieren oder zu aktualisieren.
Veröffentlichen und Teilen von CodeQL Paketen
Sie können benutzerdefinierte Abfragen mit der breiteren CodeQL Community teilen, indem Sie:
- Veröffentlichen in GitHub Packages: Machen Sie Ihr Paket für andere Benutzer öffentlich verfügbar, damit sie es entdecken und nutzen können.
- Beitragen zum CodeQL Repository: Reichen Sie Anfragen ein, die der breiteren Community zugute kommen, indem Sie eine Pull-Anfrage an das offizielle Repository stellen.
Weitere Informationen zum Veröffentlichen und Herunterladen von CodeQL Packs finden Sie unter Veröffentlichen und Verwenden von CodeQL-Paketen.
Weitere Informationen zum Beitragen zu CodeQL finden Sie unter Beitragen zu CodeQL.