from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.responses import FileResponse import asyncio from api.routes import repos, metrics, status from services.storage import storage app = FastAPI(title="SpaceProbe API") app.include_router(repos.router, prefix="/api/repos") app.include_router(metrics.router, prefix="/api/metrics") app.include_router(status.router, prefix="/api/status") @app.on_event("startup") async def start_aggregator_service(): async def loop(): while True: for repo_id in list(storage.repos.keys()): storage.aggregate(repo_id) await asyncio.sleep(5) asyncio.create_task(loop())