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 steht neben ein paar Feinheiten auch, wie man Benachrichtigungen für mehrere Repositories gleichzeitig setzt und es werden einige Links zur Dokumentation gegeben.