[{"data":1,"prerenderedAt":934},["ShallowReactive",2],{"/blog/open-source-nasa-gl":3,"navigation-en-us":148,"banner-en-us":575,"footer-en-us":585,"blog-post-authors-en-us-Valerie Silverthorne":830,"blog-related-posts-en-us-open-source-nasa-gl":845,"blog-promotions-en-us":870,"next-steps-en-us":924},{"id":4,"title":5,"authors":6,"body":8,"category":124,"date":125,"description":126,"extension":127,"externalUrl":128,"faq":128,"featured":129,"heroImage":130,"meta":131,"navigation":96,"path":132,"seo":133,"slug":138,"stem":139,"tags":140,"template":146,"updatedDate":128,"__hash__":147},"blogPosts/en-us/blog/open-source-nasa-gl.md","GitLab Commit: How MRI Technologies used GitLab to bring unified toolchains to NASA",[7],"Valerie Silverthorne",{"type":9,"value":10,"toc":119},"minimark",[11,34,37,42,45,48,67,70,73,82,85,88,97,105],[12,13,14,15,21,22,27,28,33],"p",{},"NASA can put ",[16,17,20],"a",{"href":18,"rel":19},"https://mars.nasa.gov/mer/",[],"Rovers on Mars",", but a complex legacy software system proved a bit of a challenge. Speaking at GitLab Commit in Brooklyn, ",[16,23,26],{"href":24,"rel":25},"https://www.linkedin.com/in/marshall-cottrell-27b385181",[],"Marshall Cottrell"," of ",[16,29,32],{"href":30,"rel":31},"https://www.mricompany.com",[],"MRI Technologies"," explained how the company teamed up with NASA to launch the space agency into the era of modern application development using Kubernetes and GitLab.",[12,35,36],{},"In September 2018 MRI began work on a new software development platform called APPDAT. \"It's the only platform taking a totally 'fresh approach' to application development and data science activities within the Agency,\" Marshall said. The team's challenge was to update an Oracle-based legacy SCM solution using open source technologies and APIs. At the time NASA had no toolchains to support CI/CD during development and lots of silos of information. \"There was no mechanism for us to disseminate innovations, best practices, or what we learned,\" Marshall said. NASA needed a unified toolchain and platform for software delivery. \"GitLab was chosen as the platform source control management solution because it is the only product in this space that integrates all stages of the DevSecOps lifecycle.\"",[38,39,41],"h2",{"id":40},"a-laser-focus-helps","A laser focus helps",[12,43,44],{},"Perhaps not surprisingly MRI had ambitious goals for APPDAT, Marshall explained. The overarching hope was to build an automated DevOps platform that served as the single source of truth. Until MRI got involved, NASA had no way to actually \"own\" the software development process; teams operated in a piecemeal fashion, choosing contractors and solutions based on situational needs rather than looking at the big picture. Those decisions left NASA subject to potentially \"abusive behavior,\" Marshall explained.",[12,46,47],{},"So MRI laid out a number of goals:",[49,50,51,55,58,61,64],"ul",{},[52,53,54],"li",{},"Empower teams to fully manage the resources they support",[52,56,57],{},"Demonstrate and promote fully open project management and collaboration",[52,59,60],{},"Create a sandbox for protoyping with no barriers to entry",[52,62,63],{},"Assemble an API and data economy that would eliminate silos and promote reusability",[52,65,66],{},"Establish platform-level security controls with a goal of \"compliant by fault\"",[12,68,69],{},"To get there, MRI emphasized collaboration and tried to reach out to the \"forward-leaning\" customers and individual civil servant developers, engineers and researchers who were eager to contribute. The team adhered strictly to cloud native, Zero Trust and open source approaches and, in the end, came up with a Kubernetes platform that met the space agency's needs for today and in the future. The technology choices were important, but so was the time spent laying the groundwork for a culture change. \"Many modernization proposals try to meet everyone where they're at,\" Marshall explained. \"A more opinionated approach allows us to provide a succinct and unified toolchain that all parties can contribute to, evolve, and improve over time.\"",[12,71,72],{},"Today the 61-year old space agency has a modern platform where developers can easily collaborate with non-developers, no complex tooling is required, and context switching is a thing of the past, Marshall said. APPDAT syncs from the agency's existing SCM solutions so everyone was able to continue to use the same tools.",[12,74,75,76,81],{},"Perhaps most exciting, NASA's plans to have astronauts established on the moon by 2024 as part of the ",[16,77,80],{"href":78,"rel":79},"https://www.nasa.gov/what-is-artemis",[],"Artemis program",". That will include a data center, and Marshall is confident Kubernetes will be part of the launch.",[12,83,84],{},"\"We’ve already begun to change minds at NASA and you can do it at your enterprise too,\" Marshall said. His last best advice: Play the long game, only innovate when it makes things easier, and a bottom-up approach is an easy way to make friends.",[12,86,87],{},"Watch Marshall's entire presentation here:",[89,90],"iframe",{"width":91,"height":92,"src":93,"frameBorder":94,"allow":95,"allowFullScreen":96},560,315,"https://www.youtube.com/embed/RsUw4Ueyn-c","0","accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",true,[12,98,99,100,104],{},"Don't miss out on the chance to network with others on the same DevOps journey. Get your tickets to ",[16,101,103],{"href":102},"/events/","Commit London on October 9",".",[12,106,107,108,113,114],{},"Cover image by ",[16,109,112],{"href":110,"rel":111},"https://unsplash.com/@djjabbua",[],"David Torres"," on ",[16,115,118],{"href":116,"rel":117},"https://unsplash.com/",[],"Unsplash",{"title":120,"searchDepth":121,"depth":121,"links":122},"",2,[123],{"id":40,"depth":121,"text":41},"open-source","2019-09-17","Live from GitLab Commit: NASA will be flying Kubernetes clusters to the moon and GitLab is helping.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678434/Blog/Hero%20Images/nasagitlab.jpg",{},"/en-us/blog/open-source-nasa-gl",{"title":134,"description":126,"ogTitle":134,"ogDescription":126,"noIndex":129,"ogImage":130,"ogUrl":135,"ogSiteName":136,"ogType":137,"canonicalUrls":135},"MRI Technologies used GitLab for unified toolchains to NASA","https://about.gitlab.com/blog/open-source-nasa-gl","https://about.gitlab.com","article","open-source-nasa-gl","en-us/blog/open-source-nasa-gl",[141,142,143,144,145],"GKE","kubernetes","user stories","open source","frontend","BlogPost","eEsRmqp5bRlRZtPdi6R8MjOnbAaj86VdHROV7RN5ZHI",{"logo":149,"freeTrial":154,"sales":159,"login":164,"items":169,"search":495,"minimal":526,"duo":545,"switchNav":554,"pricingDeployment":565},{"config":150},{"href":151,"dataGaName":152,"dataGaLocation":153},"/","gitlab logo","header",{"text":155,"config":156},"Get free trial",{"href":157,"dataGaName":158,"dataGaLocation":153},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":160,"config":161},"Request a demo",{"href":162,"dataGaName":163,"dataGaLocation":153},"/sales/?contact-topic=request-demo","sales",{"text":165,"config":166},"Sign in",{"href":167,"dataGaName":168,"dataGaLocation":153},"https://gitlab.com/users/sign_in/","sign in",[170,199,299,304,417,473],{"text":171,"config":172,"menu":174},"Platform",{"dataNavLevelOne":173},"platform",{"type":175,"columns":176},"cards",[177,183,191],{"title":171,"description":178,"link":179},"The intelligent orchestration platform for DevSecOps",{"text":180,"config":181},"Explore our Platform",{"href":182,"dataGaName":173,"dataGaLocation":153},"/platform/",{"title":184,"description":185,"link":186},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":187,"config":188},"Meet GitLab Duo",{"href":189,"dataGaName":190,"dataGaLocation":153},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":192,"description":193,"link":194},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":195,"config":196},"Learn more",{"href":197,"dataGaName":198,"dataGaLocation":153},"/why-gitlab/","why gitlab",{"text":200,"left":96,"config":201,"menu":203},"Product",{"dataNavLevelOne":202},"solutions",{"type":204,"link":205,"columns":209,"feature":278},"lists",{"text":206,"config":207},"View all Solutions",{"href":208,"dataGaName":202,"dataGaLocation":153},"/solutions/",[210,234,257],{"title":211,"description":212,"link":213,"items":218},"Automation","CI/CD and automation to accelerate deployment",{"config":214},{"icon":215,"href":216,"dataGaName":217,"dataGaLocation":153},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[219,223,226,230],{"text":220,"config":221},"CI/CD",{"href":222,"dataGaLocation":153,"dataGaName":220},"/solutions/continuous-integration/",{"text":184,"config":224},{"href":189,"dataGaLocation":153,"dataGaName":225},"gitlab duo agent platform - product menu",{"text":227,"config":228},"Source Code Management",{"href":229,"dataGaLocation":153,"dataGaName":227},"/solutions/source-code-management/",{"text":231,"config":232},"Automated Software Delivery",{"href":216,"dataGaLocation":153,"dataGaName":233},"Automated software delivery",{"title":235,"description":236,"link":237,"items":242},"Security","Deliver code faster without compromising security",{"config":238},{"href":239,"dataGaName":240,"dataGaLocation":153,"icon":241},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[243,247,252],{"text":244,"config":245},"Application Security Testing",{"href":239,"dataGaName":246,"dataGaLocation":153},"Application security testing",{"text":248,"config":249},"Software Supply Chain Security",{"href":250,"dataGaLocation":153,"dataGaName":251},"/solutions/supply-chain/","Software supply chain security",{"text":253,"config":254},"Software Compliance",{"href":255,"dataGaName":256,"dataGaLocation":153},"/solutions/software-compliance/","software compliance",{"title":258,"link":259,"items":264},"Measurement",{"config":260},{"icon":261,"href":262,"dataGaName":263,"dataGaLocation":153},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[265,269,273],{"text":266,"config":267},"Visibility & Measurement",{"href":262,"dataGaLocation":153,"dataGaName":268},"Visibility and Measurement",{"text":270,"config":271},"Value Stream Management",{"href":272,"dataGaLocation":153,"dataGaName":270},"/solutions/value-stream-management/",{"text":274,"config":275},"Analytics & Insights",{"href":276,"dataGaLocation":153,"dataGaName":277},"/solutions/analytics-and-insights/","Analytics and insights",{"title":279,"type":204,"items":280},"GitLab for",[281,287,293],{"text":282,"config":283},"Enterprise",{"icon":284,"href":285,"dataGaLocation":153,"dataGaName":286},"Building","/enterprise/","enterprise",{"text":288,"config":289},"Small Business",{"icon":290,"href":291,"dataGaLocation":153,"dataGaName":292},"Work","/small-business/","small business",{"text":294,"config":295},"Public Sector",{"icon":296,"href":297,"dataGaLocation":153,"dataGaName":298},"Organization","/solutions/public-sector/","public sector",{"text":300,"config":301},"Pricing",{"href":302,"dataGaName":303,"dataGaLocation":153,"dataNavLevelOne":303},"/pricing/","pricing",{"text":305,"config":306,"menu":308},"Resources",{"dataNavLevelOne":307},"resources",{"type":204,"link":309,"columns":313,"feature":406},{"text":310,"config":311},"View all resources",{"href":312,"dataGaName":307,"dataGaLocation":153},"/resources/",[314,347,374],{"title":315,"items":316},"Getting started",[317,322,327,332,337,342],{"text":318,"config":319},"Install",{"href":320,"dataGaName":321,"dataGaLocation":153},"/install/","install",{"text":323,"config":324},"Quick start guides",{"href":325,"dataGaName":326,"dataGaLocation":153},"/get-started/","quick setup checklists",{"text":328,"config":329},"Learn",{"href":330,"dataGaLocation":153,"dataGaName":331},"https://university.gitlab.com/","learn",{"text":333,"config":334},"Product documentation",{"href":335,"dataGaName":336,"dataGaLocation":153},"https://docs.gitlab.com/","product documentation",{"text":338,"config":339},"Best practice videos",{"href":340,"dataGaName":341,"dataGaLocation":153},"/getting-started-videos/","best practice videos",{"text":343,"config":344},"Integrations",{"href":345,"dataGaName":346,"dataGaLocation":153},"/integrations/","integrations",{"title":348,"items":349},"Discover",[350,355,360,365,369],{"text":351,"config":352},"Customer success stories",{"href":353,"dataGaName":354,"dataGaLocation":153},"/customers/","customer success stories",{"text":356,"config":357},"Blog",{"href":358,"dataGaName":359,"dataGaLocation":153},"/blog/","blog",{"text":361,"config":362},"Demo Hub",{"href":363,"dataGaName":364,"dataGaLocation":153},"/demo-hub/","demo hub",{"text":366,"config":367},"The Source",{"href":368,"dataGaName":359,"dataGaLocation":153},"/the-source/",{"text":370,"config":371},"Remote",{"href":372,"dataGaName":373,"dataGaLocation":153},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":375,"items":376},"Connect",[377,382,387,392,397,401],{"text":378,"config":379},"GitLab Services",{"href":380,"dataGaName":381,"dataGaLocation":153},"/services/","services",{"text":383,"config":384},"Contribute",{"href":385,"dataGaName":386,"dataGaLocation":153},"https://contributors.gitlab.com","contribute",{"text":388,"config":389},"Community",{"href":390,"dataGaName":391,"dataGaLocation":153},"/community/","community",{"text":393,"config":394},"Forum",{"href":395,"dataGaName":396,"dataGaLocation":153},"https://forum.gitlab.com/","forum",{"text":398,"config":399},"Events",{"href":102,"dataGaName":400,"dataGaLocation":153},"events",{"text":402,"config":403},"Partners",{"href":404,"dataGaName":405,"dataGaLocation":153},"/partners/","partners",{"config":407,"title":410,"text":411,"link":412},{"background":408,"textColor":409},"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":413,"config":414},"Read the latest",{"href":415,"dataGaName":416,"dataGaLocation":153},"/whats-new/","whats new",{"text":418,"config":419,"menu":421},"Company",{"dataNavLevelOne":420},"company",{"type":204,"columns":422},[423],{"items":424},[425,430,436,438,443,448,453,458,463,468],{"text":426,"config":427},"About",{"href":428,"dataGaName":429,"dataGaLocation":153},"/company/","about",{"text":431,"config":432,"footerGa":435},"Jobs",{"href":433,"dataGaName":434,"dataGaLocation":153},"/jobs/","jobs",{"dataGaName":434},{"text":398,"config":437},{"href":102,"dataGaName":400,"dataGaLocation":153},{"text":439,"config":440},"Leadership",{"href":441,"dataGaName":442,"dataGaLocation":153},"/company/team/e-group/","leadership",{"text":444,"config":445},"Handbook",{"href":446,"dataGaName":447,"dataGaLocation":153},"https://handbook.gitlab.com/","handbook",{"text":449,"config":450},"Investor relations",{"href":451,"dataGaName":452,"dataGaLocation":153},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":454,"config":455},"Trust Center",{"href":456,"dataGaName":457,"dataGaLocation":153},"/security/","trust center",{"text":459,"config":460},"AI Transparency Center",{"href":461,"dataGaName":462,"dataGaLocation":153},"/ai-transparency-center/","ai transparency center",{"text":464,"config":465},"Newsletter",{"href":466,"dataGaName":467,"dataGaLocation":153},"/company/contact/#contact-forms","newsletter",{"text":469,"config":470},"Press",{"href":471,"dataGaName":472,"dataGaLocation":153},"/press/","press",{"text":474,"config":475,"menu":476},"Contact us",{"dataNavLevelOne":420},{"type":204,"columns":477},[478],{"items":479},[480,485,490],{"text":481,"config":482},"Talk to sales",{"href":483,"dataGaName":484,"dataGaLocation":153},"/sales/","talk to sales",{"text":486,"config":487},"Support portal",{"href":488,"dataGaName":489,"dataGaLocation":153},"https://support.gitlab.com/hc/en-us","support portal",{"text":491,"config":492},"Customer portal",{"href":493,"dataGaName":494,"dataGaLocation":153},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":496,"login":497,"suggestions":504},"Close",{"text":498,"link":499},"To search repositories and projects, login to",{"text":500,"config":501},"gitlab.com",{"href":167,"dataGaName":502,"dataGaLocation":503},"search login","search",{"text":505,"default":506},"Suggestions",[507,509,513,515,519,523],{"text":184,"config":508},{"href":189,"dataGaName":184,"dataGaLocation":503},{"text":510,"config":511},"Code Suggestions (AI)",{"href":512,"dataGaName":510,"dataGaLocation":503},"/solutions/code-suggestions/",{"text":220,"config":514},{"href":222,"dataGaName":220,"dataGaLocation":503},{"text":516,"config":517},"GitLab on AWS",{"href":518,"dataGaName":516,"dataGaLocation":503},"/partners/technology-partners/aws/",{"text":520,"config":521},"GitLab on Google Cloud",{"href":522,"dataGaName":520,"dataGaLocation":503},"/partners/technology-partners/google-cloud-platform/",{"text":524,"config":525},"Why GitLab?",{"href":197,"dataGaName":524,"dataGaLocation":503},{"freeTrial":527,"mobileIcon":532,"desktopIcon":537,"secondaryButton":540},{"text":528,"config":529},"Start free trial",{"href":530,"dataGaName":158,"dataGaLocation":531},"https://gitlab.com/-/trials/new/","nav",{"altText":533,"config":534},"Gitlab Icon",{"src":535,"dataGaName":536,"dataGaLocation":531},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":533,"config":538},{"src":539,"dataGaName":536,"dataGaLocation":531},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":541,"config":542},"Get Started",{"href":543,"dataGaName":544,"dataGaLocation":531},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":546,"mobileIcon":550,"desktopIcon":552},{"text":547,"config":548},"Learn more about GitLab Duo",{"href":189,"dataGaName":549,"dataGaLocation":531},"gitlab duo",{"altText":533,"config":551},{"src":535,"dataGaName":536,"dataGaLocation":531},{"altText":533,"config":553},{"src":539,"dataGaName":536,"dataGaLocation":531},{"button":555,"mobileIcon":560,"desktopIcon":562},{"text":556,"config":557},"/switch",{"href":558,"dataGaName":559,"dataGaLocation":531},"#contact","switch",{"altText":533,"config":561},{"src":535,"dataGaName":536,"dataGaLocation":531},{"altText":533,"config":563},{"src":564,"dataGaName":536,"dataGaLocation":531},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":566,"mobileIcon":571,"desktopIcon":573},{"text":567,"config":568},"Back to pricing",{"href":302,"dataGaName":569,"dataGaLocation":531,"icon":570},"back to pricing","GoBack",{"altText":533,"config":572},{"src":535,"dataGaName":536,"dataGaLocation":531},{"altText":533,"config":574},{"src":539,"dataGaName":536,"dataGaLocation":531},{"title":576,"titleMobile":577,"button":578,"config":583},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":195,"config":579},{"href":580,"dataGaName":581,"dataGaLocation":582},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":584,"disabled":129},"release",{"data":586},{"text":587,"source":588,"edit":594,"contribute":599,"config":604,"items":609,"minimal":819},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":589,"config":590},"View page source",{"href":591,"dataGaName":592,"dataGaLocation":593},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":595,"config":596},"Edit this page",{"href":597,"dataGaName":598,"dataGaLocation":593},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":600,"config":601},"Please contribute",{"href":602,"dataGaName":603,"dataGaLocation":593},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":605,"facebook":606,"youtube":607,"linkedin":608},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[610,657,711,755,787],{"title":300,"links":611,"subMenu":626},[612,616,621],{"text":613,"config":614},"View plans",{"href":302,"dataGaName":615,"dataGaLocation":593},"view plans",{"text":617,"config":618},"Why Premium?",{"href":619,"dataGaName":620,"dataGaLocation":593},"/pricing/premium/","why premium",{"text":622,"config":623},"Why Ultimate?",{"href":624,"dataGaName":625,"dataGaLocation":593},"/pricing/ultimate/","why ultimate",[627],{"title":628,"links":629},"Contact Us",[630,633,635,637,642,647,652],{"text":631,"config":632},"Contact sales",{"href":483,"dataGaName":163,"dataGaLocation":593},{"text":486,"config":634},{"href":488,"dataGaName":489,"dataGaLocation":593},{"text":491,"config":636},{"href":493,"dataGaName":494,"dataGaLocation":593},{"text":638,"config":639},"Status",{"href":640,"dataGaName":641,"dataGaLocation":593},"https://status.gitlab.com/","status",{"text":643,"config":644},"Terms of use",{"href":645,"dataGaName":646,"dataGaLocation":593},"/terms/","terms of use",{"text":648,"config":649},"Privacy statement",{"href":650,"dataGaName":651,"dataGaLocation":593},"/privacy/","privacy statement",{"text":653,"config":654},"Cookie preferences",{"dataGaName":655,"dataGaLocation":593,"id":656,"isOneTrustButton":96},"cookie preferences","ot-sdk-btn",{"title":200,"links":658,"subMenu":667},[659,663],{"text":660,"config":661},"DevSecOps platform",{"href":182,"dataGaName":662,"dataGaLocation":593},"devsecops platform",{"text":664,"config":665},"AI-Assisted Development",{"href":189,"dataGaName":666,"dataGaLocation":593},"ai-assisted development",[668],{"title":669,"links":670},"Topics",[671,676,681,686,691,696,701,706],{"text":672,"config":673},"CICD",{"href":674,"dataGaName":675,"dataGaLocation":593},"/topics/ci-cd/","cicd",{"text":677,"config":678},"GitOps",{"href":679,"dataGaName":680,"dataGaLocation":593},"/topics/gitops/","gitops",{"text":682,"config":683},"DevOps",{"href":684,"dataGaName":685,"dataGaLocation":593},"/topics/devops/","devops",{"text":687,"config":688},"Version Control",{"href":689,"dataGaName":690,"dataGaLocation":593},"/topics/version-control/","version control",{"text":692,"config":693},"DevSecOps",{"href":694,"dataGaName":695,"dataGaLocation":593},"/topics/devsecops/","devsecops",{"text":697,"config":698},"Cloud Native",{"href":699,"dataGaName":700,"dataGaLocation":593},"/topics/cloud-native/","cloud native",{"text":702,"config":703},"AI for Coding",{"href":704,"dataGaName":705,"dataGaLocation":593},"/topics/devops/ai-for-coding/","ai for coding",{"text":707,"config":708},"Agentic AI",{"href":709,"dataGaName":710,"dataGaLocation":593},"/topics/agentic-ai/","agentic ai",{"title":712,"links":713},"Solutions",[714,716,718,723,727,730,734,737,739,742,745,750],{"text":244,"config":715},{"href":239,"dataGaName":244,"dataGaLocation":593},{"text":233,"config":717},{"href":216,"dataGaName":217,"dataGaLocation":593},{"text":719,"config":720},"Agile development",{"href":721,"dataGaName":722,"dataGaLocation":593},"/solutions/agile-delivery/","agile delivery",{"text":724,"config":725},"SCM",{"href":229,"dataGaName":726,"dataGaLocation":593},"source code management",{"text":672,"config":728},{"href":222,"dataGaName":729,"dataGaLocation":593},"continuous integration & delivery",{"text":731,"config":732},"Value stream management",{"href":272,"dataGaName":733,"dataGaLocation":593},"value stream management",{"text":677,"config":735},{"href":736,"dataGaName":680,"dataGaLocation":593},"/solutions/gitops/",{"text":282,"config":738},{"href":285,"dataGaName":286,"dataGaLocation":593},{"text":740,"config":741},"Small business",{"href":291,"dataGaName":292,"dataGaLocation":593},{"text":743,"config":744},"Public sector",{"href":297,"dataGaName":298,"dataGaLocation":593},{"text":746,"config":747},"Education",{"href":748,"dataGaName":749,"dataGaLocation":593},"/solutions/education/","education",{"text":751,"config":752},"Financial services",{"href":753,"dataGaName":754,"dataGaLocation":593},"/solutions/finance/","financial services",{"title":305,"links":756},[757,759,761,763,766,768,771,773,775,777,779,781,783,785],{"text":318,"config":758},{"href":320,"dataGaName":321,"dataGaLocation":593},{"text":323,"config":760},{"href":325,"dataGaName":326,"dataGaLocation":593},{"text":328,"config":762},{"href":330,"dataGaName":331,"dataGaLocation":593},{"text":333,"config":764},{"href":335,"dataGaName":765,"dataGaLocation":593},"docs",{"text":356,"config":767},{"href":358,"dataGaName":359,"dataGaLocation":593},{"text":769,"config":770},"What's new",{"href":415,"dataGaName":416,"dataGaLocation":593},{"text":351,"config":772},{"href":353,"dataGaName":354,"dataGaLocation":593},{"text":370,"config":774},{"href":372,"dataGaName":373,"dataGaLocation":593},{"text":378,"config":776},{"href":380,"dataGaName":381,"dataGaLocation":593},{"text":383,"config":778},{"href":385,"dataGaName":386,"dataGaLocation":593},{"text":388,"config":780},{"href":390,"dataGaName":391,"dataGaLocation":593},{"text":393,"config":782},{"href":395,"dataGaName":396,"dataGaLocation":593},{"text":398,"config":784},{"href":102,"dataGaName":400,"dataGaLocation":593},{"text":402,"config":786},{"href":404,"dataGaName":405,"dataGaLocation":593},{"title":418,"links":788},[789,791,793,795,797,799,803,808,810,812,814],{"text":426,"config":790},{"href":428,"dataGaName":420,"dataGaLocation":593},{"text":431,"config":792},{"href":433,"dataGaName":434,"dataGaLocation":593},{"text":439,"config":794},{"href":441,"dataGaName":442,"dataGaLocation":593},{"text":444,"config":796},{"href":446,"dataGaName":447,"dataGaLocation":593},{"text":449,"config":798},{"href":451,"dataGaName":452,"dataGaLocation":593},{"text":800,"config":801},"Sustainability",{"href":802,"dataGaName":800,"dataGaLocation":593},"/sustainability/",{"text":804,"config":805},"Diversity, inclusion and belonging (DIB)",{"href":806,"dataGaName":807,"dataGaLocation":593},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":454,"config":809},{"href":456,"dataGaName":457,"dataGaLocation":593},{"text":464,"config":811},{"href":466,"dataGaName":467,"dataGaLocation":593},{"text":469,"config":813},{"href":471,"dataGaName":472,"dataGaLocation":593},{"text":815,"config":816},"Modern Slavery Transparency Statement",{"href":817,"dataGaName":818,"dataGaLocation":593},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":820},[821,824,827],{"text":822,"config":823},"Terms",{"href":645,"dataGaName":646,"dataGaLocation":593},{"text":825,"config":826},"Cookies",{"dataGaName":655,"dataGaLocation":593,"id":656,"isOneTrustButton":96},{"text":828,"config":829},"Privacy",{"href":650,"dataGaName":651,"dataGaLocation":593},[831],{"id":832,"title":7,"body":128,"config":833,"content":835,"description":128,"extension":839,"meta":840,"navigation":96,"path":841,"seo":842,"stem":843,"__hash__":844},"blogAuthors/en-us/blog/authors/valerie-silverthorne.yml",{"template":834},"BlogAuthor",{"name":7,"config":836},{"headshot":837,"ctfId":838},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","vsilverthorne","yml",{},"/en-us/blog/authors/valerie-silverthorne",{},"en-us/blog/authors/valerie-silverthorne","r2glbOZCR5HOKEwYKJRy7sOVW6u0oTjxVRg28ZvHJ-I",[846,854,862],{"title":847,"description":848,"heroImage":849,"category":124,"date":850,"authors":851,"slug":853,"externalUrl":128},"What's new in Git 2.55.0?","Learn about the new features and changes in Git 2.55, including a new git-history(1) fixup command, an fsmonitor daemon for Linux, pushing to remote groups, and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782732487/ztwgrvlolpifo01vj8qc.png","2026-06-29",[852],"Toon Claes","whats-new-in-git-2-55-0",{"title":855,"description":856,"heroImage":857,"category":124,"date":858,"authors":859,"slug":861,"externalUrl":128},"GitLab AI Hackathon 2026: Meet the winners","Nearly 7,000 developers built 600+ AI agents and flows on GitLab Duo Agent Platform. Find out who won and what they created.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-22",[860],"Nick Veenhof","gitlab-ai-hackathon-2026-meet-the-winners",{"title":863,"description":864,"heroImage":865,"category":124,"date":866,"authors":867,"slug":869,"externalUrl":128},"What’s new in Git 2.54.0?","Learn about release contributions, including new repository maintenance, a new command to edit commit history, a replacement for git-sizer(1), and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782734716/ztwgrvlolpifo01vj8qc.png","2026-04-20",[868],"Patrick Steinhardt","whats-new-in-git-2-54-0",{"promotions":871},[872,886,898,910],{"id":873,"categories":874,"header":876,"text":877,"button":878,"image":883},"ai-modernization",[875],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":879,"config":880},"Get your AI maturity score",{"href":881,"dataGaName":882,"dataGaLocation":359},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":884},{"src":885},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":887,"categories":888,"header":890,"text":877,"button":891,"image":895},"devops-modernization",[889,695],"product","Are you just managing tools or shipping innovation?",{"text":892,"config":893},"Get your DevOps maturity score",{"href":894,"dataGaName":882,"dataGaLocation":359},"/assessments/devops-modernization-assessment/",{"config":896},{"src":897},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":899,"categories":900,"header":902,"text":877,"button":903,"image":907},"security-modernization",[901],"security","Are you trading speed for security?",{"text":904,"config":905},"Get your security maturity score",{"href":906,"dataGaName":882,"dataGaLocation":359},"/assessments/security-modernization-assessment/",{"config":908},{"src":909},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":911,"paths":912,"header":915,"text":916,"button":917,"image":922},"github-azure-migration",[913,914],"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":918,"config":919},"See how GitLab compares to GitHub",{"href":920,"dataGaName":921,"dataGaLocation":359},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":923},{"src":897},{"header":925,"blurb":926,"button":927,"secondaryButton":932},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":928,"config":929},"Get your free trial",{"href":930,"dataGaName":158,"dataGaLocation":931},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":631,"config":933},{"href":483,"dataGaName":163,"dataGaLocation":931},1786803736649]