Releases: FriendsOfREDAXO/github_installer
Releases · FriendsOfREDAXO/github_installer
Release list
1.6.1
Fixed
- Fixed
RuntimeException: Column "id" already exists.when updating from an earlier version.install.phpusedaddColumn()/addIndex(), which throw when the column/index already exists — sinceupdate.phpre-runsinstall.phpon every update, this broke updating on every existing installation. Switched to the idempotentensureColumn()/ensureIndex().
This is a hotfix for 1.6.0, which had this bug. If your update to 1.6.0 failed with this error, updating to 1.6.1 resolves it.
1.6.0
Security
- Fixed a SQL injection via the unvalidated
typerequest parameter on the upload page - Added CSRF protection (
rex_csrf_token) to all state-changing actions: settings, repositories, modules, templates, classes, cache, upload - Fixed reflected XSS caused by unescaped exception messages in several backend pages
- Added strict validation of class names before they are used in filesystem paths (defense against path traversal from repository content)
- GitHub token is no longer rendered into the settings page HTML; added an explicit "remove token" option, leaving the field empty now keeps the existing token unchanged
Changed
- Modules/templates without their own
keynow show a clear "placeholder" badge instead of looking like a real, portable key - The addon used to install classes into is now configurable (
class_install_addonsetting, defaultproject) instead of being hardcoded - Reduced GitHub API calls for the module/template list by replacing exists-then-fetch with fetch-and-catch and removing a redundant duplicate README check (noticeably faster on a cold cache)
- GitHub API errors now distinguish rate limiting, invalid/expired tokens, and network failures instead of one generic message
- Cache files are now written atomically to avoid readers seeing a partially written file
Fixed
- Removed dead/unused code (
InstallManager.php,UploadManager.php,upload_new.php) that duplicated the live install/update logic - Fixed an undefined-variable warning and broken form title when uploading a class
- Deduplicated the module/template/class existence-lookup logic that was copy-pasted across
RepositoryManager,NewInstallManagerandUpdateManagerinto a sharedTableHelper - Fixed a silent failure path where a failed backup-restore during a class update could lose both the update and the backup
- Translated remaining hardcoded German UI strings so the English locale displays correctly
1.5.0 - GitHub Sync-Status mit intelligentem Caching
🚀 Neue Features
GitHub Sync-Status
Dieses Release führt eine intelligente Update-Erkennung ein, die auf einen Blick zeigt, welche Module und Templates aktualisiert werden müssen!
- 📊 Sync-Status Spalte: Neue Spalte zeigt GitHub- vs REDAXO-Datum
- 🔄 Intelligente Buttons:
- Orange 'Aktualisieren' Button wenn GitHub neuer ist
- Grauer 'Neu laden' Button wenn aktuell
- 📅 Datums-Anzeige: Zeigt letztes GitHub-Commit-Datum und REDAXO-Update-Datum
- ✨ Visuelle Badges: Farbcodierte Status-Indikatoren (Update verfügbar vs Aktuell)
Performance & Effizienz
Um GitHub API Rate-Limits zu vermeiden, wurde intelligentes Caching implementiert:
- 💾 Datenbank-Cache: Neue Tabelle speichert GitHub-Metadaten
- ⏱️ 1-Stunden-Cache: GitHub-Daten werden 1 Stunde pro Item gecacht
- 🚀 Auto-Update: Cache wird automatisch bei Install/Update aktualisiert
- 📉 Rate-Limit-freundlich: Minimale API-Anfragen
Technische Details
- Neue
GitHubItemCacheKlasse für Cache-Verwaltung - Datenbank-Tabelle
rex_github_installer_itemsfür Metadaten - Erweiterte
GitHubApimitgetLastCommitDate()Methode - Aktualisierter
RepositoryManagermit Cache-fähigen Status-Methoden - Cache-Integration in Install/Update-Manager
- Neue Übersetzungen für Sync-Status UI
- update.php für automatische Datenbank-Migration
📦 Installation
Wichtig: Diese Version fügt eine neue Datenbank-Tabelle hinzu.
Für Neu-Installationen:
- Einfach installieren
Für Updates von 1.4.0:
- AddOn aktualisieren - die
update.phpführt automatisch die Migration durch - Alternativ: Deinstallieren → Neu installieren
Bestehende Repositories und Einstellungen bleiben erhalten.
🎯 Unterstützte Features
- ✅ Module Sync-Status
- ✅ Templates Sync-Status
- ⏳ Actions Sync-Status (kommt bald)
🔗 Vollständiges Changelog
Siehe Pull Request #7 für detaillierte Änderungen.
📝 Version
1.4.0 → 1.5.0
1.4.0
1.3.1
1.3.0
Bidirektionale GitHub-Integration für REDAXO - Installiere Module, Templates und Classes aus GitHub-Repositories und lade deine eigenen Inhalte zu GitHub hoch.
🚀 Features
📥 Installation von GitHub
- Browse und installiere Module/Templates/Classes aus GitHub-Repositories
- Asset-Unterstützung: CSS/JS-Dateien werden automatisch kopiert nach
/assets/modules/{key}/bzw./assets/templates/{key}/ - Class-Support: PHP-Classes werden nach
project/lib/installiert mit Verzeichnis-Struktur - File-basiertes Caching für bessere Performance
- Unterstützung für private Repositories mit GitHub-Tokens
- Multi-Language Support (Deutsch/Englisch)
- Sauberes Repository-Management
📤 Upload zu GitHub
- Bidirektionale Synchronisation: Lade deine lokalen REDAXO Module/Templates/Classes zu GitHub hoch
- Settings-Integration: Einmalige Repository-Konfiguration (Owner, Repository, Branch, Author)
- Intelligente Ordnernamenerkennung: Verwendet Modul-Keys (z.B. "gblock") statt IDs
- Vollständiger Upload: input.php, output.php, config.yml, README.md werden automatisch generiert
- Class-Upload: PHP-Classes aus
project/lib/mit Verzeichnis-Struktur - Überschreiben: Vorhandene Module/Templates/Classes werden aktualisiert