Move Azure DevOps repositories to GitHub Enterprise Cloud with data residency while minimizing disruption
Over the last several years, we’ve encouraged customers to move their repositories from Azure Repos to GitHub to take advantage of the latest AI-powered and agentic development experiences. We know that making this move at enterprise scale isn’t always straightforward. Critical repositories can’t simply be taken offline for days, and large migrations often require complex coordination and extended development freezes.
ELM is designed to make these migrations more predictable, with minimal disruption to development. Migrations start while the Azure DevOps repository remains available to developers, and changes are continuously synchronized to GitHub Enterprise Cloud with data residency in the background. Teams can then schedule a cutover when they’re ready, with a final synchronization and a brief downtime window – typically less than 30 minutes for most repositories. This gives organizations the flexibility to migrate at their own pace, without requiring an all-at-once migration or an extended development freeze.
We’d also like to thank the customers who participated in our private preview and shared their feedback with us. Your input helped us improve ELM and shape the experience we’re making available today in public preview.
How ELM works
ELM is available through both the Azure DevOps CLI and web UI, giving teams the flexibility to automate migrations with scripts or use a guided experience. ELM provides a controlled, staged workflow:
- Validate: Confirm that the source repository is ready for migration.
- Synchronize: Migrate repository data and continuously sync changes while development continues.
- Cut over: Perform the final synchronization and complete the migration when the team is ready.


Please note that ELM supports GitHub Enterprise Cloud with data residency. It does not currently support standard GitHub Enterprise Cloud. The easiest way to identify which GitHub Enterprise Cloud offering you use is to check your GitHub URL:
- ghe.com: GitHub Enterprise Cloud with data residency (supported by ELM)
- github.com: Standard GitHub Enterprise Cloud (not currently supported by ELM)
What you can migrate with ELM
ELM supports:
- Repositories, commit history, branches, and tags
- Branch policies converted to GitHub rulesets
- Pull request metadata, comments, and user history
- Coordinated multi-repository migrations
ELM does not migrate work items, pipeline definitions, releases, wikis, test artifacts, or Azure Artifacts.
Continue using Azure DevOps where it makes sense
Moving your source code to GitHub doesn’t mean you have to move everything else at the same time. ELM helps organizations transition incrementally while keeping Azure DevOps and GitHub connected.
- Keep Azure Pipelines running: ELM can rewire Azure Pipelines to use the migrated GitHub repository. During migration, cloned pipelines let teams validate builds and deployments before cutover. At cutover, the original pipelines can be rewired to GitHub.
- Continue using Azure Boards: Teams can continue using Azure Boards for planning and work tracking while developers use GitHub for source control and pull requests.
Together, these capabilities let organizations move their repositories to GitHub while continuing to use Azure DevOps capabilities where they make sense, without requiring a big-bang migration.
Get started
Ready to start your migration journey? Visit https://aka.ms/adoELM to learn more, review prerequisites, and get started with Enterprise Live Migrations.
0 comments
Be the first to start the discussion.