Your GitHub Graph is Lying About How Much You Work. Here's How I Fixed Mine.
Source: Dev.to
Overview
I work 50+ hours a week writing code, but my GitHub profile shows barely any activity.
If you spend most of your time on private repositories (GitHub Enterprise, Bitbucket, GitLab, self‑hosted, etc.), none of that work appears on your contribution graph, leaving recruiters with an empty‑looking profile.
contrib‑mirror is a CLI tool that mirrors your real commit timestamps to a public repository without exposing any source code. It creates empty commits that carry the original dates, so your actual work activity becomes visible on GitHub’s contribution graph.
How It Works
- Discovers repositories in your work directory.
- Creates bare caches (no source code is touched).
- Extracts commit timestamps that match your email.
- Optionally pulls PR, review, and issue timestamps via the GitHub API.
- Creates empty commits with matching dates in a public mirror repo.
- Pushes the mirror to GitHub.
Zero code is ever exposed. The mirror contains only empty commits with timestamps. GitHub counts more than just commits—PRs opened, reviews submitted, and issues created also contribute to your graph. When the
ghCLI is authenticated,contrib‑mirrorpicks those up too.
Add a cron job or launchd agent and it syncs daily at midnight, keeping your graph green automatically. The setup wizard can also schedule the sync for you.
/
private-work-contributions-mirror
Private Work Contributions Mirror
Mirror commit timestamps from private work repos to your GitHub contribution graph—without exposing any code.
Before After
┌────────────────────────┐ ┌────────────────────────┐
│ ░░░░░░░░░░░░░░░░░░░░░░ │ │ ░█░██░█░░█░██░█░░█░██░ │
│ ░░░░░░░░░░░░░░░░░░░░░░ │ → │ ░█░██░█░░█░██░█░░█░██░ │
│ ░░░░░░░░░░░░░░░░░░░░░░ │ │ ░█░██░█░░█░██░█░░█░██░ │
└────────────────────────┘ └────────────────────────┘
Private work invisible Real activity visible
Installation
One‑liner (recommended)
curl -fsSL https://raw.githubusercontent.com/yuvrajangadsingh/private-work-contributions-mirror/main/install.sh | bash
Homebrew
brew tap yuvrajangadsingh/contrib-mirror
brew install contrib-mirror
Manual
git clone https://github.com/yuvrajangadsingh/private-work-contributions-mirror.git
cd private-work-contributions-mirror
bash setup.sh
The installer runs an interactive setup wizard that auto‑detects your repositories, email addresses, and GitHub organization.
Usage
contrib-mirror # sync now
contrib-mirror --setup # run the configuration wizard again
contrib-mirror --help # show help
contrib-mirror --version # show version
You can schedule the sync with cron or launchd (the wizard offers to set this up for you).
Prerequisites
| Requirement | Why | Check |
|---|---|---|
| Git | Clone repos, create commits | git --version |
| Bash | Run the script | bash --version |
| Access to private repos | Fetch commits (SSH or HTTPS) | git remote -v in any work repo |
| GitHub CLI (optional) | Track PRs, reviews, issues | gh --version |
Works With…
- GitHub (including GitHub Enterprise)
- Bitbucket
- GitLab
- Self‑hosted Git servers
Give the project a star on GitHub if you find it useful.