Als Alternative zur Ausführung von code scanning innerhalb von GitHub mithilfe von GitHub Actions können Sie Code in einem externen kontinuierlichen Integrations- oder Bereitstellungs-/Auslieferungssystem (CI/CD) analysieren und die Ergebnisse dann in GitHub hochladen.
Hinweis
Das Hochladen von SARIF-Daten zur Anzeige von code scanning-Ergebnissen in GitHub wird für Repositorys im Besitz von Organisationen mit aktivierter GitHub Code Security und öffentliche Repositorys auf GitHub.com unterstützt. Weitere Informationen finden Sie 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 Sie das CodeQL CLIPaket verwenden, müssen Sie den vollständigen Inhalt des CodeQL CLI Bundles für jeden CI-Server verfügbar machen, auf dem Sie eine Analyse ausführen CodeQLcode scanning möchten. 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 dem CodeQL CLI oder einem anderen Analysetool zu analysieren, sollten Sie den zu analysierenden Code auschecken und die Codebasisumgebung einrichten, um sicherzustellen, dass 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 Sie die CodeQL CLIDatenbank verwenden, müssen Sie zuerst eine CodeQL Datenbank aus Ihrem Code erstellen und dann die Datenbank analysieren, um SARIF-Ergebnisse zu erzeugen. Weitere Informationen findest du unter Vorbereiten des Codes für die CodeQL-Analyse und Analysieren des Codes mit CodeQL-Abfragen.
Generieren eines Tokens für die Authentifizierung mit GitHub
Jeder CI-Server benötigt einen GitHub App oder personal access token, um Ergebnisse GitHub hochzuladen, ob Sie die CodeQL CLI, die REST-API oder eine andere Methode verwenden. Sie müssen ein Zugriffstoken oder ein GitHub App mit der security_events Schreibberechtigung verwenden. Wenn CI-Server bereits ein Token mit diesem Gültigkeitsbereich zum Auschecken von GitHub-Repositorys verwenden, besteht die Möglichkeit, dass Sie dasselbe Token verwenden können. Andernfalls solltest du ein neues Token mit der Schreibberechtigung security_events erstellen und es dem Geheimnisspeicher des CI-Systems hinzufügen. Informationen dazu findest du unter Informationen zum Erstellen von GitHub Apps und Verwalten deiner persönlichen Zugriffstoken.
Weitere Informationen zu den verschiedenen Methoden zum Hochladen von Ergebnissen GitHubfinden Sie unter Hochladen einer SARIF-Datei in GitHub.
Hochladen Ihrer Ergebnisse in GitHub
Nachdem Sie Ihren Code analysiert, SARIF-Ergebnisse erstellt und sichergestellt haben, dass Sie sich bei GitHub authentifizieren können, können Sie die Ergebnisse bei GitHub hochladen. Weitere Informationen zu den verschiedenen Methoden, die du zum Hochladen deiner Ergebnisse verwenden kannst, findest du unter Hochladen einer SARIF-Datei in GitHub.
Detaillierte Informationen zum Hochladen Ihrer Ergebnisse zu GitHub mithilfe von CodeQL CLI finden Sie unter Hochladen von CodeQL-Analyseergebnissen in 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.