Skip to main content

Diese Version von GitHub Enterprise Server wurde eingestellt am 2024-03-26. Es wird keine Patch-Freigabe vorgenommen, auch nicht für kritische Sicherheitsprobleme. Für bessere Leistung, verbesserte Sicherheit und neue Features aktualisiere auf die neueste Version von GitHub Enterprise Server. Wende dich an den GitHub Enterprise-Support, um Hilfe zum Upgrade zu erhalten.

Hochladen von CodeQL-Analyseergebnissen auf GitHub

Du kannst die CodeQL CLI verwenden, um die CodeQL-Analyseergebnisse auf GitHub Enterprise Server hochzuladen.

Wer kann dieses Feature verwenden?

GitHub CodeQL wird nach der Installation auf Benutzerbasis lizenziert. Du kannst CodeQL nur für bestimmte Aufgaben unter den Lizenzeinschränkungen verwenden. Weitere Informationen findest du unter Informationen zur CodeQL-CLI.

Wenn du über eine GitHub Advanced Security-Lizenz verfügst, kannst du CodeQL für eine automatisierte Analyse sowie für Continuous Integration und Continuous Delivery verwenden. Weitere Informationen findest du unter Informationen zu GitHub Advanced Security.

Informationen zur SARIF-Ausgabe

GitHub erstellt code scanning-Warnungen in einem Repository mithilfe von Informationen aus den SARIF-Dateien (Static Analysis Results Interchange Format). SARIF wurde entwickelt, um die Ausgabe einer breiten Palette statischer Analysetools darzustellen, und es gibt viele Features in der SARIF-Spezifikation, die als „optional“ betrachtet werden. Für die Ergebnisse muss SARIF Version 2.1.0 verwendet werden. Weitere Informationen findest du unter SARIF-Unterstützung für die Codeüberprüfung.

Nach der Analyse einer CodeQL-Datenbank mit der CodeQL CLI erhältst du eine SARIF-Datei mit den Ergebnissen. Weitere Informationen findest du unter Analysieren des Codes mit CodeQL-Abfragen. Du kannst die CodeQL CLI verwenden, um die Ergebnisse auf GitHub hochzuladen.

Wenn du eine andere Methode als die CodeQL CLI zur Generierung der Ergebnisse verwendet hast, kannst du diese mit einer anderen Methode hochladen. Weitere Informationen findest du unter Hochladen einer SARIF-Datei in GitHub.

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

Generieren eines Tokens zur Authentifizierung mit GitHub Enterprise Server

Bevor du deine Ergebnisse auf GitHub Enterprise Server hochladen kannst, musst du ein personal access token mit der security_events-Schreibberechtigung generieren. Weitere Informationen findest du unter Verwalten deiner persönlichen Zugriffstoken.

Wenn du die CodeQL CLI in einem CI-System (Continuous Integration) eines Drittanbieters installiert hast, um Ergebnisse zu erstellen, die in GitHub als Codescanwarnungen angezeigt werden, kannst du GitHub App oder ein personal access token verwenden, um die Ergebnisse aufGitHub Enterprise Server hochzuladen. Weitere Informationen findest du unter Verwenden der Codeüberprüfung mit deinem vorhandenen CI-System.

Hochladen von Ergebnissen in GitHub Enterprise Server

Du kannst überprüfen, ob die SARIF-Eigenschaften die unterstützte Größe für den Upload aufweisen und ob die Datei mit der Codeüberprüfung kompatibel ist. Weitere Informationen findest du unter SARIF-Unterstützung für die Codeüberprüfung.

Bevor du Ergebnisse auf GitHub Enterprise Server hochladen kannst, musst du bestimmen, wie du die GitHub App oder das im vorherigen Abschnitt erstellte personal access token am besten an die CodeQL CLI übergibst. Es wird empfohlen, den Leitfaden deines CI-Systems zur sicheren Verwendung eines Geheimnisspeichers zu lesen. Die CodeQL CLI unterstützt:

  • Interfacing mit einem Geheimspeicher mithilfe der --github-auth-stdin-Option (empfohlen)
  • Das Speichern des Geheimnisses in der Umgebungsvariablen GITHUB_TOKEN und das Ausführen der CLI ohne die Option --github-auth-stdin
  • Zu Testzwecken kannst du die --github-auth-stdin-Befehlszeilenoption übergeben und ein temporäres Token über die Standardeingabe bereitstellen.

