One-tap sync for all your GitHub forks. Built by ModelNorth.
Keep every fork in your GitHub account up to date with its upstream — automatically on a schedule, or manually with a single button click.
- GitHub Actions fetches a list of all your forked repos
- For each fork, it calls the GitHub
merge-upstreamAPI - Forks that are already up to date are skipped cleanly
- Forks with conflicts (where you have custom commits) are flagged — not force-overwritten by default
- A full summary is printed at the end
Everything runs server-side on GitHub — no local cloning, no git commands on your machine.
Go to GitHub → Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens
- Name:
fork-manager-token - Repository access: All repositories
- Permissions:
Contents→ Read and WriteActions→ Read and WriteMetadata→ Read only
Go to this repo → Settings → Secrets and variables → Actions → New repository secret
- Name:
PAT_TOKEN - Value: your token from step 2
The workflow runs every Monday at 09:00 UTC automatically.
Go to Actions → 🔄 Sync All Forks → Run workflow
You'll get three options:
| Option | Description |
|---|---|
dry_run |
Lists all forks and what would happen — no actual syncing |
force_sync |
Force-overwrites forks that have diverged from upstream |
exclude_repos |
Comma-separated list of repo names to skip this run |
Some forks you've heavily modified (e.g. a white-labeled product) should never be auto-synced.
Edit the PERMANENT_EXCLUDES line in .github/workflows/sync-forks.yml:
PERMANENT_EXCLUDES: "repo-name-1,repo-name-2"These will be skipped on every run, both scheduled and manual.
╔════════════════════════════════════════╗
║ fork-manager by ModelNorth ║
╚════════════════════════════════════════╝
📡 Fetching all forks...
✅ Found 47 fork(s)
🔄 [SYNCED] yourname/langchain — Successfully merged 3 commits
✅ [UP TO DATE] yourname/repo-name-1
✅ [UP TO DATE] yourname/repo-name-2
⏭ [EXCLUDED] yourname/repo-name
⚠️ [CONFLICT] yourname/repo-name-1 — has diverged from upstream
╔════════════════════════════════════════╗
║ SYNC SUMMARY ║
╚════════════════════════════════════════╝
🔄 Synced (new commits pulled): 12
✅ Already up to date: 32
⏭ Excluded / skipped: 1
⚠️ Conflicts (needs manual fix): 2
❌ Errors: 0
─────────────────────────────────────────
📦 Total forks processed: 47
MIT — use freely, contributions welcome.