E-Mail Notifications/Benachrichtigungen bei einem GIT Push mit gitolite und einem post-receive hook Skript
3Wenn 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! 😀
Ein guter Beitrag, Danke!. Aber die Einstellung für das Erlauben der Git Config Keys ist nicht GIT_CONFIG_KEYS => ‚.*‘ sondern $GL_GITCONFIG_KEYS = „.*“
Zumindest in meiner Version V3
Ok, mein Fehler. Ich war in der falschen Datei. Deine Anleitung ist richtig, sorry!
Trotzdem Danke für dein Feedback 🙂