Add optional data fetching to reduce API calls in N+1 query pattern #4
+72
−14
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The extraction loop makes 3 additional API calls (commits, reviewers, comments) per PR, creating an N+1 query pattern. For 250 PRs: 250 + (250×3) = 1000 API calls.
Changes
New environment variables to control data fetching (defaults maintain current behavior):
FETCH_COMMITS- fetch commit data per PRFETCH_REVIEWERS- fetch reviewer data per PRFETCH_COMMENTS- fetch comment data per PRConditional fetching in
extract_pull_requests():[]or{"users": [], "teams": []}) to maintain schema compatibilityPerformance impact: Disabling all extra fetching reduces calls from 1000 to 250 (75% reduction) for 250 PRs
Example
Other fixes
extract_reviewers()return type annotation (dictnotlist[dict])GITHUB_REPOSenv var handling to check forNonebefore calling.split()💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.