Skip to content

⚡ Bolt: Parallelize API calls and optimize date filtering#21

Draft
Jobayer-c8 wants to merge 1 commit into
mainfrom
bolt-parallel-api-calls-3697056046783346498
Draft

⚡ Bolt: Parallelize API calls and optimize date filtering#21
Jobayer-c8 wants to merge 1 commit into
mainfrom
bolt-parallel-api-calls-3697056046783346498

Conversation

@Jobayer-c8

Copy link
Copy Markdown
Owner

I have optimized the daily-activity-report.lock.yml workflow by parallelizing the GitHub API calls and pre-calculating the sinceDate object used in the pull request filter.

💡 What:

  • Replaced sequential await calls with Promise.all for fetching commits, pull requests, and issues.
  • Moved new Date(since) out of the .filter() callback to a single pre-calculated sinceDate variable.

🎯 Why:

  • Sequential API calls are a performance bottleneck in I/O bound scripts.
  • Repeatedly creating Date objects inside a filter is inefficient, especially as the number of pull requests grows.

📊 Impact:

  • Significant reduction in workflow execution time (from sum of API response times to the max response time).
  • Reduced memory and CPU pressure during result processing.

🔬 Measurement:

  • Verified syntax with node --check after extracting the script block.
  • Confirmed logic remains identical to the original version.

PR created automatically by Jules for task 3697056046783346498 started by @Jobayer-c8

…port workflow

This change improves the performance of the daily activity report GitHub Action by:
1. Parallelizing independent GitHub API calls (commits, PRs, issues) using `Promise.all`.
2. Pre-calculating the `sinceDate` object to avoid redundant `new Date()` allocations and string parsing inside the filter loop.

Expected Impact:
- Reduces total script execution time by parallelizing network I/O.
- Minimizes CPU overhead and memory allocations during data filtering.

Co-authored-by: Jobayer-c8 <290884056+Jobayer-c8@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds a new markdown file .jules/bolt.md documenting learnings and actions regarding parallelizing sequential GitHub API calls using Promise.all and optimizing date filtering by avoiding creating Date objects inside loops. There are no review comments, and I have no feedback to provide.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant