[{"data":1,"prerenderedAt":1042},["ShallowReactive",2],{"/blog/tags/demo":3,"navigation-en-us":18,"banner-en-us":446,"footer-en-us":457,"demo-tag-posts-en-us":702},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":11,"meta":12,"navigation":13,"path":14,"seo":15,"slug":6,"stem":16,"testContent":6,"type":6,"__hash__":17},"blogTags/en-us/blog/tags/demo.yml","Demo",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":10},"demo","yml",{},true,"/en-us/blog/tags/demo",{},"en-us/blog/tags/demo","WLNNjjLInZT5A8yulcD951cZPp-_Cvy6bpSgOhtmLNo",{"logo":19,"freeTrial":24,"sales":29,"login":34,"items":39,"search":366,"minimal":397,"duo":416,"switchNav":425,"pricingDeployment":436},{"config":20},{"href":21,"dataGaName":22,"dataGaLocation":23},"/","gitlab logo","header",{"text":25,"config":26},"Get free trial",{"href":27,"dataGaName":28,"dataGaLocation":23},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":30,"config":31},"Request a demo",{"href":32,"dataGaName":33,"dataGaLocation":23},"/sales/?contact-topic=request-demo","sales",{"text":35,"config":36},"Sign in",{"href":37,"dataGaName":38,"dataGaLocation":23},"https://gitlab.com/users/sign_in/","sign in",[40,69,169,174,288,344],{"text":41,"config":42,"menu":44},"Platform",{"dataNavLevelOne":43},"platform",{"type":45,"columns":46},"cards",[47,53,61],{"title":41,"description":48,"link":49},"The intelligent orchestration platform for DevSecOps",{"text":50,"config":51},"Explore our Platform",{"href":52,"dataGaName":43,"dataGaLocation":23},"/platform/",{"title":54,"description":55,"link":56},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":57,"config":58},"Meet GitLab Duo",{"href":59,"dataGaName":60,"dataGaLocation":23},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":62,"description":63,"link":64},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":65,"config":66},"Learn more",{"href":67,"dataGaName":68,"dataGaLocation":23},"/why-gitlab/","why gitlab",{"text":70,"left":13,"config":71,"menu":73},"Product",{"dataNavLevelOne":72},"solutions",{"type":74,"link":75,"columns":79,"feature":148},"lists",{"text":76,"config":77},"View all Solutions",{"href":78,"dataGaName":72,"dataGaLocation":23},"/solutions/",[80,104,127],{"title":81,"description":82,"link":83,"items":88},"Automation","CI/CD and automation to accelerate deployment",{"config":84},{"icon":85,"href":86,"dataGaName":87,"dataGaLocation":23},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[89,93,96,100],{"text":90,"config":91},"CI/CD",{"href":92,"dataGaLocation":23,"dataGaName":90},"/solutions/continuous-integration/",{"text":54,"config":94},{"href":59,"dataGaLocation":23,"dataGaName":95},"gitlab duo agent platform - product menu",{"text":97,"config":98},"Source Code Management",{"href":99,"dataGaLocation":23,"dataGaName":97},"/solutions/source-code-management/",{"text":101,"config":102},"Automated Software Delivery",{"href":86,"dataGaLocation":23,"dataGaName":103},"Automated software delivery",{"title":105,"description":106,"link":107,"items":112},"Security","Deliver code faster without compromising security",{"config":108},{"href":109,"dataGaName":110,"dataGaLocation":23,"icon":111},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[113,117,122],{"text":114,"config":115},"Application Security Testing",{"href":109,"dataGaName":116,"dataGaLocation":23},"Application security testing",{"text":118,"config":119},"Software Supply Chain Security",{"href":120,"dataGaLocation":23,"dataGaName":121},"/solutions/supply-chain/","Software supply chain security",{"text":123,"config":124},"Software Compliance",{"href":125,"dataGaName":126,"dataGaLocation":23},"/solutions/software-compliance/","software compliance",{"title":128,"link":129,"items":134},"Measurement",{"config":130},{"icon":131,"href":132,"dataGaName":133,"dataGaLocation":23},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[135,139,143],{"text":136,"config":137},"Visibility & Measurement",{"href":132,"dataGaLocation":23,"dataGaName":138},"Visibility and Measurement",{"text":140,"config":141},"Value Stream Management",{"href":142,"dataGaLocation":23,"dataGaName":140},"/solutions/value-stream-management/",{"text":144,"config":145},"Analytics & Insights",{"href":146,"dataGaLocation":23,"dataGaName":147},"/solutions/analytics-and-insights/","Analytics and insights",{"title":149,"type":74,"items":150},"GitLab for",[151,157,163],{"text":152,"config":153},"Enterprise",{"icon":154,"href":155,"dataGaLocation":23,"dataGaName":156},"Building","/enterprise/","enterprise",{"text":158,"config":159},"Small Business",{"icon":160,"href":161,"dataGaLocation":23,"dataGaName":162},"Work","/small-business/","small business",{"text":164,"config":165},"Public Sector",{"icon":166,"href":167,"dataGaLocation":23,"dataGaName":168},"Organization","/solutions/public-sector/","public sector",{"text":170,"config":171},"Pricing",{"href":172,"dataGaName":173,"dataGaLocation":23,"dataNavLevelOne":173},"/pricing/","pricing",{"text":175,"config":176,"menu":178},"Resources",{"dataNavLevelOne":177},"resources",{"type":74,"link":179,"columns":183,"feature":277},{"text":180,"config":181},"View all resources",{"href":182,"dataGaName":177,"dataGaLocation":23},"/resources/",[184,217,244],{"title":185,"items":186},"Getting started",[187,192,197,202,207,212],{"text":188,"config":189},"Install",{"href":190,"dataGaName":191,"dataGaLocation":23},"/install/","install",{"text":193,"config":194},"Quick start guides",{"href":195,"dataGaName":196,"dataGaLocation":23},"/get-started/","quick setup checklists",{"text":198,"config":199},"Learn",{"href":200,"dataGaLocation":23,"dataGaName":201},"https://university.gitlab.com/","learn",{"text":203,"config":204},"Product documentation",{"href":205,"dataGaName":206,"dataGaLocation":23},"https://docs.gitlab.com/","product documentation",{"text":208,"config":209},"Best practice videos",{"href":210,"dataGaName":211,"dataGaLocation":23},"/getting-started-videos/","best practice videos",{"text":213,"config":214},"Integrations",{"href":215,"dataGaName":216,"dataGaLocation":23},"/integrations/","integrations",{"title":218,"items":219},"Discover",[220,225,230,235,239],{"text":221,"config":222},"Customer success stories",{"href":223,"dataGaName":224,"dataGaLocation":23},"/customers/","customer success stories",{"text":226,"config":227},"Blog",{"href":228,"dataGaName":229,"dataGaLocation":23},"/blog/","blog",{"text":231,"config":232},"Demo Hub",{"href":233,"dataGaName":234,"dataGaLocation":23},"/demo-hub/","demo hub",{"text":236,"config":237},"The Source",{"href":238,"dataGaName":229,"dataGaLocation":23},"/the-source/",{"text":240,"config":241},"Remote",{"href":242,"dataGaName":243,"dataGaLocation":23},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":245,"items":246},"Connect",[247,252,257,262,267,272],{"text":248,"config":249},"GitLab Services",{"href":250,"dataGaName":251,"dataGaLocation":23},"/services/","services",{"text":253,"config":254},"Contribute",{"href":255,"dataGaName":256,"dataGaLocation":23},"https://contributors.gitlab.com","contribute",{"text":258,"config":259},"Community",{"href":260,"dataGaName":261,"dataGaLocation":23},"/community/","community",{"text":263,"config":264},"Forum",{"href":265,"dataGaName":266,"dataGaLocation":23},"https://forum.gitlab.com/","forum",{"text":268,"config":269},"Events",{"href":270,"dataGaName":271,"dataGaLocation":23},"/events/","events",{"text":273,"config":274},"Partners",{"href":275,"dataGaName":276,"dataGaLocation":23},"/partners/","partners",{"config":278,"title":281,"text":282,"link":283},{"background":279,"textColor":280},"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":284,"config":285},"Read the latest",{"href":286,"dataGaName":287,"dataGaLocation":23},"/whats-new/","whats new",{"text":289,"config":290,"menu":292},"Company",{"dataNavLevelOne":291},"company",{"type":74,"columns":293},[294],{"items":295},[296,301,307,309,314,319,324,329,334,339],{"text":297,"config":298},"About",{"href":299,"dataGaName":300,"dataGaLocation":23},"/company/","about",{"text":302,"config":303,"footerGa":306},"Jobs",{"href":304,"dataGaName":305,"dataGaLocation":23},"/jobs/","jobs",{"dataGaName":305},{"text":268,"config":308},{"href":270,"dataGaName":271,"dataGaLocation":23},{"text":310,"config":311},"Leadership",{"href":312,"dataGaName":313,"dataGaLocation":23},"/company/team/e-group/","leadership",{"text":315,"config":316},"Handbook",{"href":317,"dataGaName":318,"dataGaLocation":23},"https://handbook.gitlab.com/","handbook",{"text":320,"config":321},"Investor relations",{"href":322,"dataGaName":323,"dataGaLocation":23},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":325,"config":326},"Trust Center",{"href":327,"dataGaName":328,"dataGaLocation":23},"/security/","trust center",{"text":330,"config":331},"AI Transparency Center",{"href":332,"dataGaName":333,"dataGaLocation":23},"/ai-transparency-center/","ai transparency center",{"text":335,"config":336},"Newsletter",{"href":337,"dataGaName":338,"dataGaLocation":23},"/company/contact/#contact-forms","newsletter",{"text":340,"config":341},"Press",{"href":342,"dataGaName":343,"dataGaLocation":23},"/press/","press",{"text":345,"config":346,"menu":347},"Contact us",{"dataNavLevelOne":291},{"type":74,"columns":348},[349],{"items":350},[351,356,361],{"text":352,"config":353},"Talk to sales",{"href":354,"dataGaName":355,"dataGaLocation":23},"/sales/","talk to sales",{"text":357,"config":358},"Support portal",{"href":359,"dataGaName":360,"dataGaLocation":23},"https://support.gitlab.com/hc/en-us","support portal",{"text":362,"config":363},"Customer portal",{"href":364,"dataGaName":365,"dataGaLocation":23},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":367,"login":368,"suggestions":375},"Close",{"text":369,"link":370},"To search repositories and projects, login to",{"text":371,"config":372},"gitlab.com",{"href":37,"dataGaName":373,"dataGaLocation":374},"search login","search",{"text":376,"default":377},"Suggestions",[378,380,384,386,390,394],{"text":54,"config":379},{"href":59,"dataGaName":54,"dataGaLocation":374},{"text":381,"config":382},"Code Suggestions (AI)",{"href":383,"dataGaName":381,"dataGaLocation":374},"/solutions/code-suggestions/",{"text":90,"config":385},{"href":92,"dataGaName":90,"dataGaLocation":374},{"text":387,"config":388},"GitLab on AWS",{"href":389,"dataGaName":387,"dataGaLocation":374},"/partners/technology-partners/aws/",{"text":391,"config":392},"GitLab on Google Cloud",{"href":393,"dataGaName":391,"dataGaLocation":374},"/partners/technology-partners/google-cloud-platform/",{"text":395,"config":396},"Why GitLab?",{"href":67,"dataGaName":395,"dataGaLocation":374},{"freeTrial":398,"mobileIcon":403,"desktopIcon":408,"secondaryButton":411},{"text":399,"config":400},"Start free trial",{"href":401,"dataGaName":28,"dataGaLocation":402},"https://gitlab.com/-/trials/new/","nav",{"altText":404,"config":405},"Gitlab Icon",{"src":406,"dataGaName":407,"dataGaLocation":402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":404,"config":409},{"src":410,"dataGaName":407,"dataGaLocation":402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":412,"config":413},"Get Started",{"href":414,"dataGaName":415,"dataGaLocation":402},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":417,"mobileIcon":421,"desktopIcon":423},{"text":418,"config":419},"Learn more about GitLab Duo",{"href":59,"dataGaName":420,"dataGaLocation":402},"gitlab duo",{"altText":404,"config":422},{"src":406,"dataGaName":407,"dataGaLocation":402},{"altText":404,"config":424},{"src":410,"dataGaName":407,"dataGaLocation":402},{"button":426,"mobileIcon":431,"desktopIcon":433},{"text":427,"config":428},"/switch",{"href":429,"dataGaName":430,"dataGaLocation":402},"#contact","switch",{"altText":404,"config":432},{"src":406,"dataGaName":407,"dataGaLocation":402},{"altText":404,"config":434},{"src":435,"dataGaName":407,"dataGaLocation":402},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":437,"mobileIcon":442,"desktopIcon":444},{"text":438,"config":439},"Back to pricing",{"href":172,"dataGaName":440,"dataGaLocation":402,"icon":441},"back to pricing","GoBack",{"altText":404,"config":443},{"src":406,"dataGaName":407,"dataGaLocation":402},{"altText":404,"config":445},{"src":410,"dataGaName":407,"dataGaLocation":402},{"title":447,"titleMobile":448,"button":449,"config":454},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":65,"config":450},{"href":451,"dataGaName":452,"dataGaLocation":453},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":455,"disabled":456},"release",false,{"data":458},{"text":459,"source":460,"edit":466,"contribute":471,"config":476,"items":481,"minimal":691},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":461,"config":462},"View page source",{"href":463,"dataGaName":464,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":467,"config":468},"Edit this page",{"href":469,"dataGaName":470,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":472,"config":473},"Please contribute",{"href":474,"dataGaName":475,"dataGaLocation":465},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":477,"facebook":478,"youtube":479,"linkedin":480},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[482,529,583,627,659],{"title":170,"links":483,"subMenu":498},[484,488,493],{"text":485,"config":486},"View plans",{"href":172,"dataGaName":487,"dataGaLocation":465},"view plans",{"text":489,"config":490},"Why Premium?",{"href":491,"dataGaName":492,"dataGaLocation":465},"/pricing/premium/","why premium",{"text":494,"config":495},"Why Ultimate?",{"href":496,"dataGaName":497,"dataGaLocation":465},"/pricing/ultimate/","why ultimate",[499],{"title":500,"links":501},"Contact Us",[502,505,507,509,514,519,524],{"text":503,"config":504},"Contact sales",{"href":354,"dataGaName":33,"dataGaLocation":465},{"text":357,"config":506},{"href":359,"dataGaName":360,"dataGaLocation":465},{"text":362,"config":508},{"href":364,"dataGaName":365,"dataGaLocation":465},{"text":510,"config":511},"Status",{"href":512,"dataGaName":513,"dataGaLocation":465},"https://status.gitlab.com/","status",{"text":515,"config":516},"Terms of use",{"href":517,"dataGaName":518,"dataGaLocation":465},"/terms/","terms of use",{"text":520,"config":521},"Privacy statement",{"href":522,"dataGaName":523,"dataGaLocation":465},"/privacy/","privacy statement",{"text":525,"config":526},"Cookie preferences",{"dataGaName":527,"dataGaLocation":465,"id":528,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":70,"links":530,"subMenu":539},[531,535],{"text":532,"config":533},"DevSecOps platform",{"href":52,"dataGaName":534,"dataGaLocation":465},"devsecops platform",{"text":536,"config":537},"AI-Assisted Development",{"href":59,"dataGaName":538,"dataGaLocation":465},"ai-assisted development",[540],{"title":541,"links":542},"Topics",[543,548,553,558,563,568,573,578],{"text":544,"config":545},"CICD",{"href":546,"dataGaName":547,"dataGaLocation":465},"/topics/ci-cd/","cicd",{"text":549,"config":550},"GitOps",{"href":551,"dataGaName":552,"dataGaLocation":465},"/topics/gitops/","gitops",{"text":554,"config":555},"DevOps",{"href":556,"dataGaName":557,"dataGaLocation":465},"/topics/devops/","devops",{"text":559,"config":560},"Version Control",{"href":561,"dataGaName":562,"dataGaLocation":465},"/topics/version-control/","version control",{"text":564,"config":565},"DevSecOps",{"href":566,"dataGaName":567,"dataGaLocation":465},"/topics/devsecops/","devsecops",{"text":569,"config":570},"Cloud Native",{"href":571,"dataGaName":572,"dataGaLocation":465},"/topics/cloud-native/","cloud native",{"text":574,"config":575},"AI for Coding",{"href":576,"dataGaName":577,"dataGaLocation":465},"/topics/devops/ai-for-coding/","ai for coding",{"text":579,"config":580},"Agentic AI",{"href":581,"dataGaName":582,"dataGaLocation":465},"/topics/agentic-ai/","agentic ai",{"title":584,"links":585},"Solutions",[586,588,590,595,599,602,606,609,611,614,617,622],{"text":114,"config":587},{"href":109,"dataGaName":114,"dataGaLocation":465},{"text":103,"config":589},{"href":86,"dataGaName":87,"dataGaLocation":465},{"text":591,"config":592},"Agile development",{"href":593,"dataGaName":594,"dataGaLocation":465},"/solutions/agile-delivery/","agile delivery",{"text":596,"config":597},"SCM",{"href":99,"dataGaName":598,"dataGaLocation":465},"source code management",{"text":544,"config":600},{"href":92,"dataGaName":601,"dataGaLocation":465},"continuous integration & delivery",{"text":603,"config":604},"Value stream management",{"href":142,"dataGaName":605,"dataGaLocation":465},"value stream management",{"text":549,"config":607},{"href":608,"dataGaName":552,"dataGaLocation":465},"/solutions/gitops/",{"text":152,"config":610},{"href":155,"dataGaName":156,"dataGaLocation":465},{"text":612,"config":613},"Small business",{"href":161,"dataGaName":162,"dataGaLocation":465},{"text":615,"config":616},"Public sector",{"href":167,"dataGaName":168,"dataGaLocation":465},{"text":618,"config":619},"Education",{"href":620,"dataGaName":621,"dataGaLocation":465},"/solutions/education/","education",{"text":623,"config":624},"Financial services",{"href":625,"dataGaName":626,"dataGaLocation":465},"/solutions/finance/","financial services",{"title":175,"links":628},[629,631,633,635,638,640,643,645,647,649,651,653,655,657],{"text":188,"config":630},{"href":190,"dataGaName":191,"dataGaLocation":465},{"text":193,"config":632},{"href":195,"dataGaName":196,"dataGaLocation":465},{"text":198,"config":634},{"href":200,"dataGaName":201,"dataGaLocation":465},{"text":203,"config":636},{"href":205,"dataGaName":637,"dataGaLocation":465},"docs",{"text":226,"config":639},{"href":228,"dataGaName":229,"dataGaLocation":465},{"text":641,"config":642},"What's new",{"href":286,"dataGaName":287,"dataGaLocation":465},{"text":221,"config":644},{"href":223,"dataGaName":224,"dataGaLocation":465},{"text":240,"config":646},{"href":242,"dataGaName":243,"dataGaLocation":465},{"text":248,"config":648},{"href":250,"dataGaName":251,"dataGaLocation":465},{"text":253,"config":650},{"href":255,"dataGaName":256,"dataGaLocation":465},{"text":258,"config":652},{"href":260,"dataGaName":261,"dataGaLocation":465},{"text":263,"config":654},{"href":265,"dataGaName":266,"dataGaLocation":465},{"text":268,"config":656},{"href":270,"dataGaName":271,"dataGaLocation":465},{"text":273,"config":658},{"href":275,"dataGaName":276,"dataGaLocation":465},{"title":289,"links":660},[661,663,665,667,669,671,675,680,682,684,686],{"text":297,"config":662},{"href":299,"dataGaName":291,"dataGaLocation":465},{"text":302,"config":664},{"href":304,"dataGaName":305,"dataGaLocation":465},{"text":310,"config":666},{"href":312,"dataGaName":313,"dataGaLocation":465},{"text":315,"config":668},{"href":317,"dataGaName":318,"dataGaLocation":465},{"text":320,"config":670},{"href":322,"dataGaName":323,"dataGaLocation":465},{"text":672,"config":673},"Sustainability",{"href":674,"dataGaName":672,"dataGaLocation":465},"/sustainability/",{"text":676,"config":677},"Diversity, inclusion and belonging (DIB)",{"href":678,"dataGaName":679,"dataGaLocation":465},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":325,"config":681},{"href":327,"dataGaName":328,"dataGaLocation":465},{"text":335,"config":683},{"href":337,"dataGaName":338,"dataGaLocation":465},{"text":340,"config":685},{"href":342,"dataGaName":343,"dataGaLocation":465},{"text":687,"config":688},"Modern Slavery Transparency Statement",{"href":689,"dataGaName":690,"dataGaLocation":465},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":692},[693,696,699],{"text":694,"config":695},"Terms",{"href":517,"dataGaName":518,"dataGaLocation":465},{"text":697,"config":698},"Cookies",{"dataGaName":527,"dataGaLocation":465,"id":528,"isOneTrustButton":13},{"text":700,"config":701},"Privacy",{"href":522,"dataGaName":523,"dataGaLocation":465},[703,712,720,729,737,748,755,762,769,778,786,794,801,808,815,822,830,838,838,845,854,862,868,876,884,892,899,907,915,924,932,941,950,958,966,973,980,988,996,1004,1012,1020,1028,1034],{"title":704,"heroImage":705,"category":706,"description":707,"authors":708,"date":710,"slug":711,"externalUrl":6},"Use GitLab Duo to build and deploy a simple Quarkus-native project","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666069/Blog/Hero%20Images/AdobeStock_639935439.jpg","ai","This tutorial shows how a Java application is compiled to machine code and deployed to a Kubernetes cluster using a CI/CD pipeline. See how AI makes the process faster and more efficient.",[709],"Cesar Saavedra","2024-10-17","use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project",{"title":713,"heroImage":714,"category":567,"description":715,"authors":716,"date":718,"slug":719,"externalUrl":6},"DevSecOps platforms help SMBs scale as they grow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668641/Blog/Hero%20Images/smbscale.jpg","Adopting a comprehensive platform early lets smaller businesses mature with best practices.",[717],"Sharon Gaudin","2023-01-17","devsecops-platforms-help-smbs-scale-as-they-grow",{"title":721,"heroImage":722,"category":723,"description":724,"authors":725,"date":727,"slug":728,"externalUrl":6},"Installing GitLab on Raspberry Pi 64-bit OS","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679433/Blog/Hero%20Images/anto-meneghini-gqytxsrctvw-unsplash.jpg","engineering","A Raspberry Pi enthusiast tries to run GitLab on the new 64-bit OS...and here's what happened.",[726],"Brendan O'Leary","2022-03-14","installing-gitlab-on-raspberry-pi-64-bit-os",{"title":730,"heroImage":731,"category":723,"description":732,"authors":733,"date":735,"slug":736,"externalUrl":6},"How Comet can streamline machine learning on The GitLab DevOps Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669991/Blog/Hero%20Images/ways-to-encourage-collaboration.jpg","Here's a step-by-step look at how to bring ML into software development using Comet on GitLab's DevOps Platform.",[734],"William Arias","2021-11-08","machine-learning-on-the-gitlab-devops-platform",{"title":738,"heroImage":739,"category":740,"description":741,"authors":742,"date":746,"slug":747,"externalUrl":6},"How to write and continuously test vulnerability detection rules for SAST","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667819/Blog/Hero%20Images/anomaly-detection-cover.png","security","Interns with the Google Summer of Code helped GitLab transition from our old SAST tools to Semgrep.",[743,744,745],"Ross Fuhrman","Anshuman Singh","Julian Thome","2021-09-08","write-vulnerability-detection-rules",{"title":749,"heroImage":750,"category":723,"description":751,"authors":752,"date":753,"slug":754,"externalUrl":6},"How to use a push-based approach for GitOps with Terraform and AWS ECS and EC2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","Learn how GitLab supports agentless approach for GitOps on AWS.",[709],"2021-08-10","how-to-agentless-gitops-aws",{"title":756,"heroImage":757,"category":723,"description":758,"authors":759,"date":760,"slug":761,"externalUrl":6},"How to use a push-based approach for GitOps with GitLab scripting and variables","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682051/Blog/Hero%20Images/agentless-gitops-vars-cover-880x587.jpg","Learn how GitLab supports agentless approach for GitOps with scripting and variables.",[709],"2021-07-23","how-to-agentless-gitops-vars",{"title":763,"heroImage":764,"category":723,"description":765,"authors":766,"date":767,"slug":768,"externalUrl":6},"How to use a pull-based (agent-based) approach for GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682037/Blog/Hero%20Images/agent-based-gitops-cover-880x587.jpg","Learn how GitLab supports agent-based approach for GitOps",[709],"2021-06-23","how-to-use-agent-based-gitops",{"title":770,"heroImage":771,"category":772,"description":773,"authors":774,"date":776,"slug":777,"externalUrl":6},"What to consider when going hybrid","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681897/Blog/Hero%20Images/san_francisco_skyline_dm.jpg","culture","Hybrid-remote is an alluring alternative to all-remote, but requires careful consideration. Here's what you need to know when making the shift.",[775],"Darren Murph","2021-02-17","considerations-for-going-hybrid-remote",{"title":779,"heroImage":780,"category":781,"description":782,"authors":783,"date":784,"slug":785,"externalUrl":6},"GitLab’s automated and integrated continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681872/Blog/Hero%20Images/CD-2st-mkt-diff-cover-1275x849.jpg","unfiltered","Learn about how the power of GitLab Auto DevOps can help increase productivity and speed up releases.",[709],"2021-01-22","cd-automated-integrated",{"title":787,"heroImage":788,"category":781,"description":789,"authors":790,"date":792,"slug":793,"externalUrl":6},"A quick guide to GitLab Dependency Scanning","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681849/Blog/Hero%20Images/iceberg_header.jpg","A walk through of creating a quick example project in order to see Dependency Scanning in action.",[791],"Nicole Schwartz","2021-01-14","try-dependency-scanning",{"title":795,"heroImage":796,"category":723,"description":797,"authors":798,"date":799,"slug":800,"externalUrl":6},"How to use GitLab tools for continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682956/Blog/Hero%20Images/CD-continuous-nature-cover-880x586.jpg","Learn how to use GitLab technology to release software faster and with less risk.",[709],"2020-12-17","cd-solution-overview",{"title":802,"heroImage":803,"category":723,"description":804,"authors":805,"date":799,"slug":807,"externalUrl":6},"How to use GitLab for Agile, CI/CD, GitOps, and more","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681825/Blog/Hero%20Images/triangle_geo.jpg","Read our example engineering stories from the past two years that show how to use GitLab for you DevOps cycle, including GitOps, CI/CD and more.",[806],"Sara Kassabian","gitlab-for-cicd-agile-gitops-cloudnative",{"title":809,"heroImage":810,"category":781,"description":811,"authors":812,"date":813,"slug":814,"externalUrl":6},"GitLab's unifiied and integrated monitoring strategies","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681771/Blog/Hero%20Images/CD-1st-mkt-diff-cover-1275x849.jpg","Learn about GitLab’s unified and integrated monitoring capabilities and advanced deployment strategies.",[709],"2020-11-23","cd-unified-monitor-deploy",{"title":816,"heroImage":817,"category":781,"description":818,"authors":819,"date":820,"slug":821,"externalUrl":6},"GitLab uniquely enables rapid innovation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681603/Blog/Hero%20Images/rapids-cover-1275x750.jpg","Learn about some of the ways GitLab can uniquely enable your developers to innovate more rapidly.",[709],"2020-09-30","enables-rapid-innovation",{"title":823,"heroImage":824,"category":781,"description":825,"authors":826,"date":828,"slug":829,"externalUrl":6},"Applying risk management to pandemic-driven remote learning","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672774/Blog/Hero%20Images/pexels-august.jpg","A GitLab team member and parent offers some tips to improve today’s remote learning experience.",[827],"Meghan Maneval","2020-08-27","applying-risk-management-to-remote-learning",{"title":831,"heroImage":832,"category":740,"description":833,"authors":834,"date":836,"slug":837,"externalUrl":6},"Get better container security with GitLab: 4 real-world examples","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667094/Blog/Hero%20Images/container-security.jpg","Containers are increasingly popular – and increasingly vulnerable. Using\nfour threat scenarios, we step through how GitLab's built-in security\nfeatures will make containers safer.",[835],"Thiago Figueiró","2020-07-28","container-security-in-gitlab",{"title":839,"heroImage":840,"category":781,"description":841,"authors":842,"date":843,"slug":844,"externalUrl":6},"GitLab CEO Shadow program takeaways and lessons learned","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681331/Blog/Hero%20Images/all-remote-world-banner-1920x1080.png","I attended every meeting with GitLab's CEO for two weeks. This is what I learned.",[775],"2020-05-22","gitlab-remote-ceo-shadow-takeaways",{"title":846,"heroImage":847,"category":848,"description":849,"authors":850,"date":852,"slug":853,"externalUrl":6},"Announcing 32/64-bit Arm Runner Support for AWS Graviton2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","news","GitLab enables CI/CD solution on Arm-based AWS Graviton2 instances.",[851],"Kushal Koolwal","2020-05-15","gitlab-arm-aws-graviton2-solution",{"title":855,"heroImage":856,"category":723,"description":857,"authors":858,"date":860,"slug":861,"externalUrl":6},"How to deploy your application to a GitLab-managed Amazon EKS cluster with Auto DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666959/Blog/Hero%20Images/gitlab-aws-cover.png","A Kubernetes tutorial: Use GitLab AutoDevOps to deploy your applications to Amazon EKS.",[859],"Abubakar Siddiq Ango","2020-05-05","deploying-application-eks",{"title":863,"heroImage":856,"category":723,"description":864,"authors":865,"date":866,"slug":867,"externalUrl":6},"How to create a Kubernetes cluster on Amazon EKS in GitLab","A Kubernetes tutorial: Create clusters in a few clicks with GitLab and Amazon EKS.",[859],"2020-03-09","gitlab-eks-integration-how-to",{"title":869,"heroImage":870,"category":723,"description":871,"authors":872,"date":874,"slug":875,"externalUrl":6},"How to limit access to manual pipeline gates and deployments using GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681105/Blog/Hero%20Images/protect_manual_jobs.jpg","Let's look at how to use protected environments to set up access controls for production deployments and manual gates.",[873],"Thao Yeager","2020-02-20","protecting-manual-jobs",{"title":877,"heroImage":878,"category":772,"description":879,"authors":880,"date":882,"slug":883,"externalUrl":6},"Lessons learned managing the GitLab Data team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","Staff Data Engineer Taylor Murphy shares his lessons and takeways from one year as the Data team manager.",[881],"Taylor Murphy","2020-02-10","lessons-learned-as-data-team-manager",{"title":885,"heroImage":886,"category":723,"description":887,"authors":888,"date":890,"slug":891,"externalUrl":6},"How starting merge trains improve efficiency for DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678419/Blog/Hero%20Images/merge_trains.jpg","No more queuing and waiting for pipeline results! Read how merge trains will speed up your deployments while making sure master stays green.",[889],"Orit Golowinski","2020-01-30","all-aboard-merge-trains",{"title":893,"heroImage":894,"category":781,"description":895,"authors":896,"date":897,"slug":898,"externalUrl":6},"Using Gitlab APIs: Real Use Case Scenario","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681037/Blog/Hero%20Images/gitlabapi-cover.jpg","Learn about how GitLab CI and APIs can help you automate bulk tasks",[734],"2020-01-22","gitlab-apis-ci",{"title":900,"heroImage":901,"category":291,"description":902,"authors":903,"date":905,"slug":906,"externalUrl":6},"Managing multiple product categories in GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680898/Blog/Hero%20Images/filing-cabinet.jpg","Exploring issue mangement options for product teams that are all contributing to a single repository.",[904],"Gabe Weaver","2019-12-05","how-to-setup-gitlab-for-multiple-product-teams",{"title":908,"heroImage":909,"category":781,"description":910,"authors":911,"date":913,"slug":914,"externalUrl":6},"The 3 Levels of Data Analysis- A Framework for Assessing Data Organization Maturity","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666603/Blog/Hero%20Images/book.jpg","GitLab Data Engineer Emilie Schario lays out a framework for data analysis that can help an organization understand the maturity of their data team.",[912],"Emilie Schario","2019-11-04","three-levels-data-analysis",{"title":916,"heroImage":917,"category":918,"description":919,"authors":920,"date":922,"slug":923,"externalUrl":6},"Is serverless the end of ops?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671845/Blog/Hero%20Images/serverless-ops-blog.jpg","insights","What is Serverless architecture, what are the pros and cons of using it and where will it go in the future?",[921],"Chrissie Buchanan","2019-09-12","is-serverless-the-end-of-ops",{"title":925,"heroImage":926,"category":723,"description":927,"authors":928,"date":930,"slug":931,"externalUrl":6},"How to avoid broken master with Pipelines for Merged Results and Merge Trains","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678366/Blog/Hero%20Images/merge-train.jpg","Do you still run pipelines on source branches? Let's start running them on merge commits!",[929],"Shinya Maeda","2019-09-11","how-to-avoid-broken-master-with-pipelines-for-merge-requests",{"title":933,"heroImage":934,"category":723,"description":935,"authors":936,"date":939,"slug":940,"externalUrl":6},"Build enterprise-grade IaC pipelines with GitLab DevSecOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1746211002/zlet4rmfg2z0j6lg16mc.png","Learn how to transform infrastructure automation into scalable, secure pipelines using GitLab, Terraform/OpenTofu, and Ansible with integrated security scanning and CI/CD.",[937,938],"George Kichukov","Salahddine Aberkan","2019-07-01","using-ansible-and-gitlab-as-infrastructure-for-code",{"title":942,"heroImage":943,"category":944,"description":945,"authors":946,"date":948,"slug":949,"externalUrl":6},"Thanks Fluentd for betting on GitLab CI/CD!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678614/Blog/Hero%20Images/gitlab-fluentd.png","open-source","We're happy to support fresh CNCF graduate Fluentd with GitLab CI/CD, and excited about their latest innovation offering stream processing on the edge.",[947],"Priyanka Sharma","2019-05-21","fluentd-using-gitlab-ci-cd",{"title":951,"heroImage":952,"category":291,"description":953,"authors":954,"date":956,"slug":957,"externalUrl":6},"GitLab deploys into multiple clouds from kubectl using Crossplane","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680612/Blog/Hero%20Images/crossplane.png","We're proud to be advancing our commitment to multicloud DevOps.",[955],"GitLab","2019-05-20","gitlab-first-deployed-kubernetes-api-to-multiple-clouds",{"title":959,"heroImage":960,"category":723,"description":961,"authors":962,"date":964,"slug":965,"externalUrl":6},"New: How to get up and running quickly using GitLab Pages templates","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679908/Blog/Hero%20Images/pages-templates-cover-image.jpg","We're introducing bundled GitLab Pages templates, so let's take a look at how easy it really is now to get up and running with a new site.",[963],"Jason Yavorska","2019-02-20","start-using-pages-quickly",{"title":967,"heroImage":856,"category":723,"description":968,"authors":969,"date":971,"slug":972,"externalUrl":6},"How to set up multi-account AWS SAM deployments with GitLab CI/CD","Our guest author, an AWS Serverless hero, shares how to automate SAM deployments using GitLab CI/CD.",[970],"Forrest Brazeal","2019-02-04","multi-account-aws-sam-deployments-with-gitlab-ci",{"title":974,"heroImage":975,"category":291,"description":976,"authors":977,"date":978,"slug":979,"externalUrl":6},"Highlights from AWS re:Invent 2018","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679994/Blog/Hero%20Images/aws_booth_2018.jpg","Catch up on what GitLab got up to at AWS re:Invent last week! Reinventing pipelines, emerging as a single application, theCUBE interviews, and more.",[947],"2018-12-06","aws-reinvent-recap",{"title":981,"heroImage":982,"category":723,"description":983,"authors":984,"date":986,"slug":987,"externalUrl":6},"New Meltano personas, priorities, and updates from the team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678847/Blog/Hero%20Images/meltano-fgu.jpg","There's a lot going on — here are some of the highlights on user research, dogfooding Meltano, embedding engineers, and hiring!",[985],"Jacob Schatz","2018-10-08","meltano-functional-group-update-post",{"title":989,"heroImage":990,"category":723,"description":991,"authors":992,"date":994,"slug":995,"externalUrl":6},"How to work on two Git branches at the same time","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678782/Blog/Hero%20Images/working-on-two-git-branches-at-the-same-time.jpg","Watch the demo on how using the GitLab Web IDE and your local dev environment to work on two branches at once can help save time.",[993],"William Chia","2018-10-03","working-on-two-git-branches-at-the-same-time",{"title":997,"heroImage":998,"category":944,"description":999,"authors":1000,"date":1002,"slug":1003,"externalUrl":6},"Contributing to GitLab with ease","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678997/Blog/Hero%20Images/mergerequestsgame.jpg","Everyone can contribute to GitLab, so here are a few tips to make your experience easy and pleasant.",[1001],"Lin Jen-Shin","2018-08-23","contributing-to-gitlab-with-ease",{"title":1005,"heroImage":1006,"category":723,"description":1007,"authors":1008,"date":1010,"slug":1011,"externalUrl":6},"A 5-minute Markdown tutorial","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671172/Blog/Hero%20Images/markdown-tutorial-cover.png","New to GitLab? New to Markdown? Here's a quick explainer on using Markdown to format text all over GitLab.",[1009],"Rebecca Dodd","2018-08-17","gitlab-markdown-tutorial",{"title":1013,"heroImage":1014,"category":291,"description":1015,"authors":1016,"date":1018,"slug":1019,"externalUrl":6},"Demo: GitLab + Jira + Jenkins","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680048/Blog/Hero%20Images/gitlab-jira-jenkins-cover.png","See how you can use our Jira and Jenkins integrations to reduce context switching and streamline your workflow.",[1017],"Joel Krooswyk","2018-07-30","gitlab-workflow-with-jira-jenkins",{"title":1021,"heroImage":1022,"category":723,"description":1023,"authors":1024,"date":1026,"slug":1027,"externalUrl":6},"Scalable app deployment with GitLab and Google Cloud Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671280/Blog/Hero%20Images/gitlab-gke-integration-cover.png","Get the power to spin up a Kubernetes cluster managed by Google Cloud Platform in a few clicks – watch the demo of our native integration.",[1025],"Suri Patel","2018-05-10","gke-webcast-recap-post",{"title":1029,"heroImage":1022,"category":723,"description":1030,"authors":1031,"date":1032,"slug":1033,"externalUrl":6},"Getting started with GitLab CI/CD and Google Cloud Platform","Discover how easy it is to set up CI/CD and Kubernetes deployment with our integration with Google Kubernetes Engine.",[955],"2018-04-24","getting-started-gitlab-ci-gcp",{"title":1035,"heroImage":1036,"category":723,"description":1037,"authors":1038,"date":1040,"slug":1041,"externalUrl":6},"A VS Code extension for GitLab: GitLab Workflow","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680196/Blog/Hero%20Images/vs-code-extension-gitlab-workflow.jpg","Senior Frontend Engineer Fatih Acet created a VS Code extension, GitLab Workflow, which allows you to do many GitLab-specific tasks quickly and easily.",[1039],"Fatih Acet","2018-03-01","gitlab-vscode-extension",1786803755052]