Skip to main content

Problemlösung für Warnungen der Codeüberprüfung

In der Sicherheitsansicht können Sie Warnungen für potenzielle Sicherheitsrisiken oder Fehler im Code Ihres Projekts anzeigen, beheben oder schließen.

Wer kann dieses Feature verwenden?

Benutzer*innen mit Schreibzugriff

Generieren vorgeschlagener Korrekturen für code scanning-Warnungen

GitHub Copilot Autofix kann Korrekturen für die von der code scanning-Analyse identifizierten Warnungen generieren. Es werden die meisten CodeQL-Warnungstypen und auch einige Warnungen von Drittanbietertools unterstützt. Weitere Informationen findest du unter Verantwortungsvolle Verwendung von Copilot Autofix für die Codeüberprüfung.

Note

Sie benötigen kein Abonnement von GitHub Copilot zur Nutzung von GitHub Copilot Autofix. Copilot Autofix ist für alle öffentlichen Repositorys auf GitHub.com sowie für private Repositorys in GitHub Enterprise Cloud-Unternehmen verfügbar, die über eine Lizenz für GitHub Advanced Security verfügen.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
  2. Wähle unter dem Repositorynamen die Option Sicherheit aus. Wenn die Registerkarte „Sicherheit“ nicht angezeigt wird, wähle im Dropdownmenü die Option Sicherheit aus.
    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Sicherheit“ ist dunkelorange umrandet.
  3. Klicken Sie in der Randleiste auf Code scanning.
  4. Klicken Sie auf den Namen einer Warnung.
  5. Wenn Copilot Autofix einen Fix vorschlagen kann, klicke ganz oben auf der Seite auf Generate fix.
  6. Nachdem die vorgeschlagene Korrektur generiert wurde, können Sie ganz unten auf der Seite auf PR mit Korrektur erstellen klicken, um automatisch einen Pull Request mit der vorgeschlagenen Korrektur zu generieren. Aus dem Standardbranch wird ein neuer Branch erstellt, die generierte Korrektur wird festgeschrieben, und es wird ein Entwurfs-Pull-Request erstellt. Die vorgeschlagene Korrektur können Sie wie bei allen anderen Korrekturen testen und bearbeiten.

Informationen zu den Einschränkungen bei automatisch generierten Korrekturen finden Sie unter Einschränkungen bei Vorschlägen.

Manuelles Beheben einer Warnung

Alle Benutzer mit Schreibberechtigung für ein Repository können eine Warnung beheben, indem sie eine Korrektur am Code committen. Wenn im Repository die Ausführung von code scanning für Pull Requests geplant ist, ist es am besten, einen Pull Request mit der Korrektur auszulösen. Dadurch wird eine code scanning-Analyse der Änderungen ausgelöst und getestet, ob durch die Korrektur neue Probleme entstehen. Weitere Informationen findest du unter Filtern von Codescanbenachrichtigungen in Pull-Anforderungen.

Du kannst die Freitextsuche oder die Filter nutzen, um eine Teilmenge der Warnungen anzuzeigen und dann alle übereinstimmenden Warnungen als geschlossen markieren.

Warnungen können in einem Branch behoben werden, aber nicht in einem anderen. Du kannst den Filter „Branch“ in der Zusammenfassung der Warnungen verwenden, um zu überprüfen, ob eine Warnung in einem bestimmten Branch behoben ist.

Screenshot der Warnungsansicht mit erweitertem Dropdownmenü „Branch“. Die Schaltfläche „Branch“ ist orange umrandet.

Beachte, dass, wenn du nach Warnungen in einem Nicht-Standardbranch gefiltert hast, dieselben Warnungen aber im Standardbranch vorhanden sind, die Warnungsseite für eine bestimmte Warnung trotzdem nur den Status der Warnung im Standardbranch anzeigt, auch wenn dieser Status mit dem Status in einem Nicht-Standardbranch in Widerspruch steht. So kann eine Warnung, die in der Liste „Offen“ in der Warnungsübersicht für branch-x auftaucht, auf der Warnungsseite den Status „Behoben“ haben, wenn die Warnung im Standardbranch bereits behoben ist. Du kannst den Status der Warnung für den Branch, den du gefiltert hast, im Abschnitt Betroffene Branches auf der rechten Seite der Warnungsseite einsehen.

Note

Wenn du code scanning mit mehreren Konfigurationen ausführst, wird die gleiche Warnung manchmal von mehreren Konfigurationen generiert. Wenn du nicht alle Konfigurationen regelmäßig ausführst, werden möglicherweise Warnungen angezeigt, die in einer Konfiguration behoben sind, aber nicht in einer anderen. Diese veralteten Konfigurationen und Warnungen können aus einem Branch entfernt werden. Weitere Informationen findest du unter Entfernen veralteter Konfigurationen und Warnungen aus einem Branch.

Schließen von Warnungen

Es gibt zwei Möglichkeiten zum Schließen einer Warnung. Du kannst das Problem im Code beheben oder die Warnung verwerfen.

Das Verwerfen einer Warnung ist eine Möglichkeit, eine Warnung zu schließen, die deiner Meinung nach nicht behandelt 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. Du kannst Warnungen aus code scanning-Anmerkungen im Code oder auf der Registerkarte Sicherheit in der Zusammenfassungsliste schließen.

