E-Mail-Commit-Webhook für Gitlab

E-Mail-Commit-Webhook für Gitlab

Michele Alexander Wittmann 21. Juli 2014 Releases

0 Kommentare // Lesezeit: 3 min.

Vor geraumer Zeit sind wir in unserem Blog schon auf das Open-Source Code-Management-Tool Gitlab eingegangen. In zwei Beiträgen wurde darüber berichtet was Gitlab ist, welche Funktionen mit diesem Tool abgedeckt werden können und wie man mit Hilfe von Webhooks Gitlab erweitern kann.

Gerade die Erweiterungsmöglichkeiten von Gitlab via Webhooks machen dieses System sehr interessant, denn bei jedem Tool fehlen Funktionen, die man in seinem Arbeitsumfeld nicht missen möchte. Wir haben beispielsweise unser Gitlab mit einem Commit-Webhook erweitert, da ein solches Feature zur damaligen Zeit noch nicht existiert hat. Mittlerweile gibt es eine vereinfachte Variante im Gitlab selbst.

Mit Hilfe dieses Webhooks werden alle Team-Mitglieder eines Projektes via E-Mail über einen Push in das Git-Repository benachrichtigt. Man muss sich unterwegs also nicht mehr in Gitlab einloggen, um einen groben Überblick zu behalten. In den E-Mails sind die Diffs der Commits angefügt. Im Webhook selbst kann man konfigurieren, ob die Diffs als Datenanhang oder als HTML dargestellt werden sollen.

Wir von sgalinski Internet Services leben und lieben Open-Source. In diesem Sinne möchten wir euch den Code des Webhooks auch nicht vorenthalten. Wir würden uns freuen, wenn ihr uns hierzu Feedback geben würdet.

Die Installation des Webhooks ist dank Composer ein Kinderspiel. Composer ist zur Zeit in aller Munde und vereinfacht das Leben der Entwickler ungemein. Falls ihr Composer schon installiert habt könnt ihr die ersten beiden Kommandos getrost auslassen.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Mit diesen zwei Befehlen wird Composer auf eurem Rechner installiert. Diese Befehle funktionieren nur auf einem UNIX-basierten Betriebssystem. Falls ihr einen Windows-Server nutzen solltet, müsst ihr Composer nach dieser Anleitung installieren.


Kommen wir nun zu eigentlichen Installation des Webhooks. Der Webhook sollte auf einem Webserver installiert werden, da Gitlab sonst nicht via HTTP den Hook aufrufen kann.
 

git clone http://gitlab.sgalinski.de/gitlab/commit-webhook webhook
cd webhook
composer install

Nach diesen drei Zeilen ist der Webhook von der Code-Basis her vollständig und muss nun noch konfiguriert werden.

Zum Konfigurieren wird eine Textdatei benutzt, welche im YAML-Format notiert wird. Der Einfachheit halber haben wir eine Beispielkonfiguration im git-Repository.

mv config.yaml.example config.yaml
vim config.yaml

In der Datei config.yaml müsst ihr anschließend die Sektionen Gitlab und Mail konfigurieren. Für euer Gitlab muss die Domain angepasst und ein Authentifizierungstoken gesetzt werden. Hiermit wäre der Webhook an sich schon einsatzbereit. Doch da man auch E-Mails mit korrekten Absendern haben möchte, sollten die E-Mail Adressen in der Mail-Konfiguration noch angepasst werden.

Ist die Konfiguration gespeichert bleibt eigentlich nur noch eins zu tun. Der Webhook muss im Gitlab bei dem gewünschten Projekt eingetragen werden und schon heißt es bei jedem Push „Sie haben Post“.

Wir würden uns über Feedback zum Webhook freuen. Ihr könnt dies via Twitter oder Google+ vornehmen. Des Weiteren könnt ihr in unserem Gitlab Bug-Reports und Feature-Requests anlegen. Ebenfalls findet ihr hier den Quellcode des Hooks.


0 Kommentare

Dateien hier ablegen
Dateien hochladen
Keine Kommentare.