feat: Webhook system + CLI tool #2

Merged
hzhang merged 22 commits from feat/webhook-and-cli into main 2026-02-24 04:11:53 +00:00
Showing only changes of commit 8ac51494c4 - Show all commits

View File

@@ -459,3 +459,34 @@ def search_issues(
if project_id:
query = query.filter(models.Issue.project_id == project_id)
return query.offset(skip).limit(limit).all()
# ============ Dashboard / Stats API ============
@app.get("/dashboard/stats")
def dashboard_stats(project_id: int = None, db: Session = Depends(get_db)):
"""Get issue statistics for dashboard."""
query = db.query(models.Issue)
if project_id:
query = query.filter(models.Issue.project_id == project_id)
total = query.count()
by_status = {}
for s in ["open", "in_progress", "resolved", "closed", "blocked"]:
by_status[s] = query.filter(models.Issue.status == s).count()
by_type = {}
for t in ["task", "story", "test", "resolution"]:
by_type[t] = query.filter(models.Issue.issue_type == t).count()
by_priority = {}
for p in ["low", "medium", "high", "critical"]:
by_priority[p] = query.filter(models.Issue.priority == p).count()
return {
"total": total,
"by_status": by_status,
"by_type": by_type,
"by_priority": by_priority,
}