This application provides a complete solution for managing GitHub repository migrations using the GitHub Enterprise Importer. It runs as two Docker containers (frontend + backend) backed by MongoDB.
- Repository tracking — add and manage repositories for migration individually, via CSV, or by scanning a source organization
- Migration orchestration — start, monitor, and reset migrations from the UI
- Status monitoring — real-time polling with color-coded status buttons
- Target repository visibility — choose private, internal, or public for each target repository
- Source repository locking — optionally lock the source repository during migration
- Bulk operations — start, reset, archive, or delete multiple repositories at once
- GHES support — two-phase export → migration workflow for GitHub Enterprise Server (3.8+)
| Mode | Set MODE to |
Description |
|---|---|---|
| GitHub.com (default) | GH |
Single-step migration from GitHub.com to GitHub Enterprise Cloud |
| GitHub Enterprise Server | GHES |
Two-phase: export from GHES, then migrate to GitHub Enterprise Cloud |
-
Copy the example environment file and fill in your values:
cp env.example .env
Edit
.envwith your editor. The required variables are:Variable Description SOURCE_ADMIN_TOKENGitHub PAT for the source organization (needs repoandadmin:orgscopes)TARGET_ADMIN_TOKENGitHub PAT for the target organization (needs repoandadmin:orgscopes)TARGET_ORGANIZATIONName of the target GitHub organization Optional variables with sensible defaults:
Variable Default Description TARGET_DESCRIPTIONTarget GitHub Enterprise CloudLabel shown in the UI for the target SOURCE_DESCRIPTIONSource GitHub OrganizationLabel shown in the UI for the source MODEGHMigration mode ( GHorGHES)GHES_API_URL(empty) Required when MODE=GHES— e.g.https://github.example.com/api/v3See
env.examplefor a complete template. -
Start the application:
docker compose up
This builds and starts three containers:
Container Port Description paloma-frontendhttp://localhost:3000 Next.js UI paloma-backendhttp://localhost:5005 NestJS API paloma-mongodb27017 MongoDB for migration state Add
--buildto force a rebuild after code changes:docker compose up --build -
Open the UI at http://localhost:3000 and start migrating repositories.
- Click Add Repository to add a repository for migration, or upload a CSV file, or scan an entire source organization
- GitHub.com mode: click Start Migration to begin
- GHES mode: click Start Export first, then Start Migration after exports complete
- Use the ⚙️ icon to change repository settings (visibility, lock source)
- Use Reset to reset a completed or failed migration for retry
- Use the Archive view to move finished repositories out of the main list
See docs/HELM_CHART.md for the Helm chart reference, including an example values.yaml for Azure AKS with Web App Routing.
See CONTRIBUTING for more information.
This library is licensed under the MIT-0 License. See the LICENSE file.