{"id":1649,"date":"2025-11-20T11:03:44","date_gmt":"2025-11-20T11:03:44","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/all-things-azure\/?p=1649"},"modified":"2025-11-20T20:56:02","modified_gmt":"2025-11-20T20:56:02","slug":"azure-devops-to-github-migration-playbook-unlocking-agentic-devops","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/all-things-azure\/azure-devops-to-github-migration-playbook-unlocking-agentic-devops\/","title":{"rendered":"Azure DevOps to GitHub migration Playbook: Unlocking Agentic DevOps"},"content":{"rendered":"<h2>Azure DevOps or GitHub Enterprise ?<\/h2>\n<p>Today, in the Microsoft ecosystem, two Software Development Lifecycle management platforms coexist:<\/p>\n<p>&#8211; <strong>Azure DevOps<\/strong> is designed from the ground up for enterprise with advanced planning features through Azure Boards, build and release automation with Azure Pipelines, and a unique offering for quality teams with Azure Test Plans&#8230;<\/p>\n<p>&#8211; <strong>GitHub<\/strong> has evolved with the open-source ecosystem, and its operation is naturally more centered around code repositories, visible by default, and the system of proactive contributions through Forks and Pull Requests. The platform has evolved to become a robust enterprise solution while maintaining a deliberately more open approach than Azure DevOps, offering an alternative to development teams.<\/p>\n<p>With more than <strong>180 million developers<\/strong> on GitHub in 2025, the platform is naturally at the center of developer innovations for several years with the rapid development of GitHub Copilot.<\/p>\n<p>GitHub copilot is the cornerstone of our <a href=\"https:\/\/azure.microsoft.com\/en-us\/blog\/agentic-devops-evolving-software-development-with-github-copilot-and-microsoft-azure\/?msockid=05c08916c14d6dd83abc9c0ec0a66c54\"><strong>Agentic DevOps vision<\/strong><\/a>. Most advanced capabilities of Copilot are exclusively on GitHub are currently not available on Azure DevOps if your code is not hosted on GitHub (except GitHub Copilot on the IDE).<\/p>\n<p>What if the ideal solution was to <strong>combine the strengths of both platforms <\/strong>?\nHost source code on GitHub to benefit from revolutionary AI capabilities, while <strong>continuing to use Azure Boards, Azure Pipelines, Azure Test Plans<\/strong>, and other proven Azure DevOps project management tools. This hybrid strategy, increasingly adopted by organizations, is actually the recommended trajectory for Azure DevOps users.<\/p>\n<p>In this article, we guide you, step by step, to migrate your repositories from Azure DevOps to GitHub while preserving all your history, metadata, and pipelines. Thanks to the deep integration between Azure DevOps and GitHub, you&#8217;ll activate the ultimate hybrid strategy.<\/p>\n<h2>Why Migrate to GitHub?<\/h2>\n<p><strong>GitHub is the AI Native SDLC Platform<\/strong><\/p>\n<ul>\n<li><strong>Copilot Coding Agent<\/strong>: Intelligent autonomous code generation based on project context<\/li>\n<li><strong>Agentic Code Review<\/strong>: Automatic detection of potential bugs, improvement suggestions<\/li>\n<li><strong>Copilot Chat<\/strong>: Contextual development assistant directly in your IDE<\/li>\n<li><strong>Agent HQ<\/strong>: AI control center to manage tasks from all your agents<\/li>\n<li><strong>Copilot Autofix<\/strong>: Automatic correction of detected vulnerabilities<\/li>\n<\/ul>\n<h4>Ecosystem and Integration<\/h4>\n<ul>\n<li><strong>GitHub Actions<\/strong>: Modern and flexible automation (CI\/CD and more) with a rich marketplace<\/li>\n<li><strong>GitHub Advanced Security<\/strong>: Vulnerability analysis, secret scanning, dependency review, and code quality<\/li>\n<li><strong>Apps and Integrations Marketplace<\/strong>: as the world #1 platform for developers, GitHub has integrations available to connect with all tools from your software development process, and by the way: Azure DevOps.<\/li>\n<\/ul>\n<p><strong>Enterprise development teams love Azure DevOps<\/strong><\/p>\n<p>It&#8217;s important to note that Azure DevOps still have big assets for him:<\/p>\n<ul>\n<li><strong>Azure Boards<\/strong>: Very complete and flexible enterprise project management system<\/li>\n<li><strong>Azure Pipelines<\/strong>: Powerful a stable CI\/CD automation engine (we&#8217;ll see how to maintain them later in this article)<\/li>\n<li><strong>Azure Test Plans<\/strong>: Manual and automated testing with detailed tracking<\/li>\n<li><strong>Azure Integration<\/strong>: Native connection with Azure services<\/li>\n<\/ul>\n<p>For many organizations, the ideal strategy is to migrate source code to GitHub while keeping Azure Boards for project management.\nYou thus have the best of both worlds: GitHub&#8217;s advanced AI for development and Azure DevOps&#8217; robustness for project management, with integration between the two platforms allowing AI to be integrated into all stages of the software development lifecycle.<\/p>\n<h4>Good news: The Unified Microsoft License<\/h4>\n<p>Since February 2025, <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/devops\/release-notes\/2025\/sprint-252-update\">the Basic Azure DevOps license is now included with GitHub Enterprise Cloud (GHEC)<\/a>. This means users can access both platforms <strong>without additional cost<\/strong>, provided they connect to Azure DevOps via Microsoft EntraID. Their access level is automatically updated to &#8220;GitHub Enterprise&#8221;, eliminating additional fees for Azure DevOps. This integration greatly simplifies the adoption of a hybrid approach, allowing enterprises to benefit from the best of both worlds.<\/p>\n<p>&nbsp;<\/p>\n<h2>Migration Playbook<\/h2>\n<h3>Prerequisites<\/h3>\n<p>Before starting the migration, make sure you have the following requirements:<\/p>\n<ul>\n<li>A workstation (Windows, macOS, or Linux) with network access to both <strong>GitHub<\/strong> and <strong>Azure DevOps<\/strong><\/li>\n<li>Some organizations have network restrictions or proxies that may block access to one or the other platform<\/li>\n<li>Verify that you can access both services from your machine.<\/li>\n<\/ul>\n<h4>Access and Permissions<\/h4>\n<p>To perform the entire migration and set up the hybrid approach presented in this article, you will need:<\/p>\n<p>On your Azure DevOps user account for the migration, you need:<\/p>\n<ul>\n<li>Administrator rights on the Azure DevOps organization (required to install GitHub Apps: Azure Pipelines and Azure Boards)<\/li>\n<li>Read access to the source repository for cloning<\/li>\n<li><strong>An Azure DevOps Personal Access Token<\/strong>: For authentication during migration script generation<\/li>\n<\/ul>\n<p>On GitHub:<\/p>\n<ul>\n<li>Repository creation rights in the organization or your personal account<\/li>\n<li>GitHub application installation rights (for Azure Pipelines and Azure Boards integrations)<\/li>\n<li><strong>A GitHub Personal Access Token<\/strong>: For authentication when cloning private repositories<\/li>\n<\/ul>\n<p><strong>\u26a0\ufe0f Important<\/strong>: Administrator rights on Azure DevOps are essential to install the GitHub Apps that will allow you to maintain your Azure Pipelines and Azure Boards while having the code on GitHub.<\/p>\n<h4>Tools Installed<\/h4>\n<p>You will need to install <strong>GitHub CLI (&#8216;gh&#8217;),<\/strong>\u00a0a powerful command-line tool for interacting with GitHub. Installation information is available on the <a href=\"https:\/\/cli.github.com\/manual\/\">official page<\/a>.<\/p>\n<p>Once installed, add the <strong>Azure DevOps to GitHub extension (&#8216;azdo2gh&#8217;)<\/strong> which facilitates the migration of Azure DevOps projects to GitHub. Install it via GitHub CLI:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\">gh extension install github\/gh-ado2gh<\/code><\/pre>\n<h3>Step 1: Set Environment variables<\/h3>\n<p>Configure the necessary environment variables for authentication:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Azure DevOps Token\r\n$env:ADO_PAT=\"YOUR_AZURE_DEVOPS_PAT\"\r\n# GitHub Token\r\n$env:GH_PAT=\"YOUR_GITHUB_PAT\"<\/code><\/pre>\n<p>\ud83d\udca1 Reminder: These tokens must have appropriate permissions (read on Azure DevOps, repository creation on GitHub).<\/p>\n<h3>Step 2: Install Azure Pipelines Application on GitHub<\/h3>\n<p>Before migrating your repositories, you need to install the <strong>Azure Pipelines<\/strong> application on your GitHub target organization(s). This application connects your Azure DevOps pipelines with your GitHub repositories, ensuring continuity of your CI\/CD processes after migration.<\/p>\n<p>Install the application from\u00a0<a href=\"https:\/\/github.com\/marketplace\/azure-pipelines\">the GitHub Marketplace<\/a><\/p>\n<p><strong>\u26a0\ufe0f Order is crucial<\/strong>: Install the Azure Pipelines application first, then migrate your repositories. This ensures that the migration script can automatically reconfigure your pipelines to point to GitHub.<\/p>\n<h3>Step 3: Migration Script Generation<\/h3>\n<h4>Communication and Planning<\/h4>\n<p>Before generating the script, prepare the ground to avoid any data loss or service interruption:<\/p>\n<ul>\n<li>Communicate with your teams: Notify them 1-2 weeks in advance<\/li>\n<li>Plan the migration: Prefer off-peak hours<\/li>\n<li>Identify dependencies: List integrations to reconfigure<\/li>\n<\/ul>\n<p>While technically the migration boils down to a <em>git remote<\/em>\u00a0change for developers, it&#8217;s essential to organize an information session. GitHub is widely used, but some team members may never have practiced it in a professional context.<\/p>\n<p>\ud83d\udcda Resources: <a href=\"https:\/\/learn.microsoft.com\/en-us\/training\/browse\/?terms=github\">Microsoft Learn<\/a> and <a href=\"https:\/\/resources.github.com\/learn\/pathways\/\">GitHub Learning Pathways<\/a> are full of great content to help you upskill your teams.<\/p>\n<h4>Azure DevOps Organization Inventory<\/h4>\n<p>The <em>ado2gh<\/em> extension can generates a complete migration script. Let&#8217;s start by inventorying your Azure DevOps organization using the <span style=\"color: #3366ff;\"><em>inventory-report<\/em><\/span> command<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Replace 'contoso-sdx' with your organization name\r\ngh ado2gh inventory-report --ado-org contoso-sdx<\/code><\/pre>\n<p>This command will generates 4 CSV files based on your PAT rights:<\/p>\n<ul>\n<li><em>orgs.csv<\/em>: List of accessible organizations<\/li>\n<li><em>pipelines.csv<\/em>: List of pipelines<\/li>\n<li><em>repos.csv<\/em>: List of all repositories &#8211; will be used in the next steps for migration<\/li>\n<li><em>team-projects.csv<\/em>: List of team projects<\/li>\n<\/ul>\n<h4>Script Generation<\/h4>\n<p>The <span style=\"color: #3366ff;\"><em>gh ado2gh generate-script<\/em><\/span> command creates a complete PowerShell script with several customization parameters available:<\/p>\n<p>Required parameters:<\/p>\n<ul>\n<li>&#8211;ado-org: Azure DevOps organization name<\/li>\n<li>&#8211;gh-org: Target GitHub organization name<\/li>\n<\/ul>\n<p>Main options:<\/p>\n<ul>\n<li>&#8211;output [FILE].ps1: Generated file name (default: <em>migrate.ps1<\/em>)<\/li>\n<li>&#8211;lock-ado-repo: Locks the source repository as read-only<\/li>\n<li>&#8211;create-teams: Creates Maintainers and Admins teams in GitHub<\/li>\n<li>&#8211;disable-ado-repos: Disables Azure DevOps repositories after migration<\/li>\n<li>&#8211;rewire-pipelines: Reconfigures pipelines to point to GitHub<\/li>\n<li>&#8211;all: Activates all the above options<\/li>\n<\/ul>\n<p>If you don&#8217;t want to migrate all repositories from a project, you can specify a targeted list. Create a CSV file containing the repositories to migrate (one per line) and use the <em>&#8211;repo-list repos.csv<\/em> option. The expected format match the <em>repos.csv<\/em> file generated during inventory step.<\/p>\n<p>Complete generation example:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Generate a script for all repositories in a project with all options\r\ngh ado2gh generate-script `\r\n--ado-org contoso-sdx `\r\n--ado-team-project my-project `\r\n--github-org contoso-sdx `\r\n--all<\/code><\/pre>\n<h4>Generated Script Analysis<\/h4>\n<p>Open the generated script in your code editor. The process integrate 6 steps:<\/p>\n<ol>\n<li>Prerequisites Verification &#8211; Verification of the presence of <em>ADO_PAT<\/em> and <em>GH_PAT<\/em>\u00a0environment variables &#8211; Validation that tokens are correctly configured for authentication<\/li>\n<li>GitHub Teams Creation &#8211; Automatic creation of GitHub teams with IdP (Identity Provider) group synchronization &#8211; Attribution of appropriate roles (code-reviewers, admins, etc.)<\/li>\n<li>Azure DevOps Service Connections Configuration &#8211; Preparation of integration between Azure Pipelines and GitHub repositories<\/li>\n<li>Repository Migration for each repository to migrate:\n<ul>\n<li>Source repository locking: Setting to read-only in Azure DevOps (<em>lock-ado-repo<\/em>)<\/li>\n<li>Migration launch: Using <em>migrate-repo<\/em> with the <em>&#8211;queue-only<\/em>\u00a0option to queue<\/li>\n<li>Migration ID storage: Retrieving the identifier for later tracking<\/li>\n<\/ul>\n<\/li>\n<li>Post-migration (for each repository) tasks once migration is complete:\n<ul>\n<li>Wait for migration completion: Status checking with <em>wait-for-migration<\/em><\/li>\n<li>Azure DevOps repository deactivation: Marking as obsolete (<em>disable-ado-repo<\/em>)<\/li>\n<li>GitHub permissions configuration: Adding teams with appropriate roles (<em>add-team-to-repo<\/em>)<\/li>\n<li>Log download: Retrieving migration logs for audit (<em>download-logs<\/em>)<\/li>\n<li>Pipeline rewiring: Changing pipeline source to GitHub (<em>rewire-pipeline<\/em>)<\/li>\n<\/ul>\n<\/li>\n<li>Summary Report\n<ul>\n<li>Counting successful and failed migrations<\/li>\n<li>Displaying final summary with total number of successes\/failures<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>\ud83d\udca1Information: The script uses a robust error management system. If a step fails for one repository, the process continues with the next ones instead of stopping completely.<\/p>\n<h3>Script Customization Before Execution<\/h3>\n<p>The generated script is now ready, but before executing it, take time to customize it according to your conventions and best practices:<\/p>\n<h4><strong>Naming Convention Verification<\/strong><\/h4>\n<ul>\n<li>Team names: Ensure team names match your organization<\/li>\n<li>Repository names: On GitHub, the <em>kebab-case<\/em> convention (dashes between words, lowercase only) is standard\n<ul>\n<li>The tool generates repositories with the same name as in Azure DevOps, prefixed by the project name<\/li>\n<li>Consider renaming them if necessary to respect GitHub conventions<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\ud83d\udca1 Tip: Use GitHub Copilot directly in your editor to modify the script and automatically apply a consistent naming convention to all your repositories!<\/p>\n<h4>Pre-execution Checklist<\/h4>\n<ul>\n<li>\u2705 Environment variables <em>ADO_PAT<\/em> and <em>GH_PAT<\/em>\u00a0configured<\/li>\n<li>\u2705 Azure Pipelines application installed on GitHub organization<\/li>\n<li>\u2705 Repository names verified and adjusted if necessary<\/li>\n<li>\u2705 Team names validated<\/li>\n<li>\u2705 Original script backup performed<\/li>\n<li>\u2705 Development teams notified of migration<\/li>\n<\/ul>\n<h3>Step 4: Migration Script Execution<\/h3>\n<p>You are now ready to execute the migration:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Execute the migration script\r\n.\\migrate.ps1<\/code><\/pre>\n<p><strong>And the magic happens!<\/strong>\u2728 Take the opportunity to grab a coffee while the script takes care of everything.<\/p>\n<p><strong>Estimated Migration Time<\/strong> per repository is 5 to 10 minutes on average depending on size and complexity of history. The complete organization migration time will vary depending on the number of repositories to migrate and their size<\/p>\n<h4>What is Preserved During Migration ?<\/h4>\n<p>The script migrates your source code while preserving:<\/p>\n<ul>\n<li>\u2705 Complete commit history<\/li>\n<li>\u2705 All branches<\/li>\n<li>\u2705 All tags &#8211;<\/li>\n<li>\u2705 Pull Request metadata (with Azure DevOps users)<\/li>\n<\/ul>\n<h4>User Management: &#8220;Mannequins&#8221;<\/h4>\n<p>Users referenced in Azure DevOps history may have different usernames on GitHub. The script then creates <strong><em>mannequins<\/em><\/strong> (placeholders) for these users. You can see these mannequins in the git history or in pull requests:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/mannequins-capture.webp\"><img decoding=\"async\" class=\"alignnone wp-image-1669\" src=\"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/mannequins-capture.webp\" alt=\"github mannequins on pull request\" width=\"400\" height=\"211\" srcset=\"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/mannequins-capture.webp 799w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/mannequins-capture-300x158.webp 300w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/mannequins-capture-768x405.webp 768w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>\ud83d\udca1 Tip: Mannequins can be claimed by real GitHub users after migration through a remapping process (see Step 5).<\/p>\n<p>Once the script is finished, you will see a detailed summary:<\/p>\n<ul>\n<li>\u2705 Number of successful migrations<\/li>\n<li>\u274c Number of failed migrations<\/li>\n<li>\ud83d\udccb Detailed logs for each repository In case of failure, consult the downloaded logs to diagnose the problem.<\/li>\n<\/ul>\n<h3>Step 5: Re-map mannequins to user accounts (Reclaim)<\/h3>\n<p>Once migration is complete, it&#8217;s important to manage the mannequins created for unrecognized users.<\/p>\n<p>Extracting the mannequin list:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Extract the mannequin list \r\ngh ado2gh generate-mannequin-csv --github-org contoso-sdx<\/code><\/pre>\n<p>You will get a <em>mannequins.csv<\/em> file containing:<\/p>\n<ul>\n<li>mannequin-user: Mannequin username on GitHub<\/li>\n<li>mannequin-id: Unique mannequin ID<\/li>\n<li>target-user: Real GitHub username (to be completed)<\/li>\n<\/ul>\n<p>Remapping process:<\/p>\n<ol>\n<li>Complete the <em>target-user<\/em>\u00a0column with the real GitHub usernames<\/li>\n<li>Launch the reclaim process:\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># Reclaim mannequins \r\ngh ado2gh reclaim-mannequin --github-org contoso-sdx --csv mannequins.csv<\/code><\/pre>\n<\/li>\n<li>An invitation will be sent to each user<\/li>\n<li>The user must accept it for the remapping to be effective<\/li>\n<\/ol>\n<p>\u26a0\ufe0f <strong>Important<\/strong>: Remapping can only be performed once per mannequin. Make sure the information is correct before launching the process.<\/p>\n<h4>Post-migration Communication<\/h4>\n<p>Inform your teams that the migration is complete and provide them with:<\/p>\n<ul>\n<li>New URLs of GitHub repositories<\/li>\n<li>Update procedure for their local Git configuration<\/li>\n<li>Mannequin remapping instructions (checking emails and accepting invitations)<\/li>\n<\/ul>\n<p>Command lines to remap local repository to the new origin:<\/p>\n<pre class=\"prettyprint language-default\"><code class=\"language-default\"># From a local repository directory \r\ncd path\/to\/your\/repo \r\n\r\n# Update the 'origin' remote URL \r\ngit remote set-url origin https:\/\/github.com\/YOUR_ORG\/YOUR_REPO.git \r\n\r\n# Verify the new configuration \r\ngit remote -v<\/code><\/pre>\n<p>\ud83d\udd04 Good news: Developers with ongoing local branches will be able to push their changes to the new GitHub repository without problem, the Git workflow remains identical.<\/p>\n<h3>Step 6: Post-migration Validation and Testing<\/h3>\n<p>Migration complete! \ud83c\udf89 Your repositories are now on GitHub, ready to exploit GitHub Copilot&#8217;s AI features while keeping your Azure DevOps tools.<\/p>\n<h4>Control Points<\/h4>\n<p>We strongly recommend that you:<\/p>\n<ul>\n<li>\u2705 Test your workflows: Verify that development processes work correctly<\/li>\n<li>\u2705 Explore new features: GitHub Copilot, Advanced Security, Projects<\/li>\n<li>\u2705 Validate security: Code reviews, branch protections, CI\/CD integrations<\/li>\n<li>\u2705 Verify pipelines: Ensure Azure Pipelines points to GitHub<\/li>\n<li>\u2705 Confirm permissions: Teams and access correctly configured<\/li>\n<\/ul>\n<h4>Validation Checklist<\/h4>\n<p>Here is a list of element to verify to ensure that your migration is complete and functional:<\/p>\n<ul>\n<li>\u2705All repositories are accessible on GitHub<\/li>\n<li>\u2705Branches and tags are present<\/li>\n<li>\u2705Azure DevOps pipelines are functional<\/li>\n<li>\u2705Mannequins have been reclaimed<\/li>\n<li>\u2705Teams have updated their local configurations<\/li>\n<li>\u2705Branch protections are configured<\/li>\n<li>\u2705Documentation has been updated<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Migration from Azure DevOps to GitHub with the GitHub <em>ado2gh<\/em> extension is a well-established process that preserves the entirety of your history while opening the door to GitHub Copilot&#8217;s AI features.<\/p>\n<h4>Key Takeaways<\/h4>\n<ul>\n<li>The hybrid approach allows combining the best of both platforms<\/li>\n<li>Preparation is essential: communication, planning, permissions<\/li>\n<li>Automation simplifies: a single script to migrate multiple repositories<\/li>\n<li>Continuity is guaranteed: pipelines, history, teams preserved<\/li>\n<li>AI becomes accessible: GitHub Copilot revolutionizes productivity<\/li>\n<\/ul>\n<h4>Credits<\/h4>\n<p>&nbsp;<\/p>\n<p>A big thank you to the co-author of this playbook: <a href=\"https:\/\/www.linkedin.com\/in\/aclerbois\/\">Adrien Clerbois &#8211; Microsoft MVP<\/a> that helped me review, refine and improve this playbook.<\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-1672\" src=\"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois.webp\" alt=\"Adrien Clerbois profile picture\" width=\"64\" height=\"64\" srcset=\"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois.webp 228w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois-150x150.webp 150w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois-24x24.webp 24w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois-48x48.webp 48w, https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-content\/uploads\/sites\/83\/2025\/11\/AClerbois-96x96.webp 96w\" sizes=\"(max-width: 64px) 100vw, 64px\" \/><\/p>\n<h4>Going Further<\/h4>\n<ul>\n<li><a href=\"https:\/\/build.microsoft.com\/en-US\/sessions\/BRK110\">Build Session: Making Azure DevOps and Github greater than the sum of their parts<\/a><\/li>\n<li><a href=\"https:\/\/docs.github.com\/en\/migrations\">GitHub Migration Guide on Github.com<\/a><\/li>\n<li><a href=\"https:\/\/docs.github.com\/en\/copilot\">GitHub Copilot &#8211; Documentation<\/a><\/li>\n<\/ul>\n<p>Migration your repositories to GitHub marks the beginning of a new era of productivity for your teams. Happy coding with GitHub Copilot! \ud83d\ude80<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Azure DevOps or GitHub Enterprise ? Today, in the Microsoft ecosystem, two Software Development Lifecycle management platforms coexist: &#8211; Azure DevOps is designed from the ground up for enterprise with advanced planning features through Azure Boards, build and release automation with Azure Pipelines, and a unique offering for quality teams with Azure Test Plans&#8230; &#8211; [&hellip;]<\/p>\n","protected":false},"author":201988,"featured_media":1743,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,20,100,91],"tags":[104,26,21,24],"class_list":["post-1649","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-developer-productivity","category-github","category-migration","tag-azure-devops","tag-ghe","tag-github","tag-github-enterprise"],"acf":[],"blog_post_summary":"<p>Azure DevOps or GitHub Enterprise ? Today, in the Microsoft ecosystem, two Software Development Lifecycle management platforms coexist: &#8211; Azure DevOps is designed from the ground up for enterprise with advanced planning features through Azure Boards, build and release automation with Azure Pipelines, and a unique offering for quality teams with Azure Test Plans&#8230; &#8211; [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/posts\/1649","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/users\/201988"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/comments?post=1649"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/posts\/1649\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/media\/1743"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/media?parent=1649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/categories?post=1649"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/all-things-azure\/wp-json\/wp\/v2\/tags?post=1649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}