[{"data":1,"prerenderedAt":849},["ShallowReactive",2],{"/blog/authors/brendan-oleary":3,"navigation-en-us":21,"banner-en-us":449,"footer-en-us":460,"blog-author-posts-en-us-brendan-oleary":705},{"id":4,"title":5,"body":6,"config":7,"content":9,"description":6,"extension":14,"meta":15,"navigation":16,"path":17,"seo":18,"stem":19,"__hash__":20},"blogAuthors/en-us/blog/authors/brendan-oleary.yml","Brendan Oleary",null,{"template":8},"BlogAuthor",{"name":10,"config":11},"Brendan O'Leary",{"headshot":12,"ctfId":13},"","brendan","yml",{},true,"/en-us/blog/authors/brendan-oleary",{},"en-us/blog/authors/brendan-oleary","IkXVLft77WlFK-Vgo210ZM3Io_PCcrXnYzkBCzx153k",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":369,"minimal":400,"duo":419,"switchNav":428,"pricingDeployment":439},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/","gitlab logo","header",{"text":28,"config":29},"Get free trial",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"Request a demo",{"href":35,"dataGaName":36,"dataGaLocation":26},"/sales/?contact-topic=request-demo","sales",{"text":38,"config":39},"Sign in",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,172,177,291,347],{"text":44,"config":45,"menu":47},"Platform",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"The intelligent orchestration platform for DevSecOps",{"text":53,"config":54},"Explore our Platform",{"href":55,"dataGaName":46,"dataGaLocation":26},"/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":60,"config":61},"Meet GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":26},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":68,"config":69},"Learn more",{"href":70,"dataGaName":71,"dataGaLocation":26},"/why-gitlab/","why gitlab",{"text":73,"left":16,"config":74,"menu":76},"Product",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":151},"lists",{"text":79,"config":80},"View all Solutions",{"href":81,"dataGaName":75,"dataGaLocation":26},"/solutions/",[83,107,130],{"title":84,"description":85,"link":86,"items":91},"Automation","CI/CD and automation to accelerate deployment",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[92,96,99,103],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"Source Code Management",{"href":102,"dataGaLocation":26,"dataGaName":100},"/solutions/source-code-management/",{"text":104,"config":105},"Automated Software Delivery",{"href":89,"dataGaLocation":26,"dataGaName":106},"Automated software delivery",{"title":108,"description":109,"link":110,"items":115},"Security","Deliver code faster without compromising security",{"config":111},{"href":112,"dataGaName":113,"dataGaLocation":26,"icon":114},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[116,120,125],{"text":117,"config":118},"Application Security Testing",{"href":112,"dataGaName":119,"dataGaLocation":26},"Application security testing",{"text":121,"config":122},"Software Supply Chain Security",{"href":123,"dataGaLocation":26,"dataGaName":124},"/solutions/supply-chain/","Software supply chain security",{"text":126,"config":127},"Software Compliance",{"href":128,"dataGaName":129,"dataGaLocation":26},"/solutions/software-compliance/","software compliance",{"title":131,"link":132,"items":137},"Measurement",{"config":133},{"icon":134,"href":135,"dataGaName":136,"dataGaLocation":26},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[138,142,146],{"text":139,"config":140},"Visibility & Measurement",{"href":135,"dataGaLocation":26,"dataGaName":141},"Visibility and Measurement",{"text":143,"config":144},"Value Stream Management",{"href":145,"dataGaLocation":26,"dataGaName":143},"/solutions/value-stream-management/",{"text":147,"config":148},"Analytics & Insights",{"href":149,"dataGaLocation":26,"dataGaName":150},"/solutions/analytics-and-insights/","Analytics and insights",{"title":152,"type":77,"items":153},"GitLab for",[154,160,166],{"text":155,"config":156},"Enterprise",{"icon":157,"href":158,"dataGaLocation":26,"dataGaName":159},"Building","/enterprise/","enterprise",{"text":161,"config":162},"Small Business",{"icon":163,"href":164,"dataGaLocation":26,"dataGaName":165},"Work","/small-business/","small business",{"text":167,"config":168},"Public Sector",{"icon":169,"href":170,"dataGaLocation":26,"dataGaName":171},"Organization","/solutions/public-sector/","public sector",{"text":173,"config":174},"Pricing",{"href":175,"dataGaName":176,"dataGaLocation":26,"dataNavLevelOne":176},"/pricing/","pricing",{"text":178,"config":179,"menu":181},"Resources",{"dataNavLevelOne":180},"resources",{"type":77,"link":182,"columns":186,"feature":280},{"text":183,"config":184},"View all resources",{"href":185,"dataGaName":180,"dataGaLocation":26},"/resources/",[187,220,247],{"title":188,"items":189},"Getting started",[190,195,200,205,210,215],{"text":191,"config":192},"Install",{"href":193,"dataGaName":194,"dataGaLocation":26},"/install/","install",{"text":196,"config":197},"Quick start guides",{"href":198,"dataGaName":199,"dataGaLocation":26},"/get-started/","quick setup checklists",{"text":201,"config":202},"Learn",{"href":203,"dataGaLocation":26,"dataGaName":204},"https://university.gitlab.com/","learn",{"text":206,"config":207},"Product documentation",{"href":208,"dataGaName":209,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":211,"config":212},"Best practice videos",{"href":213,"dataGaName":214,"dataGaLocation":26},"/getting-started-videos/","best practice videos",{"text":216,"config":217},"Integrations",{"href":218,"dataGaName":219,"dataGaLocation":26},"/integrations/","integrations",{"title":221,"items":222},"Discover",[223,228,233,238,242],{"text":224,"config":225},"Customer success stories",{"href":226,"dataGaName":227,"dataGaLocation":26},"/customers/","customer success stories",{"text":229,"config":230},"Blog",{"href":231,"dataGaName":232,"dataGaLocation":26},"/blog/","blog",{"text":234,"config":235},"Demo Hub",{"href":236,"dataGaName":237,"dataGaLocation":26},"/demo-hub/","demo hub",{"text":239,"config":240},"The Source",{"href":241,"dataGaName":232,"dataGaLocation":26},"/the-source/",{"text":243,"config":244},"Remote",{"href":245,"dataGaName":246,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":248,"items":249},"Connect",[250,255,260,265,270,275],{"text":251,"config":252},"GitLab Services",{"href":253,"dataGaName":254,"dataGaLocation":26},"/services/","services",{"text":256,"config":257},"Contribute",{"href":258,"dataGaName":259,"dataGaLocation":26},"https://contributors.gitlab.com","contribute",{"text":261,"config":262},"Community",{"href":263,"dataGaName":264,"dataGaLocation":26},"/community/","community",{"text":266,"config":267},"Forum",{"href":268,"dataGaName":269,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":271,"config":272},"Events",{"href":273,"dataGaName":274,"dataGaLocation":26},"/events/","events",{"text":276,"config":277},"Partners",{"href":278,"dataGaName":279,"dataGaLocation":26},"/partners/","partners",{"config":281,"title":284,"text":285,"link":286},{"background":282,"textColor":283},"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":287,"config":288},"Read the latest",{"href":289,"dataGaName":290,"dataGaLocation":26},"/whats-new/","whats new",{"text":292,"config":293,"menu":295},"Company",{"dataNavLevelOne":294},"company",{"type":77,"columns":296},[297],{"items":298},[299,304,310,312,317,322,327,332,337,342],{"text":300,"config":301},"About",{"href":302,"dataGaName":303,"dataGaLocation":26},"/company/","about",{"text":305,"config":306,"footerGa":309},"Jobs",{"href":307,"dataGaName":308,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":308},{"text":271,"config":311},{"href":273,"dataGaName":274,"dataGaLocation":26},{"text":313,"config":314},"Leadership",{"href":315,"dataGaName":316,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":318,"config":319},"Handbook",{"href":320,"dataGaName":321,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":323,"config":324},"Investor relations",{"href":325,"dataGaName":326,"dataGaLocation":26},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":328,"config":329},"Trust Center",{"href":330,"dataGaName":331,"dataGaLocation":26},"/security/","trust center",{"text":333,"config":334},"AI Transparency Center",{"href":335,"dataGaName":336,"dataGaLocation":26},"/ai-transparency-center/","ai transparency center",{"text":338,"config":339},"Newsletter",{"href":340,"dataGaName":341,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":343,"config":344},"Press",{"href":345,"dataGaName":346,"dataGaLocation":26},"/press/","press",{"text":348,"config":349,"menu":350},"Contact us",{"dataNavLevelOne":294},{"type":77,"columns":351},[352],{"items":353},[354,359,364],{"text":355,"config":356},"Talk to sales",{"href":357,"dataGaName":358,"dataGaLocation":26},"/sales/","talk to sales",{"text":360,"config":361},"Support portal",{"href":362,"dataGaName":363,"dataGaLocation":26},"https://support.gitlab.com/hc/en-us","support portal",{"text":365,"config":366},"Customer portal",{"href":367,"dataGaName":368,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":370,"login":371,"suggestions":378},"Close",{"text":372,"link":373},"To search repositories and projects, login to",{"text":374,"config":375},"gitlab.com",{"href":40,"dataGaName":376,"dataGaLocation":377},"search login","search",{"text":379,"default":380},"Suggestions",[381,383,387,389,393,397],{"text":57,"config":382},{"href":62,"dataGaName":57,"dataGaLocation":377},{"text":384,"config":385},"Code Suggestions (AI)",{"href":386,"dataGaName":384,"dataGaLocation":377},"/solutions/code-suggestions/",{"text":93,"config":388},{"href":95,"dataGaName":93,"dataGaLocation":377},{"text":390,"config":391},"GitLab on AWS",{"href":392,"dataGaName":390,"dataGaLocation":377},"/partners/technology-partners/aws/",{"text":394,"config":395},"GitLab on Google Cloud",{"href":396,"dataGaName":394,"dataGaLocation":377},"/partners/technology-partners/google-cloud-platform/",{"text":398,"config":399},"Why GitLab?",{"href":70,"dataGaName":398,"dataGaLocation":377},{"freeTrial":401,"mobileIcon":406,"desktopIcon":411,"secondaryButton":414},{"text":402,"config":403},"Start free trial",{"href":404,"dataGaName":31,"dataGaLocation":405},"https://gitlab.com/-/trials/new/","nav",{"altText":407,"config":408},"Gitlab Icon",{"src":409,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":407,"config":412},{"src":413,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":415,"config":416},"Get Started",{"href":417,"dataGaName":418,"dataGaLocation":405},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":420,"mobileIcon":424,"desktopIcon":426},{"text":421,"config":422},"Learn more about GitLab Duo",{"href":62,"dataGaName":423,"dataGaLocation":405},"gitlab duo",{"altText":407,"config":425},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":427},{"src":413,"dataGaName":410,"dataGaLocation":405},{"button":429,"mobileIcon":434,"desktopIcon":436},{"text":430,"config":431},"/switch",{"href":432,"dataGaName":433,"dataGaLocation":405},"#contact","switch",{"altText":407,"config":435},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":437},{"src":438,"dataGaName":410,"dataGaLocation":405},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":440,"mobileIcon":445,"desktopIcon":447},{"text":441,"config":442},"Back to pricing",{"href":175,"dataGaName":443,"dataGaLocation":405,"icon":444},"back to pricing","GoBack",{"altText":407,"config":446},{"src":409,"dataGaName":410,"dataGaLocation":405},{"altText":407,"config":448},{"src":413,"dataGaName":410,"dataGaLocation":405},{"title":450,"titleMobile":451,"button":452,"config":457},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":68,"config":453},{"href":454,"dataGaName":455,"dataGaLocation":456},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":458,"disabled":459},"release",false,{"data":461},{"text":462,"source":463,"edit":469,"contribute":474,"config":479,"items":484,"minimal":694},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":464,"config":465},"View page source",{"href":466,"dataGaName":467,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":470,"config":471},"Edit this page",{"href":472,"dataGaName":473,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":475,"config":476},"Please contribute",{"href":477,"dataGaName":478,"dataGaLocation":468},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":480,"facebook":481,"youtube":482,"linkedin":483},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[485,532,586,630,662],{"title":173,"links":486,"subMenu":501},[487,491,496],{"text":488,"config":489},"View plans",{"href":175,"dataGaName":490,"dataGaLocation":468},"view plans",{"text":492,"config":493},"Why Premium?",{"href":494,"dataGaName":495,"dataGaLocation":468},"/pricing/premium/","why premium",{"text":497,"config":498},"Why Ultimate?",{"href":499,"dataGaName":500,"dataGaLocation":468},"/pricing/ultimate/","why ultimate",[502],{"title":503,"links":504},"Contact Us",[505,508,510,512,517,522,527],{"text":506,"config":507},"Contact sales",{"href":357,"dataGaName":36,"dataGaLocation":468},{"text":360,"config":509},{"href":362,"dataGaName":363,"dataGaLocation":468},{"text":365,"config":511},{"href":367,"dataGaName":368,"dataGaLocation":468},{"text":513,"config":514},"Status",{"href":515,"dataGaName":516,"dataGaLocation":468},"https://status.gitlab.com/","status",{"text":518,"config":519},"Terms of use",{"href":520,"dataGaName":521,"dataGaLocation":468},"/terms/","terms of use",{"text":523,"config":524},"Privacy statement",{"href":525,"dataGaName":526,"dataGaLocation":468},"/privacy/","privacy statement",{"text":528,"config":529},"Cookie preferences",{"dataGaName":530,"dataGaLocation":468,"id":531,"isOneTrustButton":16},"cookie preferences","ot-sdk-btn",{"title":73,"links":533,"subMenu":542},[534,538],{"text":535,"config":536},"DevSecOps platform",{"href":55,"dataGaName":537,"dataGaLocation":468},"devsecops platform",{"text":539,"config":540},"AI-Assisted Development",{"href":62,"dataGaName":541,"dataGaLocation":468},"ai-assisted development",[543],{"title":544,"links":545},"Topics",[546,551,556,561,566,571,576,581],{"text":547,"config":548},"CICD",{"href":549,"dataGaName":550,"dataGaLocation":468},"/topics/ci-cd/","cicd",{"text":552,"config":553},"GitOps",{"href":554,"dataGaName":555,"dataGaLocation":468},"/topics/gitops/","gitops",{"text":557,"config":558},"DevOps",{"href":559,"dataGaName":560,"dataGaLocation":468},"/topics/devops/","devops",{"text":562,"config":563},"Version Control",{"href":564,"dataGaName":565,"dataGaLocation":468},"/topics/version-control/","version control",{"text":567,"config":568},"DevSecOps",{"href":569,"dataGaName":570,"dataGaLocation":468},"/topics/devsecops/","devsecops",{"text":572,"config":573},"Cloud Native",{"href":574,"dataGaName":575,"dataGaLocation":468},"/topics/cloud-native/","cloud native",{"text":577,"config":578},"AI for Coding",{"href":579,"dataGaName":580,"dataGaLocation":468},"/topics/devops/ai-for-coding/","ai for coding",{"text":582,"config":583},"Agentic AI",{"href":584,"dataGaName":585,"dataGaLocation":468},"/topics/agentic-ai/","agentic ai",{"title":587,"links":588},"Solutions",[589,591,593,598,602,605,609,612,614,617,620,625],{"text":117,"config":590},{"href":112,"dataGaName":117,"dataGaLocation":468},{"text":106,"config":592},{"href":89,"dataGaName":90,"dataGaLocation":468},{"text":594,"config":595},"Agile development",{"href":596,"dataGaName":597,"dataGaLocation":468},"/solutions/agile-delivery/","agile delivery",{"text":599,"config":600},"SCM",{"href":102,"dataGaName":601,"dataGaLocation":468},"source code management",{"text":547,"config":603},{"href":95,"dataGaName":604,"dataGaLocation":468},"continuous integration & delivery",{"text":606,"config":607},"Value stream management",{"href":145,"dataGaName":608,"dataGaLocation":468},"value stream management",{"text":552,"config":610},{"href":611,"dataGaName":555,"dataGaLocation":468},"/solutions/gitops/",{"text":155,"config":613},{"href":158,"dataGaName":159,"dataGaLocation":468},{"text":615,"config":616},"Small business",{"href":164,"dataGaName":165,"dataGaLocation":468},{"text":618,"config":619},"Public sector",{"href":170,"dataGaName":171,"dataGaLocation":468},{"text":621,"config":622},"Education",{"href":623,"dataGaName":624,"dataGaLocation":468},"/solutions/education/","education",{"text":626,"config":627},"Financial services",{"href":628,"dataGaName":629,"dataGaLocation":468},"/solutions/finance/","financial services",{"title":178,"links":631},[632,634,636,638,641,643,646,648,650,652,654,656,658,660],{"text":191,"config":633},{"href":193,"dataGaName":194,"dataGaLocation":468},{"text":196,"config":635},{"href":198,"dataGaName":199,"dataGaLocation":468},{"text":201,"config":637},{"href":203,"dataGaName":204,"dataGaLocation":468},{"text":206,"config":639},{"href":208,"dataGaName":640,"dataGaLocation":468},"docs",{"text":229,"config":642},{"href":231,"dataGaName":232,"dataGaLocation":468},{"text":644,"config":645},"What's new",{"href":289,"dataGaName":290,"dataGaLocation":468},{"text":224,"config":647},{"href":226,"dataGaName":227,"dataGaLocation":468},{"text":243,"config":649},{"href":245,"dataGaName":246,"dataGaLocation":468},{"text":251,"config":651},{"href":253,"dataGaName":254,"dataGaLocation":468},{"text":256,"config":653},{"href":258,"dataGaName":259,"dataGaLocation":468},{"text":261,"config":655},{"href":263,"dataGaName":264,"dataGaLocation":468},{"text":266,"config":657},{"href":268,"dataGaName":269,"dataGaLocation":468},{"text":271,"config":659},{"href":273,"dataGaName":274,"dataGaLocation":468},{"text":276,"config":661},{"href":278,"dataGaName":279,"dataGaLocation":468},{"title":292,"links":663},[664,666,668,670,672,674,678,683,685,687,689],{"text":300,"config":665},{"href":302,"dataGaName":294,"dataGaLocation":468},{"text":305,"config":667},{"href":307,"dataGaName":308,"dataGaLocation":468},{"text":313,"config":669},{"href":315,"dataGaName":316,"dataGaLocation":468},{"text":318,"config":671},{"href":320,"dataGaName":321,"dataGaLocation":468},{"text":323,"config":673},{"href":325,"dataGaName":326,"dataGaLocation":468},{"text":675,"config":676},"Sustainability",{"href":677,"dataGaName":675,"dataGaLocation":468},"/sustainability/",{"text":679,"config":680},"Diversity, inclusion and belonging (DIB)",{"href":681,"dataGaName":682,"dataGaLocation":468},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":328,"config":684},{"href":330,"dataGaName":331,"dataGaLocation":468},{"text":338,"config":686},{"href":340,"dataGaName":341,"dataGaLocation":468},{"text":343,"config":688},{"href":345,"dataGaName":346,"dataGaLocation":468},{"text":690,"config":691},"Modern Slavery Transparency Statement",{"href":692,"dataGaName":693,"dataGaLocation":468},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":695},[696,699,702],{"text":697,"config":698},"Terms",{"href":520,"dataGaName":521,"dataGaLocation":468},{"text":700,"config":701},"Cookies",{"dataGaName":530,"dataGaLocation":468,"id":531,"isOneTrustButton":16},{"text":703,"config":704},"Privacy",{"href":525,"dataGaName":526,"dataGaLocation":468},[706,714,721,729,736,743,750,757,764,771,778,785,793,800,807,814,821,828,835,842],{"title":707,"heroImage":708,"category":709,"description":710,"authors":711,"date":712,"slug":713,"externalUrl":6},"How is AI/ML changing DevOps?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667540/Blog/Hero%20Images/devops-team-structure.jpg","insights","Can DevOps help AI/ML find maturity? Here are questions to consider.",[10],"2022-11-16","how-is-ai-ml-changing-devops",{"title":715,"heroImage":716,"category":709,"description":717,"authors":718,"date":719,"slug":720,"externalUrl":6},"What makes a great tech talk?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670658/Blog/Hero%20Images/data-startup-cognitive-logic-talks-migrating-to-gitlab.jpg","I've compiled some of my favorite tech talks to find out what makes them great.",[10],"2022-10-04","what-makes-a-great-tech-talk",{"title":722,"heroImage":723,"category":724,"description":725,"authors":726,"date":727,"slug":728,"externalUrl":6},"How to access GitLab on a private network with Tailscale","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679348/Blog/Hero%20Images/locks.jpg","engineering","If issues around a private network were preventing a permanent GitLab installation, Brendan O'Leary has the solution with Tailscale.",[10],"2022-07-21","how-to-access-gitlab-on-a-private-network-with-tailscale",{"title":730,"heroImage":731,"category":570,"description":732,"authors":733,"date":734,"slug":735,"externalUrl":6},"GitLab 15: The retrospective","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667845/Blog/Hero%20Images/gl15.jpg","GitLab was founded in 2011 but that was a world nearly unrecognizable today. Here's a look back at what life was like then.",[10],"2022-06-13","gitlab-15-the-retrospective",{"title":737,"heroImage":738,"category":724,"description":739,"authors":740,"date":741,"slug":742,"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","A Raspberry Pi enthusiast tries to run GitLab on the new 64-bit OS...and here's what happened.",[10],"2022-03-14","installing-gitlab-on-raspberry-pi-64-bit-os",{"title":744,"heroImage":745,"category":724,"description":746,"authors":747,"date":748,"slug":749,"externalUrl":6},"How to protect GitLab-connected SSH key with Yubikey","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667202/Blog/Hero%20Images/gitlabultimatesecurity.jpg","Add a layer of security to SSH keys by restricting physical access to YubiKey.",[10],"2022-03-03","how-to-protect-gitlab-connected-ssh-key-with-yubikey",{"title":751,"heroImage":752,"category":570,"description":753,"authors":754,"date":755,"slug":756,"externalUrl":6},"The best of GitLab's DevOps Platform 2021","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667509/Blog/Hero%20Images/continuous-integration-from-jenkins-to-gitlab-using-docker.jpg","Some highlights from last year, and what to expect from 2022.",[10],"2022-02-18","the-best-of-gitlabs-devops-platform-2021",{"title":758,"heroImage":759,"category":724,"description":760,"authors":761,"date":762,"slug":763,"externalUrl":6},"How to code, build, and deploy from an iPad using GitLab and Gitpod","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670178/Blog/Hero%20Images/GitLab-Ops.png","Senior Developer Evangelist Brendan O'Leary tackles the challenge of doing DevOps from a tablet.",[10],"2022-02-10","how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod",{"title":765,"heroImage":766,"category":709,"description":767,"authors":768,"date":769,"slug":770,"externalUrl":6},"How ten steps over ten years led to the DevOps Platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","It's been ten years since the first commit to GitLab! Here's a look at ten critical choices that shaped us.",[10],"2021-10-11","how-ten-steps-over-ten-years-led-to-the-devops-platform",{"title":772,"heroImage":773,"category":570,"description":774,"authors":775,"date":776,"slug":777,"externalUrl":6},"How GitLab's 5 new code review features will make life easier","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667400/Blog/Hero%20Images/lagos-techie-unsplash.jpg","Code reviews are hard to get right. Here are five new features in our DevOps Platform designed to streamline code reviews and provide vital context.",[10],"2021-09-09","5-code-review-features",{"title":779,"heroImage":780,"category":709,"description":781,"authors":782,"date":783,"slug":784,"externalUrl":6},"CNCF's 5 technologies to watch in 2021","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680997/Blog/Hero%20Images/clouds-cover.jpg","We predict how CNCF's five tech trends to watch will impact cloud native and the tech industry over the next year and beyond.",[10],"2020-11-24","cncf-five-technologies-to-watch-in-2021",{"title":786,"heroImage":787,"category":788,"description":789,"authors":790,"date":791,"slug":792,"externalUrl":6},"How to use HashiCorp Waypoint to deploy with GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679260/Blog/Hero%20Images/using-hashicorp-waypoint-deploy-gitlab-cicd.jpg","news","Learn how to use Waypoint using GitLab CI/CD by following this step-by-step demo.",[10],"2020-10-15","use-waypoint-to-deploy-with-gitlab-cicd",{"title":794,"heroImage":795,"category":709,"description":796,"authors":797,"date":798,"slug":799,"externalUrl":6},"The developer-security divide: frank talk from both sides","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681492/Blog/Hero%20Images/puzzle.jpg","Data from our 2020 DevSecOps Survey shows dev and sec remain at odds over test, bug finding, fixes, and more. Can we be friends? Maybe.",[10],"2020-08-13","developer-security-divide",{"title":801,"heroImage":802,"category":724,"description":803,"authors":804,"date":805,"slug":806,"externalUrl":6},"Why GitOps should be the workflow of choice","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681239/Blog/Hero%20Images/shiro-hatori-WR-ifjFy4CI-unsplash.jpg","What is GitOps and how do you apply it in real-world applications?",[10],"2020-04-17","why-gitops-should-be-workflow-of-choice",{"title":808,"heroImage":809,"category":709,"description":810,"authors":811,"date":812,"slug":813,"externalUrl":6},"A guide to Git for beginners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681222/Blog/Hero%20Images/git-15th-anniversary-cover.png","Our senior developer evangelist answers newbie questions about Git.",[10],"2020-04-13","beginner-git-guide",{"title":815,"heroImage":816,"category":724,"description":817,"authors":818,"date":819,"slug":820,"externalUrl":6},"How to leverage GitLab CI/CD for Google Firebase","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","Firebase is a powerful backend-as-a-service tool and when combined with GitLab it can be easy to enable continuous deployment of database, serverless and apps.",[10],"2020-03-16","gitlab-ci-cd-with-firebase",{"title":822,"heroImage":823,"category":294,"description":824,"authors":825,"date":826,"slug":827,"externalUrl":6},"Why I'm so excited to go to GitLab Commit","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683818/Blog/Hero%20Images/in-new-york.jpg","Spoiler alert: It's that I'm going to get to see GitLabbers who I don't work with",[10],"2019-09-02","why-i-am-excited-about-gitlab-commit",{"title":829,"heroImage":830,"category":724,"description":831,"authors":832,"date":833,"slug":834,"externalUrl":6},"Getting [meta] with GitLab CI/CD: Building build images","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678567/Blog/Hero%20Images/building-blocks.jpg","Let's talk about building build images with GitLab CI/CD. The power of Docker as a build platform is unleashed when you get meta.",[10],"2019-08-28","building-build-images",{"title":836,"heroImage":837,"category":724,"description":838,"authors":839,"date":840,"slug":841,"externalUrl":6},"Introducing Auto Breakfast from GitLab (sort of)","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680054/Blog/Hero%20Images/auto-breakfast.jpg","GitLab can't make you breakfast? This is what happens when you tell a GitLab team member whose favorite catchphrase is \"Challenge accepted.\"",[10],"2018-06-29","introducing-auto-breakfast-from-gitlab",{"title":843,"heroImage":844,"category":294,"description":845,"authors":846,"date":847,"slug":848,"externalUrl":6},"Using GitLab to project manage home renovation priorities","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749680235/Blog/Hero%20Images/home-improvement.jpg","Solutions Architect Brendan O'Leary shares how he and his family use GitLab Issue Boards for an unconventional purpose: home improvement prioritization!",[10],"2018-02-08","using-gitlab-to-manage-house-renovation-priorities",1786803742741]