gitlab

Gitlab

Was ist Gitlab?

Definition:

GitLab ist ein webbasierter Git-Repository-Manager, der Softwareentwicklungsteams bei der Zusammenarbeit an Softwareprojekten unterstützt, indem er eine Plattform für Versionskontrolle, Zusammenarbeit und kontinuierliche Integration bietet.

Gitlab ist eine wichtige Komponente in der Softwareentwicklungspipeline. Als Teil der Software-Pipeline fungiert Gitlab in erster Linie als Git-Repository-Manager, der die Kontrolle des Quellcodes erleichtert (auch bekannt als Versionskontrollsystem). Wie die meisten Git-Repository-Verwaltungssysteme ist Gitlab nicht nur ein verteiltes VCS, sondern lässt sich auch nahtlos in andere Komponenten der Softwareentwicklungspipeline integrieren, indem es Funktionen wie kontinuierliche Integration, kontinuierliche Bereitstellung, Fehlerverfolgung und Codeüberprüfung bietet. Diese Integration rationalisiert den Entwicklungsprozess, indem sie DEV-Teams ermöglicht, ihren Quellcode zu verwalten, das Testen und die Bereitstellung der Software zu automatisieren
der Software, die Verfolgung von Problemen (mehr dazu unten) und die Zusammenarbeit bei Quellcodeänderungen in einer "einheitlichen" Umgebung.

Key Features

  1.  Git Repository Management : ermöglicht es Benutzern, Softwareprojekte zu erstellen, zu verwalten und gemeinsam daran zu arbeiten. Außerdem können die Benutzer ein detailliertes Berechtigungsschema Schema für den Zugriff auf und die Nutzung von Repositories festlegen.
  2.  Continuous Integration/Continuous Deployment (CI/CD) : Mit den integrierten CI/CD-Pipelines automatisiert GitLab die Test- und Bereitstellungsprozesse und gewährleistet so Codequalität und effiziente Bereitstellung. CI steht für Continuous Integration und CD für Continuous Delivery
  3.  Issue Tracking : Mit Issues können Sie Ihre Arbeit (Feature Requests, Bug Reports...) dort verfolgen, wo die Entwicklung stattfindet
  4.  Code Review : kollaborative Überprüfung der Codequalität
  5.  Wiki and Dokumentation : um die technische Dokumentation im selben Projekt wie den Code zu halten, kann man das GitLab Wiki verwenden
  6.  Collaboration Tools : Funktionen wie Code Review, Merge Request Approval ermöglichen es z.B. Teams, in verteilten und asynchronen Umgebungen zu arbeiten, Quellcodeänderungen und Versionen aus der Ferne zu verwalten und Genehmigungen von Änderungsvorschlägen zu verfolgen.

Verschiedene Verwendungsmöglichkeiten von GitLab

Version Control

  1.  Verfolgt Änderungen am Quellcode im Laufe der Zeit: Das Versionskontrollsystem von GitLab ermöglicht die Verfolgung von Änderungen, die Verwaltung von Zweigen und das Zusammenführen von Beiträgen zur Förderung eines optimierten Entwicklungsworkflows.
  2.  Erleichtert die Zusammenarbeit zwischen Entwicklern: Die Zusammenarbeit wird verbessert, da mehrere Entwickler gleichzeitig an demselben Projekt arbeiten können, wobei GitLab Versionskonflikte verwaltet und einen kontrollierten Zugriff auf die Assets des Projekts ermöglicht.

Fortlaufende Integration

  1.  Automatisiert die Erstellung, Prüfung und Bereitstellung von Code: Die CI/CD-Tools von GitLab automatisieren die Erstellung, das Testen und (in einigen Fällen bei PSI) die Bereitstellung, wodurch manuelle Fehler reduziert und der Entwicklungszyklus beschleunigt wird.
  2.  Sichert die Codequalität und reduziert manuelle Fehler: Entwickler können die Ergebnisse der CI-Pipeline (laufende und vergangene Aufträge) einfach überwachen und analysieren, um die Stabilität und Zuverlässigkeit ihres Codes sicherzustellen.

Issue Tracking

  1.  Verwaltung und Verfolgung von Aufgaben, Fehlern und Funktionsanforderungen, idealerweise im Zusammenhang mit der Entwicklung einer Anwendung oder eines Systems: Bei PSI ist JIRA das Standardtool zur Fehlerverfolgung für Projekte. Gitlab Issues Tracker ist ein einfacher Issue Tracker für die projektbezogene Verwaltung Ihrer Issues. 
    Obwohl es nicht so fortschrittlich ist wie eine Lösung wie JIRA, kann es sehr nützlich und flexibel sein, wenn es dazu dient, die Arbeit so nah wie möglich am Code zu verfolgen. Es ist auch möglich, bei der Arbeit mit GitLab-Problemen und Merge-Anfragen Querverweise zu Jira-Problemen zu erstellen.
  2.  Verbessert die Zusammenarbeit zwischen den Teammitgliedern: Durch die Verknüpfung von Problemen mit bestimmten Codeänderungen können Entwickler eine klare Verbindung zwischen Problemlösung und Codeentwicklung herstellen.

