"""Gitea API service — read-only queries against local Gitea instance.""" import logging from typing import Any import requests import config from extensions import get_gitea_session logger = logging.getLogger(__name__) def get_repos() -> dict[str, Any]: """Fetch all repos from Gitea. Returns {repos: [...], available: bool}.""" try: session = get_gitea_session() resp = session.get( f"{config.GITEA_API_URL}/repos/search", params={"limit": 50, "uid": 0}, timeout=3, ) resp.raise_for_status() data = resp.json() repos = data.get("data", []) return {"repos": repos, "available": True} except (requests.RequestException, ValueError, KeyError) as exc: logger.debug("Gitea repos fetch failed: %s", exc) return {"repos": [], "available": False, "error": str(exc)}