[{"data":1,"prerenderedAt":1018},["ShallowReactive",2],{"/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab":3,"navigation-en-us":234,"banner-en-us":661,"footer-en-us":671,"blog-post-authors-en-us-Magdalena Frankiewicz":914,"blog-related-posts-en-us-enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab":929,"blog-promotions-en-us":954,"next-steps-en-us":1008},{"id":4,"title":5,"authors":6,"body":8,"category":212,"date":213,"description":214,"extension":215,"externalUrl":216,"faq":216,"featured":217,"heroImage":218,"meta":219,"navigation":220,"path":221,"seo":222,"slug":226,"stem":227,"tags":228,"template":232,"updatedDate":216,"__hash__":233},"blogPosts/en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab.md","Enhanced migration from Bitbucket Server and Bitbucket Cloud to GitLab",[7],"Magdalena Frankiewicz",{"type":9,"value":10,"toc":201},"minimark",[11,25,34,37,40,45,48,51,71,74,82,85,89,92,100,103,108,117,131,135,138,153,168,172,187],[12,13,14],"p",{},[15,16,17,18,24],"em",{},"Atlassian is ending support for all Server products in February 2024. Learn more about the ",[19,20,23],"a",{"href":21,"rel":22},"https://about.gitlab.com/move-to-gitlab-from-atlassian/",[],"benefits of migrating from Atlassian to GitLab",".",[12,26,27,28,33],{},"Starting ",[19,29,32],{"href":30,"rel":31},"https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform/",[],"from February 15, 2024",", Atlassian will no longer offer technical support, security updates, or vulnerability fixes for their Server products, including Bitbucket Server.",[12,35,36],{},"Through improvements to our Bitbucket Server and Bitbucket Cloud importers, we've lowered the barrier to switch to GitLab, especially for large Bitbucket projects. We are happy to be able to offer a quick and effortless way to move your data to GitLab!",[12,38,39],{},"Let's take a look at some of these improvements.",[41,42,44],"h2",{"id":43},"improvements-to-imports-of-large-projects","Improvements to imports of large projects",[12,46,47],{},"GitLab has offered Bitbucket Server and Bitbucket Cloud importers for a long time. However, these importers operated sequentially in only one Sidekiq background job, which led to timeouts on imports of larger projects.",[12,49,50],{},"To solve the timeouts problem, we introduced parallel, asynchronous importers that split the work into smaller background jobs. This change was introduced in:",[52,53,54,63],"ul",{},[55,56,57,62],"li",{},[19,58,61],{"href":59,"rel":60},"https://gitlab.com/gitlab-org/gitlab/-/issues/411534",[],"GitLab 16.1"," for the Bitbucket Server importer",[55,64,65,70],{},[19,66,69],{"href":67,"rel":68},"https://gitlab.com/gitlab-org/gitlab/-/issues/412614",[],"GitLab 16.6"," for the Bitbucket Cloud importer",[12,72,73],{},"This change:",[52,75,76,79],{},[55,77,78],{},"ensures that the import process doesn’t time out on a single worker",[55,80,81],{},"spreads the number of calls we make to Bitbucket API, reducing the risk of running into rate limiting",[12,83,84],{},"We also improved error handling so that errors raised on single objects don't stop the whole import from completing.",[41,86,88],{"id":87},"more-improvements","More improvements",[12,90,91],{},"Refactoring importers to be parallel was a crucial improvement, but not the only one we have made to our importers. We also worked to:",[52,93,94,97],{},[55,95,96],{},"improve the integrity of imported data",[55,98,99],{},"extend the types of data that we import",[12,101,102],{},"Because Bitbucket Server and Bitbucket Cloud are separate products and require separate importers, the improvements we introduced differ for each importer. We describe them in the sub-sections below.",[104,105,107],"h3",{"id":106},"bitbucket-server-importer","Bitbucket Server importer",[12,109,110,111,116],{},"In GitLab 16.5, we ",[19,112,115],{"href":113,"rel":114},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131894",[],"fixed"," a problem when imported merged and closed merge requests had no commit data associated with them, leaving the diffs empty.",[12,118,119,120,125,126,24],{},"In Gitlab 16.3, we began ",[19,121,124],{"href":122,"rel":123},"https://gitlab.com/gitlab-org/gitlab/-/issues/416611",[],"importing reviewers"," and in Gitlab 16.6, we began importing ",[19,127,130],{"href":128,"rel":129},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135256",[],"pull request approvals",[104,132,134],{"id":133},"bitbucket-cloud-importer","Bitbucket Cloud importer",[12,136,137],{},"In GitLab 16.6, we fixed a problem that users encountered when a pull request on Bitbucket Cloud was squashed and merged, and the branch deleted. When these pull requests were imported to GitLab, the resulting merge requests didn't have associated commits. The problem was addressed by associating merge commits to imported merge requests.",[12,139,140,141,146,147,152],{},"Notes on issues and pull requests can contain references (links) to code, issues, comments, pull requests, and more. Previously, these were imported as is, which left comments with strangely formatted, unclickable links. We ",[19,142,145],{"href":143,"rel":144},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131382",[],"fixed this"," in GitLab 16.6 by converting refs to GitLab refs. Also, we ",[19,148,151],{"href":149,"rel":150},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133208",[],"no longer import deleted notes",", which caused data errors.",[12,154,155,156,161,162,167],{},"Also for the Bitbucket Cloud importer, we began ",[19,157,160],{"href":158,"rel":159},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133182",[],"importing LFS objects"," in GitLab 16.5 and ",[19,163,166],{"href":164,"rel":165},"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131134",[],"pull request reviewers"," in GitLab 16.6.",[41,169,171],{"id":170},"take-advantage-of-importers-today","Take advantage of importers today",[12,173,174,175,180,181,186],{},"With the improvements described, the experience of switching from Bitbucket Server or Bitbucket Cloud to the GitLab DevSecOps platform is better than ever! Check out the ",[19,176,179],{"href":177,"rel":178},"https://docs.gitlab.com/user/import/bitbucket_server/",[],"Bitbucket Server importer documentation"," or the ",[19,182,185],{"href":183,"rel":184},"https://docs.gitlab.com/user/import/bitbucket_cloud/",[],"Bitbucket Cloud importer documentation"," to get started today.",[12,188,189,190,194,195,200],{},"For GitLab self-managed instances, to benefit from parallel Bitbucket Cloud importer, administrators must enable the ",[191,192,193],"code",{},"bitbucket_parallel_importer"," ",[19,196,199],{"href":197,"rel":198},"https://docs.gitlab.com/administration/feature_flags/",[],"feature flag",". The Bitbucket Server importer is always parallel on GitLab self-managed and GitLab.com.",{"title":202,"searchDepth":203,"depth":203,"links":204},"",2,[205,206,211],{"id":43,"depth":203,"text":44},{"id":87,"depth":203,"text":88,"children":207},[208,210],{"id":106,"depth":209,"text":107},3,{"id":133,"depth":209,"text":134},{"id":170,"depth":203,"text":171},"devsecops","2023-11-30","Learn about performance improvements and more when migrating from Bitbucket Server and Cloud to GitLab.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668776/Blog/Hero%20Images/julia-craice-faCwTallTC0-unsplash.jpg",{},true,"/en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab",{"title":5,"description":214,"ogTitle":5,"ogDescription":214,"noIndex":217,"ogImage":218,"ogUrl":223,"ogSiteName":224,"ogType":225,"canonicalUrls":223},"https://about.gitlab.com/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab","https://about.gitlab.com","article","enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab","en-us/blog/enhanced-migration-from-bitbucket-server-and-bitbucket-cloud-to-gitlab",[229,230,231],"DevSecOps platform","DevOps platform","integrations","BlogPost","0DrrCFqyU1Vur4cKDJmj2rXqxRVWobPLSaw9pZ15tgs",{"logo":235,"freeTrial":240,"sales":245,"login":250,"items":255,"search":581,"minimal":612,"duo":631,"switchNav":640,"pricingDeployment":651},{"config":236},{"href":237,"dataGaName":238,"dataGaLocation":239},"/","gitlab logo","header",{"text":241,"config":242},"Get free trial",{"href":243,"dataGaName":244,"dataGaLocation":239},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":246,"config":247},"Request a demo",{"href":248,"dataGaName":249,"dataGaLocation":239},"/sales/?contact-topic=request-demo","sales",{"text":251,"config":252},"Sign in",{"href":253,"dataGaName":254,"dataGaLocation":239},"https://gitlab.com/users/sign_in/","sign in",[256,285,385,390,503,559],{"text":257,"config":258,"menu":260},"Platform",{"dataNavLevelOne":259},"platform",{"type":261,"columns":262},"cards",[263,269,277],{"title":257,"description":264,"link":265},"The intelligent orchestration platform for DevSecOps",{"text":266,"config":267},"Explore our Platform",{"href":268,"dataGaName":259,"dataGaLocation":239},"/platform/",{"title":270,"description":271,"link":272},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":273,"config":274},"Meet GitLab Duo",{"href":275,"dataGaName":276,"dataGaLocation":239},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":278,"description":279,"link":280},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":281,"config":282},"Learn more",{"href":283,"dataGaName":284,"dataGaLocation":239},"/why-gitlab/","why gitlab",{"text":286,"left":220,"config":287,"menu":289},"Product",{"dataNavLevelOne":288},"solutions",{"type":290,"link":291,"columns":295,"feature":364},"lists",{"text":292,"config":293},"View all Solutions",{"href":294,"dataGaName":288,"dataGaLocation":239},"/solutions/",[296,320,343],{"title":297,"description":298,"link":299,"items":304},"Automation","CI/CD and automation to accelerate deployment",{"config":300},{"icon":301,"href":302,"dataGaName":303,"dataGaLocation":239},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[305,309,312,316],{"text":306,"config":307},"CI/CD",{"href":308,"dataGaLocation":239,"dataGaName":306},"/solutions/continuous-integration/",{"text":270,"config":310},{"href":275,"dataGaLocation":239,"dataGaName":311},"gitlab duo agent platform - product menu",{"text":313,"config":314},"Source Code Management",{"href":315,"dataGaLocation":239,"dataGaName":313},"/solutions/source-code-management/",{"text":317,"config":318},"Automated Software Delivery",{"href":302,"dataGaLocation":239,"dataGaName":319},"Automated software delivery",{"title":321,"description":322,"link":323,"items":328},"Security","Deliver code faster without compromising security",{"config":324},{"href":325,"dataGaName":326,"dataGaLocation":239,"icon":327},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[329,333,338],{"text":330,"config":331},"Application Security Testing",{"href":325,"dataGaName":332,"dataGaLocation":239},"Application security testing",{"text":334,"config":335},"Software Supply Chain Security",{"href":336,"dataGaLocation":239,"dataGaName":337},"/solutions/supply-chain/","Software supply chain security",{"text":339,"config":340},"Software Compliance",{"href":341,"dataGaName":342,"dataGaLocation":239},"/solutions/software-compliance/","software compliance",{"title":344,"link":345,"items":350},"Measurement",{"config":346},{"icon":347,"href":348,"dataGaName":349,"dataGaLocation":239},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[351,355,359],{"text":352,"config":353},"Visibility & Measurement",{"href":348,"dataGaLocation":239,"dataGaName":354},"Visibility and Measurement",{"text":356,"config":357},"Value Stream Management",{"href":358,"dataGaLocation":239,"dataGaName":356},"/solutions/value-stream-management/",{"text":360,"config":361},"Analytics & Insights",{"href":362,"dataGaLocation":239,"dataGaName":363},"/solutions/analytics-and-insights/","Analytics and insights",{"title":365,"type":290,"items":366},"GitLab for",[367,373,379],{"text":368,"config":369},"Enterprise",{"icon":370,"href":371,"dataGaLocation":239,"dataGaName":372},"Building","/enterprise/","enterprise",{"text":374,"config":375},"Small Business",{"icon":376,"href":377,"dataGaLocation":239,"dataGaName":378},"Work","/small-business/","small business",{"text":380,"config":381},"Public Sector",{"icon":382,"href":383,"dataGaLocation":239,"dataGaName":384},"Organization","/solutions/public-sector/","public sector",{"text":386,"config":387},"Pricing",{"href":388,"dataGaName":389,"dataGaLocation":239,"dataNavLevelOne":389},"/pricing/","pricing",{"text":391,"config":392,"menu":394},"Resources",{"dataNavLevelOne":393},"resources",{"type":290,"link":395,"columns":399,"feature":492},{"text":396,"config":397},"View all resources",{"href":398,"dataGaName":393,"dataGaLocation":239},"/resources/",[400,432,459],{"title":401,"items":402},"Getting started",[403,408,413,418,423,428],{"text":404,"config":405},"Install",{"href":406,"dataGaName":407,"dataGaLocation":239},"/install/","install",{"text":409,"config":410},"Quick start guides",{"href":411,"dataGaName":412,"dataGaLocation":239},"/get-started/","quick setup checklists",{"text":414,"config":415},"Learn",{"href":416,"dataGaLocation":239,"dataGaName":417},"https://university.gitlab.com/","learn",{"text":419,"config":420},"Product documentation",{"href":421,"dataGaName":422,"dataGaLocation":239},"https://docs.gitlab.com/","product documentation",{"text":424,"config":425},"Best practice videos",{"href":426,"dataGaName":427,"dataGaLocation":239},"/getting-started-videos/","best practice videos",{"text":429,"config":430},"Integrations",{"href":431,"dataGaName":231,"dataGaLocation":239},"/integrations/",{"title":433,"items":434},"Discover",[435,440,445,450,454],{"text":436,"config":437},"Customer success stories",{"href":438,"dataGaName":439,"dataGaLocation":239},"/customers/","customer success stories",{"text":441,"config":442},"Blog",{"href":443,"dataGaName":444,"dataGaLocation":239},"/blog/","blog",{"text":446,"config":447},"Demo Hub",{"href":448,"dataGaName":449,"dataGaLocation":239},"/demo-hub/","demo hub",{"text":451,"config":452},"The Source",{"href":453,"dataGaName":444,"dataGaLocation":239},"/the-source/",{"text":455,"config":456},"Remote",{"href":457,"dataGaName":458,"dataGaLocation":239},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":460,"items":461},"Connect",[462,467,472,477,482,487],{"text":463,"config":464},"GitLab Services",{"href":465,"dataGaName":466,"dataGaLocation":239},"/services/","services",{"text":468,"config":469},"Contribute",{"href":470,"dataGaName":471,"dataGaLocation":239},"https://contributors.gitlab.com","contribute",{"text":473,"config":474},"Community",{"href":475,"dataGaName":476,"dataGaLocation":239},"/community/","community",{"text":478,"config":479},"Forum",{"href":480,"dataGaName":481,"dataGaLocation":239},"https://forum.gitlab.com/","forum",{"text":483,"config":484},"Events",{"href":485,"dataGaName":486,"dataGaLocation":239},"/events/","events",{"text":488,"config":489},"Partners",{"href":490,"dataGaName":491,"dataGaLocation":239},"/partners/","partners",{"config":493,"title":496,"text":497,"link":498},{"background":494,"textColor":495},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":499,"config":500},"Read the latest",{"href":501,"dataGaName":502,"dataGaLocation":239},"/whats-new/","whats new",{"text":504,"config":505,"menu":507},"Company",{"dataNavLevelOne":506},"company",{"type":290,"columns":508},[509],{"items":510},[511,516,522,524,529,534,539,544,549,554],{"text":512,"config":513},"About",{"href":514,"dataGaName":515,"dataGaLocation":239},"/company/","about",{"text":517,"config":518,"footerGa":521},"Jobs",{"href":519,"dataGaName":520,"dataGaLocation":239},"/jobs/","jobs",{"dataGaName":520},{"text":483,"config":523},{"href":485,"dataGaName":486,"dataGaLocation":239},{"text":525,"config":526},"Leadership",{"href":527,"dataGaName":528,"dataGaLocation":239},"/company/team/e-group/","leadership",{"text":530,"config":531},"Handbook",{"href":532,"dataGaName":533,"dataGaLocation":239},"https://handbook.gitlab.com/","handbook",{"text":535,"config":536},"Investor relations",{"href":537,"dataGaName":538,"dataGaLocation":239},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":540,"config":541},"Trust Center",{"href":542,"dataGaName":543,"dataGaLocation":239},"/security/","trust center",{"text":545,"config":546},"AI Transparency Center",{"href":547,"dataGaName":548,"dataGaLocation":239},"/ai-transparency-center/","ai transparency center",{"text":550,"config":551},"Newsletter",{"href":552,"dataGaName":553,"dataGaLocation":239},"/company/contact/#contact-forms","newsletter",{"text":555,"config":556},"Press",{"href":557,"dataGaName":558,"dataGaLocation":239},"/press/","press",{"text":560,"config":561,"menu":562},"Contact us",{"dataNavLevelOne":506},{"type":290,"columns":563},[564],{"items":565},[566,571,576],{"text":567,"config":568},"Talk to sales",{"href":569,"dataGaName":570,"dataGaLocation":239},"/sales/","talk to sales",{"text":572,"config":573},"Support portal",{"href":574,"dataGaName":575,"dataGaLocation":239},"https://support.gitlab.com/hc/en-us","support portal",{"text":577,"config":578},"Customer portal",{"href":579,"dataGaName":580,"dataGaLocation":239},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":582,"login":583,"suggestions":590},"Close",{"text":584,"link":585},"To search repositories and projects, login to",{"text":586,"config":587},"gitlab.com",{"href":253,"dataGaName":588,"dataGaLocation":589},"search login","search",{"text":591,"default":592},"Suggestions",[593,595,599,601,605,609],{"text":270,"config":594},{"href":275,"dataGaName":270,"dataGaLocation":589},{"text":596,"config":597},"Code Suggestions (AI)",{"href":598,"dataGaName":596,"dataGaLocation":589},"/solutions/code-suggestions/",{"text":306,"config":600},{"href":308,"dataGaName":306,"dataGaLocation":589},{"text":602,"config":603},"GitLab on AWS",{"href":604,"dataGaName":602,"dataGaLocation":589},"/partners/technology-partners/aws/",{"text":606,"config":607},"GitLab on Google Cloud",{"href":608,"dataGaName":606,"dataGaLocation":589},"/partners/technology-partners/google-cloud-platform/",{"text":610,"config":611},"Why GitLab?",{"href":283,"dataGaName":610,"dataGaLocation":589},{"freeTrial":613,"mobileIcon":618,"desktopIcon":623,"secondaryButton":626},{"text":614,"config":615},"Start free trial",{"href":616,"dataGaName":244,"dataGaLocation":617},"https://gitlab.com/-/trials/new/","nav",{"altText":619,"config":620},"Gitlab Icon",{"src":621,"dataGaName":622,"dataGaLocation":617},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":619,"config":624},{"src":625,"dataGaName":622,"dataGaLocation":617},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":627,"config":628},"Get Started",{"href":629,"dataGaName":630,"dataGaLocation":617},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":632,"mobileIcon":636,"desktopIcon":638},{"text":633,"config":634},"Learn more about GitLab Duo",{"href":275,"dataGaName":635,"dataGaLocation":617},"gitlab duo",{"altText":619,"config":637},{"src":621,"dataGaName":622,"dataGaLocation":617},{"altText":619,"config":639},{"src":625,"dataGaName":622,"dataGaLocation":617},{"button":641,"mobileIcon":646,"desktopIcon":648},{"text":642,"config":643},"/switch",{"href":644,"dataGaName":645,"dataGaLocation":617},"#contact","switch",{"altText":619,"config":647},{"src":621,"dataGaName":622,"dataGaLocation":617},{"altText":619,"config":649},{"src":650,"dataGaName":622,"dataGaLocation":617},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":652,"mobileIcon":657,"desktopIcon":659},{"text":653,"config":654},"Back to pricing",{"href":388,"dataGaName":655,"dataGaLocation":617,"icon":656},"back to pricing","GoBack",{"altText":619,"config":658},{"src":621,"dataGaName":622,"dataGaLocation":617},{"altText":619,"config":660},{"src":625,"dataGaName":622,"dataGaLocation":617},{"title":662,"titleMobile":663,"button":664,"config":669},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":281,"config":665},{"href":666,"dataGaName":667,"dataGaLocation":668},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":670,"disabled":217},"release",{"data":672},{"text":673,"source":674,"edit":680,"contribute":685,"config":690,"items":695,"minimal":903},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":675,"config":676},"View page source",{"href":677,"dataGaName":678,"dataGaLocation":679},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":681,"config":682},"Edit this page",{"href":683,"dataGaName":684,"dataGaLocation":679},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":686,"config":687},"Please contribute",{"href":688,"dataGaName":689,"dataGaLocation":679},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":691,"facebook":692,"youtube":693,"linkedin":694},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[696,743,795,839,871],{"title":386,"links":697,"subMenu":712},[698,702,707],{"text":699,"config":700},"View plans",{"href":388,"dataGaName":701,"dataGaLocation":679},"view plans",{"text":703,"config":704},"Why Premium?",{"href":705,"dataGaName":706,"dataGaLocation":679},"/pricing/premium/","why premium",{"text":708,"config":709},"Why Ultimate?",{"href":710,"dataGaName":711,"dataGaLocation":679},"/pricing/ultimate/","why ultimate",[713],{"title":714,"links":715},"Contact Us",[716,719,721,723,728,733,738],{"text":717,"config":718},"Contact sales",{"href":569,"dataGaName":249,"dataGaLocation":679},{"text":572,"config":720},{"href":574,"dataGaName":575,"dataGaLocation":679},{"text":577,"config":722},{"href":579,"dataGaName":580,"dataGaLocation":679},{"text":724,"config":725},"Status",{"href":726,"dataGaName":727,"dataGaLocation":679},"https://status.gitlab.com/","status",{"text":729,"config":730},"Terms of use",{"href":731,"dataGaName":732,"dataGaLocation":679},"/terms/","terms of use",{"text":734,"config":735},"Privacy statement",{"href":736,"dataGaName":737,"dataGaLocation":679},"/privacy/","privacy statement",{"text":739,"config":740},"Cookie preferences",{"dataGaName":741,"dataGaLocation":679,"id":742,"isOneTrustButton":220},"cookie preferences","ot-sdk-btn",{"title":286,"links":744,"subMenu":752},[745,748],{"text":229,"config":746},{"href":268,"dataGaName":747,"dataGaLocation":679},"devsecops platform",{"text":749,"config":750},"AI-Assisted Development",{"href":275,"dataGaName":751,"dataGaLocation":679},"ai-assisted development",[753],{"title":754,"links":755},"Topics",[756,761,766,771,776,780,785,790],{"text":757,"config":758},"CICD",{"href":759,"dataGaName":760,"dataGaLocation":679},"/topics/ci-cd/","cicd",{"text":762,"config":763},"GitOps",{"href":764,"dataGaName":765,"dataGaLocation":679},"/topics/gitops/","gitops",{"text":767,"config":768},"DevOps",{"href":769,"dataGaName":770,"dataGaLocation":679},"/topics/devops/","devops",{"text":772,"config":773},"Version Control",{"href":774,"dataGaName":775,"dataGaLocation":679},"/topics/version-control/","version control",{"text":777,"config":778},"DevSecOps",{"href":779,"dataGaName":212,"dataGaLocation":679},"/topics/devsecops/",{"text":781,"config":782},"Cloud Native",{"href":783,"dataGaName":784,"dataGaLocation":679},"/topics/cloud-native/","cloud native",{"text":786,"config":787},"AI for Coding",{"href":788,"dataGaName":789,"dataGaLocation":679},"/topics/devops/ai-for-coding/","ai for coding",{"text":791,"config":792},"Agentic AI",{"href":793,"dataGaName":794,"dataGaLocation":679},"/topics/agentic-ai/","agentic ai",{"title":796,"links":797},"Solutions",[798,800,802,807,811,814,818,821,823,826,829,834],{"text":330,"config":799},{"href":325,"dataGaName":330,"dataGaLocation":679},{"text":319,"config":801},{"href":302,"dataGaName":303,"dataGaLocation":679},{"text":803,"config":804},"Agile development",{"href":805,"dataGaName":806,"dataGaLocation":679},"/solutions/agile-delivery/","agile delivery",{"text":808,"config":809},"SCM",{"href":315,"dataGaName":810,"dataGaLocation":679},"source code management",{"text":757,"config":812},{"href":308,"dataGaName":813,"dataGaLocation":679},"continuous integration & delivery",{"text":815,"config":816},"Value stream management",{"href":358,"dataGaName":817,"dataGaLocation":679},"value stream management",{"text":762,"config":819},{"href":820,"dataGaName":765,"dataGaLocation":679},"/solutions/gitops/",{"text":368,"config":822},{"href":371,"dataGaName":372,"dataGaLocation":679},{"text":824,"config":825},"Small business",{"href":377,"dataGaName":378,"dataGaLocation":679},{"text":827,"config":828},"Public sector",{"href":383,"dataGaName":384,"dataGaLocation":679},{"text":830,"config":831},"Education",{"href":832,"dataGaName":833,"dataGaLocation":679},"/solutions/education/","education",{"text":835,"config":836},"Financial services",{"href":837,"dataGaName":838,"dataGaLocation":679},"/solutions/finance/","financial services",{"title":391,"links":840},[841,843,845,847,850,852,855,857,859,861,863,865,867,869],{"text":404,"config":842},{"href":406,"dataGaName":407,"dataGaLocation":679},{"text":409,"config":844},{"href":411,"dataGaName":412,"dataGaLocation":679},{"text":414,"config":846},{"href":416,"dataGaName":417,"dataGaLocation":679},{"text":419,"config":848},{"href":421,"dataGaName":849,"dataGaLocation":679},"docs",{"text":441,"config":851},{"href":443,"dataGaName":444,"dataGaLocation":679},{"text":853,"config":854},"What's new",{"href":501,"dataGaName":502,"dataGaLocation":679},{"text":436,"config":856},{"href":438,"dataGaName":439,"dataGaLocation":679},{"text":455,"config":858},{"href":457,"dataGaName":458,"dataGaLocation":679},{"text":463,"config":860},{"href":465,"dataGaName":466,"dataGaLocation":679},{"text":468,"config":862},{"href":470,"dataGaName":471,"dataGaLocation":679},{"text":473,"config":864},{"href":475,"dataGaName":476,"dataGaLocation":679},{"text":478,"config":866},{"href":480,"dataGaName":481,"dataGaLocation":679},{"text":483,"config":868},{"href":485,"dataGaName":486,"dataGaLocation":679},{"text":488,"config":870},{"href":490,"dataGaName":491,"dataGaLocation":679},{"title":504,"links":872},[873,875,877,879,881,883,887,892,894,896,898],{"text":512,"config":874},{"href":514,"dataGaName":506,"dataGaLocation":679},{"text":517,"config":876},{"href":519,"dataGaName":520,"dataGaLocation":679},{"text":525,"config":878},{"href":527,"dataGaName":528,"dataGaLocation":679},{"text":530,"config":880},{"href":532,"dataGaName":533,"dataGaLocation":679},{"text":535,"config":882},{"href":537,"dataGaName":538,"dataGaLocation":679},{"text":884,"config":885},"Sustainability",{"href":886,"dataGaName":884,"dataGaLocation":679},"/sustainability/",{"text":888,"config":889},"Diversity, inclusion and belonging (DIB)",{"href":890,"dataGaName":891,"dataGaLocation":679},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":540,"config":893},{"href":542,"dataGaName":543,"dataGaLocation":679},{"text":550,"config":895},{"href":552,"dataGaName":553,"dataGaLocation":679},{"text":555,"config":897},{"href":557,"dataGaName":558,"dataGaLocation":679},{"text":899,"config":900},"Modern Slavery Transparency Statement",{"href":901,"dataGaName":902,"dataGaLocation":679},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":904},[905,908,911],{"text":906,"config":907},"Terms",{"href":731,"dataGaName":732,"dataGaLocation":679},{"text":909,"config":910},"Cookies",{"dataGaName":741,"dataGaLocation":679,"id":742,"isOneTrustButton":220},{"text":912,"config":913},"Privacy",{"href":736,"dataGaName":737,"dataGaLocation":679},[915],{"id":916,"title":7,"body":216,"config":917,"content":919,"description":216,"extension":923,"meta":924,"navigation":220,"path":925,"seo":926,"stem":927,"__hash__":928},"blogAuthors/en-us/blog/authors/magdalena-frankiewicz.yml",{"template":918},"BlogAuthor",{"name":7,"config":920},{"headshot":921,"ctfId":922},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663511/Blog/Author%20Headshots/m_frankiewicz-headshot.jpg","mfrankiewicz","yml",{},"/en-us/blog/authors/magdalena-frankiewicz",{},"en-us/blog/authors/magdalena-frankiewicz","-GQ4d5chSnwwW7Mfv9YIYf2bgG5D8fpQeWQISvIn564",[930,938,946],{"title":931,"description":932,"heroImage":933,"category":212,"date":934,"authors":935,"slug":937,"externalUrl":216},"Consolidate your GitLab stack with Gitaly on Kubernetes","Discover how to install Gitaly on Kubernetes, which is now generally available.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756500636/wmey6kqzzuhirk88w2de.png","2026-05-07",[936],"Olivier Campeau","gitaly-on-kubernetes-generally-available",{"title":939,"description":940,"heroImage":941,"category":212,"date":942,"authors":943,"slug":945,"externalUrl":216},"Teaching software development the easy way using GitLab","Learn how University of Washington lecturer Stephen G. Dame uses GitLab for Education to manage student assignments, distribute course materials, and provide inline code feedback at scale.\n","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659537/Blog/Hero%20Images/display-article-image-0679-1800x945-fy26.png","2026-04-29",[944],"Rod Burns","teaching-software-development-the-easy-way-using-gitlab",{"title":947,"description":948,"heroImage":949,"category":212,"date":950,"authors":951,"slug":953,"externalUrl":216},"AI is reshaping DevSecOps: Attend GitLab Transcend to see what’s next","AI-generated code is 34% of development work. Discover how to balance productivity gains with quality, reliability, and security.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1767982271/e9ogyosmuummq7j65zqg.png","2026-01-08",[952],"Manav Khurana","ai-is-reshaping-devsecops-attend-gitlab-transcend-to-see-whats-next",{"promotions":955},[956,970,982,994],{"id":957,"categories":958,"header":960,"text":961,"button":962,"image":967},"ai-modernization",[959],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":963,"config":964},"Get your AI maturity score",{"href":965,"dataGaName":966,"dataGaLocation":444},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":968},{"src":969},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":971,"categories":972,"header":974,"text":961,"button":975,"image":979},"devops-modernization",[973,212],"product","Are you just managing tools or shipping innovation?",{"text":976,"config":977},"Get your DevOps maturity score",{"href":978,"dataGaName":966,"dataGaLocation":444},"/assessments/devops-modernization-assessment/",{"config":980},{"src":981},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":983,"categories":984,"header":986,"text":961,"button":987,"image":991},"security-modernization",[985],"security","Are you trading speed for security?",{"text":988,"config":989},"Get your security maturity score",{"href":990,"dataGaName":966,"dataGaLocation":444},"/assessments/security-modernization-assessment/",{"config":992},{"src":993},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":995,"paths":996,"header":999,"text":1000,"button":1001,"image":1006},"github-azure-migration",[997,998],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1002,"config":1003},"See how GitLab compares to GitHub",{"href":1004,"dataGaName":1005,"dataGaLocation":444},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1007},{"src":981},{"header":1009,"blurb":1010,"button":1011,"secondaryButton":1016},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1012,"config":1013},"Get your free trial",{"href":1014,"dataGaName":244,"dataGaLocation":1015},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":717,"config":1017},{"href":569,"dataGaName":249,"dataGaLocation":1015},1786803732219]