Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,10 @@ dist/
downloads/
eggs/
.eggs/

lib/
!frontend/src/lib

lib64/
parts/
sdist/
Expand Down
6 changes: 5 additions & 1 deletion backend/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
SUPABASE_URL=
SUPABASE_SERVICE_ROLE_KEY=
DISCORD_BOT_TOKEN=

CORS_ORIGINS=http://localhost:3000
GITHUB_TOKEN=

DISCORD_BOT_TOKEN=
1 change: 0 additions & 1 deletion backend/app/core/events/enums.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,5 @@ class EventType(str, Enum):
ONBOARDING_COMPLETED = "onboarding.completed"
FAQ_REQUESTED = "faq.requested"
KNOWLEDGE_UPDATED = "knowledge.updated"

ANALYTICS_COLLECTED = "analytics.collected"

3 changes: 3 additions & 0 deletions backend/app/services/vector_db/service.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import logging

import os
from typing import List, Dict, Any, Optional
from uuid import UUID
Expand Down Expand Up @@ -195,3 +197,4 @@ async def check_connection(self) -> bool:
except Exception as e:
logger.error(f"Connection check failed: {str(e)}")
return False

23 changes: 23 additions & 0 deletions backend/app/utils/github_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,25 @@ async def get_repo_stats(repo_url: str):
commits = github_api_request(f"/repos/{owner}/{repo_name}/commits?per_page=5")

code_frequency = github_api_request(f"/repos/{owner}/{repo_name}/stats/code_frequency")

pull_requests_by_state = {
"open": sum(1 for pr in prs if pr["state"] == "open"),
"closed": sum(1 for pr in prs if pr["state"] == "closed"),
"draft": sum(1 for pr in prs if pr.get("draft", False)),
"merged": sum(1 for pr in prs if pr.get("merged_at"))
}
pr_details = [{
"title": pr["title"],
"number": pr["number"],
"state": pr["state"],
"url": pr["html_url"],
"author": {
"login": pr["user"]["login"],
"avatar_url": pr["user"]["avatar_url"],
"profile_url": pr["user"]["html_url"]
},
} for pr in prs]


return {
"name": repo_info["full_name"],
Expand Down Expand Up @@ -103,13 +122,17 @@ async def get_repo_stats(repo_url: str):

# Pull Requests
"pull_requests": {
**pull_requests_by_state,
"total": len(prs),
"details": pr_details
"total": len(prs),
"merged": sum(1 for pr in prs if pr["merged_at"]),
"draft": sum(1 for pr in prs if pr["draft"]),
"by_state": {
"open": sum(1 for pr in prs if pr["state"] == "open"),
"closed": sum(1 for pr in prs if pr["state"] == "closed")
}

},
}

Expand Down
23 changes: 23 additions & 0 deletions backend/main.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,23 @@


import asyncio
import uuid
import logging

from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.routes import router
import uvicorn
from .app.core.events.event_bus import EventBus
from .app.core.events.enums import EventType, PlatformType
from .app.core.events.base import BaseEvent
from .app.core.handler.handler_registry import HandlerRegistry

app = FastAPI()


# CORS Configuration

app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:5173", "http://127.0.0.1:5173"],
Expand All @@ -15,8 +28,18 @@
)


app.include_router(router, prefix="/api")

# Initialize Handler Registry and Event Bus
handler_registry = HandlerRegistry()
event_bus = EventBus(handler_registry)



app.include_router(router, prefix="/api")

if __name__ == "__main__":
uvicorn.run(app, host="127.0.0.1", port=8000)
asyncio.run(main())


Loading
Loading