GitHub-Integration

Integriert verschiedene GitHub-Funktionalitäten ins Forum und synchronisiert diese zwischen Forum und GitHub.

Erstellen von Issues aus Thema heraus

Erstelle Issues direkt aus einem Thema heraus. In Foren, welche mit Repositorys verbunden sind, erscheinen in Themen oben rechts der Button Issue erstellen. Das Formular zum Erstellen wird automatisch vorausgefüllt, kann aber durch den Anwender vorm Absenden beliebig verändert werden.

Nach dem Erstellen eines Issues, erhält der Themenersteller eine Benachrichtigung. Außerdem ist im Thema und in der Themenübersicht ersichtlich, dass dieses Thema mit einem GitHub-Issue verknüpft ist.

hanashi.dev/attachment/1107/hanashi.dev/attachment/1108/

Label-Sync

Sowohl in GitHub, als auch im WSC, gibt es die Möglichkeit Labels zu erstellen und diese zu verwenden. Der Label-Sync hilft beim Hinzufügen eines Repositorys automatisch die vorhandenen GitHub-Labels im WSC zu erstellen und anders herum automatisch die WSC-Labels in GitHub zu erstellen.

Sind bei einem Thema bereits Labels ausgewählt. Werden diese beim Issue erstellen automatisch vorausgewählt.

Allerdings werden aktuell keine Veränderungen von Labels innerhalb eines Issues oder Themas zwischen GitHub und Thema Issue synchronisiert. Dies ist aber für eine spätere Version geplant.

Meilensteine-Sync

Ähnlich wie beim Label-Sync ermöglicht der Meilensteine-Sync, dass Meilensteine automatisch in Labelgruppen als Label erstellt werden bzw. Labels als Meilensteine in GitHub erstellt werden.

Wird ein Meilenstein bei einem Issue in GitHub verwendet, wird automatisch das Label im verknüpften Thema gesetzt.

Verknüpfung zwischen Forum und Repository

Es besteht die Möglichkeit ein Forum mit einem oder sogar mehreren Repositorys zu verknüpfen. Wenn mehrere Repositorys verknüpft sind, wird beim Issue erstellen eine Auswahl der Repositorys angezeigt.

Übersicht von Commits

Dieses Plugin bietet von Haus aus die Möglichkeit eine Überssichtsseite von Commits. Wenn du in deinem Repository Dateien änderst, werden die Commits automatisch via Webhook in deiner Datenbank gespeichert und auf der Übersichtsseite angezeigt. Zusätzlich kann auf dieser Überssichtsseite nach bestimmten Repositorys gefiltert werden.

hanashi.dev/attachment/1109/

Übersicht von Meilensteinen

Zusätzlich zu der Übersicht von Commits, gibt es eine Übersicht von Meilensteinen. Diese enthält alle Issues, welche mit einem Meilenstein verbunden sind. Bereits geschlossene Issues werden als durchgestrichen angezeigt. Für jeden Meilenstein gibt es eine eigene Progressbar mit Prozentanzeige.

hanashi.dev/attachment/1110/

Benutzergruppenrechte

RechtOrtBeschreibung
Kann Commits sehenAllgemeine Rechte > GitHubRegelt ob diese Gruppe die Commit-Übersicht sehen darf
Kann Meilensteine sehenAllgemeine Rechte > GitHubRegelt ob diese Gruppe die Meilensteine-Übersicht sehen darf
Kann GitHub Issue erstellenModerative Rechte > Forum > ThemenRegelt ob diese Gruppe aus einem Thema heraus Issues erstellen darf
Kann GitHub Repositorys verwaltenAdministrative Rechte > InhaltRegelt ob diese Gruppe die GitHub-Repositorys im ACP verwalten darf

Benachrichtigungseinstellungen

In den Benachrichtigungseinstellungen werden 3 neue Einstellungen hinzugefügt:

