The Complete Guide to Migrating to GitHub Enterprise Managed Users - Part 6: Validation & Adoption #189387
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 6: Validation & Adoption
Phase 6: Validation & Adoption
Testing, training, and bringing each group live.
For each group you migrate, you need to validate the migration was successful, train the users, and support them through the transition. This phase runs in tandem with Phase 5 - migrate a group, validate, repeat.
GHEC to GHEC-EMU Migration: Tips and Tricks
If you're specifically migrating from standard GHEC to EMU, here are some hard-won lessons:
1. You Need a New Enterprise Account
This is critical: You cannot convert an existing GHEC enterprise to EMU. You must create a new EMU enterprise and migrate to it. Contact GitHub Sales to initiate this process.
2. Plan for the "Two Account" Problem
Your developers who contribute to open source will need to maintain two accounts:
Create clear guidelines for when to use each account. Consider using different browsers or browser profiles to avoid confusion.
3. Handle GitHub Apps and Integrations
Many GitHub Apps won't work the same way with managed user accounts:
Audit your integrations before migration and contact vendors for EMU compatibility.
4. Preserve Contribution History
To maintain contribution graphs and history:
5. Test with a Pilot Group
Never do a big-bang migration:
6. Timing Considerations
Handling Open Source Contributions with EMU
Let's address the elephant in the room: EMU users cannot contribute to repositories outside your enterprise. No public repos, no PRs to external projects, no starring your favorite libraries. For organizations with active open source participation, this requires a deliberate strategy.
The Reality of EMU's Restrictions
Managed user accounts have these hard limitations:
This isn't a bug or something that can be configured away. It's fundamental to EMU's security model.
Strategy 1: The Dual Account Approach
The most common solution is maintaining two separate accounts:
Implementation Tips:
Use different browsers or profiles
Configure Git identity per directory
Use SSH key separation
Document the process for your team so everyone follows the same pattern
Strategy 2: Private Mirrors App (Recommended for OSS Contributions)
The Private Mirrors App (PMA) is a GitHub App designed to solve the EMU open source contribution problem. It's a community project with EMU support built in that provides a clean workflow for contributing to upstream projects while keeping your work private until it's ready.
How it works:
flowchart LR subgraph Upstream["Upstream OSS Project"] OSS["kubernetes/kubernetes"] end subgraph Public["GitHub.com (Public Fork)"] FORK["your-company-oss/kubernetes<br/>(Public Fork)"] end subgraph EMU["GHEC-EMU Enterprise"] MIRROR["internal/kubernetes<br/>(Private Mirror)"] DEV["Developer<br/>jsmith_acme"] end subgraph PMA["Private Mirrors App"] APP["Manages sync<br/>& lifecycle"] end OSS -->|"1. Fork"| FORK FORK <-->|"2. PMA creates mirror"| APP APP <-->|"3. Syncs changes"| MIRROR DEV -->|"4. Work privately"| MIRROR MIRROR -->|"5. Approved changes"| APP APP -->|"6. Push to fork"| FORK FORK -->|"7. PR upstream"| OSS style EMU fill:#f0fff4,stroke:#28a745,color:#333 style Public fill:#f0f7ff,stroke:#0366d6,color:#333 style PMA fill:#fff3cd,stroke:#856404,color:#333 style Upstream fill:#f5f5f5,stroke:#9e9e9e,color:#333 style OSS fill:#e0e0e0,stroke:#616161,color:#333 style FORK fill:#bbdefb,stroke:#1565c0,color:#333 style MIRROR fill:#a5d6a7,stroke:#2e7d32,color:#333 style DEV fill:#a5d6a7,stroke:#2e7d32,color:#333 style APP fill:#fff9c4,stroke:#f9a825,color:#333Key benefits of PMA:
Setting up PMA:
For detailed setup instructions, see the PMA documentation and watch the demo video.
Real-world example: Capital One presented their experience using PMA at GitHub Universe 2024 in their talk Contributing with Confidence, demonstrating how they enabled secure open source contributions at enterprise scale.
Strategy 3: Manual Innersource Model
If PMA doesn't fit your needs, you can implement a similar workflow manually:
This approach requires more manual coordination but avoids additional tooling.
Strategy 4: Dedicated OSS Team or Account
For companies with significant open source presence:
This approach works well for companies that:
Communicating the Change to Developers
When rolling out EMU to a team used to contributing to OSS, be upfront:
Sample communication:
What About Contribution Graphs?
A common concern: "My contribution graph shows my work!"
With EMU:
For developers who care about their public presence, this means maintaining activity on their personal account for OSS work. For hiring purposes, many companies now understand this separation and don't penalize candidates whose "green squares" are lower due to enterprise restrictions.
Go-Live Validation Checklist
After migration, verify everything is working:
Decommissioning the Old Environment
Once all groups have migrated and validated, you can start decommissioning the source:
Resources and Further Reading
Official GitHub Documentation
Migration Tools
Identity Provider Documentation
Support Resources
TL;DR - Key Takeaways
EMU is a different beast - It's not just "GHEC with better identity management." Understand the restrictions before committing.
You need a new enterprise - Existing GHEC enterprises cannot be converted. Plan for a migration, not an upgrade.
IdP is the source of truth - Your identity provider controls everything. Make sure it's properly configured before starting.
Test thoroughly - Do dry runs, pilot with small groups, and document everything.
Communicate early and often - User experience will change significantly. Prepare your teams.
Plan for the long tail - The migration itself is just the beginning. Budget time for cleanup, optimization, and support.
Get help if needed - GitHub Expert Services exists for a reason. Complex migrations benefit from experienced guidance.
Have questions about your EMU migration? Found something I missed? Reach out or leave a comment below. I'm always happy to help fellow engineers navigate enterprise GitHub.
Beta Was this translation helpful? Give feedback.
All reactions