gitwebhook

Man kann vom gitlab-Server einen Hook ausführen lassen, wenn z.B. ein Push-Event stattgefunden hat. Der Hook wird per Aufruf einer URL ausgeführt, dem dann in einer JSON-Struktur alle nötigen Daten über das Event mitgeteilt werden. Die Hook-Konfiguration geschieht pro Repo.

"gitwebhook" ist ein kleiner Web-Server, der die Hook-Anfragen entgegen nimmt und die für CDA/AD notwendigen Aktionen ausführt, das sind aktuell:
1. wenn in einer in der Hook-URL angegeben Datei eine Änderung stattfindet, wird ein Diff an appdev-d@noris.net verschickt
2. wenn in der Commit-Message eine Ticket-Nummmer angegeben ist, wird ein Mail an das OTRS-Ticket verschickt. Format: "#12345678 Bla Fasel" in der ersten Zeile.

Konfiguration gitwebhook-Server:
1. Paket gitwebhook installieren
2. Der/die gitlab-Server müssen für den User "gitwebhook" per SSH ohne Host-Key-Abfrage erreichbar sein:
2.1. per User einloggen, SSH aufrufen und ~gitwebhook/.ssh/known-hosts erstellen lassen
2.2. Gitlab-Server in /etc/ssh/known-hosts eintragen lassen, das geht theoretisch durch Host-Flag "known-hosts".
3. Logdatei: ~gitwebhook/gitwebhook.log

Konfiguration im Git-Repo:
1. Deploy-Key aus ~gitwebhook/.ssh/id_rsa.pub unter Setting / Deploy-Keys ablegen
2. Unter Settings / Web-Hooks URL eintragen:
   http://krempel.noris.net:8080/
3. Man kann auf "Test Hook" klicken, aber:
3.1. Es werden Testdaten (mehrfach) an den Hook verschickt, je nachdem werden echte E-Mails verschickt.
3.2. Es wird trotzdem im gitlab ein Fehler angezeigt.

Parameter in der URL:
- changed: zu überwachende Datei, Default: keine.
- mail_to: Mailadresse für Status-Mail, Default appdev-d@noris.net bzw. $ticket@ticket.noris.de
Beispiel: http://krempel.noris.net:8080/?changed=README&mail_to=klaus.franken@noris.de

