@@ -214,7 +214,12 @@ async def list_user_repositories(
214214 current_user : ClerkClaims = Depends (require_clerk_auth ),
215215 service : RoadmapService = Depends (get_roadmap_service ),
216216) -> list [UserRepoStateResponse ]:
217- return await service .list_user_repos (get_user_id (current_user ))
217+ import asyncio
218+
219+ # Wrap sync DB call in executor to avoid blocking event loop
220+ user_id = get_user_id (current_user )
221+ loop = asyncio .get_event_loop ()
222+ return await loop .run_in_executor (None , lambda : service ._pin_store .list_states (user_id ))
218223
219224
220225@router .post ("/sync/{owner}/{repo}" , response_model = UserRepoStateResponse )
@@ -263,7 +268,12 @@ async def list_archived_repositories(
263268 current_user : ClerkClaims = Depends (require_clerk_auth ),
264269 service : RoadmapService = Depends (get_roadmap_service ),
265270) -> list [UserRepoStateResponse ]:
266- return await service .list_archived_repos (get_user_id (current_user ))
271+ import asyncio
272+
273+ # Wrap sync DB call in executor to avoid blocking event loop
274+ user_id = get_user_id (current_user )
275+ loop = asyncio .get_event_loop ()
276+ return await loop .run_in_executor (None , lambda : service ._pin_store .list_archived (user_id ))
267277
268278
269279@router .post ("/{owner}/{repo}/rating" , response_model = RatingResponse )
0 commit comments