Skip to content

fix: add timeBlocks aggregation to contributions endpoint for CommitTimeChart#1340

Merged
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
ionfwsrijan:fix/issue-1309-committimechart
May 28, 2026
Merged

fix: add timeBlocks aggregation to contributions endpoint for CommitTimeChart#1340
Priyanshu-byte-coder merged 1 commit into
Priyanshu-byte-coder:mainfrom
ionfwsrijan:fix/issue-1309-committimechart

Conversation

@ionfwsrijan
Copy link
Copy Markdown
Contributor

@ionfwsrijan ionfwsrijan commented May 27, 2026

Description

Fixes #1309

The CommitTimeChart component reads the timeBlocks field from the /api/metrics/contributions response to display commit distribution across morning, afternoon, evening, and night. However, the backend endpoint never computed or returned this field, causing the chart to always render "No commits" for every user.

Changes

src/app/api/metrics/contributions/route.ts

  • Added TimeBlocks interface with morning, afternoon, evening, night counters
  • Added timeBlocks field to ContributionResponse
  • Computes time-of-day bins inside fetchContributionsForAccount by extracting the hour from each commit's author.date:
    • Morning (6–12): timeBlocks.morning++
    • Afternoon (12–18): timeBlocks.afternoon++
    • Evening (18–22): timeBlocks.evening++
    • Night (22–6): timeBlocks.night++
  • Returns timeBlocks alongside existing days, total, data, and commits
  • Merges timeBlocks correctly in the combined-accounts path (per-block sums)
  • Passes through timeBlocks from the GitHub result in GitLab merge
  • GitLab contributions return zeroed timeBlocks (events don't carry hour precision)

Verification

  1. Navigate to /dashboard and observe the "Commits by Time of Day" chart
  2. Before: always shows "No commits in the last N days"
  3. After: shows horizontal bar chart with commit counts for each time block, plus peak-time label
  4. Test with 7d / 30d / 90d range selector
  5. Verify combined-accounts mode correctly aggregates time blocks across all linked accounts

@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@ionfwsrijan 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 type:feature GSSoC type bonus: new feature 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

@ionfwsrijan
Copy link
Copy Markdown
Contributor Author

@Priyanshu-byte-coder You may review and merge this

@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 63139e8 into Priyanshu-byte-coder:main May 28, 2026
4 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 type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CommitTimeChart is completely broken — timeBlocks data never fetched from API; chart always shows "No commits"

2 participants