Home / Linux / Debian / gitolite

Git hat ein Skript namens post-receive-email, welches die Aufgabe sehr gut erfüllt. Zusammen mit gitolite kann man daraus ein sehr einfaches und mächtiges Setup bauen.

Man kopiere dies nach ~/.gitolite/hooks/common/post-receive:

#!/bin/sh
if [ -n "$(git config --get hooks.mailinglist)" ]; then
	/usr/share/doc/git-core/contrib/hooks/post-receive-email
fi

Dieses Skript kümmert sich darum, dass nur falls Empfängeradressen gesetzt wurden, post-receive-email aufgerufen wird. Andernfalls wirft post-receive-email nämlich Fehlermeldungen, die aber in diesem Fall gar nicht nötig sind.

Dann muss man diese Befehle im Benutzerverzeichnis von gitolite ausführen:

chmod a+x ~/.gitolite/hooks/common/post-receive
sudo chmod a+x /usr/share/doc/git-core/contrib/hooks/post-receive-email
# propagiere Hooks nach dem nächsten Update neu
rm repositories/*/hooks/gitolite-hooked
# ersetze $GL_GITCONFIG_KEYS = ""; durch $GL_GITCONFIG_KEYS = "hooks\..*";
pico .gitolite.rc

Danach kann man in seiner lokalen conf/gitolite.conf EMail-Benachrichtigungen einfach via einer solchen Konfiguration aktivieren:

repo alpha
	RW = yasin
	config hooks.mailinglist = "<insert email> <insert email2>"
	config hooks.envelopesender = <insert git email>
	config hooks.emailprefix = "[GIT] "

In dieser Referenz Externer Link steht neben ein paar Feinheiten auch, wie man Benachrichtigungen für mehrere Repositories gleichzeitig setzt und es werden einige Links zur Dokumentation gegeben.