Skip to main content

GitHub AE ist derzeit begrenzt freigegeben.

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 AE verfügbar. Dies ist ein GitHub Advanced Security-Feature (kostenlos während der Betaphase).

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 Sie den Pushschutz für Ihre Organisation oder Ihr Repository aktivieren, 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 Geheimnisüberprüfungsmuster.

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.

Es wird ein Dialogfeld mit Informationen zum Speicherort des Geheimnisses sowie Optionen zum Pushen des Geheimnisses angezeigt. Das Geheimnis wird auch in der Datei unterstrichen, damit du es einfacher finden kannst.

Um einen blockierten Commit über die Webbenutzeroberfläche zu korrigieren, musst du das Geheimnis aus der Datei entfernen oder die Optionen im Dialogfeld verwenden, um das Geheimnis zuzulassen. Weitere Informationen zur Umgehung des Pushschutzes über die Webbenutzeroberfläche findest du unter Pushschutz für Repositorys und Organisationen.

Wenn es sich wirklich um ein Geheimnis handelt, muss es aus der Datei entfernt werden. Nachdem du das Geheimnis entfernt hast, kannst du deine Änderungen committen.