Wenn du eine Warnung verwirfst, passiert Folgendes:

  • Sie wird in allen Branches geschlossen.
  • Die Warnung wird aus den aktuellen Warnungen für dein Projekt entfernt.
  • Die Warnung wird in der Zusammenfassung der Warnungen in die Liste „Geschlossen“ verschoben, aus der du die Warnung bei Bedarf erneut öffnen kannst.
  • Der Grund, warum du die Warnung geschlossen hast, wird aufgezeichnet.
  • Optional kannst du eine Schließung kommentieren, um den Kontext des Schließens einer Warnung aufzuzeichnen.
  • Wenn code scanning das nächste Mal ausgeführt wird, wird durch denselben Code keine Warnung mehr generiert.

So schließen Sie Warnungen:

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Wähle unter dem Repositorynamen die Option Sicherheit aus. Wenn die Registerkarte „Sicherheit“ nicht angezeigt wird, wähle im Dropdownmenü die Option Sicherheit aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Sicherheit“ ist dunkelorange umrandet.

  3. Klicken Sie in der Randleiste auf Code scanning.

  4. Wenn du eine Warnung verwerfen möchtest, ist es wichtig, die Warnung zunächst zu begutachten, damit du den richtigen Grund zum Verwerfen auswählen kannst. Klicke auf die Warnung, die du begutachten möchtest.

  5. Überprüfe die Warnung. Klicke dann auf Warnung schließen, und wähle einen Grund für das Schließen der Warnung aus, oder gib einen Grund ein.

    Screenshot eines Fehlers bei der Warnungsprüfung. Die Schaltfläche „Warnung verwerfen“ ist in Dunkelorange hervorgehoben, und die Dropdownliste „Verwerfen“ wird 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 findest du 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.

Gleichzeitiges Verwerfen mehrerer Warnungen

Wenn ein Projekt mehrere Warnungen aufweist, die du aus demselben Grund verwerfen möchtest, kannst du die Warnungen in der Zusammenfassung der Warnungen mithilfe einer Massenaktion verwerfen. Normalerweise musst du die Liste filtern und dann alle übereinstimmenden Warnungen verwerfen. Beispiel: Du musst alle aktuellen Warnungen im Projekt schließen, die mit einem Tag für ein bestimmtes CWE-Sicherheitsrisiko (Common Weakness Enumeration) versehen wurden.

Erneutes Öffnen geschlossener Warnungen

Wenn du eine Warnung schließt, aber später feststellst, dass du die Warnung beheben musst, kannst du sie erneut öffnen und das Problem mit dem Code beheben. Zeige die Liste der geschlossenen Warnungen an, suche die Warnung, zeige sie an, und öffne sie erneut. Du kannst die Warnung dann auf die gleiche Weise wie jede andere Warnung beheben.

Entfernen veralteter Konfigurationen und Warnungen aus einem Branch

Möglicherweise verfügst du über mehrere Codeüberprüfungskonfigurationen für ein einzelnes Repository. Bei der Ausführung können mehrere Konfigurationen dieselbe Warnung generieren. Wenn die Konfigurationen zusätzlich nach unterschiedlichen Zeitplänen ausgeführt werden, können die Warnungsstatus für unregelmäßige oder abgelaufene Konfigurationen veraltet sein. Weitere Informationen zu Warnungen aus mehreren Konfigurationen findest du unter Informationen zu Codeüberprüfungswarnungen.

  1. Navigieren Sie auf GitHub zur Hauptseite des Repositorys.

  2. Wähle unter dem Repositorynamen die Option Sicherheit aus. Wenn die Registerkarte „Sicherheit“ nicht angezeigt wird, wähle im Dropdownmenü die Option Sicherheit aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Sicherheit“ ist dunkelorange umrandet.

  3. Klicken Sie in der Randleiste auf Code scanning.

  4. Klicke unter „Code scanning“ auf eine code scanning-Warnung.

  5. Klicke im Abschnitt „Betroffene Branches“ in der Randleiste auf den gewünschten Branch.

  6. Überprüfe im Dialogfeld „Konfigurationen analysieren“ die Details der Konfigurationen, die diese Warnung für den ausgewählten Branch gemeldet haben. Um eine unerwünschte Konfiguration für den gewünschten Branch zu löschen, klicke auf .

    Wenn du eine Konfiguration versehentlich gelöscht hast, klicke auf Abbrechen, damit die Änderungen nicht angewendet werden.

    Screenshot: Modal „Konfigurationen analysieren“. Das Symbol „Konfiguration löschen“ ist dunkelorange hervorgehoben.

  7. Nachdem du unerwünschte Konfigurationen entfernt hast und bestätigt hast, dass die erwarteten Konfigurationen angezeigt werden, klicke auf Änderungen speichern.

    Wenn du deine Änderungen nach dem versehentlichen Löschen einer Konfiguration speicherst, führe die Konfiguration erneut aus, um die Warnung zu aktualisieren. Weitere Informationen zum erneuten Ausführen von Konfigurationen, die GitHub Actions verwenden, findest du unter Erneutes Ausführen von Workflows und Jobs.

Note

  • Wenn du alle code scanning-Konfigurationen für den Standardbranch deines Repositorys entfernst, verbleibt der Standardbranch in der Randleiste „Betroffene Branches“, wird aber nicht von Konfigurationen analysiert.
  • Wenn du alle code scanning-Konfigurationen für einen anderen Branch als den Standardbranch deines Repositorys entfernst, wird dieser Branch aus der Randleiste „Betroffene Branches“ entfernt.

Weiterführende Themen