Files

30 lines
888 B
Python

"""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)}