{"meta":{"title":"Referenz zu CodeQL-Abfragepaketen","intro":"Verstehen Sie die Kompatibilität, den Inhalt und die Struktur von CodeQL Paketen.","product":"Sicherheit und Codequalität","breadcrumbs":[{"href":"/de/code-security","title":"Sicherheit und Codequalität"},{"href":"/de/code-security/reference","title":"Reference"},{"href":"/de/code-security/reference/code-scanning","title":"Codeüberprüfung"},{"href":"/de/code-security/reference/code-scanning/codeql","title":"CodeQL"},{"href":"/de/code-security/reference/code-scanning/codeql/codeql-cli","title":"CodeQL-Befehlszeilenschnittstelle"},{"href":"/de/code-security/reference/code-scanning/codeql/codeql-cli/codeql-query-packs","title":"CodeQL-Abfragepakete"}],"documentType":"article"},"body":"# Referenz zu CodeQL-Abfragepaketen\n\nVerstehen Sie die Kompatibilität, den Inhalt und die Struktur von CodeQL Paketen.\n\n## CodeQL Pack-Kompatibilität\n\nWenn ein Abfragepaket veröffentlicht wird, enthält es vorkompilierte Darstellungen aller Darin enthaltenen Abfragen, um die Analysegeschwindigkeit zu erhöhen. Wenn jedoch die Version von CodeQL, die die Analyse durchführt, mehr als 6 Monate neuer ist als die Version, die `codeql pack publish` ausgeführt hat, kann es erforderlich sein, die Abfragen während der Analyse aus dem Quellcode zu kompilieren, was den Prozess erheblich verlangsamen kann.\n\nEin Pack, das von der *letzten* öffentlichen Version von CodeQL veröffentlicht wurde, kann von der Version von CodeQL verwendet werden, die von code scanning und GitHub Actions verwendet wird, auch wenn es sich dabei oft um eine etwas ältere Version handelt.\n\nWenn Ihre Analyse Zeilen wie folgt enthält, verwendet CodeQL erfolgreich vorkompilierte Abfragen:\n\n```shell\n[42/108] Loaded /long/path/to/query/Filename.qlx.\n```\n\nWenn Ihre Analyse stattdessen Zeilen enthält, die wie folgt aussehen, dann hat CodeQL die Abfragen manuell aus der Quelle neu kompiliert:\n\n```shell\nCompiling query plan for /long/path/to/query/Filename.ql.\n[42/108 comp 25s] Compiled /long/path/to/query/Filename.ql.\n```\n\nUm Benutzern Ihres Abfragepakets dabei zu helfen, von vorab kompilierten Abfragen zu profitieren, empfehlen wir, eine aktuelle Version von CodeQL zu verwenden, um Ihre Packs zu veröffentlichen. Darüber hinaus sollten Sie alle sechs Monate eine neue Version Ihres Pakets mit einer aktualisierten CodeQL Version veröffentlichen.\n\nWenn Sie Abfragepakete mit der Absicht veröffentlichen, sie im Zusammenhang mit einer GitHub Enterprise Server-Installation zu verwenden, die die gebündelten CodeQL-Binärdateien verwendet, verwenden Sie dieselbe CodeQL-Version für die Ausführung von `codeql pack publish`.\n\n##\n\n```\n          `qlpack.yml`-Dateien\n```\n\nWenn Sie abfragebezogene Befehle ausführen, sucht CodeQL zuerst in den Nachbarverzeichnissen des Installationsverzeichnisses (und deren Unterverzeichnissen) nach `qlpack.yml` Dateien und überprüft dann den Paketcache auf heruntergeladene CodeQL Pakete. Dies bedeutet, dass, wenn Ihre lokalen Pakete im Installationsverzeichnis Pakete mit demselben Namen im Paketcache außer Kraft setzen, damit Sie ihre lokalen Änderungen testen können.\n\nDie Metadaten in jeder `qlpack.yml`-Datei teilen CodeQL mit, wie Abfragen im Paket kompiliert werden sollen, von welchen Bibliotheken das Paket abhängig ist und wo Abfragesammlungsdefinitionen zu finden sind.\n\nDer Inhalt des CodeQL-Pakets ist im selben Verzeichnis wie `qlpack.yml` oder den Unterverzeichnissen enthalten. Dabei handelt es sich um in der CodeQL-Analyse verwendete Abfragen oder Bibliotheken.\n\nDas Verzeichnis mit der Datei `qlpack.yml` dient als Stammverzeichnis für den Inhalt des CodeQL-Pakets. Das heißt, dass CodeQL alle Importanweisungen für alle `.ql`- und `.qll`-Dateien im Paket relativ zu dem Verzeichnis auflöst, das die `qlpack.yml`-Datei im Stamm des Pakets enthält.\n\n###\n\n```\n          `qlpack.yml` Eigenschaften\n```\n\nDie folgenden Eigenschaften werden in `qlpack.yml`-Dateien unterstützt.\n\n#### `name`\n\n* Erforderlich für alle Pakete\n* Definiert den Umfang des Pakets, wo das CodeQL-Paket veröffentlicht wird und den Namen des Pakets, der mit alphanumerischen Zeichen und Bindestrichen definiert wird. Er muss eindeutig sein, da CodeQL nicht zwischen CodeQL-Paketen mit identischen Namen unterscheiden kann. Verwenden Sie den Packnamen, um Abfragen anzugeben, die mit `database analyze` ausgeführt werden sollen, und um Abhängigkeiten zwischen CodeQL-Paketen zu definieren (siehe Beispiele unten). Beispiel:\n\n  ```yaml\n  name: octo-org/security-queries\n  ```\n\n#### `version`\n\n* Erforderlich für alle veröffentlichten Pakete\n* Definiert eine semantische Version für dieses CodeQL-Paket, die der [SemVer v2.0.0-Spezifikation](https://semver.org/spec/v2.0.0.html) entsprechen muss Beispiel:\n\n  ```yaml\n  version: 0.0.0\n  ```\n\n#### `dataExtensions`\n\n* Erforderlich für Modellpakete.\n* Enthält eine Liste von Globmustern, die angeben, wo sich Datenerweiterungsdateien relativ zum Stamm des Abfragepakets oder Bibliothekspakets befinden.\n\n#### `dependencies`\n\n* Erforderlich für Abfrage- und Bibliothekspakete, die CodeQL-Paketabhängigkeiten in anderen Pakete definieren. Modellpakete können keine Abhängigkeiten definieren und stattdessen `extensionTargets` verwenden.\n* Definiert eine Zuordnung der Packverweise zum semantischen Versionsbereich, der mit diesem Paket kompatibel ist. Unterstützt für CodeQL CLI-Versionen v2.6.0 und höher Beispiel:\n\n  ```yaml\n  dependencies:\n    codeql/cpp-all: ^0.0.2\n  ```\n\n  Wenn Sie unsicher sind oder es keine Rolle spielt, welche Version verwendet werden soll, können Sie `\"*\"` verwenden, was bedeutet, dass jede Version dieser Abhängigkeit mit diesem Paket kompatibel ist. In der Praxis wird dies in der Regel in die höchste veröffentlichte Version der Abhängigkeit aufgelöst.\n\n  Es gibt einen speziellen Versionsplatzhalter, `${workspace}`, der anzeigt, dass dieses CodeQL-Paket von der Version der Abhängigkeit abhängt, die sich im selben Arbeitsbereich befindet. Weitere Informationen finden Sie unter [Informationen zu CodeQL-Arbeitsbereichen](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces#using-workspace-as-a-version-range-in-qlpackyml-files).\n\n#### `defaultSuiteFile`\n\n* Erforderlich für Pakete, die Standardabfragen zum Ausführen exportieren\n* Definiert den Pfad zu einer Abfragesammlungsdatei relativ zum Paketstamm, die alle Abfragen enthält, die standardmäßig ausgeführt werden, wenn dieses Paket an den Befehl `codeql database analyze` übergeben wird. Unterstützt für CLI-Version v2.6.0 und höher. Nur `defaultSuiteFile` oder `defaultSuite` kann definiert werden. Beispiel:\n\n  ```yaml\n  defaultSuiteFile: cpp-code-scanning.qls\n  ```\n\n#### `defaultSuite`\n\n* Erforderlich für Pakete, die Standardabfragen zum Ausführen exportieren\n* Definiert eine Inline-Abfragesammlung mit allen Abfragen, die standardmäßig ausgeführt werden, wenn dieses Paket an den Befehl `codeql database analyze` übergeben wird. Unterstützt für CLI-Version v2.6.0 und höher. Nur `defaultSuiteFile` oder `defaultSuite` kann definiert werden. Beispiel:\n\n  ```yaml\n  defaultSuite:\n    queries: .\n    exclude:\n      precision: medium\n  ```\n\n#### `extensionTargets`\n\n* Erforderlich für Modellpakete.\n* Deklariert, auf welche Abfrage die Erweiterungen im Modellpaket angewendet werden. Das Erweiterungspaket fügt seine Datenerweiterungen in jedes Paket ein, das im `extensionTargets` Schlüsselverzeichnis benannt ist, wenn das Paket in den angegebenen Versionsbereich fällt und in der Auswertung verwendet wird.\n\n#### `groups`\n\n* Dies ist optional.\n* Definiert logische Gruppierungen von Paketen in einem CodeQL-Arbeitsbereich. Die Verwendung von Gruppen ist eine Möglichkeit, Packvorgänge auf Teilmengen von Paketen in einem Arbeitsbereich anzuwenden. Beispielsweise wird das folgende Paket als Teil der `java`- und `experimental`-Gruppen definiert:\n\n  ```yaml\n  groups:\n    - java\n    - experimental\n  ```\n\n  Beim Ausführen von `codeql pack publish --groups java,-experimental` werden alle Pakete in der `java`-Gruppe veröffentlicht, *mit Ausnahme* der `experimental`-Pakete. Sie können den `codeql pack ls --groups [-]<group>[,[-]<group>...]`-Befehl ausführen, um die Pakete in einem Arbeitsbereich aufzulisten, der mit der angegebenen Gruppe übereinstimmt.\n\n  Ein CodeQL im angegebenen Arbeitsbereich ist dann in der Liste enthalten, wenn:\n\n  * Es befindet sich in mindestens einer der Gruppen, die ohne Minuszeichen aufgeführt sind (diese Bedingung wird automatisch erfüllt, wenn keine Gruppen ohne Minuszeichen aufgeführt sind).\n  * Es sich in keiner Gruppe befindet, die mit einem Minuszeichen aufgeführt ist.\n\n#### `library`\n\n* Erforderlich für Bibliothekspakete\n* Definiert einen booleschen Wert, der angibt, ob es sich bei diesem Paket um ein Bibliothekspaket handelt. Bibliothekspakete enthalten keine Abfragen und werden nicht kompiliert. Für Abfragepakete kann dieses Feld ignoriert oder explizit auf `false` festgelegt werden. Beispiel:\n\n  ```yaml\n  library: true\n  ```\n\n#### `suites`\n\n* Optional für Pakete, die Abfragesammlungen definieren Auf diese Weise können Benutzer Abfragesammlungen ausführen, die im angegebenen Verzeichnis gespeichert sind, indem du den Paketnamen angibst, ohne den vollständigen Pfad anzugeben.\n* Wird derzeit nur für die standardmäßigen Abfragepakete unterstützt, die im CodeQL CLI-Paket enthalten sind.\n* Diese Option wird für aus der CodeQL-Containerregistrierung heruntergeladene GitHub-Pakete nicht unterstützt.\n\n#### `tests`\n\n* Optional für Pakete mit CodeQL-Tests. Wird für Pakete ohne Tests ignoriert\n* Definiert den Pfad zu einem Verzeichnis innerhalb des Pakets mit den Tests, der relativ zum Paketverzeichnis definiert ist. Verwende `.`, um das gesamte Paket anzugeben. Alle Abfragen in diesem Verzeichnis werden als Tests ausgeführt, wenn `test run` mit der Option `--strict-test-discovery` ausgeführt wird. Diese Abfragen werden von Abfragesammlungsdefinitionen ignoriert, die die Anweisungen `queries` oder `qlpack` verwenden, um alle Abfragen in einem bestimmten Paket abzufragen. Wenn diese Eigenschaft fehlt, wird `.` angenommen. Beispiel:\n\n  ```yaml\n  tests: .\n  ```\n\n#### `extractor`\n\n* Erforderlich für alle Pakete mit CodeQL-Tests\n* Definiert den CodeQL-Sprachextraktor, der beim Ausführen der CodeQL-Tests im Paket verwendet werden soll. Weitere Informationen zum Testen von Abfragen findest du unter [Testen benutzerdefinierter Abfragen](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/testing-custom-queries). Beispiel:\n\n  ```yaml\n  extractor: javascript-typescript\n  ```\n\n#### `authors`\n\n* Dies ist optional.\n* Definiert Metadaten, die auf der Paketsuchseite im Abschnitt Pakete des Kontos angezeigt werden, in dem das CodeQL-Paket veröffentlicht wird Beispiel:\n\n  ```yaml\n  authors: author1@github.com,author2@github.com\n  ```\n\n#### `license`\n\n* Dies ist optional.\n* Definiert Metadaten, die auf der Paketsuchseite im Abschnitt Pakete des Kontos angezeigt werden, in dem das CodeQL-Paket veröffentlicht wird Eine Liste der zulässigen Lizenzen finden Sie unter [SPDX-Lizenzliste](https://spdx.org/licenses/) in der SPDX-Spezifikation. Beispiel:\n\n  ```yaml\n  license: MIT\n  ```\n\n#### `description`\n\n* Dies ist optional.\n* Definiert Metadaten, die auf der Paketsuchseite im Abschnitt Pakete des Kontos angezeigt werden, in dem das CodeQL-Paket veröffentlicht wird Beispiel:\n\n  ```yaml\n  description: Human-readable description of the contents of the CodeQL pack.\n  ```\n\n#### `libraryPathDependencies`\n\n* Optional, schließen. Verwenden Sie stattdessen die `dependencies`-Eigenschaft.\n* Wurde zuvor verwendet, um die Namen von CodeQL-Paketen als Array zu definieren, von denen dieses CodeQL-Paket abhängig ist. Dadurch erhält das Paket Zugriff auf alle Bibliotheken, Datenbankschemas und Abfragesammlungen, die in der Abhängigkeit definiert sind. Beispiel:\n\n  ```yaml\n  libraryPathDependencies: codeql/javascript-all\n  ```\n\n#### `dbscheme`\n\n* Nur für die Basissprachpakete erforderlich\n* Definiert den Pfad zum [Datenbankschema](https://codeql.github.com/docs/codeql-overview/codeql-glossary/#codeql-database-schema) für alle Bibliotheken und Abfragen, die für diese CodeQL-Sprache geschrieben wurden (siehe Beispiel unten). Beispiel:\n\n  ```yaml\n  dbscheme: semmlecode.python.dbscheme\n  ```\n\n#### `upgrades`\n\n* Nur für die Basissprachpakete erforderlich\n* Definiert den Pfad zu einem Verzeichnis innerhalb des Pakets mit Datenbankupgradeskripts, der relativ zum Paketverzeichnis definiert ist. Datenbankupgrades werden intern verwendet, um sicherzustellen, dass eine mit einer anderen Version der CodeQL CLI erstellte Datenbank mit der aktuellen Version der CLI kompatibel ist. Beispiel:\n\n  ```yaml\n  upgrades: .\n  ```\n\n#### `warnOnImplicitThis`\n\n* Dies ist optional. Wird standardmäßig auf `false` festgelegt, wenn die Eigenschaft `warnOnImplicitThis` nicht definiert ist.\n* Definiert einen booleschen Wert, der angibt, ob der Compiler Warnungen zu Memberprädikataufrufen ausgeben soll, die implizite `this`-Anrufempfänger enthalten, also keine expliziten Empfänger. Verfügbar seit CodeQL CLI v2.13.2. Beispiel:\n\n  ```yaml\n  warnOnImplicitThis: true\n  ```\n\n##\n\n```\n          `codeql-pack.lock.yml`-Dateien\n\n          `codeql-pack.lock.yml` Dateien speichern die Versionen der aufgelösten transitiven Abhängigkeiten eines CodeQL Packs. Diese Datei wird mit dem Befehl `codeql pack install` erstellt, wenn sie noch nicht vorhanden ist, und sollte deinem Versionskontrollsystem hinzugefügt werden. Der Abschnitt `dependencies` der Datei `qlpack.yml` enthält Versionsbereiche, die mit dem Paket kompatibel sind. Die Datei `codeql-pack.lock.yml` sperrt die Versionen für bestimmte Abhängigkeiten. Dadurch wird sichergestellt, dass beim Ausführen von `codeql pack install` in diesem Paket immer dieselben Versionen von Abhängigkeiten abgerufen werden, auch wenn neuere kompatible Versionen vorhanden sind.\n```\n\nBeispielsweise geschieht Folgendes, wenn eine `qlpack.yml`-Datei die folgenden Abhängigkeiten enthält:\n\n```yaml\ndependencies:\n  codeql/cpp-all: ^0.1.2\n  my-user/my-lib: ^0.2.3\n  other-dependency/from-source: \"*\"\n```\n\nDer Inhalt der Datei `codeql-pack.lock.yml` sieht in etwa wie folgt aus:\n\n```yaml\ndependencies:\n  codeql/cpp-all:\n    version: 0.1.4\n  my-user/my-lib:\n    version: 0.2.4\n  my-user/transitive-dependency:\n    version: 1.2.4\n```\n\nDie Abhängigkeit `codeql/cpp-all` ist für Version 0.1.4 gesperrt. Die Abhängigkeit `my-user/my-lib` ist für Version 0.2.4 gesperrt. Die transitive Abhängigkeit `my-user/transitive-dependency` ist nicht in der Datei `qlpack.yml` angegeben und für Version 1.2.4 gesperrt.\n`other-dependency/from-source` fehlt in der Sperrdatei, da sie aus der Quelle aufgelöst wird. Diese Abhängigkeit muss im gleichen CodeQL-Arbeitsbereich wie das Paket verfügbar sein. Weitere Informationen über CodeQL Arbeitsbereiche und das Auflösen von Abhängigkeiten aus dem Quellcode findest du unter [Informationen zu CodeQL-Arbeitsbereichen](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces).\n\nIn den meisten Fällen ist die Datei `codeql-pack.lock.yml` nur für Abfragepakete relevant, da Bibliothekspakete nicht ausführbar sind und ihre transitiven Abhängigkeiten in der Regel nicht behoben werden müssen. Eine Ausnahme sind Bibliothekspakete mit Tests. In diesem Fall wird die Datei `codeql-pack.lock.yml` verwendet, damit die Tests immer mit den gleichen Versionen von Abhängigkeiten ausgeführt werden, um falsch positive Fehler bei nicht übereinstimmenden Abhängigkeiten zu vermeiden.\n\n## Beispiel für angepasste CodeQL-Pakete\n\nSie sollten Dateien für benutzerdefinierte Abfragen und Tests in separaten Paketen speichern und benutzerdefinierte Pakete in bestimmten Ordnern für jede Zielsprache organisieren.\n\n### CodeQL-Pakete für benutzerdefinierte Bibliotheken\n\nEin benutzerdefiniertes CodeQL-Paket mit benutzerdefinierten C++-Bibliotheken ohne Abfragen oder Tests kann eine `qlpack.yml`-Datei mit Folgendem enthalten:\n\n```yaml\nname: my-github-user/my-custom-libraries\nversion: 1.2.3\nlibrary: true\ndependencies:\n  codeql/cpp-all: ^0.1.2\n```\n\nDabei ist `codeql/cpp-all` der Name des CodeQL-Pakets für die C/C++-Analyse, das im CodeQL-Repository enthalten ist. Der Versionsbereich `^0.1.2` gibt an, dass dieses Paket mit allen Versionen von `codeql/cpp-all` kompatibel ist, die `0.1.2` oder höher und unter `0.2.0` sind. Jede in diesem Paket definierte CodeQL-Bibliotheksdatei steht für Abfragen zur Verfügung, die in einem Abfragepaket definiert sind, das dieses Paket in seinem Abhängigkeitsblock enthält. Eine Bibliotheksdatei ist eine Datei mit einer `.qll`-Erweiterung.\n\nDie Eigenschaft `library` gibt an, dass dieses Paket ein Bibliothekspaket ist und keine Abfragen enthält.\n\n### CodeQL-Pakete für benutzerdefinierte Abfragen\n\nEin benutzerdefiniertes CodeQL-Paket mit benutzerdefinierten C++-Abfragen und -Bibliotheken kann eine `qlpack.yml`-Datei mit Folgendem enthalten:\n\n```yaml\nname: my-github-user/my-custom-queries\nversion: 1.2.3\ndependencies:\n  codeql/cpp-all: ^0.1.2\n  my-github-user/my-custom-libraries: ^1.2.3\n```\n\nDabei ist `codeql/cpp-all` der Name des CodeQL-Pakets für die C/C++-Analyse, das im CodeQL-Repository enthalten ist. Der Versionsbereich `^0.1.2` gibt an, dass dieses Paket mit allen Versionen von `codeql/cpp-all` kompatibel ist, die `0.1.2` oder höher und unter `0.2.0` sind.\n`my-github-user/my-custom-libraries` ist der Name eines CodeQL Packs mit angepassten CodeQL Bibliotheken für C++. Jede in diesem Paket definierte CodeQL-Bibliotheksdatei ist für Abfragen im Paket `.qll` verfügbar. Eine Bibliotheksdatei ist eine Datei mit einer `my-github-user/my-custom-queries`-Erweiterung.\n\n### CodeQL-Pakete für benutzerdefinierte Tests\n\nFür benutzerdefinierte CodeQL-Pakete mit Testdateien müssen Sie auch eine `extractor`-Eigenschaft einschließen, damit der Befehl `test run` weiß, wie Testdatenbanken erstellt werden sollen. Sie können auch die Eigenschaft `tests` angeben.\n\nDie folgende `qlpack.yml`-Datei gibt an, dass `my-github-user/my-query-tests` von `my-github-user/my-custom-queries` mit einer Version größer oder gleich 1.2.3 und niedriger als 2.0.0 abhängig ist. Außerdem wurde deklariert, dass die CLI den `extractor` von Java beim Erstellen von Testdatenbanken verwenden soll. Die `tests: .`-Zeile deklariert, dass alle `.ql`-Dateien im Paket als Tests ausgeführt werden sollen, wenn `codeql test run` mit der `--strict-test-discovery`-Option ausgeführt wird. In der Regel enthalten Testpakete keine `version`-Eigenschaft. Dadurch wird verhindert, dass diese versehentlich veröffentlicht werden.\n\n```yaml\nname: my-github-user/my-query-tests\ndependencies:\n  my-github-user/my-custom-queries: ^1.2.3\nextractor: java-kotlin\ntests: .\n```\n\nWeitere Informationen zum Ausführen von Tests findest du unter [Testen benutzerdefinierter Abfragen](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/testing-custom-queries).\n\n## Beispiel für CodeQL Packs im CodeQL Repository\n\nJede der Sprachen im CodeQL-Repository verfügt über vier CodeQL-Hauptpakete:\n\n* Das Basisbibliothekspaket für die Sprache mit dem von der Sprache verwendeten Datenbankschema, CodeQL-Bibliotheken und Abfragen unter `<language>/ql/lib`\n\n* Das Basisabfragepaket für die Sprache, das die Standardabfragen für die Sprache sowie deren Abfragesammlungen unter `<language>/ql/src` enthält\n\n* Tests für die Basissprachbibliotheken und -abfragen unter `<language>/ql/test`\n\n* Beispielabfragen für die Sprache unter `<language>/ql/examples`\n\n### Basisbibliothekspaket\n\nHier sehen Sie eine `qlpack.yml`-Beispieldatei für die [C/C++-Analysebibliotheken](https://github.com/github/codeql/blob/main/cpp/ql/lib/qlpack.yml) des Basissprachpakets:\n\n```yaml\nname: codeql/cpp-all\nversion: x.y.z-dev\ndbscheme: semmlecode.cpp.dbscheme\nlibrary: true\nupgrades: upgrades\n```\n\nEinige zusätzliche Hinweise zu den folgenden Eigenschaften:\n\n* `library`: Zeigt an, dass es sich um ein Bibliothekspaket ohne ausführbare Abfragen handelt. Es soll nur als Abhängigkeit für andere Pakete verwendet werden.\n\n* `dbscheme` und `upgrades`: Diese Eigenschaften sind intern für die CodeQL CLI und sollten nur im zentralen CodeQL Abfrage-Pack für eine Sprache definiert werden.\n\n### Basisabfragepaket\n\nHier siehst du eine `qlpack.yml`-Beispieldatei für [C/C++-Analyseabfragen](https://github.com/github/codeql/blob/main/cpp/ql/src/qlpack.yml) des Basisabfragepakets:\n\n```yaml\nname: codeql/cpp-queries\nversion: x.y.z-dev\ndependencies:\n    codeql/cpp-all: \"*\"\n    codeql/suite-helpers: \"*\"\nsuites: codeql-suites\ndefaultSuiteFile: codeql-suites/cpp-code-scanning.qls\n```\n\nEinige zusätzliche Hinweise zu den folgenden Eigenschaften:\n\n* `dependencies`: Dieses Abfrage-Pack ist abhängig von `codeql/cpp-all` und `codeql/suite-helpers`. Da diese Abhängigkeiten aus der Quelle aufgelöst werden, spielt es keine Rolle, mit welcher Version des CodeQL-Pakets sie kompatibel sind. Weitere Informationen zum Auflösen von Abhängigkeiten aus dem Quellcode findest du unter [Quellcode-Abhängigkeiten](/de/code-security/codeql-cli/using-the-advanced-functionality-of-the-codeql-cli/about-codeql-workspaces#source-dependencies).\n\n* `suites`: Gibt das Verzeichnis an, das „bekannte“ Abfrage-Suites enthält.\n\n* `defaultSuiteFile`: Der Name der standardmäßigen Abfrage-Suite-Datei, die verwendet wird, wenn keine Abfrage-Suite angegeben ist.\n\n### Tests für das CodeQL-Basispaket\n\nHier sehen Sie eine `qlpack.yml`-Beispieldatei für [C/C++-Analysetests](https://github.com/github/codeql/blob/main/cpp/ql/src/qlpack.yml) des Basistestpakets:\n\n```yaml\nname: codeql/cpp-tests\ndependencies:\n  codeql/cpp-all: \"*\"\n  codeql/cpp-queries: \"*\"\nextractor: cpp\ntests: .\n```\n\nEinige zusätzliche Hinweise zu den folgenden Eigenschaften:\n\n* `dependencies`: Dieses Paket ist von den Kernpaketen CodeQL Abfragen und Bibliotheken für C++ abhängig.\n\n* `extractor`: Hier wird festgelegt, dass alle Tests denselben C++-Extraktor verwenden, um die Datenbank für die Tests zu erstellen.\n\n* `tests`: Hier wird der Ort der Tests angegeben. In diesem Fall befinden sich die Tests im Stammordner und in allen Unterordnern des Pakets.\n\n* `version`: Es gibt keine `version` Eigenschaft für das Testpaket. Dadurch wird verhindert, dass Testpakete versehentlich veröffentlicht werden."}