Skip to main content

Filtern von Codescanbenachrichtigungen in Pull-Anforderungen

Wenn code scanning ein Problem in einem Pull-Request identifiziert, können Sie den hervorgehobenen Code überprüfen und die Warnung beheben.

Wer kann dieses Feature verwenden?

Benutzer*innen mit Lesezugriff

Je nach Konfiguration code scanning werden die Ergebnisse möglicherweise als Überprüfungsergebnisse und Anmerkungen für Pullanforderungen angezeigt. Weitere Informationen finden Sie unter Informationen zu Codeüberprüfungswarnungen.

Anzeigen der Ergebnisse der code scanning Prüfung

Bei allen Konfigurationen von code scanning besteht die Überprüfung, die die Ergebnisse von code scanning enthält, aus: Code scanning Ergebnisse. Die Ergebnisse für jedes verwendete Analysetool werden separat angezeigt. Alle neuen Alerts zu Codezeilen, die in der Pull-Anfrage geändert wurden, werden als Anmerkungen angezeigt.

Klicke auf Alle Branchwarnungen anzeigen, um alle Warnungen für den analysierten Branch anzuzeigen. Dies öffnet die vollständige Alertansicht, in der Sie alle Alerts des Zweigs nach Typ, Schweregrad, Tag usw. filtern können. Weitere Informationen finden Sie unter Bewertung von Code-Scanning-Warnungen für Ihr Repository.

Screenshot: Überprüfung der Code scanning-Ergebnisse für einen Pull Request. Der Link „Alle Branchwarnungen anzeigen“ ist orange umrandet.

Umgang mit Schweregraden von Prüfungsfehlern

Wenn bei der code scanning Ergebnisüberprüfung Probleme mit dem Schweregrad von error, criticaloder high, gefunden werden, schlägt die Prüfung fehl, und der Fehler wird in den Prüfergebnissen gemeldet. Wenn alle gefundenen Ergebnisse code scanning niedrigere Schweregrade aufweisen, werden die Warnungen als Warnungen oder Notizen behandelt, und die Überprüfung ist erfolgreich.

Screenshot: Mergefeld für einen Pull Request. Die Überprüfung der „Ergebnisse der Codeüberprüfung / CodeQL“ zeigt die Information „1 neue Warnung, die 1 schwerwiegendes Sicherheitsproblem enthält ...“ an.

Du kannst das Standardverhalten in deinen Repositoryeinstellungen außer Kraft setzen, indem du die Schweregrade sowie Sicherheitsgrade festlegst, die zu einem Fehler bei der Pull Request-Überprüfung führen. Weitere Informationen finden Sie unter Workflowkonfigurationsoptionen für die Codeüberprüfung.

Probleme mit Ihrer code scanning Konfiguration diagnostizieren

Je nach Ihrer Konfiguration werden möglicherweise zusätzliche Prüfungen angezeigt, die für Pull Requests mit code scanning konfiguriert sind. Dies sind in der Regel Workflows, die den Code analysieren oder Ergebnisse hochladen code scanning . Diese Überprüfungen sind nützlich für die Problembehandlung, wenn Probleme mit der Analyse auftreten.

