Files
gitea-dashboard/CHANGELOG.md
sylvain 60c6aaede3 feat(dashboard): add milestone view and configurable columns
fixes #16, fixes #19

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 03:50:45 +01:00

3.9 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog.

[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
  • Vue milestones dediee avec --milestones (tableau Repo/Milestone/Open/Closed/Progress)
  • Colonnes configurables avec --columns (inclusion, exclusion par prefixe -, --columns help)
  • Export JSON des milestones via --milestones --format json
  • Parametre state dans client.get_milestones() (defaut: "open", supporte "all" pour la vue milestones)

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
  • Dataclass MilestoneData dans collector.py (ADR-014)
  • Fonction collect_milestones() avec filtrage include/exclude et state=all
  • Fonctions render_milestones(), parse_columns(), AVAILABLE_COLUMNS dans display.py
  • Fonctions milestones_to_dicts(), export_milestones_json() dans exporter.py
  • Refactoring : _filter_repos() extrait la logique de filtrage partagee dans collector.py

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