Skip to content

fix(goals): surface GitHub rate limit error in goal sync#1347

Merged
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
mallya-m:fix/goals-sync-rate-limit-935
May 28, 2026
Merged

fix(goals): surface GitHub rate limit error in goal sync#1347
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
mallya-m:fix/goals-sync-rate-limit-935

Conversation

@mallya-m
Copy link
Copy Markdown
Contributor

What does this PR do?

Fixes silent failure when GitHub Search API rate limit is hit during goal sync. Now returns proper 429 with reset time, and the UI surfaces a user-friendly message.

Related issue

Closes #935

Changes made

  • Detect 403/429 in commit search loop in /api/goals/sync
  • Detect 403/429 in PR count fetch
  • Parse X-RateLimit-Reset header and include reset time in error message
  • Return { error, rateLimited: true } with status 429
  • GoalTracker.tsx shows rate limit message instead of generic error

How to test

  1. Trigger sync rapidly multiple times
  2. When rate limited, UI shows "GitHub rate limit reached. Sync will resume at HH:MM"
  3. Normal sync still works when not rate limited

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@mallya-m is attempting to deploy a commit to the PRIYANSHU DOSHI's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added gssoc26 GSSoC 2026 contribution type:bug GSSoC type bonus: bug fix labels May 27, 2026
@github-actions
Copy link
Copy Markdown

GSSoC Label Checklist 🏷️

@Priyanshu-byte-coder — please apply the appropriate labels before merging:

Difficulty (pick one):

  • level:beginner — 20 pts
  • level:intermediate — 35 pts
  • level:advanced — 55 pts
  • level:critical — 80 pts

Quality (optional):

  • quality:clean — ×1.2 multiplier
  • quality:exceptional — ×1.5 multiplier

Validation (required to score):

  • gssoc:approved — counts for points
  • gssoc:invalid / gssoc:spam / gssoc:ai-slop — does not score

Type labels (type:*) are auto-detected from files and title. Review and adjust if needed.
Points formula: (difficulty × quality_multiplier) + type_bonus

@mallya-m
Copy link
Copy Markdown
Contributor Author

@Priyanshu-byte-coder could you please add gssoc:approved, level:intermediate, and type:bug labels? I already implemented identical rate limit handling in PR #602 so this follows the exact same pattern. Thank you!

@Priyanshu-byte-coder Priyanshu-byte-coder added gssoc:approved GSSoC: PR approved for scoring level:intermediate GSSoC: Intermediate difficulty (35 pts) labels May 28, 2026
@Priyanshu-byte-coder Priyanshu-byte-coder merged commit 674e77d into Priyanshu-byte-coder:main May 28, 2026
11 checks passed
@github-actions
Copy link
Copy Markdown

🎉 Merged! Thanks for contributing to DevTrack.

If the project has been useful to you, a ⭐ star on the repo is the easiest way to support it — it helps DevTrack get discovered by more developers.

Keep an eye on open issues for your next contribution!

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

Labels

gssoc:approved GSSoC: PR approved for scoring gssoc26 GSSoC 2026 contribution level:intermediate GSSoC: Intermediate difficulty (35 pts) type:bug GSSoC type bonus: bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Goal auto-sync silently fails when GitHub Search API rate limit is hit

2 participants