Skip to content
Snippets Groups Projects
layout: page
title: Hilfe
permalink: /hilfe/
ref: help
lang: de

Hier finden Sie erste Hilfe zur Benutzung von JLU GitLab, aber diese kann die offizielle Nutzerhilfe (auf Englisch){:target="_blank"} nicht ersetzen. Für spezifische Informationen zu JLU GitLab, siehe Informationen.

Inhalt {#toc}

Notwendige Begriffe {#essential_terms}

Git und GitLab sind vielschichtige Werkzeuge mit vielen technischen Konzepten und Begriffen. Da deren Entwicklung und Namensschöpfung auf Englisch stattfindet, sind diese bisher nur teilweise in andere Sprachen übersetzt worden. Um die weiteren Hilfestellungen (z.B. bezüglich Lese- und Schreibzugriff) kurz und verständlich zu halten, werden hier die wichtigsten Begriffe allgemeinverständlich erklärt. Dies ist nur eine gutgemeinte Übersicht; unter weitere Hilfe ist eine Sammlung von Links um sich mit diesen Konzepten vertraut zu machen.

Git Begriffe {#necessary_terms_git}

  • Git{:target="_blank"} ist der Name einer Software für Versionskontrolle von Dateien.
  • Ein Repository bezeichnet eine Sammlung von Dateien, deren Bearbeitungsverlauf in Schnappschüssen versioniert wird. Mit Git kann man beliebig viele unterschiedliche Repositories verwalten.
  • Ein Commit ist ein Schnappschuss der Daten im Repository. Beim Erstellen eines Commits werden die eingestellte Email-Adresse, der Name, das Datum, die Uhrzeit und ein beliebiges Kommentar untrennbar mit den Daten der neuen Version verbunden. Dies ist eine grundlegende Sicherheitsvorkehrung von Git, um nachträgliche Änderungen dieses Schnappschusses zu verhindern. Lesen Sie hier, wie sie diese privaten Einstellungen ändern können.
  • Ein Branch ist ein benannter Teilverlauf von Schnappschüssen um die Übersichtlichkeit eines Repository zu wahren.
  • Mit den Git-Kommandos pull und push werden Branches von Git-Repositories an unterschiedlichen Orten synchronisiert (wie etwa dem eigenen Computer und JLU GitLab). Sobald zwei Repositories synchronisiert wurden, beinhalten beide alle Daten, d.h. den gesamten Verlauf von Schnappschüssen.

GitLab Begriffe {#necessary_terms_gitlab}

  • Ein Projekt auf (JLU) GitLab enthält ein Git-Repository, und bietet viele zusätzliche Funktionen für dessen Verwaltung. Zusätzlich bietet GitLab mehrere Systeme um Quellcode eines Projekts automatisch auszuführen, z.B. um Tests laufen zu lassen oder eine Webseite zu erstellen.
  • Jedes Projekt ist einem Namensraum zugeordnet. Alle Nutzenden und -gruppen haben jeweils einen eigenen Namensraum. Der Lese- und Schreibzugriff eines Projekts hängt ab von dessen Sichtbarkeit und der eigenen Rolle als Projektmitglied, bzw. der Sichtbarkeit und der Rolle in der Nutzergruppe in dessen Namensraum es liegt.
  • Mit einem Merge-Request kann man anfragen, einen oder mehrere Commits von einem Git-Repository in ein anderes zu übernehmen.

Wie benutzt man GitLab? {#how_to_gitlab}

TODO: Viele Kleinigkeiten mit Browser möglich, für umfangreichere Arbeit aber Git lokal installieren.

TODO: Hinweis auf Git-GUIs (vielleicht mit Empfehlung)?

TODO: Hinweis auf Git-Funktionen in Matlab und anderen IDEs?

Erste Schritte {#first_steps}

TODO: Grobe Übersicht, links auf gute Ressourcen zum Weiterlernen (siehe unten).

Sichtbarkeit von Projekten {#visibility_projects}

Jedes Projekt hat eine Sichtbarkeits-Einstellung als entweder private, internal oder public. Die Sichtbarkeit kann nur vom Owner des Projekts geändert werden (siehe Nutzerrollen unten).

  • Projekte mit Sichtbarkeit private sind nur für die Mitglieder des Projekts einsehbar.
  • Projekte mit Sichtbarkeit internal sind für alle Personen mit einem Nutzungskonto einsehbar, die eingeloggt sind. Bitte lesen Sie hier, was dies im Fall von JLU GitLab bedeutet.
  • Projekte mit Sichtbarkeit public sind auch für alle Personen einsehbar, die kein Nutzungskonto haben. Bitte lesen Sie hier, was dies im Fall von JLU GitLab bedeutet.

Für mehr Details lesen Sie bitte die offizielle Dokumentation (auf Englisch){:target="_blank"}.

Nutzerrollen in Projekten {#user_roles}

TODO: Fehlende Bedeutungen von Reporter bis Owner.

Wenn Sie andere Nutzende als Projektmitglied hinzufügen wollen, müssen Sie diesen auch eine bestimmte Rolle zuweisen: Sie können zwischen Guest, Reporter, Developer, Maintainer oder Owner auswählen. Jede dieser Rollen umfasst mehr Berechtigungen als die vorherige, siehe auch in der offiziellen Dokumentation (auf Englisch){:target="_blank"}.

Berechtigungen als Guest {#role_guest}

Die Guest-Rolle ist für nicht-aktive Mitglieder die einige Inhalte lesen, und Tickets öffnen und kommentieren können.

Projektmitglieder in der Guest-Rolle können das Projekt herunterladen, Kommentare einbringen, Projektdateien ansehen und Git-pullen, Wikiseiten ansehen, neue Tickets erstellen, verwandte Tickets ansehen, vertrauliche Tickets erstellen, und selbsterstellte vertrauliche Tickets ansehen.

Wenn Öffentliche Pipelines in den Projekteinstellungen > CI/CD aktiviert ist, können sie zusätzlich eine Liste der Jobs anschauen, ein Job-Protokoll ansehen, und Job-Artefakte durchsehen und herunterladen.

Berechtigungen als Reporter {#role_reporter}

Die Reporter-Rolle ist für Mitglieder die mehr Einblick bekommen und im Ticketsystem arbeiten können. Projektmitglieder mit der Reporter-Rolle habe folgende zusätzliche Berechtigungen im Vergleich zur Guest-Rolle:

Im Ticketsystem können sie Tickets zuweisen und mit Labels versehen, Kommentare sperren, und die Ticketliste und Labels verwalten. Reporter können außerdem Codeausschnitte speichern, den Status eines Commits einsehen, eine Container Registry ansehen, Umgebungen ansehen, eine Liste von Merge-Requests ansehen, Projekt-Statistiken ansehen, und die Error-Tracking-Liste ansehen.

Berechtigungen als Developer {#role_developer}

Die Developer-Rolle ist für Projektmitglieder die direkt beitragen, und allen nötigen Zugriff haben um eine Idee umzusetzen, solange etwas nicht explizit beschränkt wurde (z.B. durch Branch-Protection). Projektmitglieder mit der Developer-Rolle haben die folgenden zusätzlichen Berechtigungen im Vergleich zur Reporter-Rolle:

Im Git-Repository können sie neue Branches anlegen, und auf nicht-schreibgeschützte Branches pushen, oder diese löschen. Sie können neue Merge-Requests anlegen, bestehende verwalten/akzeptieren, sie anderen zuweisen und mit Labels versehen, und deren Kommentarverlauf sperren. Sie können neue Umgebungen anlegen und diese stoppen. Zusätzlich können Developer Jobs abbrechen und neustarten, und den Commit-Status anlegen oder aktualisieren. Sie können die Container-Registry aktualisieren, oder ein Image in der Container-Registry löschen. Im Ticketsystem können sie Meilensteine anlegen, bearbeiten, und löschen, und Label hinzufügen. Sie können Änderungsvorschläge annehmen, Wikiseiten anlegen und bearbeiten, und Git-Tags überschreiben/löschen.

Berechtigungen als Maintainer {#role_maintainer}

Die Rolle Maintainer ist für Personen die ein Projekt und dessen Mitglieder verwalten. Projektmitglieder in der Maintainer-Rolle bekommen die folgenden zusätzlichen Berechtigungen im Vergliech zur Developer-Rolle:

Sie können neue Projektmitglieder hinzufügen, Umgebungs-Terminals verwenden, Branch-Schreibschutz ein/ausschalten, auf schreibgeschützte Branches pushen, den Schreibschutz für push durch Developer an/ausschalten, Schreibschutz von Tags an/ausschalten. Maintainer können die Projekteinstellungen bearbeiten, Deploy-Schlüssel zu dem Projekt hinzufügen, und Projekt-Hooks konfigurieren. Sie können Runners verwalten, Job-Trigger verwalten, und Umgebungs-Variablen verwalten. Falls GitLab Pages aktiviert ist, können sie diese verwalten und löschen, und deren Domains und Zertifikate verwalten. Sie können Cluster verwalten, Kommentare von beliebigen Nutzenden bearbeiten, das Error Tracking verwalten, und Wikiseiten löschen.

Berechtigungen als Owner {#role_owner}

Nutzende in der Owner-Rolle kontrollieren alle Aspekte eines Projekts, inklusive dessen Löschung. In Projekten im Namensraum einer/eines Nutzenden kann ausschließlich diese Person die Owner-Rolle innehaben. In Projekten im Namensraum einer Gruppe können mehrere Nutzende in der Owner-Rolle sein. Projektmitglieder in der Owner-Rolle haben die folgenden zusätzlichen Berechtigungen im Vergleich zur Maintainer-Rolle:

Sie können die Sichtbarkeitsstufe des Projekts ändern, das Projekt in einen anderen Namensraum transferieren, das Projekt löschen, Tickets löschen, und Benachrichtigungs-Emails ausschalten.

Nutzergruppen {#groups}

TODO: Gruppenmitglieder und deren Rollen und einhergehende Rechte.

TODO: Hinweis, dass Projekte in Gruppen nicht beim Austritt gelöscht werden, sofern noch andere Nutzende in der Gruppe sind.

Ähnlich zur Sichtbarkeit von Projekten kann die Sichtbarkeit von Gruppen auf private, internal oder public gesetzt werden, um den Zugriff entweder nur explizit ausgewählten Mitgliedern zu gewähren oder allen eingeloggten Nutzenden oder sogar allen Personen ohne Nutzungskonto.

Einstellung von privater Informationen {#private_info}

TODO: Einstellung der Commit-Emailadresse (in GitLab und lokal), Profil und Aktivitäten unsichtbar machen, ...

Letzte Schritte {#last_steps}

TODO: Erklärung, was wann bei Austritt aus der JLU gelöscht wird (Nutzerdaten, eigene Projekte, ...), und was nicht (Projekte in Gruppen inkl Tickets und Kommentare, Commits, ...).

TODO: Außer den Commits werden Daten anonymisiert (auf den Ghost-User übertragen).

Weitere Hilfe {#more_help}

TODO: Mehr nützliche Links, evtl. in Kategorien.