Nouveautés majeures

Gitea 28.0.0 introduit plusieurs fonctions d’administration et de développement. L’audit logging, désactivé par défaut, consigne les événements de sécurité et les rend exportables en JSONL ; la rétention est de 30 jours sauf modification du paramètre

[audit] RETENTION_DAYS = 0
. Les administrateurs peuvent désormais impersoner un utilisateur, ce qui facilite le diagnostic d’accès sans divulguer le mot de passe. Un bandeau indique la session d’impersonation et toutes les actions sont enregistrées simultanément pour le compte réel et le compte factice. D’autres ajouts comprennent les comptes bot, les jetons de déploiement HTTPS, les règles d’approbation des propriétaires de code et les filtres de fichiers diff, ainsi qu’une vue de la file d’attente des Actions.

Modifications de l’infrastructure réseau

Les opérations Git (migrations, miroirs, webhooks, OAuth2) transitent désormais via un proxy interne soumis à des règles d’égressions (#39426). Le paramètre

EGRESS_MODE = strict
impose une liste blanche explicite ; en mode strict, seules les entrées sans port autorisent 80 et 443. Les listes ALLOWED_HOST_LIST et BLOCKED_HOST_LIST remplacent les anciennes ALLOWED_DOMAINS, BLOCKED_DOMAINS et ALLOW_LOCALNETWORKS. Les adresses IP n’acceptent plus les caractères génériques, tandis que la syntaxe de type example.com couvre le domaine et ses sous‑domains, *.example.com ne couvre que les sous‑domains, et example.* est rejetée. Toute entrée invalide dans BLOCKED_HOST_LIST empêche le démarrage du service, renforçant la robustesse du démarrage.

Changements de configuration et de compatibilité

Le numéro de version a été simplifié : le préfixe historique « 1. » a disparu, la version actuelle s’appelle simplement 28.0.0. Les binaires 32‑bits x86 et les builds gogit sont retirés, tout comme le Snap pour armhf. Les noms de fichiers ne portent plus de suffixe de version du système d’exploitation ; par exemple,

gitea-28.0.0-windows-amd64.exe
. Cette évolution nécessite la mise à jour des scripts de téléchargement automatisés. Gitea exige désormais Git ≥ 2.25 ; le démarrage échoue si la version locale est antérieure, ce qui impose une vérification
git --version
avant la mise à jour. L’auto‑inscription est désactivée par défaut ; elle ne peut être réactivée qu’en définissant
[service] DISABLE_REGISTRATION = false
. De plus, le paramètre [server] DOMAIN est ignoré ; le domaine de l’instance provient de ROOT_URL, ce qui oblige les administrateurs à ajuster leurs configurations existantes.

Implications de sécurité

Outre l’audit logging, deux mécanismes renforcent la protection des données. Les historiques d’Actions sont automatiquement purgés après 400 jours via la tâche cron cleanup_action_runs. Le paramètre

[actions] RUN_RETENTION_DAYS = 0
désactive la suppression, conservant les exécutions indéfiniment. Les logs et artefacts associés sont toujours supprimés avec le run, garantissant la cohérence des espaces de stockage. Enfin, la stricte évaluation des expressions if: dans les workflows Actions limite les contextes autorisés, obligeant les développeurs à placer les conditions de matrice dans strategy.matrix ou au niveau des étapes, ce qui réduit les vecteurs d’abus potentiels.