40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
|
|
"""Worklog router — proxies worklog/standup calls to DevOpsMCP."""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
from fastapi import APIRouter, HTTPException
|
||
|
|
|
||
|
|
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
|