feat(v1.2.0): retry API, dernier commit, tri, coloration, export JSON
- client.py: _get_with_retry (max 2 retries, backoff lineaire), get_latest_commit - collector.py: champ last_commit_date dans RepoData - display.py: colonne "Dernier commit", _sort_repos (name/issues/release/activity), _colorize_milestone_due (rouge/jaune/vert selon echeance) - cli.py: options --sort/-s et --format/-f (table/json) - exporter.py: nouveau module, repos_to_dicts + export_json - 88 tests (35 nouveaux), ruff clean fixes #8, fixes #7, fixes #10, fixes #9, fixes #6 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -43,6 +43,21 @@ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
|
||||
default=None,
|
||||
help="Exclure les repos par nom (sous-chaine, insensible a la casse). Repeatable.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--sort",
|
||||
"-s",
|
||||
choices=["name", "issues", "release", "activity"],
|
||||
default="name",
|
||||
help="Critere de tri des repos (defaut: name).",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--format",
|
||||
"-f",
|
||||
choices=["table", "json"],
|
||||
default="table",
|
||||
dest="format",
|
||||
help="Format de sortie (defaut: table).",
|
||||
)
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
@@ -91,4 +106,9 @@ def main(argv: list[str] | None = None) -> None:
|
||||
console.print(f"[red]Erreur API : {msg}[/red]")
|
||||
sys.exit(1)
|
||||
|
||||
render_dashboard(repos)
|
||||
if args.format == "json":
|
||||
from gitea_dashboard.exporter import export_json
|
||||
|
||||
print(export_json(repos)) # noqa: T201
|
||||
else:
|
||||
render_dashboard(repos, sort_key=args.sort)
|
||||
|
||||
Reference in New Issue
Block a user