The URI of TUHH Docker Registry changed from "docker.rz.tu-harburg.de:5000" to "docker.rz.tu-harburg.de". Please update your gitlab-ci.yml files if you use images from this registry.

dokumentation-gitlab-einrichtung.md 4.58 KB
Newer Older
Axel Dürkop's avatar
Axel Dürkop committed
1 2 3 4 5 6 7 8 9 10 11 12 13
# Einrichtung von GitLab für die Kollaboration im Seminar

Die folgenden Schritte beschreiben **für Lehrende**, wie GitLab eingerichtet werden kann, um die Teilnehmenden langsam an ein transparentes Zusammenarbeiten heranzuführen.

<!-- untoc -->
## Inhalt


<!-- toc orderedList:1 depthFrom:2 depthTo:6 -->

1. [Anlegen einer Subgroup](#anlegen-einer-subgroup)
1. [Nutzung von GitLab zum Dateiupload](#nutzung-von-gitlab-zum-dateiupload)
1. [Feedback zu Commits](#feedback-zu-commits)
Axel Dürkop's avatar
Axel Dürkop committed
14 15
1. [Dozierende bemerken Abgaben von Studierenden](#dozierende-bemerken-abgaben-von-studierenden)
1. [Studierende bemerken Kommentare von Dozierenden](#studierende-bemerken-kommentare-von-dozierenden)
Axel Dürkop's avatar
Axel Dürkop committed
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

<!-- tocstop -->

## Anlegen einer Subgroup

1. Ein Master setzt die Rolle aller Teilnehmenden in der Gruppe des Kurses auf *Guest*. Damit ist gegeben, dass die Subgroups (s.u.) nicht gegenseitig einsehbar sind, bis das gewünscht wird.
1. Ein Master[^1] erstellt für alle Teilnehmenden eine Subgroup in der Gruppe des Kurses. Die Subgroup ist privat, damit sie nach außen nicht sichtbar ist. Sie wird nach dem Namen der Teilnehmerin benannt.
1. Anschließend macht der Master die jeweilige Teilnehmerin zum *Owner* in ihrer Subgroup. Damit erhält sie die Möglichkeit, selbst Projekte anzulegen und andere Teilnehmende zur Kollaboration einzuladen. Ferner kann die Teilnehmerin weitere Subgroups anlegen.

## Nutzung von GitLab zum Dateiupload

Um die Umgebung von GitLab kennen zu lernen und die Teilnehmenden zunächst nicht mit der steilen Lernkurve von Git zu überfordern, werden Dateien erst einmal in der Art eines einfachen Dateiuploads bereitgestellt.

1. Dazu richtet jeder Teilnehmer ein neues Projekt mit dem Namen *Studienleistungen* ein.
1. Anschließend erstellt er die *README.md*, da mit der ersten Datei im Repository überhaupt erst der Menüpunkt *Repository* sichtbar wird.
1. Nun wechselt der Teilnehmer auf die Ansicht *Repository* und erstellt einen Ordner mit dem Datum der Aufgabe, z.B. `zu-03-Mo-2017-04-24`. Es wird automatisch eine Datei `.gitkeep` angelegt, da leere Ordner in GitLab nicht zugelassen sind. Die Datei kann gelöscht werden, sobald eine weitere Datei existiert.
![Anlegen eines neuen Ordners im Repository](abb/ordner-anlegen.gif)
1. In den angelegten Ordner können jetzt Dateien hochgeladen werden.  
![Hochladen einer Datei](abb/datei-hochladen.gif)

## Feedback zu Commits

Dateiuploads sowie das Anlegen neuer Ordner und Dateien in der Weboberfläche von GitLab gelten als Commits im Sinne von Git. Das macht es möglich, zu den hochgeladenen Dateien detailliertes Feedback zu geben. Die Teilnehmenden haben die Möglichkeit, auf jeden Kommentar zu antworten und ihn zu diskutieren.

In offeneren Szenarien können Seminarteilnehmende auch gegenseitig Feedback geben und auf diese Weise an transparente Kollaboration herangeführt werden.

![Feedback zu einem Commit kann zeilenweise und für das gesamte Dokument gegeben werden.](abb/feedback-geben.gif)

**Wichtig!** Die Kommentare zu einem Commit sind **nicht** unter *Files* zu sehen. Die entsprechende Datei muss immer über *Repository -> Commit* aufgerufen werden.

[^1]: Rolle in GitLab mit hohen Befugnissen

Axel Dürkop's avatar
Axel Dürkop committed
48
## Dozierende bemerken Abgaben von Studierenden
Axel Dürkop's avatar
Axel Dürkop committed
49 50 51 52 53 54 55 56 57 58

GitLab kann im Zusammenspiel mit Mattermost so konfiguriert werden, dass das Dozententeam (Dozent_in, Tutor_in, techn. Hilfskraft) über hochgeladene Dateien und andere Ereignisse informiert werden.

Dazu sollte zunächst in Mattermost eine private Gruppe angelegt werden, der nur das Dozententeam angehört. So bleiben den Studierenden die dort geteilten Inhalte verborgen.

Anschließend wird in Mattermost über *Integrations -> Eingehende Webhooks* ein neuer Hook für den Kanal *Dozententeam* angelegt. Die generierte URL kann anschließend kopiert werden. Sie wird nun in GitLab gebraucht.

Der folgende Arbeitsschritt ist je nach Teilnehmer_innenzahl recht aufwändig, da er für jedes Projekt in einer Subgroup wiederholt werden muss.

Im Projekt *Studienleistungen* jeder Teilnehmer_in ist unter *Settings -> Integrations* der Punkt *Mattermost Notifications* anzuklicken. Anschließend wird das Kästchen *Aktiv* gesetzt und die kopiert URL aus Mattermost unter *Webhook* eingetragen. Nach dem Speichern der Eingaben kann mit *Test Settings* eine Testnachricht an Mattermost geschickt werden.
Axel Dürkop's avatar
Axel Dürkop committed
59 60 61 62

## Studierende bemerken Kommentare von Dozierenden

Die Studierenden werden über Mattermost persönlich informiert, dass ihre Dateien kommentiert wurden. In komplexeren und offener Szenarien ist dann auch möglich, die Ereignisse über Kommentare in offenen Kanälen zu melden, damit andere ggf. auch Feedback geben können.