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