A comprehensive solution for migrating repositories between GitHub instances at scale.
GitHub Migrator automates large-scale repository migrations with intelligent discovery, batch organization, and a modern web dashboard. It profiles repositories to identify migration complexity, detects GitHub Enterprise Importer limits, and provides real-time monitoring throughout the migration process.
| Source | Destination |
|---|---|
| GitHub Enterprise Server | GitHub Enterprise Cloud, EMU, or Data Residency |
| GitHub.com | GitHub Enterprise Cloud, EMU, or Data Residency |
| Azure DevOps Services | GitHub Enterprise Cloud, EMU, or Data Residency |
- Go 1.25+
- Node.js 24+
- Docker
# Clone and install
git clone https://github.com/kuhlman-labs/GitHub-migrator.git
cd GitHub-migrator
make install
# Configure authentication
export GITHUB_SOURCE_TOKEN="ghp_xxxxxxxxxxxx" # Source org admin token
export GITHUB_DEST_TOKEN="ghp_yyyyyyyyyyyy" # Destination org admin token
# Run (choose one)
make docker-build && make docker-run # Docker: http://localhost:8080
# OR
make run-server # Backend only: http://localhost:8080
make web-dev # Frontend dev: http://localhost:3000Note: The default config sets both source and destination to github.com. For other sources, see Configuration.
- Open the dashboard at http://localhost:8080 (localhost:3000 if running in the terminal)
- Discover - Enter your organization name to scan repositories
- Create Batch - Select 3-5 simple repositories for a pilot batch
- Dry Run - Test without executing the actual migration
- Migrate - Execute and monitor progress in real-time
| Document | Description |
|---|---|
| Deployment Guide | Docker, Azure, and Kubernetes deployment |
| API Reference | REST API documentation and examples |
| Operations Guide | Authentication, workflows, monitoring, troubleshooting |
| Contributing Guide | Development setup, testing, and code standards |
| OpenAPI Spec | Machine-readable API specification |
| Source | Environment File | YAML Config |
|---|---|---|
| GitHub | env.github.example | config.github.yml |
| Azure DevOps | env.azuredevops.example | config.azuredevops.yml |
See configs/README.md for detailed configuration guide.
The Server has a guided setup page if no configuration is detected.
We welcome contributions! See CONTRIBUTING.md for development setup and guidelines.
Built with go-github, git-sizer, Go, and React.
Maintained by: @kuhlman-labs