Wie kann ich GitLab in OpenProject integrieren?
In OpenProject lassen sich GitLab-Issues mit OpenProject-Tasks verknüpfen, d.h. man sieht in den OpenProject-Eigenschaften eines Tasks (GITLAB-Tab) alle Issues und Merge-Requests aus GitLab, die mit dem Task verknüpft sind. Die Verknüpfung erfolgt über einen Text-Schnipsel, den man sich aus dem OpenProject-Task-Eigenschaften in die Issue-Beschreibung kopieren kann, und über einen Webhook in GitLab, der dafür sorgt, das neue und geänderte Issues und passende Merge-Requests auch in OpenProject angezeigt werden, d.h. GitLab überträgt Daten zu OpenProject.
Kurzanleitung zum einmaligen Einrichten:
- In OpenProject einen API-Key für den eigenen Account erzeugen: Mein Konto > Zugriffstokens
Empfehlung: für jedes Projekt einen eigenen API-Key anlegen (wg. Sicherheit etc.) - In OpenProject das Modul GitLab für das Projekt aktivieren: Projektkonfiguration > Module > GitLab
- In GitLab in einem (neuen) Projekt einen Webhook anlegen: Settings > Webhooks
- URL: https://hu-berlin.openproject.com/webhooks/gitlab?key=[MEIN API-KEY]
- Trigger aktivieren: Push Events, Comments, Issues events, Merge request events, Pipeline events
- Hinweis: Der Test des Webhooks funktioniert unter Umständen nicht (liefert Fehlercode 500), sollte aber trotzdem funktionieren.
Kurzanleitung zur Benutzung:
- In OpenProject einen Task anlegen und dann aus dem GITLAB-Tab des Tasks den GitLab-Schnipsel für Commit-Nachrichten herauskopieren.
- In GitLab einen Issue anlegen und in das Textfeld das OpenProject-GitLab-Schnipsel hineinkopieren.
- Dann sollte in OpenProject im GITLAB-Tab des Tasks das Issue angezeigt werden.
Sicherheitshinweise
- Der OpenProject-API-Key hat die vollen Rechte des eigenen Accounts in OpenProject, d.h. der API-Key ist wie ein Passwort zu behandeln.
- Will man eine deutlich sicherere Methode verwenden, als mit dem eigenen Account und allen entsprechenden OpenProject-Rechten einen API-Key zu erzeugen, muss man einen eigenen (Funktions)-Account verwenden, der in OpenProject für das entsprechende Projekt nur die Rolle GitLab bekommt und für den man dann den API-Key erzeugt.
- In GitLab gilt die Empfehlung, den API-Key zu verstecken. Dazu kann man beim Einrichten des Webhooks die Option "Mask portions of URL" aktivieren, in das Textfeld "Sensitive portion of URL" kopiert man den API-Key und trägt unter "How it looks in the UI" das Wort "hidden" ein.