Dieses AddOn ermöglicht es, REDAXO mit einem GitHub-Repository zu verbinden, um dann automatisch via GitHub-Webhook den theme
-Ordner im Root zu aktualisieren.
Somit aktualisiert sich REDAXO bzw. das Theme-Addon bei Commits oder gemergten Pull-Requests in das definierte Respository von GitHub automatisch.
REDAXO läuft dann quasi für die Frontend-Entwicklung (Templates, Module, Actions, etc., sowie ggf. Assets wie CSS, JS-Files) auf Basis des GitHub-Repository.
Die Systematik ist inspiriert von Shopify-Themes - hier kann man das Theme für den Shopify-Shop als GitHub-Repository hinterlegen und das Theme wird quasi von "extern" aus GitHub geladen.
Bevor man starten kann, muss man einige Vorbereitungen treffen:
- Developer-AddOn muss installiert sein
- Theme-AddOn muss installiert sein
- Repository bei GitHub anlegen (empfohlen wird ein privates Repository) - hier bitte die empfohlene
.gitignore
-Datei von REDAXO beachten, damit keine sensiblen Daten im GitHub-Repo landen. - Webhook bei GitHub anlegen
- GitHub-Access-Token anlegen
- AddOn konfigurieren
- Funktionalität testen
Je nachdem, wie das Projekt-Setup aussieht und welche Dateien und Ordner in GitHub verwaltet werden, kann es hier individuelle Abweichungen geben. Diese Anleitung geht von folgender Ordnerstruktur für das Repository aus:
.
└── Root/
├── assets
├── redaxo
└── theme
Repository auf private stellen und .gitignore
beachten, damit keine sensiblen Daten wie z.B. Zugangsdaten zur Datenbank im Repo landen oder die eigene REDAXO-Logik oder die des Kunden öffentlich auf GitHub landet.
Innerhalb des Repository muss ein Webhook angelegt werden. Dies kann man hier tun: https://github.com/{DEIN_USERNAME}/{REPO_NAME}/settings/hooks/
Der Webhook soll wie folgt konfiguriert sein:
Payload-URL:
https://{DEINEDOMAIN.de}/?rex-api-call=github_webhook
Content type
application/json
Secret
eigenes Secret anlegen (Github-Hinweise beachten)
SSL verfication
enabled
Which events would you like to trigger this webhook?
Let me select individual events.
Damit wir auf das private Repository zugreifen können und auch unser API-Anfragen-Limit erhöht ist, benötigen wir einen Access-Token für unseren Account bei GitHub.
Hierzu rufen wir mit unserem eingeloggten GitHub-Account die Developer-Settings auf uns legen einen Personal access token (classic)
an.
Diesem Token geben wir in Note
eine bezeichnende Beschreibung, damit wir wissen, um was es sich handelt.
Die Expiration
stellen wir auf no expiration
und bei scope
wählen wir alles unter repo
aus.
Nachdem wir den Token generiert haben, holen wir ihn uns in die Zwischenablage und speichern ihn direkt in den Einstellungen des AddOns unter Access token
.
Nachdem wir im Schritt zuvor bereits den Access token im AddOn hinterlegt haben, tragen wir in den AddOn-Einstellungen nun noch die URL des Repositorys ein, sowie das Webhook Secret
und die Webhook ID
.
Das Secret ist das selbst angelegte Secret des Webhooks.
Die ID des Webhooks kann man sich von GitHub anzeigen lassen, indem man unter https://github.com/{DEIN_USERNAME}/{REPO_NAME}/settings/hooks den Webhook anklickt und die ID oben aus der URL holt oder dort unter Recent Deliveries
eine Test-Webhook auslöst und im Header von GitHub unter X-GitHub-Hook-ID
nachsieht.
Wenn man alles konfiguriert hat, sollte man entweder
- Einen Test-Webhook auslösen
- Etwas in das Repository pushen oder einen PR mergen damit im Log des Addons dann ein Eintrag zu finden ist.
Daniel Springer, Medienfeuer