Informationen zu den CodeQL-Analyse-Workflow und kompilierten Sprachen
Code scanning funktioniert, indem Abfragen für eine oder CodeQL mehrere Datenbanken ausgeführt werden. Jede Datenbank enthält eine Darstellung des Codes, der in einer einzelnen Sprache in Ihrem Repository vorliegt. Für die kompilierten Sprachen C/C++, C#, Go, Java, Kotlin, Rust, and Swiftumfasst der Vorgang zum Auffüllen dieser Datenbank häufig das Erstellen des Codes und das Extrahieren von Daten.
Wenn Sie diese Option aktivieren code scanning, generieren sowohl das Standard- als auch das erweiterte Setup eine CodeQL Datenbank für die Analyse mithilfe der einfachsten verfügbaren Methode. Für C/C++, C#, Java und Rust die CodeQL Datenbank wird die Datenbank direkt aus der Codebasis generiert, ohne dass ein Build (none Kompilierungsmodus) erforderlich ist. Für andere kompilierte Sprachen CodeQL erstellt die Codebasis mithilfe des autobuild Buildmodus. Alternativ können Sie im manual Build-Modus explizite Build-Befehle angeben, um nur die Dateien zu analysieren, die von diesen benutzerdefinierten Befehlen erstellt werden.
Sie können die Abhängigkeitszwischenspeicherung mit CodeQL verwenden, um Abhängigkeiten als GitHub Actions-Cache zu speichern, anstatt sie aus Registraturen herunterzuladen. Weitere Informationen zum Zwischenspeichern von CodeQLAbhängigkeiten finden Sie im weiteren Verlauf dieses Artikels.
CodeQL Baumodi
Die CodeQL Aktion unterstützt drei verschiedene Buildmodi für kompilierte Sprachen:
none- Die CodeQL Datenbank wird direkt aus der Codebasis erstellt, ohne die Codebasis zu erstellen (unterstützt für alle interpretierten Sprachen und zusätzlich unterstützt für C/C++, C#, Java und Rust).autobuild- CodeQL erkennt die wahrscheinlichste Buildmethode und verwendet diese, um zu versuchen, die Codebasis zu erstellen und eine Datenbank für die Analyse zu erstellen (unterstützt für C/C++, C#, Go, Java, Kotlin und Swift).manual- Sie definieren die Buildschritte, die für die Codebasis im Workflow verwendet werden sollen (unterstützt für C/C++, C#, Go, Java, Kotlin und Swift).
Informationen über sprachspezifisches autobuild Verhalten, Anforderungen an Runner und Anleitungen für manuelle Builds finden Sie unter CodeQL-Buildoptionen und -schritte für kompilierte Sprachen.
Informationen zum Zwischenspeichern von Abhängigkeiten für CodeQL
Sie können die CodeQL-Zwischenspeicherung verwenden, um Abhängigkeiten als GitHub Actions-Cache zu speichern, anstatt sie von Registries herunterzuladen. Dadurch sinkt das Risiko, dass Warnungen verloren gehen, wenn Registrierungen von Drittanbietern nicht gut funktionieren. Außerdem kann es bei Projekten mit einer großen Anzahl von Abhängigkeiten oder Projekten, die mit langsamen Registrierungen arbeiten, zu einer Leistungsverbesserung kommen. Weitere Informationen dazu, wie das Zwischenspeichern von Abhängigkeiten Workflows beschleunigen kann, finden Sie unter Referenz zum Zwischenspeichern von Abhängigkeiten.
Das Zwischenspeichern von Abhängigkeiten funktioniert mit allen Buildmodi und wird von Java, Go und C#.
Hinweis
Durch die Verwendung der Abhängigkeitszwischenspeicherung werden CodeQL-spezifische Caches gespeichert, die Cachequoten für ein Repository unterliegen. Weitere Informationen findest du unter Referenz zum Zwischenspeichern von Abhängigkeiten.