2017-12-07 4 views
0

Gitlab wird lokal auf meinem Server gehostet. Wenn ich einen Commit drücke, funktioniert der Post-Receive-Hook nicht. Ich machte den Besitzer des Hooks git:git und machte es ausführbar. Wenn ich die Datei manuell ausführe, funktioniert es.Gitlab führt Post-Receipt-Hook nicht automatisch aus

+0

Besitzer sollte aktueller Benutzer sein, aber die wichtige Sache ist, es mit 'chmod 755' ausführbar zu machen. – MaNKuR

+0

Ich habe Datei bereits ausführbar gemacht –

Antwort

0

GitLab führt das benutzerdefinierte post-receive aus, solange es im Verzeichnis des Repos gespeichert ist und sowohl das Verzeichnis als auch die Datei im Besitz von git sind. Stellen Sie außerdem sicher, dass Ihr Hook eine Eingabe auf stdin erwartet, nicht über Standardargumente - ich sage dies, da Sie erwähnt haben, dass Sie das Skript manuell ausführen und es funktioniert.

Leider benutzerdefinierte post-receive Fehler sind nicht so einfach zu debuggen. Ein pre-receive Fehler würde zurück an den Client gesendet werden. Ich schlage vor, viele eigene Logging-Funktionen hinzuzufügen, damit Sie genau sehen können, was passiert. Lege das erste Log direkt nach dem Shebang, damit du weißt, dass dein Haken ausgeführt wurde.

Die Dokumente bei https://docs.gitlab.com/ee/administration/custom_hooks.html#custom-git-hooks haben hilfreiche Schritte, wenn Sie sie nicht schon gesehen haben.

Verwandte Themen