Patrick Hütter

E-Mail Notifications/Benachrichtigungen bei einem GIT Push mit gitolite und einem post-receive hook Skript

Wenn man viele Projekte im Auge und vor allem im Team den Überblick behalten will, reicht meistens eine Projektmanagement Software alleine nicht aus. Jedenfalls wenn man Software entwickelt. Ich bin vor kurzem von SVN zu GIT migriert und war auf der Suche nach einer Möglichkeit, mich jedesmal wenn etwas im GIT Repository gepusht, informiert zu werden.

Möglich wird dies durch ein post-receive hook-Script das man in seinem GIT-Repository ablegen kann und das jedesmal wenn etwas gepusht wird, ausgeführt wird. Ein post-receive hook-Script für E-Mail Notifications gibt es schon offiziell von GIT. Ich fand dieses Script zu einfach, denn in den E-Mails waren zu wenig Informationen über den Push enthalten. Also habe ich nach was besserem gesucht und git-notifier gefunden, ein Script das zusätzlich die Änderungen die gepusht wurden auflistet und jenachdem wie man es konfiguriert auch passende Absendernamen für die E-Mails setzt. Da ich viele GIT-Repositories mit unterschiedlichen Benutzern verwalten muss, nutze ich gitolite v3, ein Stück Software das es mir ermöglich durch eine einzige Konfigurationsdatei GIT-Repositories anzulegen und Benutzerrechte hinzuzufügen. Wie man jetzt ein post-receive hook Script in gitolite einbaut und dazu noch alles über die gitolite Konfigurationsdatei steuern kann, zeige ich in folgendem HowTo.

Gitolite konfigurieren

Damit gitolite git-Konfigurationen über die gitolite Konfigurationsdatei (gitolite.conf im gitolite-admin Repo) erlaubt, müssen wir zuerst die ~/.gitolite.rc im Homeverzeichnis des git Users anpassen. Dafür setzen wir die Variable GIT_CONFIG_KEYS wie folgt.


GIT_CONFIG_KEYS => '.*',

Danach führen wir gitolite setup aus, damit gitolite die Konfiguration neu einließt.


~/bin/gitolite setup

E-Mail Post-Receive Hook Script integrieren

Als nächstes laden wir das git-notifier Script in den ~/.gitolite/hooks/common/ Ordner im Homeverzeichnis des git Users und benennen es zu „post-receive“ um. Das ist wichtig, damit git weiß wann es dieses Script triggern soll. Danach noch die Rechte auf das Script anpassen.

chmod a+x ~/.gitolite/hooks/common/post-receive

GIT-Repositories für E-Mail Notification / Benachrichtigung konfigurieren

Nun können wir die gitolite.conf im gitolite-admin Repository bearbeiten und zu unseren Repositories die E-Mail Notification Einstellungen vornehmen. Einzelne Einstellungen können auch weggelassen werden und weitere können hinzugefügt werden. Für alle möglichen Einstellmöglichkeiten, einfach mal in das git-notifier Script schauen.


repo businessApp
 config hooks.mailinglist = "verteiler@domain.tld, person@mycompany.com"
 config hooks.emailprefix = "[business App]"
 config hooks.hostname = "git.mycompany.com"
 config hooks.sender = no-reply@git.mycompany.com
 RW+ = patrick
 RW+ = peter

repo secretProject
 config hooks.mailinglist = info@domain.tld
 config hooks.emailprefix = "[secret project]"
 config hooks.hostname = "git.mycompany.com"
 config hooks.sender = no-reply@git.mycompany.com
 RW+ = patrick
 RW+ = cedric

Das wars, jetzt einfach das gitolite-admin Repository pushen und E-Mail-Benachrichtigung testen!;)

Viel Spaß damit! 😀

Die mobile Version verlassen