Gitlab ist in aller Munde und bestimmt ein mächtiges Werkzeug. Browst man im Web wird man schnell feststellen das dieses Werkzeug mehr ist als nur eine Versionskontrolle für Dateien. Da GitHub mittlerweile ein de facto Standard als Plattform für den Austausch von Source Code ist stellt man sich also nun die Frage: welche Mehrwert erziele ich denn nun mit Gitlab? Und wieso gibt es das überhaupt?

zu Hause brauche ich Ordnung!

Da ich einiges an Sourcecode besitze und sich mit der Zeit einige kleine Scripte für Routinen und lästige Aufgaben gesammelt haben kam in meinem Kopf schnell die Idee auf wieso nicht das ganze einfach in einem Repository parken. Somit kam dann relativ schnell ein versionierter Ordnerbaum zu Stande den ich auf einem kleinen Raspberry beheimatet hatte. Mit erhöhter Nutzung stieg natürlich auch die Anforderung. Zumal auf Github immer wieder neue Funktionen hinzu gekommen sind: GitHub Action oder Webhooks. Damit ist es möglich bei Commit in einen Branch oder ein Repo eine Aktion auszulösen.

…ist das nicht zu viel?

Ja das mag sein, aber immerhin kann ich ziemlich genau meine Arbeit (und vorallem meine Zeit) zurück verfolgen die ich an einem Stück Code verbracht habe. Ein weiterer ziemlich toller Nebeneffekt neben einer Versionierung ist bspw. die dadurch viel bessere Strukturierung eines Projekts: Gitlab ist auch eine kleine Projektverwaltungsmaschine. Somit kann ich also für den ein oder anderen kleinen Auftrag aka “bau mir doch mal bitte etwas das NUR das und das macht” auch ganz locker sagen ob es wirklich ein Freundschaftsdienst war oder eben nicht. Interessant sind dann Ergebnisse wie ein kleines Repository das mittlerweile beachtliche 200h Arbeit in sich trägt. Natürlich gibt es andere Lösungen wie Gitea, GitWeb oder Gogs allerdings ist der für mich ausschlaggebende Punkt das Gesamtpaket

Gitlab Runner, Registry und Webhooks

Letztlich vereint Gitlab viele Funktionen in sich die andere (Git)Produkte nunmal nicht haben. So kann Gitlab (auch schon in der Community Edition!) eine Registry für Docker Container bereitstellen. Ebenso ist es in der Lage ganze CI Pipelines mit einem eigenen Runner abzubilden. Das bedeutet im Klartext: nein ich muss nicht erst ein Jenkins installieren, sondern kann meinem Runner sagen das er bitte meine Testprozedur für mein Programm erledigen soll.

Unter’m Strich

Alles in allem ist Gitlab zu Hause schon ein Brocken. Wenn man nicht gerade viel scripted, in der Freizeit eine Hausautomatisierung betreibt oder gerne experimentiert dann ist es vielleicht doch etwas zu viel. Alles in allem bin ich glücklich damit diesen Schritt gemacht zu haben auch wenn ich zunächst einige Voraussetzungen wie ein zentrales IDP für alle anderen Dienste die ich da noch so habe benötigte. Mittlerweile editiere ich sogar meinen Blog von einem Tablett via Browser in Gitlab - egal wo - hauptsache es gibt eine Internetverbindung.