Skip to main content

Pushen eines durch Pushschutz blockierten Branches

Der Pushschutz von secret scanning schützt dich proaktiv davor, dass Geheimnisse aus deinen Repositorys offengelegt werden. Du kannst die Probleme in blockierten Pushes beheben. Sobald das erkannte Geheimnis entfernt wurde, kannst du die Änderungen über die Befehlszeile oder die Webbenutzeroberfläche an den Arbeitsbranch pushen.

Secret scanning ist für organisationseigene Repositorys in GitHub Enterprise Server verfügbar, wenn dein Unternehmen über eine Lizenz für GitHub Advanced Security verfügt. Weitere Informationen findest du unter Informationen zu secret scanning auf GitHub Enterprise Server und Informationen zu GitHub Advanced Security.

Pushschutz für secret scanning

Der Pushschutz von secret scanning verhindert Sicherheitslecks, indem der Code auf Geheimnisse gescannt wird, bevor du Änderungen an dein Repository pushst. Wenn du den Pushschutz aktivierst, prüft secret scanning auch Pushnachrichten auf Geheimnisse mit hoher Vertrauenswürdigkeit (solche, die mit einer geringen False-Positive-Rate identifiziert wurden). Secret scanning listet alle erkannten Geheimnisse auf, sodass der Autor die Geheimnisse überprüfen und entfernen oder, falls erforderlich, die Weitergabe dieser Geheimnisse per Push erlauben kann. Weitere Informationen zu Geheimnissen und Dienstanbietern, für die der Pushschutz unterstützt wird, findest du unter Secret scanning-Muster.

Wenn du bestätigen konntest, dass es sich wirklich um ein Geheimnis handelt, musst du dieses vor dem nächsten Push aus deinem Branch und allen Commits entfernen, in denen es vorkommt.

Tipp: Wenn GitHub ein Geheimnis blockiert, von dem du denkst, dass es sicher gepusht werden kann, kannst du das Geheimnis zulassen und den Grund angeben, warum es zugelassen werden soll. Weitere Informationen zum Umgehen des Pushschutzes für Geheimnisse findest du unter Zulassen, dass ein blockiertes Geheimnis gepusht wird und Umgehen des Pushschutzes für ein Geheimnis (jeweils für die Befehlszeile und die Webbenutzeroberfläche).

Korrigieren eines blockierten Pushes über die Befehlszeile

Wenn du ein unterstütztes Geheimnis mit secret scanning als Pushschutz an ein Repository oder eine Organisation pushen möchtest, blockiert GitHub den Push. Du kannst das Geheimnis aus deinem Branch entfernen oder auf eine bereitgestellte URL klicken, um den Push zuzulassen.

Hinweise:

  • Wenn deine Git-Konfiguration das Pushen an mehrere Branches und nicht nur an den aktuellen Branch unterstützt, wird dein Push möglicherweise blockiert, weil zusätzliche und unbeabsichtigte Verweise gepusht werden. Weitere Informationen findest du unter push.default-Optionen in der GitHub-Dokumentation.
  • Wenn für secret scanning bei einem Push ein Timeout auftritt, scannt GitHub die Commits nach dem Pushen trotzdem auf Geheimnisse.

Wenn das blockierte Geheimnisse mit dem letzten Commit in deinen Branch gelangt ist, befolge diese Schritte:

  1. Entferne das Geheimnis aus deinem Code.
  2. Committe die Änderungen mit git commit --amend.
  3. Pushe die Änderungen mit git push.

Du kannst das Geheimnis auch entfernen, wenn es in einem früheren Commit im Git-Verlauf vorkommt.

  1. Mithilfe von git log kannst du feststellen, welcher im Pushfehler hervorgehobene Commit im Verlauf zuerst vorhanden war.
  2. Starte ein interaktives Rebasing mit git rebase -i <commit-id>~1. entspricht dem Commit aus Schritt 1.
  3. Ermittle den zu ändernden Commit, indem du pick in der ersten Textzeile im Editor in edit änderst.
  4. Entferne das Geheimnis aus deinem Code.
  5. Committe die Änderung mit git commit --amend.
  6. Führe git rebase --continue aus, um das Rebasing fertigzustellen.

Korrigieren eines blockierten Pushes über die Webbenutzeroberfläche

Wenn du über die Webbenutzeroberfläche versuchst, ein unterstütztes Geheimnis an ein Repository oder eine Organisation zu übertragen, in dem bzw. der die Überprüfung auf Geheimnisse als Pushschutz aktiviert ist, blockiert GitHub den Commit.

Oben auf der Seite wird ein Banner mit Informationen über den Speicherort des Geheimnisses gezeigt, wobei das Geheimnis auch in der Datei unterstrichen wird, damit du es einfach finden kannst.

Screenshot des Commits auf der Webbenutzeroberfläche, der aufgrund des Pushschutzes durch die Überprüfung auf Geheimnisse blockiert wurde

Um einen blockierten Commit über die Webbenutzeroberfläche zu korrigieren, musst du das Geheimnis aus der Datei entfernen oder das Dropdownmenü Schutz umgehen verwenden, um das Geheimnis zuzulassen. Weitere Informationen zum Umgehen des Pushschutzes über die Webbenutzeroberfläche findest du unter Schützen von Pushes mit Geheimnisscans.

Wenn es sich wirklich um ein Geheimnis handelt, muss es aus der Datei entfernt werden. Sobald du das Geheimnis entfernt hast, ändert sich das Banner oben auf der Seite und teilt dir mit, dass du deine Änderungen jetzt committen kannst.