EinstellungBeschreibung
Issue wird eröffnetder Themenersteller erhält eine Benachrichtigung wenn ein Issue durch sein Thema erstellt wurde
Issue wird wiedereröffnetder Themenersteller erhält eine Benachrichtigung wenn ein verknüpftes Issue wiedereröffnet wird
Issue wird geschlossender Themenersteller erhält eine Benachrichtigung wenn ein verknüpftes Issue geschlossen wird

Voraussetzungen

  • WoltLab Suite Core 5.3 oder höher
  • WoltLab Suite Forum 5.3 oder höher
  • GitHub-Konto

Konfiguration

GitHub-Token

  1. Gehe in GitHub zu deinen Personal access token
  2. Klicke auf den Button Generate new token
  3. Gib bei Note eine Beschreibung für deinen Token an.
  4. Aktiviere die Checkbox für repo.
  5. Klicke auf Generate token.
  6. Kopiere dir den generierten Token in die Zwischenablage.
  7. Melde dich im ACP an.
  8. Gehe zu ACP > Konfiguration > Allgemein > GitHub und gib den kopierten Token in dem Feld GitHub Token an.
  9. Klicke auf Absenden.

hanashi.dev/attachment/1106/

Verbindung zwischen Benutzer und GitHub-Konto

  1. Melde dich im ACP an.
  2. Gehe zu ACP > Benutzer > Benutzer.
  3. Wähle den Benutzer aus.
  4. Gib ganz unten bei Github-Benutzername den Namen des GitHub-Kontos an.
  5. Klicke auf Absenden.

Repositorys anlegen

  1. Geh auf GitHub in dein Repository.
  2. Kopiere dir die URL des Repositorys in deine Zwischenablage.
  3. Melde dich im ACP an.
  4. Gehe zu ACP > Inhalt > GitHub Repositorys > GitHub Repository hinzufügen.
  5. Gib die kopierte Repository-URL an.
  6. Klicke auf Absenden.

hanashi.dev/attachment/1104/hanashi.dev/attachment/1105/

Repositorys Foren zuordnen

  1. Melde dich im ACP an.
  2. Gehe zu ACP > Apps > Foren.
  3. Wähle ein Forum aus und bearbeite dieses.
  4. Selektiere ein oder mehrere Repositorys unter GitHub-Repositorys.
  5. Klicke auf Absenden.

hanashi.dev/attachment/1103/

Firewall-Konfiguration

Sollte vor deinem Webserver eine Firewall laufen, ist es notwendig den IP-Range 140.82.112.0/20 zu erlauben. Der Webhook von GitHub verwendet diesen IP-Range.

  • GitHub-Integration 1.1.0

    Anpassungen für WSC 6.0. Es wird ein Upgrade der Lizenz benötigt.

    Technische Änderungen

    • Deprecations entfernt
    • TypeScript überarbeitet
    • Datentypen gesetzt
    • Klassen final gesetzt
    • Icons für Fontawesome 5 angepasst
    • jQuery-Code ersetzt
    • kleinere Verbesserungen
  • GitHub-Integration 1.0.2

    Verbesserungen

    • PSR-12 Codestyle Anpassungen
    • Umstellung auf TypeScript
    • Database PHP API überarbeitet
    • Templateformatierungen vereinheitlicht
    • XML-Dateien vereinheitlicht
  • GitHub-Integration 1.0.1

    • FIX: Spalte title war zur kurz für Issue-Titel
    • FIX: Commits auf der Commit-Seite wurden falsch gezählt
    • FIX: Meilensteine auf der Meilensteine-Seite wurden falsch gezählt
    • FIX: Meilensteine wurden nicht automatisch als Label gesetzt nach Erstellung des Issues
    • FIX: Labels wurden nicht korrekt vorausgewählt
    • FIX: Benutzer bearbeiten war nicht mehr möglich
    • CHANGE: Github zu GitHub umbenannt
  • GitHub-Integration 1.0.0

    .