Files
nas-tools/dashboard/backend/routers/gitea.py
Gan, Jimmy b981c06d59
Deploy Dashboard (Dev) / deploy-dev (push) Successful in 2m26s
Run Tests / Backend Tests (push) Failing after 2m36s
Run Tests / Frontend Tests (push) Failing after 2m23s
Run Tests / Test Summary (push) Failing after 13s
feat: comprehensive test infrastructure improvements
- Fix unit test imports: add env setup in conftest.py before module imports
- Add 24 new auth router tests (RBAC, preferences, password validation)
- Add 16 new tests for litellm and chat_summary routers
- Apply black formatting and ruff linting across codebase
- Add pre-commit hooks configuration (black, ruff, file checks)
- Increase CI coverage threshold from 40% to 50%

Test Results:
- 206 tests passing (91 unit + 115 integration)
- Coverage: 58.79% on core modules
- auth.py: 57% → 85%, litellm.py: 23% → 87%, chat_summary.py: 41% → 100%
- auth_service: 96.51%, config: 100%, rbac: 93.48%
2026-04-08 00:21:32 +08:00

27 lines
905 B
Python

import re
import httpx
from fastapi import APIRouter, HTTPException
from config import GITEA_TOKEN, GITEA_URL
router = APIRouter()
HEADERS = {"Authorization": f"token {GITEA_TOKEN}"} if GITEA_TOKEN else {}
_SAFE_NAME = re.compile(r"^[a-zA-Z0-9._-]+$")
@router.get("/repos")
async def list_repos():
async with httpx.AsyncClient() as c:
r = await c.get(f"{GITEA_URL}/api/v1/repos/search", headers=HEADERS, params={"limit": 50})
return r.json()
@router.get("/repos/{owner}/{repo}/commits")
async def list_commits(owner: str, repo: str, page: int = 1):
if not _SAFE_NAME.match(owner) or not _SAFE_NAME.match(repo):
raise HTTPException(status_code=400, detail="Invalid owner or repo name")
async with httpx.AsyncClient() as c:
r = await c.get(f"{GITEA_URL}/api/v1/repos/{owner}/{repo}/commits", headers=HEADERS, params={"page": page})
return r.json()