[{"data":1,"prerenderedAt":1079},["ShallowReactive",2],{"/blog/gitlab-importers":3,"navigation-en-us":292,"banner-en-us":720,"footer-en-us":730,"blog-post-authors-en-us-Itzik Gan Baruch":974,"blog-related-posts-en-us-gitlab-importers":989,"blog-promotions-en-us":1015,"next-steps-en-us":1069},{"id":4,"title":5,"authors":6,"body":8,"category":270,"date":271,"description":272,"extension":273,"externalUrl":274,"faq":274,"featured":275,"heroImage":276,"meta":277,"navigation":278,"path":279,"seo":280,"slug":284,"stem":285,"tags":286,"template":290,"updatedDate":274,"__hash__":291},"blogPosts/en-us/blog/gitlab-importers.md","How to migrate data to GitLab using main importers",[7],"Itzik Gan Baruch",{"type":9,"value":10,"toc":256},"minimark",[11,15,18,23,26,31,46,54,58,61,85,92,96,105,113,117,125,134,138,205,213,221,225,233,240],[12,13,14],"p",{},"A typical organization looking to adopt GitLab already uses many other tools. Artifacts such as code, build pipelines, issues, and epics will already exist and be changed daily. A seamless transition of work in progress is, therefore, critically important when importing data. GitLab importers aim to make this process easy and reliable, ensuring data is imported quickly and with maximum care.",[12,16,17],{},"At GitLab, a dedicated development team, named group:import, creates a seamless experience when importing data into GitLab or from one GitLab instance to another. This team continuously develops and improves the importing experience and keeps our importers up to date with new features and capabilities.",[19,20,22],"h2",{"id":21},"migrate-groups-by-direct-transfer","Migrate groups by direct transfer",[12,24,25],{},"Using group migration, you can import groups from one GitLab instance to another instance. The most common use case is to import groups from self-managed GitLab instances to GitLab.com (GitLab SaaS). With the group migration, you can migrate many groups in a single click.",[27,28,30],"h3",{"id":29},"which-items-are-imported","Which items are imported?",[12,32,33,34,38,39,45],{},"The group migration imports the entire group structure, including all the sub groups and projects in them. Currently, to import projects as part of the group migration on self-managed GitLab, the administrator needs to enable the feature flag named ",[35,36,37],"code",{},"bulk_import_projects",". On GitLab.com, our SaaS offering, migration of both groups and projects is available. More information can be found in our ",[40,41,44],"a",{"href":42,"rel":43},"https://docs.gitlab.com/user/group/import/#migrate-groups-by-direct-transfer-recommended",[],"documentation",".",[12,47,48,49,45],{},"The team continuously adds objects to the migration, but not all group items are imported. The docs cover the ",[40,50,53],{"href":51,"rel":52},"https://docs.gitlab.com/user/group/import/#migrated-group-items",[],"items that are imported",[27,55,57],{"id":56},"how-can-groups-be-imported","How can groups be imported?",[12,59,60],{},"It is very simple to import groups between two instances. Here are the steps:",[62,63,64,68,71,79,82],"ul",{},[65,66,67],"li",{},"Create a new group or subgroup in the designated instance",[65,69,70],{},"Select \"Import group\"",[65,72,73,74],{},"Connect to the remote instance with your ",[40,75,78],{"href":76,"rel":77},"https://docs.gitlab.com/user/profile/personal_access_tokens/",[],"personal access token",[65,80,81],{},"Select the source groups you want to import",[65,83,84],{},"Click \"Import xyz groups\"",[12,86,87],{},[88,89],"img",{"alt":90,"src":91},"bulk_imports_v14_1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397734/blog/Content%20Images/2022-11-15-gitlab-importers/bulk_imports_v14_1.png",[19,93,95],{"id":94},"file-based-importexport-the-previously-used-method","File-based import/export (the previously used method)",[12,97,98,99,104],{},"Group migration is the preferred method to migrate content from one GitLab instance to another, as it automates the process and you can import many groups in a single click. However, for some use cases, such as air-gapped networks when you don't have network connection between the two instances, or when you have environments with limited connectivity, the group migration won't help because it requires connection between the two instances. File-based export/import for groups and ",[40,100,103],{"href":101,"rel":102},"https://docs.gitlab.com/user/project/settings/import_export/",[],"projects"," can be used when there is no connectivity between the instances.",[12,106,107,108,45],{},"File-based export/import is a manual process and requires a few steps in order to migrate each group or project. The file-based import/export is available from the UI and in the API. The team plans to disable it by a feature flag soon to encourage users to use group migration. However, you will be able to enable the feature flag in your instance if your use case requires the file-based import/export. More info can be found in this ",[40,109,112],{"href":110,"rel":111},"https://gitlab.com/gitlab-org/gitlab/-/issues/363406",[],"issue",[19,114,116],{"id":115},"import-projects-from-external-tools","Import projects from external tools",[12,118,119,120,45],{},"GitLab has built-in support for import projects from ",[40,121,124],{"href":122,"rel":123},"https://docs.gitlab.com/user/import/",[],"a variety of tools",[12,126,127,128,133],{},"The GitHub importer is the most common importer and, therefore, the team invests a lot of effort to add more migrated components. GitLab and GitHub have different structure and architecture, so sometimes it is tricky to import objects from GitHub when the migrated components are implemented differently in GitLab. So the team needs to find creative ways to map some of the features or configurations. This is an example ",[40,129,132],{"href":130,"rel":131},"https://gitlab.com/groups/gitlab-org/-/epics/8585",[],"epic"," with a proposal to map rules for protected branches when migrating GitHub protected rules.",[27,135,137],{"id":136},"what-can-be-imported-from-github-to-gitlab","What can be imported from GitHub to GitLab?",[62,139,140,143,146,149,152,155,158,161,164,167,170,187,190,193,196,199,202],{},[65,141,142],{},"Repository description",[65,144,145],{},"Git repository data",[65,147,148],{},"Branch protection rules",[65,150,151],{},"Issues",[65,153,154],{},"Pull requests",[65,156,157],{},"Wiki pages",[65,159,160],{},"Milestones",[65,162,163],{},"Labels",[65,165,166],{},"Pull request review comments",[65,168,169],{},"Regular issue and pull request comments",[65,171,172,173],{},"Attachments for\n",[62,174,175,178,181,184],{},[65,176,177],{},"Release notes",[65,179,180],{},"Comments and notes",[65,182,183],{},"Issue description",[65,185,186],{},"Merge Request description",[65,188,189],{},"Git Large File Storage (LFS) objects",[65,191,192],{},"Pull request reviews",[65,194,195],{},"Pull request “merged by” information",[65,197,198],{},"Pull request comments replies in discussions",[65,200,201],{},"Diff notes suggestions",[65,203,204],{},"Release note descriptions",[12,206,207,208,45],{},"Here is a ",[40,209,212],{"href":210,"rel":211},"https://docs.gitlab.com/user/project/import/github/#imported-data",[],"full list of imported data",[12,214,215,216,45],{},"Read what's next in our ",[40,217,220],{"href":218,"rel":219},"https://gitlab.com/groups/gitlab-org/-/epics/2984",[],"GitHub Epic",[27,222,224],{"id":223},"repository-by-url","Repository by URL",[12,226,227,228,232],{},"An alternative way to import external projects is the Repository by URL option. You can import any Git repository through HTTP from the ",[229,230,231],"em",{},"Import Project"," page, by choosing \"Repository by URL\".",[12,234,235,236,45],{},"To learn more about the Importer direction, roadmap, etc., refer to ",[40,237,239],{"href":122,"rel":238},[],"Category Direction - Importers",[12,241,242],{},[229,243,244,245,250,251],{},"Cover image by ",[40,246,249],{"href":247,"rel":248},"https://unsplash.com/@choys_?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyTex",[],"Conny Schneider"," on ",[40,252,255],{"href":253,"rel":254},"https://unsplash.com/s/photos/data-migration?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText",[],"Unsplash",{"title":257,"searchDepth":258,"depth":258,"links":259},"",2,[260,265,266],{"id":21,"depth":258,"text":22,"children":261},[262,264],{"id":29,"depth":263,"text":30},3,{"id":56,"depth":263,"text":57},{"id":94,"depth":258,"text":95},{"id":115,"depth":258,"text":116,"children":267},[268,269],{"id":136,"depth":263,"text":137},{"id":223,"depth":263,"text":224},"engineering","2023-02-13","Learn about the capabilities of main importers, which are used to import data from external tools and from other GitLab instances.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679170/Blog/Hero%20Images/migration-data.jpg",{},true,"/en-us/blog/gitlab-importers",{"title":5,"description":272,"ogTitle":5,"ogDescription":272,"noIndex":275,"ogImage":276,"ogUrl":281,"ogSiteName":282,"ogType":283,"canonicalUrls":281},"https://about.gitlab.com/blog/gitlab-importers","https://about.gitlab.com","article","gitlab-importers","en-us/blog/gitlab-importers",[287,288,289],"tutorial","DevOps","performance","BlogPost","WzJacl8YI0zt_2AJJ-f6HBptF_4YkAWdt2W8ybyxkT4",{"logo":293,"freeTrial":298,"sales":303,"login":308,"items":313,"search":640,"minimal":671,"duo":690,"switchNav":699,"pricingDeployment":710},{"config":294},{"href":295,"dataGaName":296,"dataGaLocation":297},"/","gitlab logo","header",{"text":299,"config":300},"Get free trial",{"href":301,"dataGaName":302,"dataGaLocation":297},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":304,"config":305},"Request a demo",{"href":306,"dataGaName":307,"dataGaLocation":297},"/sales/?contact-topic=request-demo","sales",{"text":309,"config":310},"Sign in",{"href":311,"dataGaName":312,"dataGaLocation":297},"https://gitlab.com/users/sign_in/","sign in",[314,343,443,448,562,618],{"text":315,"config":316,"menu":318},"Platform",{"dataNavLevelOne":317},"platform",{"type":319,"columns":320},"cards",[321,327,335],{"title":315,"description":322,"link":323},"The intelligent orchestration platform for DevSecOps",{"text":324,"config":325},"Explore our Platform",{"href":326,"dataGaName":317,"dataGaLocation":297},"/platform/",{"title":328,"description":329,"link":330},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":331,"config":332},"Meet GitLab Duo",{"href":333,"dataGaName":334,"dataGaLocation":297},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":336,"description":337,"link":338},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":339,"config":340},"Learn more",{"href":341,"dataGaName":342,"dataGaLocation":297},"/why-gitlab/","why gitlab",{"text":344,"left":278,"config":345,"menu":347},"Product",{"dataNavLevelOne":346},"solutions",{"type":348,"link":349,"columns":353,"feature":422},"lists",{"text":350,"config":351},"View all Solutions",{"href":352,"dataGaName":346,"dataGaLocation":297},"/solutions/",[354,378,401],{"title":355,"description":356,"link":357,"items":362},"Automation","CI/CD and automation to accelerate deployment",{"config":358},{"icon":359,"href":360,"dataGaName":361,"dataGaLocation":297},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[363,367,370,374],{"text":364,"config":365},"CI/CD",{"href":366,"dataGaLocation":297,"dataGaName":364},"/solutions/continuous-integration/",{"text":328,"config":368},{"href":333,"dataGaLocation":297,"dataGaName":369},"gitlab duo agent platform - product menu",{"text":371,"config":372},"Source Code Management",{"href":373,"dataGaLocation":297,"dataGaName":371},"/solutions/source-code-management/",{"text":375,"config":376},"Automated Software Delivery",{"href":360,"dataGaLocation":297,"dataGaName":377},"Automated software delivery",{"title":379,"description":380,"link":381,"items":386},"Security","Deliver code faster without compromising security",{"config":382},{"href":383,"dataGaName":384,"dataGaLocation":297,"icon":385},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[387,391,396],{"text":388,"config":389},"Application Security Testing",{"href":383,"dataGaName":390,"dataGaLocation":297},"Application security testing",{"text":392,"config":393},"Software Supply Chain Security",{"href":394,"dataGaLocation":297,"dataGaName":395},"/solutions/supply-chain/","Software supply chain security",{"text":397,"config":398},"Software Compliance",{"href":399,"dataGaName":400,"dataGaLocation":297},"/solutions/software-compliance/","software compliance",{"title":402,"link":403,"items":408},"Measurement",{"config":404},{"icon":405,"href":406,"dataGaName":407,"dataGaLocation":297},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[409,413,417],{"text":410,"config":411},"Visibility & Measurement",{"href":406,"dataGaLocation":297,"dataGaName":412},"Visibility and Measurement",{"text":414,"config":415},"Value Stream Management",{"href":416,"dataGaLocation":297,"dataGaName":414},"/solutions/value-stream-management/",{"text":418,"config":419},"Analytics & Insights",{"href":420,"dataGaLocation":297,"dataGaName":421},"/solutions/analytics-and-insights/","Analytics and insights",{"title":423,"type":348,"items":424},"GitLab for",[425,431,437],{"text":426,"config":427},"Enterprise",{"icon":428,"href":429,"dataGaLocation":297,"dataGaName":430},"Building","/enterprise/","enterprise",{"text":432,"config":433},"Small Business",{"icon":434,"href":435,"dataGaLocation":297,"dataGaName":436},"Work","/small-business/","small business",{"text":438,"config":439},"Public Sector",{"icon":440,"href":441,"dataGaLocation":297,"dataGaName":442},"Organization","/solutions/public-sector/","public sector",{"text":444,"config":445},"Pricing",{"href":446,"dataGaName":447,"dataGaLocation":297,"dataNavLevelOne":447},"/pricing/","pricing",{"text":449,"config":450,"menu":452},"Resources",{"dataNavLevelOne":451},"resources",{"type":348,"link":453,"columns":457,"feature":551},{"text":454,"config":455},"View all resources",{"href":456,"dataGaName":451,"dataGaLocation":297},"/resources/",[458,491,518],{"title":459,"items":460},"Getting started",[461,466,471,476,481,486],{"text":462,"config":463},"Install",{"href":464,"dataGaName":465,"dataGaLocation":297},"/install/","install",{"text":467,"config":468},"Quick start guides",{"href":469,"dataGaName":470,"dataGaLocation":297},"/get-started/","quick setup checklists",{"text":472,"config":473},"Learn",{"href":474,"dataGaLocation":297,"dataGaName":475},"https://university.gitlab.com/","learn",{"text":477,"config":478},"Product documentation",{"href":479,"dataGaName":480,"dataGaLocation":297},"https://docs.gitlab.com/","product documentation",{"text":482,"config":483},"Best practice videos",{"href":484,"dataGaName":485,"dataGaLocation":297},"/getting-started-videos/","best practice videos",{"text":487,"config":488},"Integrations",{"href":489,"dataGaName":490,"dataGaLocation":297},"/integrations/","integrations",{"title":492,"items":493},"Discover",[494,499,504,509,513],{"text":495,"config":496},"Customer success stories",{"href":497,"dataGaName":498,"dataGaLocation":297},"/customers/","customer success stories",{"text":500,"config":501},"Blog",{"href":502,"dataGaName":503,"dataGaLocation":297},"/blog/","blog",{"text":505,"config":506},"Demo Hub",{"href":507,"dataGaName":508,"dataGaLocation":297},"/demo-hub/","demo hub",{"text":510,"config":511},"The Source",{"href":512,"dataGaName":503,"dataGaLocation":297},"/the-source/",{"text":514,"config":515},"Remote",{"href":516,"dataGaName":517,"dataGaLocation":297},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":519,"items":520},"Connect",[521,526,531,536,541,546],{"text":522,"config":523},"GitLab Services",{"href":524,"dataGaName":525,"dataGaLocation":297},"/services/","services",{"text":527,"config":528},"Contribute",{"href":529,"dataGaName":530,"dataGaLocation":297},"https://contributors.gitlab.com","contribute",{"text":532,"config":533},"Community",{"href":534,"dataGaName":535,"dataGaLocation":297},"/community/","community",{"text":537,"config":538},"Forum",{"href":539,"dataGaName":540,"dataGaLocation":297},"https://forum.gitlab.com/","forum",{"text":542,"config":543},"Events",{"href":544,"dataGaName":545,"dataGaLocation":297},"/events/","events",{"text":547,"config":548},"Partners",{"href":549,"dataGaName":550,"dataGaLocation":297},"/partners/","partners",{"config":552,"title":555,"text":556,"link":557},{"background":553,"textColor":554},"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":558,"config":559},"Read the latest",{"href":560,"dataGaName":561,"dataGaLocation":297},"/whats-new/","whats new",{"text":563,"config":564,"menu":566},"Company",{"dataNavLevelOne":565},"company",{"type":348,"columns":567},[568],{"items":569},[570,575,581,583,588,593,598,603,608,613],{"text":571,"config":572},"About",{"href":573,"dataGaName":574,"dataGaLocation":297},"/company/","about",{"text":576,"config":577,"footerGa":580},"Jobs",{"href":578,"dataGaName":579,"dataGaLocation":297},"/jobs/","jobs",{"dataGaName":579},{"text":542,"config":582},{"href":544,"dataGaName":545,"dataGaLocation":297},{"text":584,"config":585},"Leadership",{"href":586,"dataGaName":587,"dataGaLocation":297},"/company/team/e-group/","leadership",{"text":589,"config":590},"Handbook",{"href":591,"dataGaName":592,"dataGaLocation":297},"https://handbook.gitlab.com/","handbook",{"text":594,"config":595},"Investor relations",{"href":596,"dataGaName":597,"dataGaLocation":297},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":599,"config":600},"Trust Center",{"href":601,"dataGaName":602,"dataGaLocation":297},"/security/","trust center",{"text":604,"config":605},"AI Transparency Center",{"href":606,"dataGaName":607,"dataGaLocation":297},"/ai-transparency-center/","ai transparency center",{"text":609,"config":610},"Newsletter",{"href":611,"dataGaName":612,"dataGaLocation":297},"/company/contact/#contact-forms","newsletter",{"text":614,"config":615},"Press",{"href":616,"dataGaName":617,"dataGaLocation":297},"/press/","press",{"text":619,"config":620,"menu":621},"Contact us",{"dataNavLevelOne":565},{"type":348,"columns":622},[623],{"items":624},[625,630,635],{"text":626,"config":627},"Talk to sales",{"href":628,"dataGaName":629,"dataGaLocation":297},"/sales/","talk to sales",{"text":631,"config":632},"Support portal",{"href":633,"dataGaName":634,"dataGaLocation":297},"https://support.gitlab.com/hc/en-us","support portal",{"text":636,"config":637},"Customer portal",{"href":638,"dataGaName":639,"dataGaLocation":297},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":641,"login":642,"suggestions":649},"Close",{"text":643,"link":644},"To search repositories and projects, login to",{"text":645,"config":646},"gitlab.com",{"href":311,"dataGaName":647,"dataGaLocation":648},"search login","search",{"text":650,"default":651},"Suggestions",[652,654,658,660,664,668],{"text":328,"config":653},{"href":333,"dataGaName":328,"dataGaLocation":648},{"text":655,"config":656},"Code Suggestions (AI)",{"href":657,"dataGaName":655,"dataGaLocation":648},"/solutions/code-suggestions/",{"text":364,"config":659},{"href":366,"dataGaName":364,"dataGaLocation":648},{"text":661,"config":662},"GitLab on AWS",{"href":663,"dataGaName":661,"dataGaLocation":648},"/partners/technology-partners/aws/",{"text":665,"config":666},"GitLab on Google Cloud",{"href":667,"dataGaName":665,"dataGaLocation":648},"/partners/technology-partners/google-cloud-platform/",{"text":669,"config":670},"Why GitLab?",{"href":341,"dataGaName":669,"dataGaLocation":648},{"freeTrial":672,"mobileIcon":677,"desktopIcon":682,"secondaryButton":685},{"text":673,"config":674},"Start free trial",{"href":675,"dataGaName":302,"dataGaLocation":676},"https://gitlab.com/-/trials/new/","nav",{"altText":678,"config":679},"Gitlab Icon",{"src":680,"dataGaName":681,"dataGaLocation":676},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":678,"config":683},{"src":684,"dataGaName":681,"dataGaLocation":676},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":686,"config":687},"Get Started",{"href":688,"dataGaName":689,"dataGaLocation":676},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":691,"mobileIcon":695,"desktopIcon":697},{"text":692,"config":693},"Learn more about GitLab Duo",{"href":333,"dataGaName":694,"dataGaLocation":676},"gitlab duo",{"altText":678,"config":696},{"src":680,"dataGaName":681,"dataGaLocation":676},{"altText":678,"config":698},{"src":684,"dataGaName":681,"dataGaLocation":676},{"button":700,"mobileIcon":705,"desktopIcon":707},{"text":701,"config":702},"/switch",{"href":703,"dataGaName":704,"dataGaLocation":676},"#contact","switch",{"altText":678,"config":706},{"src":680,"dataGaName":681,"dataGaLocation":676},{"altText":678,"config":708},{"src":709,"dataGaName":681,"dataGaLocation":676},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":711,"mobileIcon":716,"desktopIcon":718},{"text":712,"config":713},"Back to pricing",{"href":446,"dataGaName":714,"dataGaLocation":676,"icon":715},"back to pricing","GoBack",{"altText":678,"config":717},{"src":680,"dataGaName":681,"dataGaLocation":676},{"altText":678,"config":719},{"src":684,"dataGaName":681,"dataGaLocation":676},{"title":721,"titleMobile":722,"button":723,"config":728},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":339,"config":724},{"href":725,"dataGaName":726,"dataGaLocation":727},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":729,"disabled":275},"release",{"data":731},{"text":732,"source":733,"edit":739,"contribute":744,"config":749,"items":754,"minimal":963},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":734,"config":735},"View page source",{"href":736,"dataGaName":737,"dataGaLocation":738},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":740,"config":741},"Edit this page",{"href":742,"dataGaName":743,"dataGaLocation":738},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":745,"config":746},"Please contribute",{"href":747,"dataGaName":748,"dataGaLocation":738},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":750,"facebook":751,"youtube":752,"linkedin":753},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[755,802,855,899,931],{"title":444,"links":756,"subMenu":771},[757,761,766],{"text":758,"config":759},"View plans",{"href":446,"dataGaName":760,"dataGaLocation":738},"view plans",{"text":762,"config":763},"Why Premium?",{"href":764,"dataGaName":765,"dataGaLocation":738},"/pricing/premium/","why premium",{"text":767,"config":768},"Why Ultimate?",{"href":769,"dataGaName":770,"dataGaLocation":738},"/pricing/ultimate/","why ultimate",[772],{"title":773,"links":774},"Contact Us",[775,778,780,782,787,792,797],{"text":776,"config":777},"Contact sales",{"href":628,"dataGaName":307,"dataGaLocation":738},{"text":631,"config":779},{"href":633,"dataGaName":634,"dataGaLocation":738},{"text":636,"config":781},{"href":638,"dataGaName":639,"dataGaLocation":738},{"text":783,"config":784},"Status",{"href":785,"dataGaName":786,"dataGaLocation":738},"https://status.gitlab.com/","status",{"text":788,"config":789},"Terms of use",{"href":790,"dataGaName":791,"dataGaLocation":738},"/terms/","terms of use",{"text":793,"config":794},"Privacy statement",{"href":795,"dataGaName":796,"dataGaLocation":738},"/privacy/","privacy statement",{"text":798,"config":799},"Cookie preferences",{"dataGaName":800,"dataGaLocation":738,"id":801,"isOneTrustButton":278},"cookie preferences","ot-sdk-btn",{"title":344,"links":803,"subMenu":812},[804,808],{"text":805,"config":806},"DevSecOps platform",{"href":326,"dataGaName":807,"dataGaLocation":738},"devsecops platform",{"text":809,"config":810},"AI-Assisted Development",{"href":333,"dataGaName":811,"dataGaLocation":738},"ai-assisted development",[813],{"title":814,"links":815},"Topics",[816,821,826,830,835,840,845,850],{"text":817,"config":818},"CICD",{"href":819,"dataGaName":820,"dataGaLocation":738},"/topics/ci-cd/","cicd",{"text":822,"config":823},"GitOps",{"href":824,"dataGaName":825,"dataGaLocation":738},"/topics/gitops/","gitops",{"text":288,"config":827},{"href":828,"dataGaName":829,"dataGaLocation":738},"/topics/devops/","devops",{"text":831,"config":832},"Version Control",{"href":833,"dataGaName":834,"dataGaLocation":738},"/topics/version-control/","version control",{"text":836,"config":837},"DevSecOps",{"href":838,"dataGaName":839,"dataGaLocation":738},"/topics/devsecops/","devsecops",{"text":841,"config":842},"Cloud Native",{"href":843,"dataGaName":844,"dataGaLocation":738},"/topics/cloud-native/","cloud native",{"text":846,"config":847},"AI for Coding",{"href":848,"dataGaName":849,"dataGaLocation":738},"/topics/devops/ai-for-coding/","ai for coding",{"text":851,"config":852},"Agentic AI",{"href":853,"dataGaName":854,"dataGaLocation":738},"/topics/agentic-ai/","agentic ai",{"title":856,"links":857},"Solutions",[858,860,862,867,871,874,878,881,883,886,889,894],{"text":388,"config":859},{"href":383,"dataGaName":388,"dataGaLocation":738},{"text":377,"config":861},{"href":360,"dataGaName":361,"dataGaLocation":738},{"text":863,"config":864},"Agile development",{"href":865,"dataGaName":866,"dataGaLocation":738},"/solutions/agile-delivery/","agile delivery",{"text":868,"config":869},"SCM",{"href":373,"dataGaName":870,"dataGaLocation":738},"source code management",{"text":817,"config":872},{"href":366,"dataGaName":873,"dataGaLocation":738},"continuous integration & delivery",{"text":875,"config":876},"Value stream management",{"href":416,"dataGaName":877,"dataGaLocation":738},"value stream management",{"text":822,"config":879},{"href":880,"dataGaName":825,"dataGaLocation":738},"/solutions/gitops/",{"text":426,"config":882},{"href":429,"dataGaName":430,"dataGaLocation":738},{"text":884,"config":885},"Small business",{"href":435,"dataGaName":436,"dataGaLocation":738},{"text":887,"config":888},"Public sector",{"href":441,"dataGaName":442,"dataGaLocation":738},{"text":890,"config":891},"Education",{"href":892,"dataGaName":893,"dataGaLocation":738},"/solutions/education/","education",{"text":895,"config":896},"Financial services",{"href":897,"dataGaName":898,"dataGaLocation":738},"/solutions/finance/","financial services",{"title":449,"links":900},[901,903,905,907,910,912,915,917,919,921,923,925,927,929],{"text":462,"config":902},{"href":464,"dataGaName":465,"dataGaLocation":738},{"text":467,"config":904},{"href":469,"dataGaName":470,"dataGaLocation":738},{"text":472,"config":906},{"href":474,"dataGaName":475,"dataGaLocation":738},{"text":477,"config":908},{"href":479,"dataGaName":909,"dataGaLocation":738},"docs",{"text":500,"config":911},{"href":502,"dataGaName":503,"dataGaLocation":738},{"text":913,"config":914},"What's new",{"href":560,"dataGaName":561,"dataGaLocation":738},{"text":495,"config":916},{"href":497,"dataGaName":498,"dataGaLocation":738},{"text":514,"config":918},{"href":516,"dataGaName":517,"dataGaLocation":738},{"text":522,"config":920},{"href":524,"dataGaName":525,"dataGaLocation":738},{"text":527,"config":922},{"href":529,"dataGaName":530,"dataGaLocation":738},{"text":532,"config":924},{"href":534,"dataGaName":535,"dataGaLocation":738},{"text":537,"config":926},{"href":539,"dataGaName":540,"dataGaLocation":738},{"text":542,"config":928},{"href":544,"dataGaName":545,"dataGaLocation":738},{"text":547,"config":930},{"href":549,"dataGaName":550,"dataGaLocation":738},{"title":563,"links":932},[933,935,937,939,941,943,947,952,954,956,958],{"text":571,"config":934},{"href":573,"dataGaName":565,"dataGaLocation":738},{"text":576,"config":936},{"href":578,"dataGaName":579,"dataGaLocation":738},{"text":584,"config":938},{"href":586,"dataGaName":587,"dataGaLocation":738},{"text":589,"config":940},{"href":591,"dataGaName":592,"dataGaLocation":738},{"text":594,"config":942},{"href":596,"dataGaName":597,"dataGaLocation":738},{"text":944,"config":945},"Sustainability",{"href":946,"dataGaName":944,"dataGaLocation":738},"/sustainability/",{"text":948,"config":949},"Diversity, inclusion and belonging (DIB)",{"href":950,"dataGaName":951,"dataGaLocation":738},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":599,"config":953},{"href":601,"dataGaName":602,"dataGaLocation":738},{"text":609,"config":955},{"href":611,"dataGaName":612,"dataGaLocation":738},{"text":614,"config":957},{"href":616,"dataGaName":617,"dataGaLocation":738},{"text":959,"config":960},"Modern Slavery Transparency Statement",{"href":961,"dataGaName":962,"dataGaLocation":738},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":964},[965,968,971],{"text":966,"config":967},"Terms",{"href":790,"dataGaName":791,"dataGaLocation":738},{"text":969,"config":970},"Cookies",{"dataGaName":800,"dataGaLocation":738,"id":801,"isOneTrustButton":278},{"text":972,"config":973},"Privacy",{"href":795,"dataGaName":796,"dataGaLocation":738},[975],{"id":976,"title":7,"body":274,"config":977,"content":979,"description":274,"extension":983,"meta":984,"navigation":278,"path":985,"seo":986,"stem":987,"__hash__":988},"blogAuthors/en-us/blog/authors/itzik-gan-baruch.yml",{"template":978},"BlogAuthor",{"name":7,"config":980},{"headshot":981,"ctfId":982},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch","yml",{},"/en-us/blog/authors/itzik-gan-baruch",{},"en-us/blog/authors/itzik-gan-baruch","bz9VMiTQ1ixvnoxUFk0jiUcnLG3oQsymgXNCqyRqfsk",[990,999,1007],{"title":991,"description":992,"heroImage":993,"category":270,"date":994,"authors":995,"slug":998,"externalUrl":274},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[996,997],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":1000,"description":1001,"heroImage":1002,"category":270,"date":1003,"authors":1004,"slug":1006,"externalUrl":274},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[1005],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":1008,"description":1009,"heroImage":1010,"category":270,"date":1011,"authors":1012,"slug":1014,"externalUrl":274},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[1013],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":1016},[1017,1031,1043,1055],{"id":1018,"categories":1019,"header":1021,"text":1022,"button":1023,"image":1028},"ai-modernization",[1020],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1024,"config":1025},"Get your AI maturity score",{"href":1026,"dataGaName":1027,"dataGaLocation":503},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1029},{"src":1030},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1032,"categories":1033,"header":1035,"text":1022,"button":1036,"image":1040},"devops-modernization",[1034,839],"product","Are you just managing tools or shipping innovation?",{"text":1037,"config":1038},"Get your DevOps maturity score",{"href":1039,"dataGaName":1027,"dataGaLocation":503},"/assessments/devops-modernization-assessment/",{"config":1041},{"src":1042},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1044,"categories":1045,"header":1047,"text":1022,"button":1048,"image":1052},"security-modernization",[1046],"security","Are you trading speed for security?",{"text":1049,"config":1050},"Get your security maturity score",{"href":1051,"dataGaName":1027,"dataGaLocation":503},"/assessments/security-modernization-assessment/",{"config":1053},{"src":1054},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1056,"paths":1057,"header":1060,"text":1061,"button":1062,"image":1067},"github-azure-migration",[1058,1059],"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":1063,"config":1064},"See how GitLab compares to GitHub",{"href":1065,"dataGaName":1066,"dataGaLocation":503},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1068},{"src":1042},{"header":1070,"blurb":1071,"button":1072,"secondaryButton":1077},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1073,"config":1074},"Get your free trial",{"href":1075,"dataGaName":302,"dataGaLocation":1076},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":776,"config":1078},{"href":628,"dataGaName":307,"dataGaLocation":1076},1786803760654]