Zum Inhalt

Gitlab - Issues und Merge Requests

Ziel

  • In diesem Projekt werden wir durchspielen, wie die Zusammenarbeit im Team mit Gitlab ablaufen kann.
  • Die erlernten Techniken sind dabei auf andere Services wie Github oder Bitbucket übertragbar.
  • Ziel ist es, ein neues Ticket für einen Bug anzulegen und den Bug anschließend in einem Merge Request selbst zu beheben und damit zu schließen.

Aufgabe 1

Schauen Sie sich das Repository api-users in Gitlab an. Es enthält einen API Server zur Verwaltung von Nutzern. Leider enthält es keinerlei Dokumentation. Erstellen Sie einen neuen Issue zum Erstellen einer Dokumentation. Im Beschreibungsfeld können Sie dabei Markdown verwenden. Starten Sie mit dem folgenden Beispiel und probieren Sie verschiedene Markdown Funktionen aus. Mit einem Klick auf Preview können Sie das gerenderte Markdown anschauen.

Die folgenden Punkte sollten dokumentiert werden:

  • Was das Ziel dieser API ist.
  • Wie die API verwendet wird.
  • Wie sich der Server aufsetzen lässt.

In einem solchen Issue lässt sich nun im Team diskutieren, wie man zu einer Lösung kommt. Im folgenden werden wir einen Merge Request erstellen und darin eine Lösung implementieren.

Aufgabe 2

Erstellen Sie den Merge Request mit einem Klick auf Create merge request. Der Merge Request wird jetzt in dem zuvor erstellten Issue angezeigt und sollte auch direkt geöffnet werden.

Wir müssen diesen jetzt mit der entsprechenden Änderung befüllen. Für den Merge Request wurde ein neuer Branch erstellt.

  • Wechseln Sie zu Visual Studio Code und klonen Sie das Repository.
  • Wechseln Sie auf den Branch des Merge Requests.
  • Fügen Sie eine README.md hinzu mit einem kurzen Beschreibungstext. Hierbei können Sie wieder Markdown verwenden.
  • Committen und pushen Sie Ihre Änderungen auf den Server.

Wenn Sie nun zurück in den Merge Request wechseln sehen Sie, dass der neue Commit im Merge Request angezeigt wird. Es wurde außerdem eine Pipeline getriggert. Diese prüft, dass auch nach der Änderung alle Tests und Linter durchlaufen. Das ist in unserem Fall nicht wichtig, da keine Änderungen am Programmcode durchgeführt wurden. Ansonsten gibt es ein wichtiges Feedback darüber, ob alles wie vorgesehen funktioniert. Wenn wir mit den Änderungen zufrieden sind können wir mit einem Klick auf Mark as Ready dem Rest des Teams signalisieren, dass die Änderungen auf main übernommen werden können.

Im Anschluss müssen wir die Änderungen noch freigegeben werden. Das wird im Normalfall durch einen Kollegen gemacht, der die von uns vorgenommenen Änderungen gegenliest und so ein Codereview durchführt. In diesem Fall führen wir das Review einfach selbst durch.

  • Klicken Sie Approve.

Damit ist der Merge Request bereit, um in main gemerged zu werden. Das kann durch einen Kollegen oder uns selbst durchgeführt werden.

  • Klicken Sie auf Merge when pipeline succeeds um den Merge Request zu schließen oder auf Close merge request, wenn die Pipeline bereits gelaufen ist.

Ist die Pipeline abgeschlossen wird auch der Merge Request geschlossen und damit wird dann auch automatisch der Issue geschlossen.

  • Gehen Sie zurück zum Issue, der jetzt unter Closed zu finden ist.

Damit ist der gesamte Workflow für einen Issue, von Anfang bis Ende, abgeschlossen.