No description
Find a file
Furkan Baytekin 673186343b
docs: README
2026-03-05 10:25:17 +03:00
index.html feat: github heatmap merger 2026-03-05 10:25:11 +03:00
README.md docs: README 2026-03-05 10:25:17 +03:00
screenshot.png docs: README 2026-03-05 10:25:17 +03:00

GitMerge — Combined GitHub Contribution Heatmap

A single-file web app that merges contribution data from multiple GitHub accounts into one heatmap. Useful if you have a personal and a work account and want to see your full activity in one view.

GitMerge screenshot

Features

  • Add up to 6 GitHub accounts, each with its own personal access token
  • Per-account tokens means private contributions are included for all accounts
  • Merged heatmap shows combined daily contribution counts across all accounts
  • Hover any cell for a tooltip with the date, combined total, and per-account breakdown
  • Period selector: Last 12 months (rolling window) or a specific year up to 3 years back
  • Stats bar shows individual totals and the combined total
  • No dependencies, no build step — a single index.html file

Usage

  1. Open index.html in any modern browser
  2. Enter a GitHub username and its personal access token, then click +
  3. Repeat for any additional accounts
  4. Select a period and click Generate Heatmap

GitHub Token Setup

Each account needs a Personal Access Token with the read:user scope.

  1. Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Click Generate new token
  3. Select the read:user scope
  4. Copy the token and paste it into the token field next to the username

Without read:user, the API will only return public contribution data and may omit private repository activity.

How it works

The app queries the GitHub GraphQL API (contributionsCollection) for each account using its own token. Contribution counts are summed per day across all accounts and rendered as a 53-week × 7-day grid (MondaySunday), matching GitHub's own contribution graph layout.

GET https://api.github.com/graphql
Authorization: bearer <token>

query {
  user(login: "username") {
    contributionsCollection(from: "...", to: "...") {
      contributionCalendar {
        weeks {
          contributionDays { date contributionCount }
        }
      }
    }
  }
}

Contribution levels

Color Count
Dark gray 0
Dark green 13
Medium green 46
Green 79
Bright green 10+