Code Review

  1.  Erleichtert kollaborative Codeprüfungen zur Qualitätssicherung: Die Code-Review-Funktion von GitLab erleichtert die Zusammenarbeit zwischen den Teammitgliedern, indem sie ein Medium für konstruktives Feedback bietet und die Qualität des Quellcodes verbessert.
  2.  Verbessert die Codebasis durch Feedback und Vorschläge: Mithilfe von Merge-Anfragen und Diskussionen können Entwickler Codeänderungen effizient überprüfen und verfeinern, bevor sie in die Hauptcodebasis integriert werden. Die Codebasis kann weiter verbessert werden, indem geeignete Genehmigungsregeln definiert werden. Man kann zum Beispiel die Anzahl der Genehmigungen festlegen, die eine Zusammenführungsanfrage erhalten muss, bevor sie zusammengeführt werden kann, und auch, welche Benutzer die Genehmigung erteilen sollen, und so die Überprüfung von Codeänderungen erschweren.

Zugriff und Benutzung von GitLab

Zugang zu Gitlab

Unser GitLab-Dienst bietet zwei Instanzen: eine interne und eine externe. Es wird empfohlen, in erster Linie die interne Instanz für alle Arbeitslasten zu verwenden, da sie standardmäßig einen Adhoc-Status hat. Außerdem bietet sie gemeinsam genutzte Runner für die Erstellung von GitLab-Pages. Es ist besonders wichtig, zur internen Instanz zu wechseln, wenn der Code sensible Daten wie Kommentare und Quellcode enthält, um eine sichere Umgebung für solche Informationen zu gewährleisten. Die externe Instanz sollte jedoch ausschließlich für die Zusammenarbeit mit anderen Instituten genutzt werden, um eine eigene Umgebung für die Zusammenarbeit über den internen Rahmen hinaus zu gewährleisten. Auf beide Instanzen kann derzeit jeder zugreifen, der über ein gültiges PSI-Konto verfügt.

Der Zugriff auf GitLab durch externe Nutzer ist mit Kosten (für das PSI) verbunden, die berücksichtigt werden sollten. Es ist wichtig, die finanziellen Auswirkungen des externen Zugriffs zu bewerten, da sich diese Kosten auf das Budget des Dienstes auswirken können. Nur-Lese-Benutzer verbrauchen einen Platz. Darüber hinaus sollte auch die Sichtbarkeit des Projekts ein Faktor bei der Entscheidungsfindung sein, da eine unangemessene Sichtbarkeit die Projektdetails einem breiteren Publikum zugänglich machen könnte. Die Abwägung dieser Überlegungen trägt dazu bei, einen fundierten und kosteneffizienten Ansatz für die Nutzung von GitLab für die externe Zusammenarbeit zu finden.
 

Erstellung eines Projekts

Nach erfolgreicher Anmeldung können Benutzer ein neues Projekt in GitLab erstellen und einen eigenen Bereich für die Codeentwicklung, Zusammenarbeit und Dokumentation einrichten.

Es wird empfohlen, keine Projekte unter dem persönlichen Namensraum einer Person in GitLab zu erstellen. Stattdessen sollten Sie entweder einer bestehenden Gruppe beitreten oder eine neue Gruppe für das Projekt erstellen. Eine gruppenbasierte Organisation verbessert die Zusammenarbeit, vereinfacht die Zugriffskontrolle und bietet eine besser strukturierte Umgebung für die Verwaltung mehrerer Projekte. Projekte, die unter dem Namensraum eines Benutzers erstellt werden, z.B. gitlab.psi.ch/username, werden als privat betrachtet, und wenn der Benutzer das PSI verlässt, ist keine Übertragung von Berechtigungen möglich.

 

Zugriff auf das Git-Repository

  1.  Klonen Sie das Repository mit der Git-Befehlszeile oder einem Git-Client.
  2.  Der Zugriff auf das Repository erfolgt über die Weboberfläche. Über die Weboberfläche können Benutzer auch Repositories erkunden, den Codeverlauf einsehen und Zweige verwalten.

 

CI/CD Setup

  1.  Die Konfiguration von CI/CD-Pipelines für automatisierte Tests umfasst die Definition automatisierter Arbeitsabläufe für das Erstellen, Testen und Bereitstellen von Codeänderungen. Meistens durch Bearbeiten der Datei gitlab-ci.yml 
  2.  Die Benutzer können die Ergebnisse der Pipeline über die GitLab-Benutzeroberfläche einfach überwachen und erhalten so Einblicke in den Erfolg und den Status der automatisierten Prozesse.

 

Problemverfolgung und Zusammenarbeit

  1.  Erstellen, Zuweisen und Verwalten von Problemen für Aufgaben und Fehler.
  2.  Zusammenführungsanfragen und Diskussionen fördern die Kommunikation und Zusammenarbeit zwischen den Teammitgliedern während des Code-Review-Prozesses.

 

Zugriff auf Dokumentation und Wiki

  1.  Nutzen Sie das Wiki und die Dokumentationsfunktionen für technische Projektinformationen.
  2.  Die Funktionen zur gemeinsamen Bearbeitung ermöglichen es den Teammitgliedern, zur Projektdokumentation beizutragen und diese zu aktualisieren, um sicherzustellen, dass sie korrekt und aktuell ist und mit dem Quellcode.