• v2.10.0 3ae1eabcad

    v2.10.0
    All checks were successful
    Auto Release on version bump / release (push) Successful in 6s
    Stable

    Ghost released this 2026-06-15 22:34:46 +02:00 | 0 commits to main since this release

    Added

    • Retry automatico sui HTTP 5xx in EG_Forgejo_API::api_get_raw(): fino a 3 tentativi con backoff lineare (250 ms × tentativo). Risolve i 503 transitori che eg-forgejo-updater riceveva durante il burst di richieste al pool reverse proxy saturato.
    • Property privata last_status_code nella classe API + getter get_last_status_code().
    • Colonna Stato dell'admin: 4 messaggi distinti basati sull'HTTP code memorizzato nel transient _failed:
      • HTTP 404 — file/branch errato (rosso): config sbagliata (remote_file, branch, nome repo)
      • HTTP 401 / 403 — token rifiutato (rosso): token Forgejo non valido o repo fuori dallo scope
      • HTTP 5xx — server occupato (giallo): outage Forgejo transitorio
      • Errore di rete (giallo): timeout/DNS
        Prima la colonna mostrava sempre lo stesso ⚠ Repo non raggiungibile qualunque fosse la causa.

    Changed

    • Il transient sentinel di errore ora ha struttura ['_failed' => true, 'http' => int] invece di ['_failed' => true]. I caller della logica is_array($cached) && isset($cached['_failed']) continuano a funzionare invariati.

    Why

    • Il fallimento singolo su 5xx (visibile nei log Query Monitor durante un burst di check) non perdeva update — il check successivo riprovava — ma generava rumore. Il retry locale dentro api_get_raw() lo elimina prima che diventi rumore esterno.
    • Il messaggio Stato generico non aiutava a diagnosticare i veri errori di configurazione (404 su remote_file errato). Ora distingue.

    Downloads