Skip to main content

CodeQL-Abfragepakete

Sie können aus verschiedenen integrierten CodeQL Abfragesammlungen wählen, die Sie in Ihrem CodeQLcode scanning Setup verwenden möchten.

Wer kann dieses Feature verwenden?

CodeQL ist für die folgenden Repositorytypen verfügbar:

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 Abfragen und Bibliotheken zu erstellen, zu teilen, davon abhängig zu sein und auszuführen CodeQL . Sie können Ihre CodeQL Analyse anpassen, indem Sie Pakete herunterladen, die von anderen personen erstellt wurden, und sie auf Ihrer Codebasis ausführen.

Für jedes CodeQL Paket ist eine qlpack.yml Datei im Stammverzeichnis erforderlich, 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 ein CodeQL Paket Folgendes enthalten:

  • Benutzerdefinierte Abfragen (.ql dateien)
  • Bibliotheksdateien
  • Abfragesammlungen
  • Metadaten

Das CodeQL CLI Bundle umfasst Abfragen, die von GitHub Experten, Sicherheitsforschern und Community-Mitwirkenden verwaltet werden. Wenn Sie Abfragen ausführen möchten, die von anderen Organisationen entwickelt wurden, CodeQL bieten Abfragepakete eine effiziente und zuverlässige Möglichkeit zum Herunterladen und Ausführen von Abfragen, während Modellpakete (Öffentliche Vorschau) zum Erweitern code scanning der Analyse verwendet werden können, um Bibliotheken und Frameworks zu erkennen, die standardmäßig nicht unterstützt werden.

Typen von CodeQL Paketen

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 zum Erweitern code scanning der Analyse verwendet werden, um Bibliotheken und Frameworks zu erkennen, die standardmäßig nicht unterstützt werden. Modellpakete sind derzeit in Öffentliche Vorschau und können sich ändern. Während des Öffentliche Vorschau sind Modellpakete für die C/C++, C#, Java/Kotlin, Python, and Ruby-Analyse verfügbar. Weitere Informationen zum Erstellen von eigenen Modellpaketen findest du unter Erstellen und Arbeiten mit CodeQL-Paketen.

Wo finden Sie Abfragepakete

Die Standardpakete CodeQL für alle unterstützten Sprachen werden in der Container registryDatei veröffentlicht. Wenn Sie CodeQL CLI auf die Standardweise mit dem CodeQL CLI-Bundle installiert haben, sind die Kernabfragepakete bereits heruntergeladen und stehen Ihnen zur Verfügung. Sie lauten wie folgt:

  • codeql/cpp-queries
  • codeql/csharp-queries
  • codeql/go-queries
  • codeql/java-queries
  • codeql/javascript-queries
  • codeql/python-queries
  • codeql/ruby-queries
  • codeql/swift-queries

Weitere Informationen zur Kompatibilität zwischen veröffentlichten Abfragepaketen und verschiedenen CodeQL Versionen finden Sie unter Referenz zu CodeQL-Abfragepaketen.

Sie können CodeQL CLI auch verwenden, um eigene CodeQL Pakete zu erstellen, Paketen Abhängigkeiten hinzuzufügen und Abhängigkeiten zu installieren oder zu aktualisieren.

Veröffentlichen und Freigeben von CodeQL Paketen

Sie können benutzerdefinierte Abfragen für die breitere CodeQL Community freigeben, indem Sie:

  • Veröffentlichen in GitHub Packages: Machen Sie Ihr Paket öffentlich für andere Benutzer verfügbar, um es zu entdecken und zu verwenden.
  • Beitrag zum CodeQL Repository: Übermitteln Sie Abfragen, die der breiteren Community zugute kommen würden, indem Sie eine Pull-Anforderung für das offizielle Repository öffnen.

Weitere Informationen zum Veröffentlichen und Herunterladen von Paketen CodeQL finden Sie unter Veröffentlichen und Verwenden von CodeQL-Paketen.

Informationen zum Mitwirken an CodeQL finden Sie unter Mitwirken an CodeQL.