# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] ### Added - Support de fichier de configuration YAML (`.gitea-dashboard.yml` ou `~/.config/gitea-dashboard/config.yml`) - Option `--config` pour specifier un fichier de configuration alternatif - Resolution des variables `${VAR}` dans les fichiers de configuration - Priorite de configuration : CLI > variables d'environnement > fichier config > defauts ### Fixed - Degradation gracieuse sur timeout reseau pendant la pagination (retourne les donnees partielles au lieu de crasher) ### Technical - Nouveau module `config.py` pour la gestion de configuration YAML (ADR-013) - Nouvelle dependance PyYAML >= 6.0 ## [1.3.0] - 2026-03-12 ### Added - Option `--health` pour vérifier la connexion Gitea (affiche version de l'instance et nombre de repos accessibles, exit code 0 si OK, 1 sinon) - Colonne "Description" dans le tableau principal (tronquée à 40 caractères) - Option `--no-desc` pour masquer la colonne description - Tests edge cases : unicode, repos vides, API malformée, caractères de contrôle (30 nouveaux tests) ### Fixed - Retry : gestion de HTTP 429 (rate limiting) avec respect du header `Retry-After` - Validation du header `Retry-After` (cap à 30 s, fallback sur backoff exponentiel pour les dates HTTP) - Export JSON : sanitisation des caractères de contrôle invalides (issue #12) ## [1.2.0] - 2026-03-12 ### Added - Export du dashboard en JSON via `--format json` (nouveau module `exporter.py`) - Colonne "Dernier commit" affichant la date relative du dernier commit par repo - Option `--sort` / `-s` pour trier les repos (valeurs : `name`, `issues`, `release`, `activity`) - Coloration des milestones selon l'échéance (rouge = dépassée, jaune = < 7 jours, vert = sinon) ### Fixed - Retry automatique sur timeout API (max 2 retries, backoff linéaire) au lieu d'un crash immédiat ### Technical - Nouveau module `exporter.py` pour la sérialisation JSON - Retry centralisé dans `GiteaClient._get_with_retry()` - Fonction `sort_repos` publique dans `display.py` - Helper de test partagé dans `tests/helpers.py` ## [1.1.0] - 2026-03-11 ### Added - Options CLI `--repo`/`-r` et `--exclude`/`-x` pour filtrer les repos par nom (sous-chaine, insensible a la casse) - Parsing CLI via argparse avec `parse_args()` separee pour testabilite - Parametres `include`/`exclude` dans `collect_all()` pour filtrage post-fetch ## [1.0.0] - 2026-03-10 ### Added - Client API Gitea avec authentification par token et pagination automatique - Collecteur de données avec dataclass `RepoData` - Affichage Rich du dashboard avec tableau repos et section milestones - Point d'entrée CLI `gitea-dashboard` avec configuration par variables d'environnement - Indicateurs visuels pour les repos forks, archives et miroirs - Gestion des erreurs réseau (connexion refusée, timeout, erreurs API) - Masquage du token dans les messages d'erreur [1.3.0]: https://gitea.tsmse.fr/admin/gitea-dashboard/compare/v1.2.0...v1.3.0 [1.2.0]: https://gitea.tsmse.fr/admin/gitea-dashboard/compare/v1.1.0...v1.2.0 [1.1.0]: https://gitea.tsmse.fr/admin/gitea-dashboard/compare/v1.0.0...v1.1.0