Skip to main content

github upload-results

Lädt eine SARIF-Datei in die GitHub-Codeüberprüfung hoch.

Wer kann dieses Feature verwenden?

CodeQL ist für die folgenden Repositorytypen verfügbar:

Note

In diesem Inhalt wird die neueste Version von CodeQL CLI beschrieben. Weitere Informationen zu diesem Thema findest du unter https://github.com/github/codeql-cli-binaries/releases.

Um Details zu den Optionen anzuzeigen, die für diesen Befehl in früheren Releases verfügbar sind, führe den Befehl mit der Option --help im Terminal aus.

Übersicht

Shell
codeql github upload-results --sarif=<file> [--github-auth-stdin] [--github-url=<url>] [--repository=<repository-name>] [--ref=<ref>] [--commit=<commit>] [--checkout-path=<path>] <options>...

Beschreibung

Lädt eine SARIF-Datei in die GitHub-Codeüberprüfung hoch.

Weitere Informationen finden Sie unter Hochladen von CodeQL-Analyseergebnissen auf GitHub.

Es muss ein GitHub Apps-Token oder ein persönliches Zugriffstoken festgelegt werden. Die bewährte Methode für die Sicherheit besteht darin, das Flag --github-auth-stdin festzulegen und das Token über die Standardeingabe an den Befehl zu übergeben. Alternativ kann die Umgebungsvariable GITHUB_TOKEN festgelegt werden.

Dieses Token muss als Bereich security_events verwenden.

Optionen

Primäre Optionen

-s, --sarif=<file>

[Obligatorisch] Pfad zur SARIF-Dateien für die Verwendung. Dies sollte die Ausgabe von codeql database analyze (oder codeql database interpret-results) mit --format sarif-latest für den Upload auf github.com oder das entsprechende unterstützte Formattag für GitHub Enterprise Server-Instanzen sein (Siehe SARIF-Unterstützung für die Codeüberprüfung für SARIF-Version, die von Ihrem Release unterstützt werden).

-r, --repository=<repository-name>

Besitzer und Name des GitHub-Repositorys (z. B. github/octocat), das als Endpunkt für den Upload verwendet werden soll. Die CLI versucht, diese Informationen automatisch aus dem Auscheckpfad zu ermitteln, wenn keine Angabe erfolgt.

-f, --ref=<ref>

Name der Referenz, die analysiert wurde. Wenn es sich bei dieser Referenz um einen Pull Request für einen Mergecommit handelt, verwendest du refs/pulls/1234/merge oder refs/pulls/1234/head (je nachdem, ob dieser Commit dem HEAD- oder MERGE-Commit des PR entspricht). Andernfalls sollte dies ein Branch sein: refs/heads/Branchname. Wenn keine Angabe erfolgt, versucht die CLI, diese Informationen automatisch aus dem aktuellen Branch des Auscheckpfads aufzufüllen, sofern dieser vorhanden ist.

-c, --commit=<commit>

SHA des analysierten Commits. Wenn keine Angabe erfolgt, versucht die CLI, diese Informationen automatisch aus dem Auscheckpfad zu ermitteln.

-p, --checkout-path=<path>

Auscheckpfad. Die Standardeinstellung ist das aktuelle Arbeitsverzeichnis.

--merge

[Erweitert] ermöglicht die Angabe von mehreren SARIF-Dateien und das Zusammenführen dieser in einer einzelnen Datei vor dem Upload. Dies wird nur zur Abwärtskompatibilität empfohlen. Für neue Analysen wird empfohlen, zwei separate SARIF-Dateien mit unterschiedlichen Kategorien hochzuladen. Diese Option funktioniert nur in Verbindung mit SARIF-Dateien, die von CodeQL mit SARIF Version 2.1.0 erstellt wurden (dies ist die Standardversion von SARIF, die von CodeQL verwendet wird).

--no-wait-for-processing

Standardmäßig wartet die CLI, bis GitHub die SARIF-Datei für maximal 2 Minuten verarbeitet und einen Nicht-Null-Exit-Code zurückgibt, wenn während der Verarbeitung der Analyseergebnisse Fehler aufgetreten sind. Du kannst anpassen, wie lange die CLI mit --wait-for-processing-timeout wartet, oder deaktiviere das Feature mit --no-wait-for-processing.

--wait-for-processing-timeout=<waitForProcessingTimeout>

Die maximale Zeit, die die CLI wartet, bis die hochgeladene SARIF-Datei von GitHub verarbeitet wird, in Sekunden. Der Standardwert beträgt 120 Sekunden (2 Minuten). Diese Option ist nur gültig, wenn --wait-for-processing auf festgelegt ist.

--format=<fmt>

Legt ein Ausgabeformat fest. Verfügbare Optionen:

text (Standard) : gibt die URL zum Nachverfolgen des Status des SARIF-Uploads aus.

json: gibt den Antworttext der API-Anforderung für den SARIF-Upload aus.

Weitere Informationen finden Sie auch unter REST-API-Endpunkte für die Codeüberprüfung.

Optionen zum Konfigurieren des Speicherorts für die hochgeladenen SARIF-Dateien.

-a, --github-auth-stdin

Akzeptiert ein GitHub Apps-Token oder ein persönliches Zugriffstoken über die Standardeingabe.

Dadurch wird die GITHUB_TOKEN-Umgebungsvariable überschrieben.

-g, --github-url=<url>

URL der zu verwendenden GitHub-Instanz. Wenn nicht angegeben, versucht die CLI, diese automatisch über den Check-Out-Pfad zu ermitteln. Wenn dies nicht möglich ist, wird diese standardmäßig auf https://github.com/ gesetzt.

Allgemeine Optionen

-h, --help

Zeigt diesen Hilfetext an.

-J=<opt>

[Erweitert] Dient zum Angeben einer Option für die JVM-Instanz, die den Befehl ausführt.

(Beachte, dass Optionen, die Leerzeichen enthalten, nicht ordnungsgemäß verarbeitet werden.)

-v, --verbose

Ermöglicht die inkrementelle Erhöhung der Anzahl ausgegebener Statusmeldungen.

-q, --quiet

Ermöglicht die inkrementelle Verringerung der Anzahl ausgegebener Statusmeldungen.

--verbosity=<level>

[Erweitert] Dient zum expliziten Festlegen des Ausführlichkeitsgrads auf „errors“, „warnings“, „progress“, „progress+“, „progress++“ oder „progress+++“. Überschreibt -v und -q:

--logdir=<dir>

[Erweitert] Ermöglicht das Schreiben detaillierter Protokolle in eine oder mehrere Dateien im angegebenen Verzeichnis mit generierten Namen, die Zeitstempel und den Namen des ausgeführten Unterbefehls enthalten.

(Um eine Protokolldatei mit einem Namen zu schreiben, über den du die volle Kontrolle hast, gib stattdessen --log-to-stderr an, und leite stderr wie gewünscht um.)

--common-caches=<dir>

[Erweitert] Steuert den Speicherort zwischengespeicherter Daten auf dem Datenträger, der zwischen mehreren Ausführungsvorgängen der CLI beibehalten wird, z. B. heruntergeladene QL-Pakete und kompilierte Abfragepläne. Wenn dies nicht explizit festgelegt ist, wird dieses Verzeichnis standardmäßig auf ein Verzeichnis mit dem Namen .codeql festgelegt, das sich im Startverzeichnis des Benutzer. Es wird erstellt, wenn es noch nicht vorhanden ist.

Verfügbar seit v2.15.2.