initial: hermes-dashboard snapshot (post overview + git integration)

This commit is contained in:
hermes-dashboard
2026-08-17 19:51:51 +08:00
commit 1e5e30ffcb
22 changed files with 2333 additions and 0 deletions

29
services/gitea.py Normal file
View 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)}