Skip to content

feat: add per-repository commit heatmap drawer#1264

Open
VIDYANKSHINI wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
VIDYANKSHINI:feat/repo-heatmap
Open

feat: add per-repository commit heatmap drawer#1264
VIDYANKSHINI wants to merge 3 commits into
Priyanshu-byte-coder:mainfrom
VIDYANKSHINI:feat/repo-heatmap

Conversation

@VIDYANKSHINI
Copy link
Copy Markdown
Contributor

Summary

This PR implements the per-repository commit heatmap functionality inside the Top Repos widget. Clicking a repository name now opens a drawer with a 90-day mini contribution heatmap and relevant metrics.

Closes #943

Type of Change

  • Bug fix
  • New feature
  • Documentation update
  • Refactor / code cleanup

Changes Made

  • Created RepoActivityDrawer component for displaying the per-repo heatmap and metrics (Escape to close, focus-trap logic).
  • Created /api/metrics/repos/[...repo]/commits API endpoint to fetch up to 100 commits from the last 90 days.
  • Updated TopRepos widget to make repository names clickable and open the drawer.
  • Added a new external link icon next to repo names to preserve the ability to quickly open the repo in GitHub.

How to Test

Steps for the reviewer to verify this works:

  1. Go to the dashboard and ensure the Top Repos widget loads.
  2. Click on a repository name.
  3. Verify the drawer opens from the right and displays the total commits, most active day, peak hour, and the 90-day mini heatmap correctly.
  4. Verify pressing Escape closes the drawer.
  5. Click the external link icon to verify it opens the repository on GitHub.

Checklist

  • Linked issue in summary
  • npm run lint passes locally
  • No TypeScript errors (npm run type-check)
  • Self-reviewed the diff
  • Added/updated tests if applicable

Copilot AI review requested due to automatic review settings May 27, 2026 09:30
@vercel
Copy link
Copy Markdown

vercel Bot commented May 27, 2026

@VIDYANKSHINI 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: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

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

Labels

gssoc26 GSSoC 2026 contribution type:feature GSSoC type bonus: new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEAT] Add per-repository commit heatmap

1 participant