From e3972e8b5a03d8755b44ae1f4320203e01b7ce1d Mon Sep 17 00:00:00 2001 From: Bhuvansh855 Date: Fri, 3 Jul 2026 12:05:25 +0530 Subject: [PATCH] ISSUESCOUT --- backend/issuescout/scanner/engine.py | 113 +++++++++++++-------------- 1 file changed, 54 insertions(+), 59 deletions(-) diff --git a/backend/issuescout/scanner/engine.py b/backend/issuescout/scanner/engine.py index 59a7ca2..621704c 100644 --- a/backend/issuescout/scanner/engine.py +++ b/backend/issuescout/scanner/engine.py @@ -63,27 +63,23 @@ async def scan_repository( progress_callback: ProgressCallback | None = None, ) -> ScanResult: - try: - context = await self.fetcher.fetch_context( - owner, - repo, - ) - finally: - await self.fetcher.close() - - issues = context.issues + context = await self.fetcher.fetch_context( + owner, + repo, + ) - processed = 0 + try: + issues = context.issues - total = len(issues) + processed = 0 + total = len(issues) - if progress_callback is not None: - progress_callback( - processed, - total, - ) + if progress_callback is not None: + progress_callback( + processed, + total, + ) - try: results = await asyncio.gather( *[ self._detect_linked_pr( @@ -97,53 +93,52 @@ async def scan_repository( for issue_number, linked_pr in results: context.linked_pr_cache[issue_number] = linked_pr - finally: - await self.detector.close() - - summaries = [] + summaries = [] - for issue in issues: - results = await self.pipeline.run( - context, - issue, - ) + for issue in issues: + results = await self.pipeline.run( + context, + issue, + ) - if not all(result.passed for result in results): - continue + if not all(result.passed for result in results): + continue - linked_pr = context.linked_pr_cache.get( - issue.number, - ) + linked_pr = context.linked_pr_cache.get( + issue.number, + ) - summaries.append( - IssueSummary( - number=issue.number, - title=issue.title, - assigned=issue.assigned, - assignee=issue.assignee, - confidence=self.confidence.calculate( - results, - ), - linked_pr_number=( - linked_pr.number if linked_pr is not None else None - ), - linked_pr_title=( - linked_pr.title if linked_pr is not None else None - ), + summaries.append( + IssueSummary( + number=issue.number, + title=issue.title, + assigned=issue.assigned, + assignee=issue.assignee, + confidence=self.confidence.calculate(results), + linked_pr_number=( + linked_pr.number if linked_pr is not None else None + ), + linked_pr_title=( + linked_pr.title if linked_pr is not None else None + ), + ) ) - ) - processed += 1 + processed += 1 - if progress_callback is not None: - progress_callback( - processed, - total, - ) + if progress_callback is not None: + progress_callback( + processed, + total, + ) - return ScanResult( - repository=f"{owner}/{repo}", - total_issues=len(summaries), - available_issues=len(summaries), - issues=summaries, - ) + return ScanResult( + repository=f"{owner}/{repo}", + total_issues=len(summaries), + available_issues=len(summaries), + issues=summaries, + ) + + finally: + await self.detector.close() + await self.fetcher.close()