feat(cli,display): add --health check and repo description column
Add --health option to verify Gitea connectivity and display version. Add Description column (truncated at 40 chars) with --no-desc to hide it. Add get_version() method to GiteaClient. fixes #14 fixes #15 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -59,9 +59,35 @@ def parse_args(argv: list[str] | None = None) -> argparse.Namespace:
|
||||
dest="format",
|
||||
help="Format de sortie (defaut: table).",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--health",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="Verifie la connexion Gitea et affiche la version. Exit 0 si OK, 1 sinon.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-desc",
|
||||
action="store_true",
|
||||
default=False,
|
||||
help="Masque la colonne Description dans le tableau.",
|
||||
)
|
||||
return parser.parse_args(argv)
|
||||
|
||||
|
||||
def _run_health_check(client: GiteaClient, console: Console) -> None:
|
||||
"""Execute le health check et affiche les resultats.
|
||||
|
||||
1. Appelle client.get_version() -> affiche "Gitea vX.Y.Z"
|
||||
2. Appelle client.get_repos() -> affiche "N repos accessibles"
|
||||
"""
|
||||
version_info = client.get_version()
|
||||
version = version_info.get("version", "inconnue")
|
||||
console.print(f"Gitea v{version}")
|
||||
|
||||
repos = client.get_repos()
|
||||
console.print(f"{len(repos)} repos accessibles")
|
||||
|
||||
|
||||
def main(argv: list[str] | None = None) -> None:
|
||||
"""Point d'entree principal.
|
||||
|
||||
@@ -90,6 +116,10 @@ def main(argv: list[str] | None = None) -> None:
|
||||
client = GiteaClient(url, token)
|
||||
|
||||
try:
|
||||
if args.health:
|
||||
_run_health_check(client, console)
|
||||
return
|
||||
|
||||
repos = collect_all(client, include=args.repo, exclude=args.exclude)
|
||||
except requests.ConnectionError:
|
||||
console.print("[red]Erreur : connexion refusee. Verifiez l'URL et le serveur Gitea.[/red]")
|
||||
@@ -111,4 +141,4 @@ def main(argv: list[str] | None = None) -> None:
|
||||
sorted_repos = sort_repos(repos, args.sort)
|
||||
print(export_json(sorted_repos)) # noqa: T201
|
||||
else:
|
||||
render_dashboard(repos, sort_key=args.sort)
|
||||
render_dashboard(repos, sort_key=args.sort, show_description=not args.no_desc)
|
||||
|
||||
Reference in New Issue
Block a user