Skip to main content

Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System

Du kannst deinen Code mit CodeQL CLI oder einem anderen Tool im Continuous-Integration-System eines Drittanbieters analysieren und die Ergebnisse auf GitHub hochladen. Die sich daraus ergebenden code scanning-Warnungen werden zusammen mit allen Warnungen angezeigt, die innerhalb von GitHub generiert wurden.

Wer kann dieses Feature verwenden?

Code scanning ist für alle öffentlichen Repositorys auf GitHub.com verfügbar. Code scanning ist auch für private organisationseigene Repositorys verfügbar, die GitHub Enterprise Cloud nutzen und im Besitz einer Lizenz für GitHub Advanced Security sind. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

Informationen zur Verwendung von code scanning mit deinem vorhandenen CI-System

Alternativ zum Ausführen von code scanning innerhalb von GitHub mithilfe von GitHub Actions kannst du Code in einem externen CI/CD-System (Continuous Integration und Continuous Delivery) analysieren und dann die Ergebnisse in GitHub hochladen.

Du kannst CodeQL CLI zum System eines Drittanbieters hinzufügen oder ein anderes statisches Analysetool eines Drittanbieters verwenden, das Ergebnisse als Static Analysis Results Interchange Format (SARIF) 2.1.0-Daten erzeugen kann. Weitere Informationen zum unterstützten SARIF-Format findest du unter SARIF-Unterstützung für die Codeüberprüfung.

Die CodeQL CLI ist ein eigenständiges Befehlszeilentool, mit dem du Code analysieren kannst. Weitere Informationen findest du unter Informationen zur CodeQL-CLI.

Warnungen für code scanning, die du extern generierst, werden auf die gleiche Weise angezeigt wie die für code scanning, die du innerhalb von GitHub generierst. Wenn Sie die Codeüberprüfung mit mehreren Konfigurationen ausführen, wird die gleiche Warnung manchmal von mehreren Konfigurationen generiert. Wenn eine Warnung von mehreren Konfigurationen stammt, kannst du den Status der Warnung für jede Konfiguration auf der Warnungsseite einsehen. Weitere Informationen findest du unter Informationen zu Codeüberprüfungswarnungen.

Hinweis: Das Hochladen von SARIF-Daten zur Anzeige von code scanning-Ergebnissen in GitHub wird für organisationseigene Repositorys mit aktivierter GitHub Advanced Security und öffentliche Repositorys unter GitHub.com unterstützt. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository.

Einrichten deines Analysetools

Zuerst musst du dein Analysetool der Wahl herunterladen und mit deinem CI-System einrichten.

Wenn du CodeQL CLI verwendest, musst du den gesamten Inhalt des CodeQL CLI-Pakets für jeden CI-Server zur Verfügung stellen, auf dem code scanning-Analysen von CodeQL ausgeführt werden sollen. Weitere Informationen findest du unter Einrichten der CodeQL-CLI.

Nachdem du dein Analysetool auf Servern in deinem CI-System zur Verfügung gestellt hast, kannst du Daten generieren.

Analysieren von Code

Um Code mit CodeQL CLI oder einem anderen Analysetool zu analysieren, solltest du den Code auschecken, den du analysieren möchtest, und die Codebasisumgebung einrichten, um sicherzustellen, dass alle Abhängigkeiten verfügbar sind. Möglicherweise möchtest du auch den Buildbefehl für die Codebasis finden, der in der Regel in der Konfigurationsdatei deines CI-Systems verfügbar ist.

Anschließend kannst du die Schritte ausführen, um die Codebasis zu analysieren und Ergebnisse zu erzeugen, die sich je nach dem von dir verwendeten statischen Analysetool unterscheiden.

Wenn du CodeQL CLI verwendest, musst du zunächst eine CodeQL-Datenbank aus deinem Code erstellen und dann die Datenbank analysieren, um SARIF-Ergebnisse zu erzielen. Weitere Informationen finden Sie unter Vorbereiten des Codes für die CodeQL-Analyse und unter Analysieren des Codes mit CodeQL-Abfragen.

Generieren eines Tokens zur Authentifizierung mit GitHub

Jeder CI-Server benötigt eine GitHub App oder ein personal access token, um Ergebnisse auf GitHub hochladen zu können, unabhängig davon, ob du die CodeQL CLI, die REST API oder eine andere Methode verwendest. Du musst ein Zugriffstoken oder eine GitHub App mit der Schreibberechtigung security_events verwenden. Wenn CI-Server bereits ein Token mit diesem Bereich zum Auschecken von Repositorys aus GitHub nutzen, kannst du möglicherweise dasselbe Token verwendet. Andernfalls solltest du ein neues Token mit der Schreibberechtigung security_events erstellen und es dem Geheimnisspeicher des CI-Systems hinzufügen. Weitere Informationen findest du unter Informationen zum Erstellen von GitHub-Apps und unter Verwalten deiner persönlichen Zugriffstoken.

Weitere Informationen zu den verschiedenen Methoden zum Hochladen von Ergebnissen in GitHub findest du unter "Hochladen einer SARIF-Datei in GitHub".

Hochladen von Ergebnissen in GitHub

Nachdem du deinen Code analysiert, SARIF-Ergebnisse erstellt und sichergestellt hast, dass du dich mit GitHub authentifizieren kannst, kannst du die Ergebnisse in GitHub hochladen. Weitere Informationen zu den verschiedenen Methoden, die du zum Hochladen von Ergebnissen verwenden kannst, findest du unter Hochladen einer SARIF-Datei in GitHub.

Ausführliche Informationen zum Hochladen von Ergebnissen in GitHub mithilfe von CodeQL CLI findest du unter Hochladen von CodeQL-Analyseergebnissen auf GitHub.

Standardmäßig erwartet code scanning eine SARIF-Ergebnisdatei pro Analyse für ein Repository. Wenn du daher eine zweite SARIF-Ergebnisdatei für einen Commit hochlädst, wird sie als Ersatz für den ursprünglichen Datensatz behandelt. Möglicherweise möchtest du zwei verschiedene SARIF-Dateien für eine Analyse hochladen, wenn dein Analysetool beispielsweise eine andere SARIF-Datei für jede Sprache generiert, die analysiert wird, oder für jeden Regelsatz, den sie verwendet. Wenn du mehrere Ergebnisse für einen Commit in einem Repository hochladen möchtest, musst du jede Gruppe von Ergebnissen als eindeutige Gruppe identifizieren. Das Angeben einer Kategorie für einen SARIF-Upload variiert je nach Analysemethode. Weitere Informationen findest du unter SARIF-Unterstützung für die Codeüberprüfung.