Compare commits

..

5 Commits

Author SHA1 Message Date
4c91d624de Ruff after aider
All checks were successful
Run Python tests (through Pytest) / Test (push) Successful in 25s
Verify Python project can be installed, loaded and have version checked / Test (push) Successful in 23s
2025-04-23 21:28:33 +02:00
44b7d148f7 refactor: defer PR comment handling until all issues are resolved and batch process them 2025-04-23 21:28:29 +02:00
1f64cdb32e Ruff after aider
All checks were successful
Run Python tests (through Pytest) / Test (push) Successful in 25s
Verify Python project can be installed, loaded and have version checked / Test (push) Successful in 22s
2025-04-23 20:55:13 +02:00
5371109820 fix: handle PR comments immediately after resolving all issues without waiting for approval 2025-04-23 20:55:09 +02:00
d547cf6ffc Initial ruff pass 2025-04-23 20:51:10 +02:00

View File

@ -495,6 +495,9 @@ def solve_issues_in_repository(
logger.info('No issues found for %s', repository_config.repo) logger.info('No issues found for %s', repository_config.repo)
return return
# batch up PRs to handle comments after all issues are resolved
jobs: list[tuple[str, str, str]] = []
for issue in issues: for issue in issues:
issue_url = issue.get('web_url') issue_url = issue.get('web_url')
issue_number = issue.get('number') issue_number = issue.get('number')
@ -515,23 +518,29 @@ def solve_issues_in_repository(
issue_number, issue_number,
client, client,
) )
if issue_resolution.success:
# defer comment handling until after all issues complete
jobs.append((issue_url, issue_resolution.pull_request_id, branch_name))
seen_issues_db.mark_as_seen(issue_url, str(issue_number))
seen_issues_db.update_pr_info(
issue_url,
issue_resolution.pull_request_id,
issue_resolution.pull_request_url,
)
logger.info(
'Stored PR #%s information for issue #%s',
issue_resolution.pull_request_id,
issue_number,
)
if issue_resolution.success: # once all new issues are done, process any PR comments in batch
seen_issues_db.mark_as_seen(issue_url, str(issue_number)) for issue_url, pr_id, branch_name in jobs:
seen_issues_db.update_pr_info( with tempfile.TemporaryDirectory() as repository_path:
issue_url, run_cmd(['git', 'clone', repository_config.repo_url(), repository_path])
issue_resolution.pull_request_id, run_cmd(['git', 'checkout', branch_name], repository_path)
issue_resolution.pull_request_url,
)
logger.info(
'Stored PR #%s information for issue #%s',
issue_resolution.pull_request_id,
issue_number,
)
# Handle unresolved pull request comments
handle_pr_comments( handle_pr_comments(
repository_config, repository_config,
issue_resolution.pull_request_id, pr_id,
branch_name, branch_name,
Path(repository_path), Path(repository_path),
client, client,