Wenn du dich für die sicherste und zuverlässigste Methode für deine Konfiguration entschieden hast, führe codeql github upload-results in jeder SARIF-Ergebnisdatei aus, und schließe --github-auth-stdin ein (es sei denn, das Token ist in der Umgebungsvariablen GITHUB_TOKEN verfügbar).

# GitHub App or personal access token available from a secret store
<call-to-retrieve-secret> | codeql github upload-results \
    --repository=<repository-name> \
    --ref=<ref> --commit=<commit> \
    --sarif=<file> --github-url=<URL> \
    --github-auth-stdin

# GitHub App or personal access token available in GITHUB_TOKEN
codeql github upload-results \
    --repository=<repository-name> \
    --ref=<ref> --commit=<commit> \
    --sarif=<file> --github-url=<URL> \
    
OptionErforderlichVerwendung
--repositoryGib OWNER/NAME (dendie Besitzerin/den Namen) des Repositorys an, in das Daten hochgeladen werden. Der Besitzer muss eine Organisation innerhalb eines Unternehmens sein, die über eine Lizenz für GitHub Advanced Security verfügt. GitHub Advanced Security muss für das Repository aktiviert sein. Weitere Informationen findest du unter Verwalten von Sicherheits- und Analyseeinstellungen für dein Repository.
--refGib den Namen des von dir ausgecheckten und analysierten Verweises (ref) an, damit die Ergebnisse dem richtigen Code zugeordnet werden können. Verwende für einen Branch refs/heads/BRANCH-NAME. Verwende für einen Headcommit eines Pull Requests refs/pull/NUMBER/head oder für den von GitHub generierten Mergecommit eines Pull Requests refs/pull/NUMBER/merge.
--commitGib die vollständigen SHA des analysierten Commits an.
--sarifGib die SARIF-Datei an, die geladen werden soll.
--github-urlGib die URL für GitHub Enterprise Server an.
--github-auth-stdinÜbergebe die CLI an die GitHub App oder das personal access token, das zur Authentifizierung mit der REST-API von GitHub aus deinem Geheimnisspeicher über die Standardeingabe erstellt wurde. Dies ist nicht erforderlich, wenn der Befehl über Zugriff auf GITHUB_TOKEN-Umgebungsvariablen verfügt, die mit diesem Token festgelegt wurden.

Weitere Informationen findest du unter github upload-results.

Hinweis: Wenn du mehrere CodeQL-Datenbanken für einen einzelnen Commit analysiert hast, musst du für alle von diesem Befehl generierten Ergebnisse eine SARIF-Kategorie angegeben haben. Wenn du die Ergebnisse auf GitHub Enterprise Server hochlädst, wird diese Kategorie bei der code scanning verwendet, um die Ergebnisse separat für jede Sprache zu speichern. Wenn du dies vergisst, überschreibt jeder Upload die alten Ergebnisse. Weitere Informationen findest du unter Analysieren des Codes mit CodeQL-Abfragen.

Einfaches Beispiel für das Hochladen von Ergebnissen in GitHub Enterprise Server

Im folgenden Beispiel werden Ergebnisse aus der SARIF-Datei temp/example-repo-js.sarif in das Repository my-org/example-repo hochgeladen. Es teilt der code scanning-API mit, dass die Ergebnisse für den Commit deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 für den Branch main gelten. Im Beispiel wird angenommen, dass die GitHub App oder personal access token, die für die Authentifizierung mit der REST-API von GitHub erstellt wurden, die Umgebungsvariable GITHUB_TOKEN verwenden.

codeql github upload-results \
    --repository=my-org/example-repo \
    --ref=refs/heads/main --commit=deb275d2d5fe9a522a0b7bd8b6b6a1c939552718 \
    --sarif=/temp/example-repo-js.sarif --github-url=https://github.example.com \
    

Es gibt keine Ausgabe aus diesem Befehl, sofern der Upload nicht erfolgreich war. Die Eingabeaufforderung kehrt zurück, wenn der Upload abgeschlossen ist und die Datenverarbeitung begonnen hat. Auf kleineren Codebasen solltest du die code scanning-Warnungen in GitHub Enterprise Server kurz danach untersuchen können. Je nach ausgechecktem Code kannst du Warnungen direkt im Pull Request oder auf der Registerkarte Sicherheit für Branches anzeigen. Weitere Informationen findest du unter Filtern von Codescanbenachrichtigungen in Pull-Anforderungen und Verwalten von Codescanwarnungen für dein Repository.