<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>Blog | GitProtect.io</provider_name><provider_url>https://gitprotect.io/blog</provider_url><author_name>Wojciech Andryszek, Technical Content Writer at GitProtect.io</author_name><author_url>https://gitprotect.io/blog/author/wojciech-andryszek/</author_url><title>GitLab to Azure DevOps Migration - Blog | GitProtect.io</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="HBFthingOT"&gt;&lt;a href="https://gitprotect.io/blog/gitlab-to-azure-devops-migration/"&gt;GitLab to Azure DevOps Migration&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://gitprotect.io/blog/gitlab-to-azure-devops-migration/embed/#?secret=HBFthingOT" width="600" height="338" title="&#x201C;GitLab to Azure DevOps Migration&#x201D; &#x2014; Blog | GitProtect.io" data-secret="HBFthingOT" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script type="text/javascript"&gt;
/* &lt;![CDATA[ */
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
/* ]]&gt; */
&lt;/script&gt;
</html><thumbnail_url>https://gitprotect.io/blog/wp-content/uploads/2025/04/GItLab-Azure-DevOps-migration-1.png</thumbnail_url><thumbnail_width>1200</thumbnail_width><thumbnail_height>600</thumbnail_height><description>Switching from GitLab to Azure DevOps offers the opportunity to reconsider your processes, streamline your pipelines, and match your tools with your objectives. Primarily if your company uses Microsoft software. Still, more than just technical expertise is needed for such a migration. It includes a plan to handle any potential problems.</description></oembed>