Wenn das Repository z. B. die CodeQL-Analyseworkflow A CodeQL /Analyze (LANGUAGE)- Prüfung verwendet, wird diese Prüfung für jede Sprache ausgeführt, bevor die Ergebnisüberprüfung durchgeführt wird. Die Analyseüberprüfung schlägt möglicherweise fehl, wenn Konfigurationsprobleme auftreten, oder wenn die Pullanforderung den Build für eine Von der Analyse kompilierte Sprache umbricht (z. B C/C++, C#, Go, Java, Kotlin, Rust (public preview), und Swift. ).

Wie bei anderen Pull-Anfrage-Prüfungen können Sie auf der Registerkarte Prüfungen alle Details zum Fehler bei der Prüfung einsehen. Weitere Informationen zum Konfigurieren und zur Problembehandlung finden Sie unter Workflowkonfigurationsoptionen für die Codeüberprüfung oder Behebung von Fehlern bei der Code-Scan-Analyse.

Anzeigen einer Warnung auf deiner Pull-Anforderung

Sie können alle code scanning Warnungen sehen, die sich innerhalb des Diffs der Änderungen befinden, die in einem Pull-Request eingeführt wurden, indem Sie die Registerkarte „Unterhaltung“ anzeigen. Code scanning veröffentlicht eine Pull-Request-Überprüfung, die jede Warnung als Anmerkung in den Codezeilen anzeigt, die die Warnung ausgelöst haben. Du kannst die Warnungen kommentieren, diese löschen und auch Pfade für die Warnungen direkt über die Anmerkungen anzeigen. Du kannst die vollständigen Details einer Warnung anzeigen, indem du auf den Link „Weitere Details anzeigen“ klickst, über den du zur Detailseite der Warnung gelangst.

Screenshot: Anmerkung zu einer Warnung auf der Registerkarte „Unterhaltungen“ eines Pull Requests. Der Link „Weitere Details anzeigen“ ist in Dunkelorange umrandet.

Sie können auch alle code scanning Warnungen anzeigen, die sich im Diff der in der Pull Request eingeführten Änderungen befinden, in der Registerkarte Dateien geändert.

Wenn Sie eine neue Codeüberprüfungskonfiguration in Ihrer Pull-Anforderung hinzufügen, wird ein Kommentar zu Ihrer Pullanforderung angezeigt, der Sie auf die Security Registerkarte des Repositorys leitet, damit Sie alle Warnungen im Pullanforderungsverzweigung anzeigen können. Weitere Informationen zum Ansehen der Alerts für ein Repository finden Sie unter Bewertung von Code-Scanning-Warnungen für Ihr Repository.

Wenn du über Schreibberechtigungen für das Repository verfügst, enthalten einige Anmerkungen Links mit zusätzlichem Kontext für die Warnung. Im obigen Beispiel können Sie aus CodeQL der Analyse auf den vom Benutzer bereitgestellten Wert klicken, um zu sehen, wo die nicht vertrauenswürdigen Daten den Datenfluss eingeben (dies wird als Quelle bezeichnet). In diesem Fall kannst du auch den vollständigen Pfad von der Quelle zu dem Code anzeigen, der die Daten (die Senke) verwendet, indem du auf Pfade anzeigen klickst. So lässt sich leicht überprüfen, ob die Daten nicht vertrauenswürdig sind oder ob die Analyse einen Datenbereinigungsschritt zwischen der Quelle und der Senke nicht erkannt hat. Informationen zum Analysieren des Datenflusses finden Sie unter CodeQLÜber die Datenflussanalyse.

Um weitere Informationen zu einer Warnung anzuzeigen, können Benutzer mit Schreibberechtigung auf den Link Weitere Details anzeigen klicken, der in der Anmerkung angezeigt wird. Auf diese Weise kannst du alle Kontext- und Metadaten anzeigen, die vom Tool in einer Warnungsansicht bereitgestellt werden. Im folgenden Beispiel kannst du Tags sehen, die den Schweregrad, den Typ und die relevanten allgemeinen Schwächeaufzählungen (CWEs) für das Problem anzeigen. Die Ansicht zeigt auch, welche Commit das Problem eingeführt hat.

Der Status und die Details auf der Warnungsseite spiegeln nur den Status der Warnung für den Standardbranch des Repositorys wider, auch wenn die Warnung in anderen Branches vorhanden ist. Du kannst den Status der Warnung für nicht standardmäßigen Branches im Abschnitt Betroffene Branches rechts auf der Warnungsseite sehen. Wenn eine Warnung im Standardbranch nicht vorhanden ist, wird der Status der Warnung als „in Pull Request“ oder „in Branch“ in grau angezeigt. Im Abschnitt Development werden verknüpfte Branches und Pull Requests angezeigt, die die Warnung beheben.

In der detaillierten Ansicht für eine Warnung enthalten einige code scanning Tools, z. B. CodeQL Analysen, auch eine Beschreibung des Problems und einen Link "Weitere anzeigen", um Anleitungen zum Beheben ihres Codes zu erhalten.

Screenshot mit der Beschreibung für eine code scanning-Warnung. Der Link „Mehr anzeigen“ ist orange umrandet.

Kommentieren einer Warnung in einem Pull Request

Sie können jede code scanning Warnung kommentieren, die in einer Pullanforderung angezeigt wird. Alerts erscheinen als Anmerkungen auf der Registerkarte Conversation einer Pull-Anfrage als Teil einer Pull-Anfrage-Überprüfung und werden auch auf der Registerkarte Files changed angezeigt.

Sie können festlegen, dass alle Unterhaltungen in einer Pull-Anforderung, einschließlich derjenigen in code scanning Warnungen, aufgelöst werden sollen, bevor eine Pullanforderung zusammengeführt werden kann. Weitere Informationen finden Sie unter Informationen zu geschützten Branches.

Beheben einer Warnung auf deiner Pull-Anforderung

Jeder Benutzer mit Pushzugriff auf eine Pullanforderung kann eine code scanning Benachrichtigung beheben, die auf dieser Pullanforderung identifiziert wird. Wenn du Änderungen an der Pull-Anforderung vornimmst, löst dies einen neuen Durchlauf der Pull-Anforderungsprüfung aus. Wenn deine Änderungen das Problem beheben, wird die Meldung geschlossen und der Vermerk entfernt.

Verwerfen einer Warnung auf deiner Pull-Anforderung

Eine andere Möglichkeit, eine Meldung zu schließen, ist, sie zu verwerfen. Du kannst eine Meldung verwerfen, wenn du der Meinung bist, dass sie nicht behoben werden muss. Beispielsweise liegt ein Fehler in Code vor, der nur zum Testen verwendet wird, oder der Aufwand zum Beheben des Fehlers ist höher als der potenzielle Vorteil der Verbesserung des Codes. Wenn Sie über schreibberechtigungen für das Repository verfügen, steht eine Schaltfläche " Warnung schließen " in Codeanmerkungen und in der Warnungszusammenfassung zur Verfügung. Wenn du auf Warnung schließen klickst, wirst du aufgefordert, einen Grund für das Verwerfen der Warnung auszuwählen.

Screenshot einer fehlgeschlagenen Prüfung beim Scannen von Codes. Die Schaltfläche „Warnung schließen“ ist Dunkelorange umrandet. Es wird das Dropdownmenü „Warnung schließen“ angezeigt.

Es ist wichtig, den entsprechenden Grund aus dem Dropdownmenü auszuwählen, weil sich dies darauf auswirken kann, ob eine Abfrage weiterhin in zukünftigen Analysen berücksichtigt wird. Optional können Sie die Zurückweisung kommentieren, um den Kontext der Zurückweisung einer Warnung aufzuzeichnen. Der Kommentar zur Zurückweisung wird zur Zeitleiste der Warnung hinzugefügt und kann bei Prüfungen und Berichterstellungen als Begründung verwendet werden. Du kannst einen Kommentar über die REST-API für die Codeüberprüfung abrufen oder festlegen. Der Kommentar ist in dismissed_comment für den Endpunkt alerts/{alert_number} enthalten. Weitere Informationen finden Sie unter REST-API-Endpunkte für die Codeüberprüfung.

Wenn du eine CodeQL-Warnung als False Positive-Ergebnis schließt, z. B. weil der Code eine nicht unterstützte Bereinigungsbibliothek verwendet, solltest du zum CodeQL-Repository beitragen und die Analyse verbessern. Weitere Informationen zu CodeQL findest du unter Beitragen zu CodeQL.

Weitere Informationen zum Schließen von Warnungen sind unter Lösen von Code-Scan-Warnungen verfügbar.