[{"data":1,"prerenderedAt":979},["ShallowReactive",2],{"/blog/cognitive-logic-talks-migrating-to-gitlab":3,"navigation-en-us":195,"banner-en-us":621,"footer-en-us":631,"blog-post-authors-en-us-Emily von Hoffmann":875,"blog-related-posts-en-us-cognitive-logic-talks-migrating-to-gitlab":891,"blog-promotions-en-us":915,"next-steps-en-us":969},{"id":4,"title":5,"authors":6,"body":8,"category":160,"date":161,"description":162,"extension":163,"externalUrl":164,"faq":164,"featured":165,"heroImage":166,"meta":167,"navigation":185,"path":186,"seo":187,"slug":191,"stem":192,"tags":164,"template":193,"updatedDate":164,"__hash__":194},"blogPosts/en-us/blog/cognitive-logic-talks-migrating-to-gitlab.md","Customer Story: Data startup Cognitive Logic talks migrating to GitLab",[7],"Emily von Hoffmann",{"type":9,"value":10,"toc":156},"minimark",[11,22,25,38,59,65,71,76,81,84,89,94,99,104,109,114,126,141],[12,13,14,15,21],"p",{},"Data analytics startup ",[16,17,20],"a",{"href":18,"rel":19},"http://www.cognitivelogic.com/",[],"Cognitive Logic"," helps companies store, share, and examine consumer information without compromising security. I sat down with engineer Johan Brandhorst to learn more about his team, their work, and how GitLab helps.",[12,23,24],{},"Three of our offerings in particular drove Cognitive Logic's decision to switch to GitLab:",[26,27,28,32,35],"ul",{},[29,30,31],"li",{},"Validated Merge Requests",[29,33,34],{},"Easily Configurable CI",[29,36,37],{},"Easy migration from GitHub",[12,39,40,41,46,47,52,53,58],{},"Johan also told me that his team's biggest challenge with GitLab is that it can be difficult to orchestrate CI between repositories; he says they're looking forward to being able to chain testing between repositories. A fix is in the works - in typical fashion, minutes after I posted his query on Slack our Head of Product, ",[16,42,45],{"href":43,"rel":44},"https://twitter.com/MarkPundsack",[],"Mark Pundsack",", wrote back that we have ",[16,48,51],{"href":49,"rel":50},"https://docs.gitlab.com/ci/triggers/",[],"existing functionality"," that allows one pipeline to trigger another pipeline in a different project. There are also several ",[16,54,57],{"href":55,"rel":56},"https://gitlab.com/gitlab-org/gitlab-ee/issues/933",[],"issues"," open to make this better.",[12,60,61],{},[62,63,64],"strong",{},"Could you please explain for our readers what the dev team at Cognitive Logic does? What kinds of projects do you work on?",[12,66,67,70],{},[62,68,69],{},"Johan:"," We’re working on connecting large datasets while maintaining customer privacy. Our platform is built on docker and golang microservices with a React/node.js frontend. We use gRPC for communications between services and protobuffers for backwards compatible messages. We maintain a container for our build environment and compile static binaries which can be run in a minimal docker container. The whole system runs on a cloud service provider.",[12,72,73],{},[62,74,75],{},"You currently have 10 devs using GitLab — could you elaborate on the makeup of the team, and what your workflow is like?",[12,77,78,80],{},[62,79,69],{}," We have a high focus on engineering; engineers have control over what they want to work on and what they consider the most important to work on at the time. As an engineer, it’s a very liberating and enjoyable experience. We maintain a startup culture with a pool table, a couple of consoles in the meeting room with a 4K TV, board games and company events every now and then. It’s a great place to work (we’re hiring!).",[12,82,83],{},"We try to raise issues when features or bugs arise, then triage in a branch, submit a merge request, have it approved by another engineer before being merged back into master. Validated merge requests means we’re not afraid of merging straight into master as we try to do as much testing and validation as possible at merge request time. In the future we are going to try to set up staging environments and merge request environments for complete system validation at merge request time.",[12,85,86],{},[62,87,88],{},"Which features or capabilities of GitLab has your team used the most? Is there anything you feel you can do with GitLab that you can't accomplish with other tools?",[12,90,91,93],{},[62,92,69],{}," Definitely the validated merge request system. It has helped us ensure consistently passing tests and linting tools to maintain the quality of the codebase. The GitLab docker registry has also been very useful for storing the output of our builds and provide a central point from which to fetch those builds.",[12,95,96],{},[62,97,98],{},"What were the major problems you were trying to solve with your previous version control system, if you used one?",[12,100,101,103],{},[62,102,69],{}," We were using Github for VCS before moving to GitLab earlier this year. I came from a company where we had rolled our own CI solution while running our own VCS server and I knew how much time it takes to run a system like that reliably, so when I started at Cognitive Logic I was conscious about trying to make good choices for VCS early on. This lead me to look at GitLab as I wanted something with easy CI and validated merge request capabilities to ensure maintained code quality. GitLab was perfect in this regard and we made the switch from Github.com to GitLab.com about 6 months ago. The major difference between GitLab and Github was the easily configurable CI.",[12,105,106],{},[62,107,108],{},"How have developers responded to migrating to GitLab? Have there been any unforeseen challenges or obstacles?",[12,110,111,113],{},[62,112,69],{}," We started the migration process quite early so there wasn’t much work to be done. I used the “import from Github” tool to get our repositories up and running on GitLab, and it imported all our issues and merge requests without problems. For the developers it took a little getting used to, but being able to sign up with your Google or Github account helped. There hasn’t been any real problems with our transition to GitLab, I’d consider the features of GitLab to be a superset of those available on GitHub, so it was all positive. The currently biggest problem with GitLab to us is that it can be difficult to orchestrate CI between repositories. We would like to be able to chain testing between repositories so that a change in one repo can automatically trigger a merge request in another repo (complete with testing). I know this kind of solution is being worked on and we’re eager to see what the team can deliver.",[12,115,116],{},[117,118,119,120,125],"em",{},"If your team uses GitLab and is interested in sharing your story, please fill out this ",[16,121,124],{"href":122,"rel":123},"https://docs.google.com/a/gitlab.com/forms/d/1K8ZTS1QvSSPos6mVh1ol8ZyagInYctX3fb9eglzeK70/edit",[],"form"," and we’ll get in touch!",[12,127,128],{},[117,129,130,131,134,135,140],{},"Read more about ",[16,132,20],{"href":18,"rel":133},[],", and follow them on ",[16,136,139],{"href":137,"rel":138},"https://twitter.com/cognitivelogic",[],"Twitter",".",[12,142,143],{},[117,144,145,146,151,152,140],{},"Tweet ",[16,147,150],{"href":148,"rel":149},"https://twitter.com/gitlab",[],"@GitLab"," and check out our ",[16,153,155],{"href":154},"/jobs/","job openings",{"title":157,"searchDepth":158,"depth":158,"links":159},"",2,[],"company","2016-11-22","Data analytics startup Cognitive Logic helps companies store, share, and examine consumer information without compromising security.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670658/Blog/Hero%20Images/data-startup-cognitive-logic-talks-migrating-to-gitlab.jpg",{"excerpt":168},{"type":9,"value":169},[170,175,177],[12,171,14,172,21],{},[16,173,20],{"href":18,"rel":174},[],[12,176,24],{},[26,178,179,181,183],{},[29,180,31],{},[29,182,34],{},[29,184,37],{},true,"/en-us/blog/cognitive-logic-talks-migrating-to-gitlab",{"title":5,"description":162,"ogTitle":5,"ogDescription":162,"noIndex":165,"ogImage":166,"ogUrl":188,"ogSiteName":189,"ogType":190,"canonicalUrls":188},"https://about.gitlab.com/blog/cognitive-logic-talks-migrating-to-gitlab","https://about.gitlab.com","article","cognitive-logic-talks-migrating-to-gitlab","en-us/blog/cognitive-logic-talks-migrating-to-gitlab","BlogPost","6vlADqLV7JAlLf472u1vUg9FFyfPfh2WaEBcymT0e_c",{"logo":196,"freeTrial":201,"sales":206,"login":211,"items":216,"search":541,"minimal":572,"duo":591,"switchNav":600,"pricingDeployment":611},{"config":197},{"href":198,"dataGaName":199,"dataGaLocation":200},"/","gitlab logo","header",{"text":202,"config":203},"Get free trial",{"href":204,"dataGaName":205,"dataGaLocation":200},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":207,"config":208},"Request a demo",{"href":209,"dataGaName":210,"dataGaLocation":200},"/sales/?contact-topic=request-demo","sales",{"text":212,"config":213},"Sign in",{"href":214,"dataGaName":215,"dataGaLocation":200},"https://gitlab.com/users/sign_in/","sign in",[217,246,346,351,465,519],{"text":218,"config":219,"menu":221},"Platform",{"dataNavLevelOne":220},"platform",{"type":222,"columns":223},"cards",[224,230,238],{"title":218,"description":225,"link":226},"The intelligent orchestration platform for DevSecOps",{"text":227,"config":228},"Explore our Platform",{"href":229,"dataGaName":220,"dataGaLocation":200},"/platform/",{"title":231,"description":232,"link":233},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":234,"config":235},"Meet GitLab Duo",{"href":236,"dataGaName":237,"dataGaLocation":200},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":239,"description":240,"link":241},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":242,"config":243},"Learn more",{"href":244,"dataGaName":245,"dataGaLocation":200},"/why-gitlab/","why gitlab",{"text":247,"left":185,"config":248,"menu":250},"Product",{"dataNavLevelOne":249},"solutions",{"type":251,"link":252,"columns":256,"feature":325},"lists",{"text":253,"config":254},"View all Solutions",{"href":255,"dataGaName":249,"dataGaLocation":200},"/solutions/",[257,281,304],{"title":258,"description":259,"link":260,"items":265},"Automation","CI/CD and automation to accelerate deployment",{"config":261},{"icon":262,"href":263,"dataGaName":264,"dataGaLocation":200},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[266,270,273,277],{"text":267,"config":268},"CI/CD",{"href":269,"dataGaLocation":200,"dataGaName":267},"/solutions/continuous-integration/",{"text":231,"config":271},{"href":236,"dataGaLocation":200,"dataGaName":272},"gitlab duo agent platform - product menu",{"text":274,"config":275},"Source Code Management",{"href":276,"dataGaLocation":200,"dataGaName":274},"/solutions/source-code-management/",{"text":278,"config":279},"Automated Software Delivery",{"href":263,"dataGaLocation":200,"dataGaName":280},"Automated software delivery",{"title":282,"description":283,"link":284,"items":289},"Security","Deliver code faster without compromising security",{"config":285},{"href":286,"dataGaName":287,"dataGaLocation":200,"icon":288},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[290,294,299],{"text":291,"config":292},"Application Security Testing",{"href":286,"dataGaName":293,"dataGaLocation":200},"Application security testing",{"text":295,"config":296},"Software Supply Chain Security",{"href":297,"dataGaLocation":200,"dataGaName":298},"/solutions/supply-chain/","Software supply chain security",{"text":300,"config":301},"Software Compliance",{"href":302,"dataGaName":303,"dataGaLocation":200},"/solutions/software-compliance/","software compliance",{"title":305,"link":306,"items":311},"Measurement",{"config":307},{"icon":308,"href":309,"dataGaName":310,"dataGaLocation":200},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[312,316,320],{"text":313,"config":314},"Visibility & Measurement",{"href":309,"dataGaLocation":200,"dataGaName":315},"Visibility and Measurement",{"text":317,"config":318},"Value Stream Management",{"href":319,"dataGaLocation":200,"dataGaName":317},"/solutions/value-stream-management/",{"text":321,"config":322},"Analytics & Insights",{"href":323,"dataGaLocation":200,"dataGaName":324},"/solutions/analytics-and-insights/","Analytics and insights",{"title":326,"type":251,"items":327},"GitLab for",[328,334,340],{"text":329,"config":330},"Enterprise",{"icon":331,"href":332,"dataGaLocation":200,"dataGaName":333},"Building","/enterprise/","enterprise",{"text":335,"config":336},"Small Business",{"icon":337,"href":338,"dataGaLocation":200,"dataGaName":339},"Work","/small-business/","small business",{"text":341,"config":342},"Public Sector",{"icon":343,"href":344,"dataGaLocation":200,"dataGaName":345},"Organization","/solutions/public-sector/","public sector",{"text":347,"config":348},"Pricing",{"href":349,"dataGaName":350,"dataGaLocation":200,"dataNavLevelOne":350},"/pricing/","pricing",{"text":352,"config":353,"menu":355},"Resources",{"dataNavLevelOne":354},"resources",{"type":251,"link":356,"columns":360,"feature":454},{"text":357,"config":358},"View all resources",{"href":359,"dataGaName":354,"dataGaLocation":200},"/resources/",[361,394,421],{"title":362,"items":363},"Getting started",[364,369,374,379,384,389],{"text":365,"config":366},"Install",{"href":367,"dataGaName":368,"dataGaLocation":200},"/install/","install",{"text":370,"config":371},"Quick start guides",{"href":372,"dataGaName":373,"dataGaLocation":200},"/get-started/","quick setup checklists",{"text":375,"config":376},"Learn",{"href":377,"dataGaLocation":200,"dataGaName":378},"https://university.gitlab.com/","learn",{"text":380,"config":381},"Product documentation",{"href":382,"dataGaName":383,"dataGaLocation":200},"https://docs.gitlab.com/","product documentation",{"text":385,"config":386},"Best practice videos",{"href":387,"dataGaName":388,"dataGaLocation":200},"/getting-started-videos/","best practice videos",{"text":390,"config":391},"Integrations",{"href":392,"dataGaName":393,"dataGaLocation":200},"/integrations/","integrations",{"title":395,"items":396},"Discover",[397,402,407,412,416],{"text":398,"config":399},"Customer success stories",{"href":400,"dataGaName":401,"dataGaLocation":200},"/customers/","customer success stories",{"text":403,"config":404},"Blog",{"href":405,"dataGaName":406,"dataGaLocation":200},"/blog/","blog",{"text":408,"config":409},"Demo Hub",{"href":410,"dataGaName":411,"dataGaLocation":200},"/demo-hub/","demo hub",{"text":413,"config":414},"The Source",{"href":415,"dataGaName":406,"dataGaLocation":200},"/the-source/",{"text":417,"config":418},"Remote",{"href":419,"dataGaName":420,"dataGaLocation":200},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":422,"items":423},"Connect",[424,429,434,439,444,449],{"text":425,"config":426},"GitLab Services",{"href":427,"dataGaName":428,"dataGaLocation":200},"/services/","services",{"text":430,"config":431},"Contribute",{"href":432,"dataGaName":433,"dataGaLocation":200},"https://contributors.gitlab.com","contribute",{"text":435,"config":436},"Community",{"href":437,"dataGaName":438,"dataGaLocation":200},"/community/","community",{"text":440,"config":441},"Forum",{"href":442,"dataGaName":443,"dataGaLocation":200},"https://forum.gitlab.com/","forum",{"text":445,"config":446},"Events",{"href":447,"dataGaName":448,"dataGaLocation":200},"/events/","events",{"text":450,"config":451},"Partners",{"href":452,"dataGaName":453,"dataGaLocation":200},"/partners/","partners",{"config":455,"title":458,"text":459,"link":460},{"background":456,"textColor":457},"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":461,"config":462},"Read the latest",{"href":463,"dataGaName":464,"dataGaLocation":200},"/whats-new/","whats new",{"text":466,"config":467,"menu":468},"Company",{"dataNavLevelOne":160},{"type":251,"columns":469},[470],{"items":471},[472,477,482,484,489,494,499,504,509,514],{"text":473,"config":474},"About",{"href":475,"dataGaName":476,"dataGaLocation":200},"/company/","about",{"text":478,"config":479,"footerGa":481},"Jobs",{"href":154,"dataGaName":480,"dataGaLocation":200},"jobs",{"dataGaName":480},{"text":445,"config":483},{"href":447,"dataGaName":448,"dataGaLocation":200},{"text":485,"config":486},"Leadership",{"href":487,"dataGaName":488,"dataGaLocation":200},"/company/team/e-group/","leadership",{"text":490,"config":491},"Handbook",{"href":492,"dataGaName":493,"dataGaLocation":200},"https://handbook.gitlab.com/","handbook",{"text":495,"config":496},"Investor relations",{"href":497,"dataGaName":498,"dataGaLocation":200},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":500,"config":501},"Trust Center",{"href":502,"dataGaName":503,"dataGaLocation":200},"/security/","trust center",{"text":505,"config":506},"AI Transparency Center",{"href":507,"dataGaName":508,"dataGaLocation":200},"/ai-transparency-center/","ai transparency center",{"text":510,"config":511},"Newsletter",{"href":512,"dataGaName":513,"dataGaLocation":200},"/company/contact/#contact-forms","newsletter",{"text":515,"config":516},"Press",{"href":517,"dataGaName":518,"dataGaLocation":200},"/press/","press",{"text":520,"config":521,"menu":522},"Contact us",{"dataNavLevelOne":160},{"type":251,"columns":523},[524],{"items":525},[526,531,536],{"text":527,"config":528},"Talk to sales",{"href":529,"dataGaName":530,"dataGaLocation":200},"/sales/","talk to sales",{"text":532,"config":533},"Support portal",{"href":534,"dataGaName":535,"dataGaLocation":200},"https://support.gitlab.com/hc/en-us","support portal",{"text":537,"config":538},"Customer portal",{"href":539,"dataGaName":540,"dataGaLocation":200},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":542,"login":543,"suggestions":550},"Close",{"text":544,"link":545},"To search repositories and projects, login to",{"text":546,"config":547},"gitlab.com",{"href":214,"dataGaName":548,"dataGaLocation":549},"search login","search",{"text":551,"default":552},"Suggestions",[553,555,559,561,565,569],{"text":231,"config":554},{"href":236,"dataGaName":231,"dataGaLocation":549},{"text":556,"config":557},"Code Suggestions (AI)",{"href":558,"dataGaName":556,"dataGaLocation":549},"/solutions/code-suggestions/",{"text":267,"config":560},{"href":269,"dataGaName":267,"dataGaLocation":549},{"text":562,"config":563},"GitLab on AWS",{"href":564,"dataGaName":562,"dataGaLocation":549},"/partners/technology-partners/aws/",{"text":566,"config":567},"GitLab on Google Cloud",{"href":568,"dataGaName":566,"dataGaLocation":549},"/partners/technology-partners/google-cloud-platform/",{"text":570,"config":571},"Why GitLab?",{"href":244,"dataGaName":570,"dataGaLocation":549},{"freeTrial":573,"mobileIcon":578,"desktopIcon":583,"secondaryButton":586},{"text":574,"config":575},"Start free trial",{"href":576,"dataGaName":205,"dataGaLocation":577},"https://gitlab.com/-/trials/new/","nav",{"altText":579,"config":580},"Gitlab Icon",{"src":581,"dataGaName":582,"dataGaLocation":577},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":579,"config":584},{"src":585,"dataGaName":582,"dataGaLocation":577},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":587,"config":588},"Get Started",{"href":589,"dataGaName":590,"dataGaLocation":577},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":592,"mobileIcon":596,"desktopIcon":598},{"text":593,"config":594},"Learn more about GitLab Duo",{"href":236,"dataGaName":595,"dataGaLocation":577},"gitlab duo",{"altText":579,"config":597},{"src":581,"dataGaName":582,"dataGaLocation":577},{"altText":579,"config":599},{"src":585,"dataGaName":582,"dataGaLocation":577},{"button":601,"mobileIcon":606,"desktopIcon":608},{"text":602,"config":603},"/switch",{"href":604,"dataGaName":605,"dataGaLocation":577},"#contact","switch",{"altText":579,"config":607},{"src":581,"dataGaName":582,"dataGaLocation":577},{"altText":579,"config":609},{"src":610,"dataGaName":582,"dataGaLocation":577},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":612,"mobileIcon":617,"desktopIcon":619},{"text":613,"config":614},"Back to pricing",{"href":349,"dataGaName":615,"dataGaLocation":577,"icon":616},"back to pricing","GoBack",{"altText":579,"config":618},{"src":581,"dataGaName":582,"dataGaLocation":577},{"altText":579,"config":620},{"src":585,"dataGaName":582,"dataGaLocation":577},{"title":622,"titleMobile":623,"button":624,"config":629},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":242,"config":625},{"href":626,"dataGaName":627,"dataGaLocation":628},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":630,"disabled":165},"release",{"data":632},{"text":633,"source":634,"edit":640,"contribute":645,"config":650,"items":654,"minimal":864},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":635,"config":636},"View page source",{"href":637,"dataGaName":638,"dataGaLocation":639},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":641,"config":642},"Edit this page",{"href":643,"dataGaName":644,"dataGaLocation":639},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":646,"config":647},"Please contribute",{"href":648,"dataGaName":649,"dataGaLocation":639},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":148,"facebook":651,"youtube":652,"linkedin":653},"https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[655,702,756,800,832],{"title":347,"links":656,"subMenu":671},[657,661,666],{"text":658,"config":659},"View plans",{"href":349,"dataGaName":660,"dataGaLocation":639},"view plans",{"text":662,"config":663},"Why Premium?",{"href":664,"dataGaName":665,"dataGaLocation":639},"/pricing/premium/","why premium",{"text":667,"config":668},"Why Ultimate?",{"href":669,"dataGaName":670,"dataGaLocation":639},"/pricing/ultimate/","why ultimate",[672],{"title":673,"links":674},"Contact Us",[675,678,680,682,687,692,697],{"text":676,"config":677},"Contact sales",{"href":529,"dataGaName":210,"dataGaLocation":639},{"text":532,"config":679},{"href":534,"dataGaName":535,"dataGaLocation":639},{"text":537,"config":681},{"href":539,"dataGaName":540,"dataGaLocation":639},{"text":683,"config":684},"Status",{"href":685,"dataGaName":686,"dataGaLocation":639},"https://status.gitlab.com/","status",{"text":688,"config":689},"Terms of use",{"href":690,"dataGaName":691,"dataGaLocation":639},"/terms/","terms of use",{"text":693,"config":694},"Privacy statement",{"href":695,"dataGaName":696,"dataGaLocation":639},"/privacy/","privacy statement",{"text":698,"config":699},"Cookie preferences",{"dataGaName":700,"dataGaLocation":639,"id":701,"isOneTrustButton":185},"cookie preferences","ot-sdk-btn",{"title":247,"links":703,"subMenu":712},[704,708],{"text":705,"config":706},"DevSecOps platform",{"href":229,"dataGaName":707,"dataGaLocation":639},"devsecops platform",{"text":709,"config":710},"AI-Assisted Development",{"href":236,"dataGaName":711,"dataGaLocation":639},"ai-assisted development",[713],{"title":714,"links":715},"Topics",[716,721,726,731,736,741,746,751],{"text":717,"config":718},"CICD",{"href":719,"dataGaName":720,"dataGaLocation":639},"/topics/ci-cd/","cicd",{"text":722,"config":723},"GitOps",{"href":724,"dataGaName":725,"dataGaLocation":639},"/topics/gitops/","gitops",{"text":727,"config":728},"DevOps",{"href":729,"dataGaName":730,"dataGaLocation":639},"/topics/devops/","devops",{"text":732,"config":733},"Version Control",{"href":734,"dataGaName":735,"dataGaLocation":639},"/topics/version-control/","version control",{"text":737,"config":738},"DevSecOps",{"href":739,"dataGaName":740,"dataGaLocation":639},"/topics/devsecops/","devsecops",{"text":742,"config":743},"Cloud Native",{"href":744,"dataGaName":745,"dataGaLocation":639},"/topics/cloud-native/","cloud native",{"text":747,"config":748},"AI for Coding",{"href":749,"dataGaName":750,"dataGaLocation":639},"/topics/devops/ai-for-coding/","ai for coding",{"text":752,"config":753},"Agentic AI",{"href":754,"dataGaName":755,"dataGaLocation":639},"/topics/agentic-ai/","agentic ai",{"title":757,"links":758},"Solutions",[759,761,763,768,772,775,779,782,784,787,790,795],{"text":291,"config":760},{"href":286,"dataGaName":291,"dataGaLocation":639},{"text":280,"config":762},{"href":263,"dataGaName":264,"dataGaLocation":639},{"text":764,"config":765},"Agile development",{"href":766,"dataGaName":767,"dataGaLocation":639},"/solutions/agile-delivery/","agile delivery",{"text":769,"config":770},"SCM",{"href":276,"dataGaName":771,"dataGaLocation":639},"source code management",{"text":717,"config":773},{"href":269,"dataGaName":774,"dataGaLocation":639},"continuous integration & delivery",{"text":776,"config":777},"Value stream management",{"href":319,"dataGaName":778,"dataGaLocation":639},"value stream management",{"text":722,"config":780},{"href":781,"dataGaName":725,"dataGaLocation":639},"/solutions/gitops/",{"text":329,"config":783},{"href":332,"dataGaName":333,"dataGaLocation":639},{"text":785,"config":786},"Small business",{"href":338,"dataGaName":339,"dataGaLocation":639},{"text":788,"config":789},"Public sector",{"href":344,"dataGaName":345,"dataGaLocation":639},{"text":791,"config":792},"Education",{"href":793,"dataGaName":794,"dataGaLocation":639},"/solutions/education/","education",{"text":796,"config":797},"Financial services",{"href":798,"dataGaName":799,"dataGaLocation":639},"/solutions/finance/","financial services",{"title":352,"links":801},[802,804,806,808,811,813,816,818,820,822,824,826,828,830],{"text":365,"config":803},{"href":367,"dataGaName":368,"dataGaLocation":639},{"text":370,"config":805},{"href":372,"dataGaName":373,"dataGaLocation":639},{"text":375,"config":807},{"href":377,"dataGaName":378,"dataGaLocation":639},{"text":380,"config":809},{"href":382,"dataGaName":810,"dataGaLocation":639},"docs",{"text":403,"config":812},{"href":405,"dataGaName":406,"dataGaLocation":639},{"text":814,"config":815},"What's new",{"href":463,"dataGaName":464,"dataGaLocation":639},{"text":398,"config":817},{"href":400,"dataGaName":401,"dataGaLocation":639},{"text":417,"config":819},{"href":419,"dataGaName":420,"dataGaLocation":639},{"text":425,"config":821},{"href":427,"dataGaName":428,"dataGaLocation":639},{"text":430,"config":823},{"href":432,"dataGaName":433,"dataGaLocation":639},{"text":435,"config":825},{"href":437,"dataGaName":438,"dataGaLocation":639},{"text":440,"config":827},{"href":442,"dataGaName":443,"dataGaLocation":639},{"text":445,"config":829},{"href":447,"dataGaName":448,"dataGaLocation":639},{"text":450,"config":831},{"href":452,"dataGaName":453,"dataGaLocation":639},{"title":466,"links":833},[834,836,838,840,842,844,848,853,855,857,859],{"text":473,"config":835},{"href":475,"dataGaName":160,"dataGaLocation":639},{"text":478,"config":837},{"href":154,"dataGaName":480,"dataGaLocation":639},{"text":485,"config":839},{"href":487,"dataGaName":488,"dataGaLocation":639},{"text":490,"config":841},{"href":492,"dataGaName":493,"dataGaLocation":639},{"text":495,"config":843},{"href":497,"dataGaName":498,"dataGaLocation":639},{"text":845,"config":846},"Sustainability",{"href":847,"dataGaName":845,"dataGaLocation":639},"/sustainability/",{"text":849,"config":850},"Diversity, inclusion and belonging (DIB)",{"href":851,"dataGaName":852,"dataGaLocation":639},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":500,"config":854},{"href":502,"dataGaName":503,"dataGaLocation":639},{"text":510,"config":856},{"href":512,"dataGaName":513,"dataGaLocation":639},{"text":515,"config":858},{"href":517,"dataGaName":518,"dataGaLocation":639},{"text":860,"config":861},"Modern Slavery Transparency Statement",{"href":862,"dataGaName":863,"dataGaLocation":639},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":865},[866,869,872],{"text":867,"config":868},"Terms",{"href":690,"dataGaName":691,"dataGaLocation":639},{"text":870,"config":871},"Cookies",{"dataGaName":700,"dataGaLocation":639,"id":701,"isOneTrustButton":185},{"text":873,"config":874},"Privacy",{"href":695,"dataGaName":696,"dataGaLocation":639},[876],{"id":877,"title":878,"body":164,"config":879,"content":881,"description":164,"extension":885,"meta":886,"navigation":185,"path":887,"seo":888,"stem":889,"__hash__":890},"blogAuthors/en-us/blog/authors/emily-von-hoffmann.yml","Emily Von Hoffmann",{"template":880},"BlogAuthor",{"name":7,"config":882},{"headshot":883,"ctfId":884},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","evhoffmann","yml",{},"/en-us/blog/authors/emily-von-hoffmann",{},"en-us/blog/authors/emily-von-hoffmann","zBEVnM69VnbjDNRxhqMvtqH47MYHt1wraGaN6nBYmAU",[892,900,907],{"title":893,"description":894,"heroImage":895,"category":160,"date":896,"authors":897,"slug":899,"externalUrl":164},"Why GitLab signed the Open Weights and American AI Leadership letter","GitLab supports customer choice, data privacy, and AI model neutrality, empowering teams to run secure, cost-effective, local solutions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785333264/ww4mlighwlvvzgnmbe6w.png","2026-07-29",[898],"Bill Staples","open-weight-model-letter",{"title":901,"description":902,"heroImage":903,"category":160,"date":904,"authors":905,"slug":906,"externalUrl":164},"GitLab Act 2","A letter to our customers and our investors.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-05-11",[898],"gitlab-act-2",{"title":908,"description":909,"heroImage":910,"category":160,"date":911,"authors":912,"slug":914,"externalUrl":164},"GitLab named a 2026 Omdia Universe Leader","Omdia's 2026 report on AI-assisted software development ranked 19 vendors. Here is what GitLab's top scores mean for engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-13",[913],"Rebecca Carter","gitlab-named-a-2026-omdia-universe-leader",{"promotions":916},[917,931,943,955],{"id":918,"categories":919,"header":921,"text":922,"button":923,"image":928},"ai-modernization",[920],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":924,"config":925},"Get your AI maturity score",{"href":926,"dataGaName":927,"dataGaLocation":406},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":929},{"src":930},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":932,"categories":933,"header":935,"text":922,"button":936,"image":940},"devops-modernization",[934,740],"product","Are you just managing tools or shipping innovation?",{"text":937,"config":938},"Get your DevOps maturity score",{"href":939,"dataGaName":927,"dataGaLocation":406},"/assessments/devops-modernization-assessment/",{"config":941},{"src":942},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":944,"categories":945,"header":947,"text":922,"button":948,"image":952},"security-modernization",[946],"security","Are you trading speed for security?",{"text":949,"config":950},"Get your security maturity score",{"href":951,"dataGaName":927,"dataGaLocation":406},"/assessments/security-modernization-assessment/",{"config":953},{"src":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":956,"paths":957,"header":960,"text":961,"button":962,"image":967},"github-azure-migration",[958,959],"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":963,"config":964},"See how GitLab compares to GitHub",{"href":965,"dataGaName":966,"dataGaLocation":406},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":968},{"src":942},{"header":970,"blurb":971,"button":972,"secondaryButton":977},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":973,"config":974},"Get your free trial",{"href":975,"dataGaName":205,"dataGaLocation":976},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":676,"config":978},{"href":529,"dataGaName":210,"dataGaLocation":976},1786803767440]