The Complete Guide to Migrating to GitHub Enterprise Managed Users - Part 2: Pre-Migration Preparation #189383
jmassardo
started this conversation in
Discover: GitHub Best Practices
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The Complete Guide to Migrating to GitHub Enterprise Managed Users - Part 2: Pre-Migration Preparation
Phase 2: Pre-Migration Preparation
Cleaning up the old environment and getting ready to move.
This phase is where you do the unglamorous but critical work: auditing what you have, cleaning up what you don't need, and ensuring your identity infrastructure is ready. Skipping this phase leads to painful surprises during migration.
Pre-Migration Requirements Checklist
Before you even think about scheduling a migration window, you need to ensure your foundation is solid.
1. Identity Provider Readiness
EMU requires a compatible identity provider. GitHub has "paved-path" integrations with these partner IdPs:
Critical Note: The combination of Okta and Entra ID for SSO and SCIM (in either order) is explicitly not supported. GitHub's SCIM API will return errors if this combination is configured.
If you're using a non-partner IdP, you can still configure EMU, but your system must:
See Configuring SCIM provisioning for Enterprise Managed Users for detailed setup instructions.
2. Inventory Your Current State
Before migrating, you need a complete picture of what you're moving. Use the
gh-repo-statsextension for GitHub CLI to generate a full inventory:Your inventory should capture:
3. Assess Repository Sizes
Large repositories can significantly impact migration time and success. Use
git-sizerto analyze each repository:If you have files over 100MB in your repository history, consider using Git LFS or rewriting history before migration.
4. User Communication Plan
This is often overlooked, but arguably the most important step. Your users will experience:
Start communicating early and often. Create documentation, hold training sessions, and set up a support channel for questions.
5. Pre-Migration Cleanup
Don't migrate your mess; clean house first. Every piece of technical debt, every abandoned repository, every stale PR you migrate is technical debt you're paying to move. Take this opportunity to start fresh.
Archive Unused Repositories
Identify and archive repositories that are no longer actively maintained:
Before archiving, consider:
Archive repositories using:
Close Stale Pull Requests
Open PRs that haven't been touched in months are rarely going to be merged. Close them before migration to avoid polluting your new environment:
For bulk operations, create a script:
Clean Up Stale Issues
Similar to PRs, old issues that have gone cold should be triaged:
Consider creating a "stale" or "pre-migration-triage" label to tag issues that need review before migration.
Prune Dead Branches
Every repository accumulates branches over time. Clean them up:
GitHub also provides branch protection rules that can help prevent branch sprawl post-migration. See Managing a branch protection rule.
Audit and Remove Unused Integrations
Review OAuth apps, GitHub Apps, and webhooks before migration:
For each integration, ask:
Remove integrations that are no longer needed - they won't migrate cleanly anyway, and orphaned webhooks are a security risk.
Clean Up Teams and Access
Review your team structure and membership:
Questions to address:
Remember: In EMU, team membership is managed via your IdP. This is a great opportunity to align your GitHub team structure with your IdP groups.
Remove Secrets and Sensitive Data
This is critical. Before migration:
Create a Cleanup Checklist
Track your progress with a checklist:
The goal is simple: migrate only what you need, and migrate it clean. Your future self will thank you.
Beta Was this translation helpful? Give feedback.
All reactions