Skip to content

Releases: FriendsOfREDAXO/github_installer

1.6.1

Choose a tag to compare

@skerbis skerbis released this 27 Aug 21:05

Fixed

  • Fixed RuntimeException: Column "id" already exists. when updating from an earlier version. install.php used addColumn()/addIndex(), which throw when the column/index already exists — since update.php re-runs install.php on every update, this broke updating on every existing installation. Switched to the idempotent ensureColumn()/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

Choose a tag to compare

@skerbis skerbis released this 27 Aug 20:17

Security

  • Fixed a SQL injection via the unvalidated type request 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 key now 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_addon setting, default project) 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, NewInstallManager and UpdateManager into a shared TableHelper
  • 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

Choose a tag to compare

@skerbis skerbis released this 16 Nov 19:02

🚀 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 GitHubItemCache Klasse für Cache-Verwaltung
  • Datenbank-Tabelle rex_github_installer_items für Metadaten
  • Erweiterte GitHubApi mit getLastCommitDate() Methode
  • Aktualisierter RepositoryManager mit 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.php fü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

Choose a tag to compare

@skerbis skerbis released this 14 Oct 14:39
5f34be0

What's Changed

  • Add PHP Class Management System by @skerbis in #4

Full Changelog: 1.3.1...1.4.0

1.3.1

Choose a tag to compare

@skerbis skerbis released this 14 Oct 11:51
bdc6981

What's Changed

  • Dokumentation der erforderlichen GitHub Token Berechtigungen (Fine-grained Tokens) by @Copilot in #3

New Contributors

  • @Copilot made their first contribution in #3

Full Changelog: 1.3.0...1.3.1

1.3.0

Choose a tag to compare

@skerbis skerbis released this 06 Oct 11:45
2aaed1d

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