fix(audit): sort milestones, sort JSON export, extract test helper

- Fix milestone section using unsorted repos list
- Apply --sort to --format json output
- Rename _sort_repos to sort_repos (now used by cli.py)
- Extract shared make_repo helper to tests/helpers.py
- Move exporter import to module level in cli.py

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
sylvain
2026-03-12 04:07:41 +01:00
parent cf6f2dd3c6
commit 50768db31f
5 changed files with 46 additions and 71 deletions

View File

@@ -11,7 +11,8 @@ from rich.console import Console
from gitea_dashboard.client import GiteaClient
from gitea_dashboard.collector import collect_all
from gitea_dashboard.display import render_dashboard
from gitea_dashboard.display import render_dashboard, sort_repos
from gitea_dashboard.exporter import export_json
_DEFAULT_URL = "http://192.168.0.106:3000"
@@ -107,8 +108,7 @@ def main(argv: list[str] | None = None) -> None:
sys.exit(1)
if args.format == "json":
from gitea_dashboard.exporter import export_json
print(export_json(repos)) # noqa: T201
sorted_repos = sort_repos(repos, args.sort)
print(export_json(sorted_repos)) # noqa: T201
else:
render_dashboard(repos, sort_key=args.sort)

View File

@@ -93,7 +93,7 @@ def _colorize_milestone_due(due_on: str | None) -> str:
return "green"
def _sort_repos(repos: list[RepoData], sort_key: str) -> list[RepoData]:
def sort_repos(repos: list[RepoData], sort_key: str) -> list[RepoData]:
"""Trie la liste des repos selon le critere donne.
Args:
@@ -144,7 +144,7 @@ def render_dashboard(
return
# Tri des repos
sorted_repos = _sort_repos(repos, sort_key)
sorted_repos = sort_repos(repos, sort_key)
# Tableau principal
table = Table(title="Gitea Dashboard")
@@ -172,7 +172,7 @@ def render_dashboard(
console.print(table)
# Section milestones — uniquement si au moins un repo en a
repos_with_milestones = [r for r in repos if r.milestones]
repos_with_milestones = [r for r in sorted_repos if r.milestones]
if repos_with_milestones:
console.print()