GitLab

Git ist eine Software zur verteilten Versionsverwaltung von Dateien (engl. Distributed version control). Die Nutzung einer Versionsverwaltungssoftware macht es u.a. möglich, dass Änderungen an Dateien nachverfolgt werden können. Dies erleichtert die Zusammenarbeit mehrerer Personen an einem Projekt, da gleichzeitige Änderungen nicht zu Dateiüberschreibungen und damit zu Informationsverlusten führen, sondern mithilfe der Software zusammengeführt werden können. Versionsverwaltungssoftware wird häufig in der Softwareentwicklung eingesetzt, doch eignet sie sich beispielsweise auch zur Arbeit an wissenschaftlichen Texten wie Abschluss- und Doktorarbeiten, die mit der Textsatzsoftware LaTeX verfasst werden.

Mit GitLab bietet das LRZ einen web-basierten Dienst zur Verwaltung von Git-Repositories an. GitLab stellt neben den eigentlichen Repositories Werkzeuge wie Wikis und einen Issue-Tracker bereit. Mit "Merge Requests" gibt es ein Mittel, mit dem Code-Reviews kollaborativ und transparent durchgeführt werden können.

Im Folgenden finden Sie eine Übersicht über die wichtigsten Eckdaten. Weiterführende Informationen entnehmen Sie bitte den GitLab-FAQ.

Wenn nicht separat erwähnt, gelten alle Angaben für beide GitLab-Instanzen am LRZ: der HauptInstanz LRZ GitLab (für Studierende und Mitarbeitende) und LRZ GitLab CE (nur für Mitarbeitende der Teilnehmenden Einrichtungen). 

Inhalt

Aktuelles

14.03.2024

LRZ GitLab wurde auf die Version 16.9 aktualisiert. Jetzt sind wieder Projekt-Einladungen an E-Mail-Adressen möglich (siehe 7.12.2023). Die eingeladenen Personen müssen GitLab-Berechtigungen per LDAP haben, oder durch GitInvited ein Konto erstellt haben.

08.02.2024

LRZ GitLab wurde auf die Version 16.8 aktualisiert. Außerdem haben wir die GitLab CE Instanz optisch leicht von der LRZ GitLab Hauptinstanz getrennt. Siehe GitLab FAQ für details.

12.01.2024

Die Firewall-Einstellungen auf GitLab CE wurden angepasst, um die Zusammenarbeit mit externen Projektpartnern weltweit zu ermöglichen. Diese benötigen natürlich weiterhin einen Account, der über ein LRZ-Projekt oder eine Gastkennung der Unversität oder Hochschule mit den notwendigen Zugriffsrechten bezogen werden kann. GitInvited kann nicht verwendet werden, um externe Partner auf LRZ GitLab CE einzuladen.

Außerdem wurde eine Sicherheitsupdate auf beiden GitLab-Instanzen installiert.

04.01.2024

LRZ GitLab wurde auf die Version 16.7 und das Betriebssystem auf die neuesten Version aktualisiert.

27.12.2023

Wir haben die Anzahl der erlaubten gleichzeitigen SSH-Verbindungen auf LRZ GitLab erhöht. Die neue Anzahl dürfte hoch genug sein dass alle Verbindungen auch in den Stoßzeiten erfolgreich durchgehen anstatt seitens GitLab bereits im Aufbauphase geschlossen zu werden (was in der letzten Zeit manchmal passierte).

07.12.2023

LRZ GitLab wurde auf die Version 16.6 aktualisiert. Die LDAP-Einstellungen wurden so geändert, dass als "Full name" in GitLab der Feld "Anzeigename" anstatt der "Full Name" in der Benutzerverwaltung der Universitäten verwendet wird. Das erleichtert die Möglichkeit, auf Wunsch seinen Namen in GitLab aus persönlichen Gründen zu ändern. Alle Kennungen sind noch nicht synchronisiert, werden aber nach und nach gemacht. Der Username in GitLab und die damit verbundene Pfade der persönliche Projekte ändern sich dadurch nicht.

Aufgrund einer Änderung in GitLab Version 16.6 können Projekt-Einladungen aktuell nicht an E-Mail-Adressen geschickt werden. Bitte die GitLab-Usernamen für Einladungen verwenden. Wir folgen den Austausch über das Problem im GitLab-Issue. Einladungen durch GitInvited sind von der Änderung nicht betroffen.

03.11.2023

LRZ GitLab wurde auf die Version 16.5 aktualisiert.

05.10.2023

LRZ GitLab wurde auf die Version 16.4 aktualisiert.

07.09.2023

LRZ GitLab wurde auf die Version 16.3 aktualisiert.

