feat: add realtime Gitea event stream widget
CI / lint (pull_request) Successful in 10s
CI / build-frontend (pull_request) Successful in 5s

This commit is contained in:
timmy committed 2026-08-05 04:04:40 +00:00
1 parent 0fc4b2684e
commit 9df3815417
4 files changed
+112 -1

No files matched your search

+14
View File
@@ -35,3 +35,17 @@ async def issues() -> list[dict]:
async def pull_requests() -> list[dict]:
return await fetch("user/pulls?limit=50")
async def activity_events() -> list[dict]:
user = await current_user()
events = await fetch(f"users/{user['login']}/activities/feeds?limit=20")
return [
{
"type": event.get("op_type", "activity"),
"actor": event.get("act_user") or {},
"repo": event.get("repo") or {},
"created_at": event.get("created", ""),
}
for event in events
]
+6 -1
View File
@@ -3,7 +3,7 @@ from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
from fastapi.staticfiles import StaticFiles
from src.gitea_proxy import current_user, repos, issues, pull_requests
from src.gitea_proxy import activity_events, current_user, repos, issues, pull_requests
from src.models import User, Repo, Issue, PullRequest
from src.suggestion_engine import compute
from src.views import router as frontend_router
@@ -72,3 +72,8 @@ async def context() -> JSONResponse:
"view": ctx.view,
"deltas": [d.dict() for d in ctx.deltas],
})
@app.get("/api/v1/events")
async def event_stream() -> list[dict]:
return await activity_events()