Skip to main content

Mit Pre-Receive-Hooks arbeiten

Erzwingen Sie Repositoryrichtlinien und verhindern Sie Probleme wie Geheimnisse oder ungültige Commits mithilfe von Pre-Receive-Hooks auf GitHub Enterprise Server.

Pre-Receive-Hooks sind Skripts, die auf GitHub Enterprise Server ausgeführt werden, bevor Git gepushte Commits akzeptiert. Sie erzwingen Repository-, Organisations- oder Unternehmensrichtlinien an dem Punkt, an dem Code in ein Repository gelangt.

Ein Pre-Receive-Hook kann überprüfen, ob ein Push den erforderlichen Regeln folgt. Beispielsweise kann ein Hook Pushes blockieren, die Geheimnisse enthalten, nicht standardisierte Commit-Nachrichten verwenden oder geschützte Dateien ändern. Wenn der Push die Prüfungen besteht, akzeptiert Git ihn. Wenn der Push fehlschlägt, lehnt Git sie ab und zeigt eine Fehlermeldung an.

Wenn Ihr Push nicht akzeptiert wird, wird eine Fehlermeldung für den fehlgeschlagenen Pre-Receive-Hook angezeigt.

$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 916 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: always_reject.sh: failed with exit status 1
remote: error: rejecting all pushes
To https://54.204.174.51/hodor/nope.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://54.204.174.51/hodor/nope.git'

Pre-Receive-Hooks sind wichtig, weil sie Regeln einheitlich durchsetzen, bevor Änderungen das Repository erreichen. Dies kann die manuelle Überprüfungslast verringern und verhindern, dass Richtlinienverstöße im Git-Verlauf gespeichert werden.

Ihr GitHub Enterprise Server Site-Administrator erstellt und entfernt Pre-Receive-Hooks. Sie können auch Organisations- oder Repositoryadministratoren erlauben, Hooks für bestimmte Bereiche zu aktivieren oder zu deaktivieren. Siehe Erzwingen einer Richtlinie mit Pre-Receive-Hooks.