31.08.2023

Eine neue GitLab-Instanz mit der open source GitLab Community Edition Software (LRZ GitLab CE) steht für Mitarbeitende der teilnehmenden Einrichtungen zur Verfügung. Projekte für den IT-Betrieb und für die institutionelle Verwaltung gehören auf dieser Instanz. Forschungsprojekte und Lehre (z.B. Kursaufgaben) sollten wie bisher auf der Hauptinstanz LRZ GitLab bleiben. Die neue Instanz ist innerhalb des MWN-Netzwerks erreichbar. Siehe auch GitLab-FAQ.

Nutzungsberechtigung

Zur Nutzung des LRZ-Dienstes GitLab berechtigt sind alle Mitglieder von TUM, LMU und sonstigen Münchner Universitäten und Hochschulen. Dazu ist eine Kennung von LRZ oder einer der teilnehmenden Universitäten oder Hochschulen nötig.

Sofern noch keine automatische Freischaltung erfolgt ist, können einzelne Benutzerkennungen vom verantwortlichen Master User über unser ID-Portal freigeschaltet werden. Falls dies nicht möglich ist, wenden Sie sich bitte an das LRZ Servicedesk.

Bitte beachten Sie, dass die Hauptinstanz LRZ GitLab (https://gitlab.lrz.de) nur für nicht-kommerzielle Forschung und Lehre verwendet werden darf. Eine professionelle Nutzung in der IT-Abteilung und / oder die Verwendung für die institutionelle Verwaltung ist nicht erlaubt. Diese Begrenzung kommt aus der Bedingungen der GitLab for Education Programme. Detaillierte Information in Englisch finden Sie auf den folgenden GitLab-Seiten:

Sie brauchen sich nicht als Person oder Einrichtung in das Education Programm auf der GitLab-Seite zu registrieren. Das hat LRZ für die teilnehmende Universitäten bereits gemacht.

Für weitere dienstliche Nutzungszwecke bietet das LRZ eine getrennte GitLab-Instanz mit der Community Edition Lizenz an (https://gitlab-ce.lrz.de). Beispielsweise Projekte für den IT-Betrieb und für die institutionelle Verwaltung gehören auf diese Instanz. Für Forschungsprojekte und Lehre (z.B. Kursaufgaben) bitte die Hauptinstanz LRZ GitLab verwenden. Siehe auch GitLab-FAQ.

Speicherplatz

Da Git auf die Versionsverwaltung von Textdateien (Nur-Text-Format, Quellcode-Dateien etc.) ausgelegt ist, gilt generell, dass Git-Repositories relativ klein (< 1 GB) bleiben sollten

Für binäre Formate wie Bildarchive, Microsoft-Office-Dateien (.doc, .docx, .xls, .xlsx etc.), LibreOffice-/OpenOffice-Dateien (.odt, .ods etc.) oder sehr dynamische Daten wie Logs ist Git nicht gut geeignet. Für diesen Zweck unterstützt GitLab die Erweiterung Large File Storage (LFS). Wenn Sie binäre Dateien in ihrem Projekt haben, bitte von Anfang an LFS installieren und aktivieren. Eine spätere Migration der Dateien nach LFS ist deutlich komplizierter.

Im LRZ GitLab gelten die folgende Grenzwerte:

  • Maximale Dateigröße beim Upload: 10 GB
  • Maximale Größe des Repository inklusive LFS-Dateien: 10 GB

Die Größe des Repository ist als die Angabe "X MB Files" oben auf der Projektseite in GitLab zu finden. Die Angabe "Storage" zeigt die Gesamtgröße des Projekts inklusive der Artifacts, die den Grenzwert überschreiten dürfen. Bitte beachten Sie, dass die Werte gecached sind und daher möglicherweise nicht unmittelbar die tatsächliche Größe widerspiegeln, kurz nachdem Änderungen im Repository vorgenommen wurden.

Die maximale Größe des Repository kann bei Bedarf von den Administratoren für individuelle Projekte erhöht werden. Voraussetzung dafür ist eine ordnungsgemäße Nutzung von Git LFS. Bitte wenden Sie sich gegebenenfalls an den LRZ Servicedesk

Eine Anleitung Repositories zu verkleinern ist in der GitLab-FAQ zu finden.

Projektlimit

Es dürfen höchstens 10 persönliche Projekte angelegt werden. Dieses Limit kann in begründeten Fällen angehoben werden. Bitte wenden Sie sich dazu an das LRZ Servicedesk. Als Alternative, bitte organisieren Sie Ihre Projekte in Gruppen (siehe unten).

Gruppen

Bei logisch zusammengehörigen Projekten bietet sich die Nutzung von GitLab-Gruppen an. Innerhalb einer GitLab-Gruppe ist die Projektanzahl nicht beschränkt. Eine Gruppe hat auch den Vorteil, dass die Rechteverwaltung für gewöhnlich erleichtert und übersichtlicher wird. Außerdem vererbt sich die Rolle eines Nutzers einer Gruppe zu allen Projekten in der Gruppe.

Sichtbarkeit der Projekte und Gruppen

In GitLab kann man bei Projekten und Gruppen die folgenden Stufen der Sichtbarkeit einstellen:

SichtbarkeitBedeutung / Auswirkung
Private 
  • Bei einem Projekt oder einer Gruppe muss man explizit festlegen, welche Nutzer:innen Zugriff haben. Die Rechte einer Person hängen von der GitLab-Rolle ab, die die Person bei dem Projekt oder der Gruppe besitzt. 
  • Bei einer Gruppe wird die Liste der berechtigten Personen (und ihre Rollen) auf die Projekte und Sub-Gruppen in der Gruppe vererbt.
  • Beim LRZ GitLab ist die Sichtbarkeit "Private" die Voreinstellung.
Internal
  • Wie bei "Private" kann man Rechte explizit vergeben.
  • (Warnung) Außerdem haben alle Nutzer:innen, die beim LRZ-GitLab eingeloggt sind, einen Lese-Zugriff:  Die eingeloggten Personen können die Projekte und Gruppen sehen und den Inhalt herunterladen. Davon sind nur diejenigen Personen ausgenommen, die mit GitInvited eingeladen wurden (weil sie den Status "external user" haben).
  • Als Eigentümer:in eines Projekts oder einer Gruppe kann man die Sichtbarkeit "Internal" selbst einstellen.
Public
  • Wie bei "Private" kann man Rechte explizit vergeben.
  • (Warnung) Außerdem haben beliebige Personen einen Lese-Zugriff (siehe "Internal").  Dazu muss man keine berechtigte Kennung besitzen und auch nicht eingeloggt sein.
  • Beim LRZ-GitLab kann nur das LRZ-GitLab-Team die Sichtbarkeit "Public" einstellen.  Wenn Sie Ihr Projekt veröffentlichen möchten, lesen Sie dazu bitte die Beschreibung im Abschnitt Öffentliche Projekte.
  • Auf GitLab CE bedeutet diese Sichtbarkeitsstufe dass der Inhalt für nicht eingeloggte Personen (beispielsweise an Studierende die kein Konto auf der Instanz haben) innerhalb des MWN-Netzwerkes sichtbar ist.

Alle Details zu den Stufen der Sichtbarkeit sowie zu den Rollen und Rechten finden Sie in den folgenden GitLab-Artikeln:  

Wichtige Sicherheitshinweise

  • Beim LRZ-GitLab können sich über 100.000 Personen einloggen! Dabei handelt es sich um alle Personen, die zur LMU, zur TUM und noch weiteren Münchner Hochschulen und wissenschaftlichen Einrichtungen gehören.
  • Bei einer so großen Anzahl von berechtigten Personen kann es vorkommen, dass eine oder mehrere Kennungen kompromittiert sind und unberechtigte Personen  (Kriminelle usw.) diese Kennungen nutzen. Diese unberechtigten Personen haben dann auch Lese-Zugriff auf alle Projekte und Gruppen mit der Sichtbarkeit "Internal".
  • Man kann von jedem Ort der Welt aus auf das LRZ-GitLab zugreifen.  Es gibt keine geographischen oder sonstigen Einschränkungen.

Fazit: Zu Ihrem eigenen Schutz sollten Sie die Sichtbarkeit "Internal" fast wie "Public" betrachten. 

Öffentliche Projekte

Es besteht die Möglichkeit, Projekte zu veröffentlichen, so dass sie ohne Login geklont werden können. Die benötigte Einstellung für das Projekt darf aus Sicherheitsgründen (s.u.) nur von den GitLab-Administratoren vorgenommen werden. Bitte geben Sie dazu den Projektnamen oder -pfad mit einer entsprechenden Nachricht an den LRZ Servicedesk weiter; bitte wählen Sie dabei die Methode "Selfservice", damit wir Ihre Berechtigung überprüfen können.

Wir empfehlen, alle öffentlichen Projekte in Gruppen einzuordnen, damit sie nicht von persönlichen GitLab-Kennungen abhängig sind. Wenn ein Projekt öffentlich sichtbar sein soll, dann muss auch die Gruppe, zu der das Projekt gehört, öffentlich sichtbar gemacht werden.

Bei öffentlichen Projekten sind die folgenden Informationen öffentlich sichtbar (allgemein zugreifbar):

  • Bei jedem Commit der Name und die E-Mail-Adresse, wie sie in der Konfiguration von Git hinterlegt wurden.
  • Bei GitLab der GitLab-Benutzername (Username), wie er bei den Benutzereinstellungen (User Settings) im Abschnitt "Konto" (Account) festgelegt wird. Der Benutzername ist bei persönlichen Projekten im Pfad sichtbar.

Bis Januar 2020 wurde beim ersten Anmelden der GitLab-Benutzername mit der eigenen Benutzerkennung initialisiert, die von der eigenen Einrichtung vergeben wird (LMU, TUM, HM, HSWT). Wir bitten alle betroffenen Mitglieder der öffentliche Projekte ihre GitLab-Benutzernamen zu ändern (Settings → Account → Change Username), so dass die eigene Benutzerkennung nicht allgemein sichtbar wird. Begründung:

  • Das LRZ muss die Benutzerkennung im Hinblick auf den Datenschutz vertraulich behandeln.
  • Die Benutzerkennung kann bei einem Social-Engineering-Angriff eingesetzt werden, um beim Opfer Vertrauen aufzubauen: <<Liebe Kundin, lieber Kunde mit der Kennung Abcxyz>>
  • Beim Angriff auf Passwörter gibt es mehrere Varianten. Beim "Online Attack Scenario" versucht der Angreifer, sich über den ganz normalen Zugang anzumelden. Dabei muss der Angreifer aber sowohl die Benutzerkennung als auch das dazugehörige Passwort kennen bzw. erraten.

Wenn Sie Ihren GitLab-Benutzernamen ändern, passt GitLab bei persönlichen Projekten die Web-Adressen und Repository-URLs automatisch entsprechend an. Bei Projekten, die zu einer Gruppe gehören, ändert sich nichts, weil in den betreffenden URLs kein Benutzername enthalten ist. Weitere Details zur Änderung des eigenen GitLab-Benutzernamens findet man in der GitLab-Dokumentation.

Continuous Integration / Continuous Delivery (CI/CD)

Die CI-/CD-Integration kann auf Projektebene aktiviert werden (Einstellungen/Settings → General → Permissions → Pipelines). Damit ist allerdings nur die Möglichkeit gegeben, die Kommunikation mit einem CI-Runner zu konfigurieren. Die CI-Runner selbst stellt das LRZ bis auf Weiteres nicht zur Verfügung. Sie müssen also selbst einen Runner aufsetzen und betreiben.

Mehr Information finden Sie in den folgenden Dokumenten:

GitLab Pages

Mit der GitLab-Pages-Funktionalität können statische Webseiten aus einem Repository erstellt und veröffentlicht werden. Alle Seiten der LRZ-GitLab-Pages liegen auf dem Hauptinstanz unter der Wildcard-Domain pages.gitlab.lrz.de und auf dem GitLab CE -Instanz unter der Wildcard-Domain gitlab-ce-pages.lrz.de. Alle Seiten von der LRZ-GitLab-Pages sind automatisch über eine sichere Verbindung (HTTPS) erreichbar. 

Laut Standardeinstellung ist eine neue Pages-Seite nur mit Login und für Projekt-Mitglieder zugreifbar. Auf Wunsch kann die Seite allgemein öffentlich sichtbar gemacht werden (Settings → General → Pages access control → Everyone). Auf GitLab CE bedeutet diese Einstellung dass der Inhalt für nicht eingeloggte Personen (beispielsweise an Studierende die kein Konto auf der Instanz haben) innerhalb des MWN-Netzwerkes sichtbar ist.

Die Benutzung der Pages-Funktionalität benötigt einen CI-Runner (siehe der Abschnitt CI/CD oben).

Die offizielle Dokumentation zu GitLab Pages stellt die Pages-Funktionalität ausführlich vor. Dort finden Sie u.a. eine detaillierte Beschreibung, wie die Adresse Ihrer Pages-Seite erstellt wird. (Bitte ersetzen Sie in den dort aufgeführten Beispielen die Domain example.io in gedanklich durch pages.gitlab.lrz.de bzw. gitlab-ce-pages.lrz.de.) Bitte beachten, dass für die Veröffentlichung der Seite muss der Inhalt in den Ordner public in ihrem Repository plaziert werden.

Die maximale Größe der Pages-Seiten ist aktuell 1 GB, kann aber in begründeten Fällen angehoben werden. Bitte wenden Sie sich dazu an das LRZ Servicedesk.