A GitHub CLI extension that syncs your GitHub Enterprise Server contribution graph to GitHub.com — without leaking any enterprise data.
It fetches your GHES contribution calendar, creates backdated empty commits in a local repo, and pushes to a private GitHub.com repo. Your enterprise contributions then appear on your public profile.
gh extension install balcsida/gh-enterprise-contribution-syncRequires GitHub CLI authenticated to both your GHES instance and GitHub.com:
gh auth login --hostname github.example.com
gh auth login --hostname github.comgh enterprise-contribution-syncThat's it. On first run it will:
- Auto-detect your GHES host, username, and account creation date
- Fetch your full contribution history (chunked into 1-year API windows)
- Create backdated empty commits via
git fast-import - Create a private
enterprise-contributionsrepo on GitHub.com - Push
Subsequent runs sync incrementally — only new contributions since the last run.
gh enterprise-contribution-sync --dry-run-H, --host string GHES hostname (auto-detected)
-u, --username string GHES username (auto-detected)
-d, --dir string Local repo directory (default: ~/.gh-enterprise-contribution-sync/repo)
-r, --repo string GitHub.com repo (default: <login>/enterprise-contributions)
-a, --author string Commit author name (auto-detected from GitHub.com)
-e, --email string Commit author email (auto-detected from GitHub.com)
-n, --dry-run Preview without creating commits
- All commits are
--allow-empty— no code content - Commit messages are generic (
contribution) - No project names, PR titles, or issue references
- The target repo is created as private
- The tool never reads enterprise source code