[{"data":1,"prerenderedAt":1106},["ShallowReactive",2],{"/en-us/blog/tags/demo":3,"navigation-en-us":18,"banner-en-us":428,"footer-en-us":438,"demo-tag-posts-en-us":680},{"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",{"data":19},{"logo":20,"freeTrial":25,"sales":30,"login":35,"items":40,"search":348,"minimal":379,"duo":398,"switchNav":407,"pricingDeployment":418},{"config":21},{"href":22,"dataGaName":23,"dataGaLocation":24},"/","gitlab logo","header",{"text":26,"config":27},"Get free trial",{"href":28,"dataGaName":29,"dataGaLocation":24},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":31,"config":32},"Talk to sales",{"href":33,"dataGaName":34,"dataGaLocation":24},"/sales/","sales",{"text":36,"config":37},"Sign in",{"href":38,"dataGaName":39,"dataGaLocation":24},"https://gitlab.com/users/sign_in/","sign in",[41,68,163,168,269,329],{"text":42,"config":43,"cards":45},"Platform",{"dataNavLevelOne":44},"platform",[46,52,60],{"title":42,"description":47,"link":48},"The intelligent orchestration platform for DevSecOps",{"text":49,"config":50},"Explore our Platform",{"href":51,"dataGaName":44,"dataGaLocation":24},"/platform/",{"title":53,"description":54,"link":55},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":56,"config":57},"Meet GitLab Duo",{"href":58,"dataGaName":59,"dataGaLocation":24},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":61,"description":62,"link":63},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":64,"config":65},"Learn more",{"href":66,"dataGaName":67,"dataGaLocation":24},"/why-gitlab/","why gitlab",{"text":69,"left":13,"config":70,"link":72,"lists":76,"footer":145},"Product",{"dataNavLevelOne":71},"solutions",{"text":73,"config":74},"View all Solutions",{"href":75,"dataGaName":71,"dataGaLocation":24},"/solutions/",[77,101,124],{"title":78,"description":79,"link":80,"items":85},"Automation","CI/CD and automation to accelerate deployment",{"config":81},{"icon":82,"href":83,"dataGaName":84,"dataGaLocation":24},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[86,90,93,97],{"text":87,"config":88},"CI/CD",{"href":89,"dataGaLocation":24,"dataGaName":87},"/solutions/continuous-integration/",{"text":53,"config":91},{"href":58,"dataGaLocation":24,"dataGaName":92},"gitlab duo agent platform - product menu",{"text":94,"config":95},"Source Code Management",{"href":96,"dataGaLocation":24,"dataGaName":94},"/solutions/source-code-management/",{"text":98,"config":99},"Automated Software Delivery",{"href":83,"dataGaLocation":24,"dataGaName":100},"Automated software delivery",{"title":102,"description":103,"link":104,"items":109},"Security","Deliver code faster without compromising security",{"config":105},{"href":106,"dataGaName":107,"dataGaLocation":24,"icon":108},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[110,114,119],{"text":111,"config":112},"Application Security Testing",{"href":106,"dataGaName":113,"dataGaLocation":24},"Application security testing",{"text":115,"config":116},"Software Supply Chain Security",{"href":117,"dataGaLocation":24,"dataGaName":118},"/solutions/supply-chain/","Software supply chain security",{"text":120,"config":121},"Software Compliance",{"href":122,"dataGaName":123,"dataGaLocation":24},"/solutions/software-compliance/","software compliance",{"title":125,"link":126,"items":131},"Measurement",{"config":127},{"icon":128,"href":129,"dataGaName":130,"dataGaLocation":24},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[132,136,140],{"text":133,"config":134},"Visibility & Measurement",{"href":129,"dataGaLocation":24,"dataGaName":135},"Visibility and Measurement",{"text":137,"config":138},"Value Stream Management",{"href":139,"dataGaLocation":24,"dataGaName":137},"/solutions/value-stream-management/",{"text":141,"config":142},"Analytics & Insights",{"href":143,"dataGaLocation":24,"dataGaName":144},"/solutions/analytics-and-insights/","Analytics and insights",{"title":146,"items":147},"GitLab for",[148,153,158],{"text":149,"config":150},"Enterprise",{"href":151,"dataGaLocation":24,"dataGaName":152},"/enterprise/","enterprise",{"text":154,"config":155},"Small Business",{"href":156,"dataGaLocation":24,"dataGaName":157},"/small-business/","small business",{"text":159,"config":160},"Public Sector",{"href":161,"dataGaLocation":24,"dataGaName":162},"/solutions/public-sector/","public sector",{"text":164,"config":165},"Pricing",{"href":166,"dataGaName":167,"dataGaLocation":24,"dataNavLevelOne":167},"/pricing/","pricing",{"text":169,"config":170,"link":172,"lists":176,"feature":256},"Resources",{"dataNavLevelOne":171},"resources",{"text":173,"config":174},"View all resources",{"href":175,"dataGaName":171,"dataGaLocation":24},"/resources/",[177,210,228],{"title":178,"items":179},"Getting started",[180,185,190,195,200,205],{"text":181,"config":182},"Install",{"href":183,"dataGaName":184,"dataGaLocation":24},"/install/","install",{"text":186,"config":187},"Quick start guides",{"href":188,"dataGaName":189,"dataGaLocation":24},"/get-started/","quick setup checklists",{"text":191,"config":192},"Learn",{"href":193,"dataGaLocation":24,"dataGaName":194},"https://university.gitlab.com/","learn",{"text":196,"config":197},"Product documentation",{"href":198,"dataGaName":199,"dataGaLocation":24},"https://docs.gitlab.com/","product documentation",{"text":201,"config":202},"Best practice videos",{"href":203,"dataGaName":204,"dataGaLocation":24},"/getting-started-videos/","best practice videos",{"text":206,"config":207},"Integrations",{"href":208,"dataGaName":209,"dataGaLocation":24},"/integrations/","integrations",{"title":211,"items":212},"Discover",[213,218,223],{"text":214,"config":215},"Customer success stories",{"href":216,"dataGaName":217,"dataGaLocation":24},"/customers/","customer success stories",{"text":219,"config":220},"Blog",{"href":221,"dataGaName":222,"dataGaLocation":24},"/blog/","blog",{"text":224,"config":225},"Remote",{"href":226,"dataGaName":227,"dataGaLocation":24},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":229,"items":230},"Connect",[231,236,241,246,251],{"text":232,"config":233},"GitLab Services",{"href":234,"dataGaName":235,"dataGaLocation":24},"/services/","services",{"text":237,"config":238},"Community",{"href":239,"dataGaName":240,"dataGaLocation":24},"/community/","community",{"text":242,"config":243},"Forum",{"href":244,"dataGaName":245,"dataGaLocation":24},"https://forum.gitlab.com/","forum",{"text":247,"config":248},"Events",{"href":249,"dataGaName":250,"dataGaLocation":24},"/events/","events",{"text":252,"config":253},"Partners",{"href":254,"dataGaName":255,"dataGaLocation":24},"/partners/","partners",{"backgroundColor":257,"textColor":258,"text":259,"image":260,"link":264},"#2f2a6b","#fff","Insights for the future of software development",{"altText":261,"config":262},"the source promo card",{"src":263},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":265,"config":266},"Read the latest",{"href":267,"dataGaName":268,"dataGaLocation":24},"/the-source/","the source",{"text":270,"config":271,"lists":273},"Company",{"dataNavLevelOne":272},"company",[274],{"items":275},[276,281,287,289,294,299,304,309,314,319,324],{"text":277,"config":278},"About",{"href":279,"dataGaName":280,"dataGaLocation":24},"/company/","about",{"text":282,"config":283,"footerGa":286},"Jobs",{"href":284,"dataGaName":285,"dataGaLocation":24},"/jobs/","jobs",{"dataGaName":285},{"text":247,"config":288},{"href":249,"dataGaName":250,"dataGaLocation":24},{"text":290,"config":291},"Leadership",{"href":292,"dataGaName":293,"dataGaLocation":24},"/company/team/e-group/","leadership",{"text":295,"config":296},"Team",{"href":297,"dataGaName":298,"dataGaLocation":24},"/company/team/","team",{"text":300,"config":301},"Handbook",{"href":302,"dataGaName":303,"dataGaLocation":24},"https://handbook.gitlab.com/","handbook",{"text":305,"config":306},"Investor relations",{"href":307,"dataGaName":308,"dataGaLocation":24},"https://ir.gitlab.com/","investor relations",{"text":310,"config":311},"Trust Center",{"href":312,"dataGaName":313,"dataGaLocation":24},"/security/","trust center",{"text":315,"config":316},"AI Transparency Center",{"href":317,"dataGaName":318,"dataGaLocation":24},"/ai-transparency-center/","ai transparency center",{"text":320,"config":321},"Newsletter",{"href":322,"dataGaName":323,"dataGaLocation":24},"/company/contact/#contact-forms","newsletter",{"text":325,"config":326},"Press",{"href":327,"dataGaName":328,"dataGaLocation":24},"/press/","press",{"text":330,"config":331,"lists":332},"Contact us",{"dataNavLevelOne":272},[333],{"items":334},[335,338,343],{"text":31,"config":336},{"href":33,"dataGaName":337,"dataGaLocation":24},"talk to sales",{"text":339,"config":340},"Support portal",{"href":341,"dataGaName":342,"dataGaLocation":24},"https://support.gitlab.com","support portal",{"text":344,"config":345},"Customer portal",{"href":346,"dataGaName":347,"dataGaLocation":24},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":349,"login":350,"suggestions":357},"Close",{"text":351,"link":352},"To search repositories and projects, login to",{"text":353,"config":354},"gitlab.com",{"href":38,"dataGaName":355,"dataGaLocation":356},"search login","search",{"text":358,"default":359},"Suggestions",[360,362,366,368,372,376],{"text":53,"config":361},{"href":58,"dataGaName":53,"dataGaLocation":356},{"text":363,"config":364},"Code Suggestions (AI)",{"href":365,"dataGaName":363,"dataGaLocation":356},"/solutions/code-suggestions/",{"text":87,"config":367},{"href":89,"dataGaName":87,"dataGaLocation":356},{"text":369,"config":370},"GitLab on AWS",{"href":371,"dataGaName":369,"dataGaLocation":356},"/partners/technology-partners/aws/",{"text":373,"config":374},"GitLab on Google Cloud",{"href":375,"dataGaName":373,"dataGaLocation":356},"/partners/technology-partners/google-cloud-platform/",{"text":377,"config":378},"Why GitLab?",{"href":66,"dataGaName":377,"dataGaLocation":356},{"freeTrial":380,"mobileIcon":385,"desktopIcon":390,"secondaryButton":393},{"text":381,"config":382},"Start free trial",{"href":383,"dataGaName":29,"dataGaLocation":384},"https://gitlab.com/-/trials/new/","nav",{"altText":386,"config":387},"Gitlab Icon",{"src":388,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":386,"config":391},{"src":392,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":394,"config":395},"Get Started",{"href":396,"dataGaName":397,"dataGaLocation":384},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":399,"mobileIcon":403,"desktopIcon":405},{"text":400,"config":401},"Learn more about GitLab Duo",{"href":58,"dataGaName":402,"dataGaLocation":384},"gitlab duo",{"altText":386,"config":404},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":406},{"src":392,"dataGaName":389,"dataGaLocation":384},{"button":408,"mobileIcon":413,"desktopIcon":415},{"text":409,"config":410},"/switch",{"href":411,"dataGaName":412,"dataGaLocation":384},"#contact","switch",{"altText":386,"config":414},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":416},{"src":417,"dataGaName":389,"dataGaLocation":384},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":419,"mobileIcon":424,"desktopIcon":426},{"text":420,"config":421},"Back to pricing",{"href":166,"dataGaName":422,"dataGaLocation":384,"icon":423},"back to pricing","GoBack",{"altText":386,"config":425},{"src":388,"dataGaName":389,"dataGaLocation":384},{"altText":386,"config":427},{"src":392,"dataGaName":389,"dataGaLocation":384},{"title":429,"button":430,"config":435},"See how agentic AI transforms software delivery",{"text":431,"config":432},"Watch GitLab Transcend now",{"href":433,"dataGaName":434,"dataGaLocation":24},"/events/transcend/virtual/","transcend event",{"layout":436,"icon":437,"disabled":13},"release","AiStar",{"data":439},{"text":440,"source":441,"edit":447,"contribute":452,"config":457,"items":462,"minimal":669},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":442,"config":443},"View page source",{"href":444,"dataGaName":445,"dataGaLocation":446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":448,"config":449},"Edit this page",{"href":450,"dataGaName":451,"dataGaLocation":446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":453,"config":454},"Please contribute",{"href":455,"dataGaName":456,"dataGaLocation":446},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":458,"facebook":459,"youtube":460,"linkedin":461},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[463,510,564,608,635],{"title":164,"links":464,"subMenu":479},[465,469,474],{"text":466,"config":467},"View plans",{"href":166,"dataGaName":468,"dataGaLocation":446},"view plans",{"text":470,"config":471},"Why Premium?",{"href":472,"dataGaName":473,"dataGaLocation":446},"/pricing/premium/","why premium",{"text":475,"config":476},"Why Ultimate?",{"href":477,"dataGaName":478,"dataGaLocation":446},"/pricing/ultimate/","why ultimate",[480],{"title":481,"links":482},"Contact Us",[483,486,488,490,495,500,505],{"text":484,"config":485},"Contact sales",{"href":33,"dataGaName":34,"dataGaLocation":446},{"text":339,"config":487},{"href":341,"dataGaName":342,"dataGaLocation":446},{"text":344,"config":489},{"href":346,"dataGaName":347,"dataGaLocation":446},{"text":491,"config":492},"Status",{"href":493,"dataGaName":494,"dataGaLocation":446},"https://status.gitlab.com/","status",{"text":496,"config":497},"Terms of use",{"href":498,"dataGaName":499,"dataGaLocation":446},"/terms/","terms of use",{"text":501,"config":502},"Privacy statement",{"href":503,"dataGaName":504,"dataGaLocation":446},"/privacy/","privacy statement",{"text":506,"config":507},"Cookie preferences",{"dataGaName":508,"dataGaLocation":446,"id":509,"isOneTrustButton":13},"cookie preferences","ot-sdk-btn",{"title":69,"links":511,"subMenu":520},[512,516],{"text":513,"config":514},"DevSecOps platform",{"href":51,"dataGaName":515,"dataGaLocation":446},"devsecops platform",{"text":517,"config":518},"AI-Assisted Development",{"href":58,"dataGaName":519,"dataGaLocation":446},"ai-assisted development",[521],{"title":522,"links":523},"Topics",[524,529,534,539,544,549,554,559],{"text":525,"config":526},"CICD",{"href":527,"dataGaName":528,"dataGaLocation":446},"/topics/ci-cd/","cicd",{"text":530,"config":531},"GitOps",{"href":532,"dataGaName":533,"dataGaLocation":446},"/topics/gitops/","gitops",{"text":535,"config":536},"DevOps",{"href":537,"dataGaName":538,"dataGaLocation":446},"/topics/devops/","devops",{"text":540,"config":541},"Version Control",{"href":542,"dataGaName":543,"dataGaLocation":446},"/topics/version-control/","version control",{"text":545,"config":546},"DevSecOps",{"href":547,"dataGaName":548,"dataGaLocation":446},"/topics/devsecops/","devsecops",{"text":550,"config":551},"Cloud Native",{"href":552,"dataGaName":553,"dataGaLocation":446},"/topics/cloud-native/","cloud native",{"text":555,"config":556},"AI for Coding",{"href":557,"dataGaName":558,"dataGaLocation":446},"/topics/devops/ai-for-coding/","ai for coding",{"text":560,"config":561},"Agentic AI",{"href":562,"dataGaName":563,"dataGaLocation":446},"/topics/agentic-ai/","agentic ai",{"title":565,"links":566},"Solutions",[567,569,571,576,580,583,587,590,592,595,598,603],{"text":111,"config":568},{"href":106,"dataGaName":111,"dataGaLocation":446},{"text":100,"config":570},{"href":83,"dataGaName":84,"dataGaLocation":446},{"text":572,"config":573},"Agile development",{"href":574,"dataGaName":575,"dataGaLocation":446},"/solutions/agile-delivery/","agile delivery",{"text":577,"config":578},"SCM",{"href":96,"dataGaName":579,"dataGaLocation":446},"source code management",{"text":525,"config":581},{"href":89,"dataGaName":582,"dataGaLocation":446},"continuous integration & delivery",{"text":584,"config":585},"Value stream management",{"href":139,"dataGaName":586,"dataGaLocation":446},"value stream management",{"text":530,"config":588},{"href":589,"dataGaName":533,"dataGaLocation":446},"/solutions/gitops/",{"text":149,"config":591},{"href":151,"dataGaName":152,"dataGaLocation":446},{"text":593,"config":594},"Small business",{"href":156,"dataGaName":157,"dataGaLocation":446},{"text":596,"config":597},"Public sector",{"href":161,"dataGaName":162,"dataGaLocation":446},{"text":599,"config":600},"Education",{"href":601,"dataGaName":602,"dataGaLocation":446},"/solutions/education/","education",{"text":604,"config":605},"Financial services",{"href":606,"dataGaName":607,"dataGaLocation":446},"/solutions/finance/","financial services",{"title":169,"links":609},[610,612,614,616,619,621,623,625,627,629,631,633],{"text":181,"config":611},{"href":183,"dataGaName":184,"dataGaLocation":446},{"text":186,"config":613},{"href":188,"dataGaName":189,"dataGaLocation":446},{"text":191,"config":615},{"href":193,"dataGaName":194,"dataGaLocation":446},{"text":196,"config":617},{"href":198,"dataGaName":618,"dataGaLocation":446},"docs",{"text":219,"config":620},{"href":221,"dataGaName":222,"dataGaLocation":446},{"text":214,"config":622},{"href":216,"dataGaName":217,"dataGaLocation":446},{"text":224,"config":624},{"href":226,"dataGaName":227,"dataGaLocation":446},{"text":232,"config":626},{"href":234,"dataGaName":235,"dataGaLocation":446},{"text":237,"config":628},{"href":239,"dataGaName":240,"dataGaLocation":446},{"text":242,"config":630},{"href":244,"dataGaName":245,"dataGaLocation":446},{"text":247,"config":632},{"href":249,"dataGaName":250,"dataGaLocation":446},{"text":252,"config":634},{"href":254,"dataGaName":255,"dataGaLocation":446},{"title":270,"links":636},[637,639,641,643,645,647,649,653,658,660,662,664],{"text":277,"config":638},{"href":279,"dataGaName":272,"dataGaLocation":446},{"text":282,"config":640},{"href":284,"dataGaName":285,"dataGaLocation":446},{"text":290,"config":642},{"href":292,"dataGaName":293,"dataGaLocation":446},{"text":295,"config":644},{"href":297,"dataGaName":298,"dataGaLocation":446},{"text":300,"config":646},{"href":302,"dataGaName":303,"dataGaLocation":446},{"text":305,"config":648},{"href":307,"dataGaName":308,"dataGaLocation":446},{"text":650,"config":651},"Sustainability",{"href":652,"dataGaName":650,"dataGaLocation":446},"/sustainability/",{"text":654,"config":655},"Diversity, inclusion and belonging (DIB)",{"href":656,"dataGaName":657,"dataGaLocation":446},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":310,"config":659},{"href":312,"dataGaName":313,"dataGaLocation":446},{"text":320,"config":661},{"href":322,"dataGaName":323,"dataGaLocation":446},{"text":325,"config":663},{"href":327,"dataGaName":328,"dataGaLocation":446},{"text":665,"config":666},"Modern Slavery Transparency Statement",{"href":667,"dataGaName":668,"dataGaLocation":446},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":670},[671,674,677],{"text":672,"config":673},"Terms",{"href":498,"dataGaName":499,"dataGaLocation":446},{"text":675,"config":676},"Cookies",{"dataGaName":508,"dataGaLocation":446,"id":509,"isOneTrustButton":13},{"text":678,"config":679},"Privacy",{"href":503,"dataGaName":504,"dataGaLocation":446},[681,692,702,713,723,736,745,754,763,774,784,794,803,812,821,830,840,850,850,859,870,880,888,898,908,918,927,937,947,958,968,979,990,1000,1010,1019,1028,1038,1048,1058,1068,1078,1088,1096],{"content":682,"config":690},{"title":683,"heroImage":684,"category":685,"description":686,"authors":687,"date":689},"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-ml","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.",[688],"Cesar Saavedra","2024-10-17",{"slug":691,"externalUrl":-1},"use-gitlab-duo-to-build-and-deploy-a-simple-quarkus-native-project",{"content":693,"config":700},{"title":694,"heroImage":695,"category":548,"description":696,"authors":697,"date":699},"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.",[698],"Sharon Gaudin","2023-01-17",{"slug":701,"externalUrl":-1},"devsecops-platforms-help-smbs-scale-as-they-grow",{"content":703,"config":711},{"title":704,"heroImage":705,"category":706,"description":707,"authors":708,"date":710},"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.",[709],"Brendan O'Leary","2022-03-14",{"slug":712,"externalUrl":-1},"installing-gitlab-on-raspberry-pi-64-bit-os",{"content":714,"config":721},{"title":715,"heroImage":716,"category":706,"description":717,"authors":718,"date":720},"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.",[719],"William Arias","2021-11-08",{"slug":722,"externalUrl":-1},"machine-learning-on-the-gitlab-devops-platform",{"content":724,"config":734},{"title":725,"heroImage":726,"category":727,"description":728,"authors":729,"date":733},"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.",[730,731,732],"Ross Fuhrman","Anshuman Singh","Julian Thome","2021-09-08",{"slug":735,"externalUrl":-1},"write-vulnerability-detection-rules",{"content":737,"config":743},{"title":738,"heroImage":739,"category":706,"description":740,"authors":741,"date":742},"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.",[688],"2021-08-10",{"slug":744,"externalUrl":-1},"how-to-agentless-gitops-aws",{"content":746,"config":752},{"title":747,"heroImage":748,"category":706,"description":749,"authors":750,"date":751},"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.",[688],"2021-07-23",{"slug":753,"externalUrl":-1},"how-to-agentless-gitops-vars",{"content":755,"config":761},{"title":756,"heroImage":757,"category":706,"description":758,"authors":759,"date":760},"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",[688],"2021-06-23",{"slug":762,"externalUrl":-1},"how-to-use-agent-based-gitops",{"content":764,"config":772},{"title":765,"heroImage":766,"category":767,"description":768,"authors":769,"date":771},"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.",[770],"Darren Murph","2021-02-17",{"slug":773,"externalUrl":-1},"considerations-for-going-hybrid-remote",{"content":775,"config":782},{"title":776,"heroImage":777,"category":778,"description":779,"authors":780,"date":781},"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.",[688],"2021-01-22",{"slug":783,"externalUrl":-1},"cd-automated-integrated",{"content":785,"config":792},{"title":786,"heroImage":787,"category":778,"description":788,"authors":789,"date":791},"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.",[790],"Nicole Schwartz","2021-01-14",{"slug":793,"externalUrl":-1},"try-dependency-scanning",{"content":795,"config":801},{"title":796,"heroImage":797,"category":706,"description":798,"authors":799,"date":800},"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.",[688],"2020-12-17",{"slug":802,"externalUrl":-1},"cd-solution-overview",{"content":804,"config":810},{"title":805,"heroImage":806,"category":706,"description":807,"authors":808,"date":800},"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.",[809],"Sara Kassabian",{"slug":811,"externalUrl":-1},"gitlab-for-cicd-agile-gitops-cloudnative",{"content":813,"config":819},{"title":814,"heroImage":815,"category":778,"description":816,"authors":817,"date":818},"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.",[688],"2020-11-23",{"slug":820,"externalUrl":-1},"cd-unified-monitor-deploy",{"content":822,"config":828},{"title":823,"heroImage":824,"category":778,"description":825,"authors":826,"date":827},"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.",[688],"2020-09-30",{"slug":829,"externalUrl":-1},"enables-rapid-innovation",{"content":831,"config":838},{"title":832,"heroImage":833,"category":778,"description":834,"authors":835,"date":837},"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.",[836],"Meghan Maneval","2020-08-27",{"slug":839,"externalUrl":-1},"applying-risk-management-to-remote-learning",{"content":841,"config":848},{"title":842,"heroImage":843,"category":727,"description":844,"authors":845,"date":847},"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.",[846],"Thiago Figueiró","2020-07-28",{"slug":849,"externalUrl":-1},"container-security-in-gitlab",{"content":851,"config":857},{"title":852,"heroImage":853,"category":778,"description":854,"authors":855,"date":856},"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.",[770],"2020-05-22",{"slug":858,"externalUrl":-1},"gitlab-remote-ceo-shadow-takeaways",{"content":860,"config":868},{"title":861,"heroImage":862,"category":863,"description":864,"authors":865,"date":867},"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.",[866],"Kushal Koolwal","2020-05-15",{"slug":869,"externalUrl":-1},"gitlab-arm-aws-graviton2-solution",{"content":871,"config":878},{"title":872,"heroImage":873,"category":706,"description":874,"authors":875,"date":877},"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.",[876],"Abubakar Siddiq Ango","2020-05-05",{"slug":879,"externalUrl":-1},"deploying-application-eks",{"content":881,"config":886},{"title":882,"heroImage":873,"category":706,"description":883,"authors":884,"date":885},"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.",[876],"2020-03-09",{"slug":887,"externalUrl":-1},"gitlab-eks-integration-how-to",{"content":889,"config":896},{"title":890,"heroImage":891,"category":706,"description":892,"authors":893,"date":895},"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.",[894],"Thao Yeager","2020-02-20",{"slug":897,"externalUrl":-1},"protecting-manual-jobs",{"content":899,"config":906},{"title":900,"heroImage":901,"category":767,"description":902,"authors":903,"date":905},"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.",[904],"Taylor Murphy","2020-02-10",{"slug":907,"externalUrl":-1},"lessons-learned-as-data-team-manager",{"content":909,"config":916},{"title":910,"heroImage":911,"category":706,"description":912,"authors":913,"date":915},"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.",[914],"Orit Golowinski","2020-01-30",{"slug":917,"externalUrl":-1},"all-aboard-merge-trains",{"content":919,"config":925},{"title":920,"heroImage":921,"category":778,"description":922,"authors":923,"date":924},"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",[719],"2020-01-22",{"slug":926,"externalUrl":-1},"gitlab-apis-ci",{"content":928,"config":935},{"title":929,"heroImage":930,"category":272,"description":931,"authors":932,"date":934},"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.",[933],"Gabe Weaver","2019-12-05",{"slug":936,"externalUrl":-1},"how-to-setup-gitlab-for-multiple-product-teams",{"content":938,"config":945},{"title":939,"heroImage":940,"category":778,"description":941,"authors":942,"date":944},"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.",[943],"Emilie Schario","2019-11-04",{"slug":946,"externalUrl":-1},"three-levels-data-analysis",{"content":948,"config":956},{"title":949,"heroImage":950,"category":951,"description":952,"authors":953,"date":955},"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?",[954],"Chrissie Buchanan","2019-09-12",{"slug":957,"externalUrl":-1},"is-serverless-the-end-of-ops",{"content":959,"config":966},{"title":960,"heroImage":961,"category":706,"description":962,"authors":963,"date":965},"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!",[964],"Shinya Maeda","2019-09-11",{"slug":967,"externalUrl":-1},"how-to-avoid-broken-master-with-pipelines-for-merge-requests",{"content":969,"config":977},{"title":970,"heroImage":971,"category":706,"description":972,"authors":973,"date":976},"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.",[974,975],"George Kichukov","Salahddine Aberkan","2019-07-01",{"slug":978,"externalUrl":-1},"using-ansible-and-gitlab-as-infrastructure-for-code",{"content":980,"config":988},{"title":981,"heroImage":982,"category":983,"description":984,"authors":985,"date":987},"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.",[986],"Priyanka Sharma","2019-05-21",{"slug":989,"externalUrl":-1},"fluentd-using-gitlab-ci-cd",{"content":991,"config":998},{"title":992,"heroImage":993,"category":272,"description":994,"authors":995,"date":997},"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.",[996],"GitLab","2019-05-20",{"slug":999,"externalUrl":-1},"gitlab-first-deployed-kubernetes-api-to-multiple-clouds",{"content":1001,"config":1008},{"title":1002,"heroImage":1003,"category":706,"description":1004,"authors":1005,"date":1007},"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.",[1006],"Jason Yavorska","2019-02-20",{"slug":1009,"externalUrl":-1},"start-using-pages-quickly",{"content":1011,"config":1017},{"title":1012,"heroImage":873,"category":706,"description":1013,"authors":1014,"date":1016},"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.",[1015],"Forrest Brazeal","2019-02-04",{"slug":1018,"externalUrl":-1},"multi-account-aws-sam-deployments-with-gitlab-ci",{"content":1020,"config":1026},{"title":1021,"heroImage":1022,"category":272,"description":1023,"authors":1024,"date":1025},"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.",[986],"2018-12-06",{"slug":1027,"externalUrl":-1},"aws-reinvent-recap",{"content":1029,"config":1036},{"title":1030,"heroImage":1031,"category":706,"description":1032,"authors":1033,"date":1035},"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!",[1034],"Jacob Schatz","2018-10-08",{"slug":1037,"externalUrl":-1},"meltano-functional-group-update-post",{"content":1039,"config":1046},{"title":1040,"heroImage":1041,"category":706,"description":1042,"authors":1043,"date":1045},"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.",[1044],"William Chia","2018-10-03",{"slug":1047,"externalUrl":-1},"working-on-two-git-branches-at-the-same-time",{"content":1049,"config":1056},{"title":1050,"heroImage":1051,"category":983,"description":1052,"authors":1053,"date":1055},"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.",[1054],"Lin Jen-Shin","2018-08-23",{"slug":1057,"externalUrl":-1},"contributing-to-gitlab-with-ease",{"content":1059,"config":1066},{"title":1060,"heroImage":1061,"category":706,"description":1062,"authors":1063,"date":1065},"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.",[1064],"Rebecca Dodd","2018-08-17",{"slug":1067,"externalUrl":-1},"gitlab-markdown-tutorial",{"content":1069,"config":1076},{"title":1070,"heroImage":1071,"category":272,"description":1072,"authors":1073,"date":1075},"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.",[1074],"Joel Krooswyk","2018-07-30",{"slug":1077,"externalUrl":-1},"gitlab-workflow-with-jira-jenkins",{"content":1079,"config":1086},{"title":1080,"heroImage":1081,"category":706,"description":1082,"authors":1083,"date":1085},"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.",[1084],"Suri Patel","2018-05-10",{"slug":1087,"externalUrl":-1},"gke-webcast-recap-post",{"content":1089,"config":1094},{"title":1090,"heroImage":1081,"category":706,"description":1091,"authors":1092,"date":1093},"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.",[996],"2018-04-24",{"slug":1095,"externalUrl":-1},"getting-started-gitlab-ci-gcp",{"content":1097,"config":1104},{"title":1098,"heroImage":1099,"category":706,"description":1100,"authors":1101,"date":1103},"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.",[1102],"Fatih Acet","2018-03-01",{"slug":1105,"externalUrl":-1},"gitlab-vscode-extension",1776438108743]