initial: hermes-dashboard snapshot (post overview + git integration)
This commit is contained in:
29
services/gitea.py
Normal file
29
services/gitea.py
Normal file
@@ -0,0 +1,29 @@
|
||||
"""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)}
|
||||
Reference in New Issue
Block a user