Skip to content
Snippets Groups Projects
de_help.md 15.4 KiB
Newer Older
Hier finden Sie erste Hilfe zur Benutzung von JLU GitLab, aber diese kann [die offizielle Nutzerhilfe (auf Englisch)](https://gitlab.test.uni-giessen.de/help/user/index.md){:target="_blank"} nicht ersetzen.
Für spezifische Informationen zu JLU GitLab, siehe [Informationen]({{ '/informationen/#what_is_jlugitlab' | relative_url }}).
<!-- NOTE dies ist (derzeit) nur eine manuell verwaltete Liste. -->
Johannes Keyser's avatar
Johannes Keyser committed
- [Notwendige Begriffe](#essential_terms)
    - [Git Begriffe](#terms_git)
    - [GitLab Begriffe](#terms_gitlab)
- [Wie benutzt man GitLab?](#how_to_gitlab)
- [Erste Schritte](#first_steps)
- [Sichtbarkeit von Projekten](#project_visibility)
- [Nutzerrollen in Projekten](#project_roles)
    - [Berechtigungen als *Guest*](#project_guest)
    - [Berechtigungen als *Reporter*](#project_reporter)
    - [Berechtigungen als *Developer*](#project_developer)
    - [Berechtigungen als *Maintainer*](#project_maintainer)
    - [Berechtigungen als *Owner*](#project_owner)
- [Nutzergruppen](#group)
    - [Sichtbarkeit von Gruppen](#group_visibility)
    - [Nutzerrollen in Gruppen](#group_roles)
- [Einstellung die private Informationen betreffen](#settings_privacy)
- [Letzte Schritte](#last_steps)
- [Weitere Hilfe](#more_help)

Johannes Keyser's avatar
Johannes Keyser committed
## 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](#more_help) ist eine Sammlung von Links um sich mit diesen Konzepten vertraut zu machen.

### Git-Begriffe {#terms_git}
Johannes Keyser's avatar
Johannes Keyser committed
- [*Git*](https://de.wikipedia.org/wiki/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](#settings_privacy), 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).
Johannes Keyser's avatar
Johannes Keyser committed
  Sobald zwei Repositories synchronisiert wurden, beinhalten beide alle Daten, d.h. den gesamten Verlauf von Schnappschüssen.
### GitLab-Begriffe {#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](#project_visibility) und der eigenen [Rolle als Projektmitglied](#project_roles), bzw. der Sichtbarkeit und der Rolle in der [Nutzergruppe](#group) der es zugeordnet ist.
- 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](#more_help)).
TODO: Wo man die Sprache einstellt.

TODO: Link zur Führung in GitLab (oder gibt es die nur in EE?).
## Sichtbarkeit von Projekten {#project_visibility}

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](#project_roles)).
- Projekte mit Sichtbarkeit *private* sind nur für die [Mitglieder des Projekts](#project_roles) einsehbar.
Johannes Keyser's avatar
Johannes Keyser committed
- Projekte mit Sichtbarkeit *internal* sind für alle Personen mit einem Nutzungskonto einsehbar, die eingeloggt sind.
- Projekte mit Sichtbarkeit *public* sind auch für alle Personen einsehbar, die kein Nutzungskonto haben.
[Bitte lesen Sie hier]({{ '/informationen/#potential_users' | relative_url }}), was die Sichtbarkeitsstufen *internal* und *public* im Fall von JLU GitLab bedeuten.
Für mehr Details lesen Sie bitte die [offizielle Dokumentation (auf Englisch)](https://gitlab.test.uni-giessen.de/help/public_access/public_access.md#public-access){:target="_blank"}.
## Nutzerrollen in Projekten {#project_roles}
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)](https://gitlab.test.uni-giessen.de/help/user/permissions.md#project-members-permissions){:target="_blank"}.
<!-- NOTE: Lass uns unten die Berechtigungen der GitLab.com-Verträgen STARTER, PREMIUM, ULTIMATE weglassen, die nicht Teil der Community Edition sind. -->
### Berechtigungen als *Guest* {#project_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-*pull*en,
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* {#project_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 *Reporter* 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,
die Container Registry ansehen,
Umgebungen ansehen,
eine Liste von Merge-Requests ansehen,
Projekt-Statistiken ansehen,
und die Error-Tracking-Liste ansehen.
<!-- NOTE: Error Tracking (keine dt. Übersetzung) ist unter Vorgängen zu finden, man muss mit mit einem Sentry-Server verbinden. -->
### Berechtigungen als *Developer* {#project_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 *Developer* neue Branches anlegen,
und auf nicht-schreibgeschützte Branches *push*en, 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* {#project_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:

*Maintainer* können neue Projektmitglieder hinzufügen,
Umgebungs-Terminals verwenden,
Branch-Schreibschutz ein/ausschalten,
auf schreibgeschützte Branches *push*en,
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,
Johannes Keyser's avatar
Johannes Keyser committed
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,
Johannes Keyser's avatar
Johannes Keyser committed
und Wikiseiten löschen.
<!-- "Audit-Ereignisse ansehen": Ist nicht in der CE... -->
### Berechtigungen als *Owner* {#project_owner}
Johannes Keyser's avatar
Johannes Keyser committed
Nutzende in der *Owner*-Rolle kontrollieren alle Aspekte eines Projekts, inklusive dessen Löschung.
In persönlichen Projekten (im Namensraum eines/einer Nutzenden) hat ausschließlich diese Person die *Owner*-Rolle.
In Gruppen-Projekten (im Namensraum einer Gruppe) kann es mehrere *Owner* geben, sofern mehrere Gruppenmitglieder die [Gruppenrolle](#group_roles) *Owner* innehaben.
Johannes Keyser's avatar
Johannes Keyser committed
Projektmitglieder in der *Owner*-Rolle haben die folgenden zusätzlichen Berechtigungen im Vergleich zur *Maintainer*-Rolle:

*Owner* können die [Sichtbarkeitsstufe](#visibility_projects) des Projekts ändern,
Johannes Keyser's avatar
Johannes Keyser committed
das Projekt in einen anderen Namensraum transferieren,
das Projekt löschen,
Tickets löschen,
und Benachrichtigungs-Emails ausschalten.

## Nutzergruppen {#group}
Alle Nutzenden könnten *Gruppen* anlegen um mehrere Projekte und Personen zu organisieren.
Johannes Keyser's avatar
Johannes Keyser committed
Beachten Sie, dass [Daten die Sie zu Gruppenprojekten beitragen nicht gelöscht werden]({{ '/informationen/#deletion_userdata' | relative_url }}) wenn Sie [die Universität verlassen]({{ '/informationen/#leaving_JLU' | relative_url }}) oder [ihr Nutzungskonto löschen](#deletion_account), solange die Gruppe aktive Mitglieder enthält.
Die Zugriffsrechte eines Projekts im Namensraum einer Gruppe hängt von der [Sichtbarkeit](#group_visibility) und den [Rollen](#group_roles) der Gruppe ab.
Außerdem können individuelle Nutzende auch von außerhalb der Gruppe als Projektmitglied zu individuellen Gruppenprojekten hinzugefügt werden.
### Sichtbarkeit von Gruppen {#group_visibility}
[Wie die Sichtbarkeit von Projekten](#visibility_projects) kann die Sichtbarkeit von Gruppen auf 1) *private*, 2) *internal* oder 3) *public* gesetzt werden, um den Zugriff entweder 1) nur explizit ausgewählten Mitgliedern zu gewähren, oder 2) allen eingeloggten Nutzenden, oder 3) allen Personen, inklusive solchen ohne Nutzungskonto.
[Bitte lesen Sie hier]({{ '/informationen/#potential_users' | relative_url }}), was die Sichtbarkeitsstufen *internal* und *public* im Fall von JLU GitLab bedeuten.

### Nutzerrollen in Gruppen {#group_roles}

Wenn Sie Nutzende als Gruppenmitglieder hinzugefügen, müssen Sie ihnen auch eine Gruppenrolle zuordnen:
Wie die [Nutzerrollen in Projekten](#project_roles) können Sie wählen zwischen *Guest*, *Reporter*, *Developer*, *Maintainer* oder *Owner*.
Die Gruppenrolle eines Mitglieds setzt die Berechtigungen der gleichnamigen [Projekt-Rolle](#project_roles) für alle Gruppenprojekte.
Zusätzlich kann die Projekt-Rolle eines Mitglieds individuell pro Projekt angepasst werden.

Jede Gruppenrolle kommt mit zusätzlichen Berechtigungen innerhalb der Gruppe selbst, siehe auch in der [offiziellen Dokumentation (auf Englisch)](https://gitlab.test.uni-giessen.de/help/user/permissions.md#group-members-permissions){:target="_blank"}:
<!-- NOTE: Let's below exclude the permissions from subscription plans STARTER, PREMIUM, ULTIMATE that are not part of the Community Edition. -->

*Guests* können eine Gruppe nur einsehen, nichts verändern.

*Reporter* können zusätzlich die Gruppen-Label verwalten.

*Developer* können zusätzlich Projekte in der Gruppe anlegen,
und können Meilensteine der Gruppe anlegen/ändern/löschen.

*Maintainer* können zusätzlich Untergruppen anlegen.

*Owners* können zusätzlich die Gruppeneinstellungen ändern,
Gruppenmitglieder verwalten,
die Gruppe löschen,
die Audit Events der Gruppe einsehen,
und Benachrichtigungs-Emails ausschalten.
## Einstellungen die private Informationen betreffen {#settings_privacy}
TODO: Beschreibung der Einstellungen von Commit-Namen und -Emailadresse (in GitLab und lokal), Profil und Aktivitäten unsichtbar machen, ...
Johannes Keyser's avatar
Johannes Keyser committed
Bevor Sie [die Universität verlassen]({{ '/information/#leaving_JLU' | relative_url }}) oder [Ihr Nutzungskonto löschen](#deletion_account), können Sie einige Optionen bedenken um ihre Daten zu behalten, oder sie anderen Nutzenden zu übertragen, denn [alle persönlichen Projekte werden mitsamt ihrem Konto gelöscht]({{ '/information/#deletion_userdata' | relative_url }}).

Zuerst werden Sie alle wichtigen Repositories von JLU GitLab auf Ihren Computer synchronisieren wollen, um Datenverluste zu verhindern.

Um das Löschen eines persönlichen Projekts im eigenen Namensraum zu verhindern, können Sie es in den Namensraum einer anderen Person oder Gruppe transferieren.
Sie können Projekte außerdem exportieren; dies erlaubt Ihnen, (nahezu) alle zugehörigen Daten auf eine andere GitLab-Instanz zu übersiedeln.
Im Unterschied zum bloßen Synchronisieren der Git-Repositories schließt dies auch die Ticketsystem, Wiki, usw. mit ein.
## Wie kann ich mein Nutzungskonto löschen? {#deletion_account}

Sie können Ihr Nutzungskonto jederzeit löschen, indem Sie [*Einstellungen > Konto > Konto löschen*](https://gitlab.test.uni-giessen.de/profile/account) in ihrem Browser öffnen und mit ihrem Passwort bestätigen.

Bitte lesen Sie die [Übersicht welche Daten gelöscht werden]({{ '/informationen/#deletion_userdata' | relative_url }}) bevor Sie Ihr Konto löschen;
Sie könnten ein paar [letzte Schritte](#last_steps) bedenken, um möglichen Ärgernissen auszuweichen.
Beachten Sie, dass Sie ihr Konto nicht sofort löschen können, falls Sie die einzige Person mit *Owner*-Rolle in einer Gruppe sind.
In diesem Fall müssen Sie mindestens ein anderes Mitglied als *Owner* einstellen, oder die betreffende Gruppe löschen (z.B. falls Sie das einzige Mitglied sind).
TODO: Mehr nützliche Links, evtl. in Kategorien; GitLab selbst hat noch eine Menge.
- [Die offizielle Nutzerhilfe für JLU GitLab (auf Englisch)](https://gitlab.test.uni-giessen.de/help/user/index.md){:target="_blank"}.
- [Kostenloses Online-Buch *Pro Git*](https://git-scm.com/book/de){:target="_blank"}, teilweise auf Deutsch übersetzt