Files

68 lines
2.3 KiB
Python
Raw Permalink Normal View History

"""Worklog router — proxies worklog/standup calls to DevOpsMCP."""
from __future__ import annotations
from typing import Optional
from fastapi import APIRouter, HTTPException, Request
from app import mcp_client
router = APIRouter(prefix="/api/v1", tags=["worklog"])
@router.get("/worklog")
async def api_worklog(
context: str = "egmont",
days: int = 7,
group_by: str = "repo",
since_date: Optional[str] = None,
until_date: Optional[str] = None,
):
try:
return await mcp_client.get_worklog(
context=context,
days=days,
group_by=group_by,
since_date=since_date,
until_date=until_date,
)
except Exception as exc:
raise HTTPException(status_code=502, detail=f"DevOpsMCP error: {exc}") from exc
@router.get("/standup")
async def api_standup(days: int = 2, context: str = "egmont"):
try:
return await mcp_client.get_standup(days=days, context=context)
except Exception as exc:
raise HTTPException(status_code=502, detail=f"DevOpsMCP error: {exc}") from exc
@router.post("/worklog/sync")
async def api_worklog_sync(request: Request):
"""Accept raw ~/.githistory content and ingest into DevOpsMCP Redis."""
body = await request.body()
content = body.decode("utf-8", errors="replace")
if not content.strip():
raise HTTPException(status_code=400, detail="Empty body — send content of ~/.githistory")
try:
result = await mcp_client.ingest_git_history(content)
return {"message": "Git history synced", "result": result}
except Exception as exc:
raise HTTPException(status_code=502, detail=f"DevOpsMCP error: {exc}") from exc
@router.post("/worklog/sync-activity")
async def api_worklog_sync_activity(request: Request):
"""Accept raw ~/.activitylog content and ingest into DevOpsMCP Redis."""
body = await request.body()
content = body.decode("utf-8", errors="replace")
if not content.strip():
raise HTTPException(status_code=400, detail="Empty body — send content of ~/.activitylog")
try:
result = await mcp_client.ingest_activity_log(content)
return {"message": "Activity log synced", "result": result}
except Exception as exc:
raise HTTPException(status_code=502, detail=f"DevOpsMCP error: {exc}") from exc