[{"data":1,"prerenderedAt":857},["ShallowReactive",2],{"/en-us/blog/authors/brendan-oleary":3,"navigation-en-us":21,"banner-en-us":421,"footer-en-us":431,"blog-author-posts-en-us-brendan-oleary":673},{"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",{"data":22},{"logo":23,"freeTrial":28,"sales":33,"login":38,"items":43,"search":351,"minimal":382,"duo":401,"pricingDeployment":411},{"config":24},{"href":25,"dataGaName":26,"dataGaLocation":27},"/","gitlab logo","header",{"text":29,"config":30},"Get free trial",{"href":31,"dataGaName":32,"dataGaLocation":27},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":34,"config":35},"Talk to sales",{"href":36,"dataGaName":37,"dataGaLocation":27},"/sales/","sales",{"text":39,"config":40},"Sign in",{"href":41,"dataGaName":42,"dataGaLocation":27},"https://gitlab.com/users/sign_in/","sign in",[44,71,166,171,272,332],{"text":45,"config":46,"cards":48},"Platform",{"dataNavLevelOne":47},"platform",[49,55,63],{"title":45,"description":50,"link":51},"The intelligent orchestration platform for DevSecOps",{"text":52,"config":53},"Explore our Platform",{"href":54,"dataGaName":47,"dataGaLocation":27},"/platform/",{"title":56,"description":57,"link":58},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":59,"config":60},"Meet GitLab Duo",{"href":61,"dataGaName":62,"dataGaLocation":27},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":64,"description":65,"link":66},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":67,"config":68},"Learn more",{"href":69,"dataGaName":70,"dataGaLocation":27},"/why-gitlab/","why gitlab",{"text":72,"left":16,"config":73,"link":75,"lists":79,"footer":148},"Product",{"dataNavLevelOne":74},"solutions",{"text":76,"config":77},"View all Solutions",{"href":78,"dataGaName":74,"dataGaLocation":27},"/solutions/",[80,104,127],{"title":81,"description":82,"link":83,"items":88},"Automation","CI/CD and automation to accelerate deployment",{"config":84},{"icon":85,"href":86,"dataGaName":87,"dataGaLocation":27},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[89,93,96,100],{"text":90,"config":91},"CI/CD",{"href":92,"dataGaLocation":27,"dataGaName":90},"/solutions/continuous-integration/",{"text":56,"config":94},{"href":61,"dataGaLocation":27,"dataGaName":95},"gitlab duo agent platform - product menu",{"text":97,"config":98},"Source Code Management",{"href":99,"dataGaLocation":27,"dataGaName":97},"/solutions/source-code-management/",{"text":101,"config":102},"Automated Software Delivery",{"href":86,"dataGaLocation":27,"dataGaName":103},"Automated software delivery",{"title":105,"description":106,"link":107,"items":112},"Security","Deliver code faster without compromising security",{"config":108},{"href":109,"dataGaName":110,"dataGaLocation":27,"icon":111},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[113,117,122],{"text":114,"config":115},"Application Security Testing",{"href":109,"dataGaName":116,"dataGaLocation":27},"Application security testing",{"text":118,"config":119},"Software Supply Chain Security",{"href":120,"dataGaLocation":27,"dataGaName":121},"/solutions/supply-chain/","Software supply chain security",{"text":123,"config":124},"Software Compliance",{"href":125,"dataGaName":126,"dataGaLocation":27},"/solutions/software-compliance/","software compliance",{"title":128,"link":129,"items":134},"Measurement",{"config":130},{"icon":131,"href":132,"dataGaName":133,"dataGaLocation":27},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[135,139,143],{"text":136,"config":137},"Visibility & Measurement",{"href":132,"dataGaLocation":27,"dataGaName":138},"Visibility and Measurement",{"text":140,"config":141},"Value Stream Management",{"href":142,"dataGaLocation":27,"dataGaName":140},"/solutions/value-stream-management/",{"text":144,"config":145},"Analytics & Insights",{"href":146,"dataGaLocation":27,"dataGaName":147},"/solutions/analytics-and-insights/","Analytics and insights",{"title":149,"items":150},"GitLab for",[151,156,161],{"text":152,"config":153},"Enterprise",{"href":154,"dataGaLocation":27,"dataGaName":155},"/enterprise/","enterprise",{"text":157,"config":158},"Small Business",{"href":159,"dataGaLocation":27,"dataGaName":160},"/small-business/","small business",{"text":162,"config":163},"Public Sector",{"href":164,"dataGaLocation":27,"dataGaName":165},"/solutions/public-sector/","public sector",{"text":167,"config":168},"Pricing",{"href":169,"dataGaName":170,"dataGaLocation":27,"dataNavLevelOne":170},"/pricing/","pricing",{"text":172,"config":173,"link":175,"lists":179,"feature":259},"Resources",{"dataNavLevelOne":174},"resources",{"text":176,"config":177},"View all resources",{"href":178,"dataGaName":174,"dataGaLocation":27},"/resources/",[180,213,231],{"title":181,"items":182},"Getting started",[183,188,193,198,203,208],{"text":184,"config":185},"Install",{"href":186,"dataGaName":187,"dataGaLocation":27},"/install/","install",{"text":189,"config":190},"Quick start guides",{"href":191,"dataGaName":192,"dataGaLocation":27},"/get-started/","quick setup checklists",{"text":194,"config":195},"Learn",{"href":196,"dataGaLocation":27,"dataGaName":197},"https://university.gitlab.com/","learn",{"text":199,"config":200},"Product documentation",{"href":201,"dataGaName":202,"dataGaLocation":27},"https://docs.gitlab.com/","product documentation",{"text":204,"config":205},"Best practice videos",{"href":206,"dataGaName":207,"dataGaLocation":27},"/getting-started-videos/","best practice videos",{"text":209,"config":210},"Integrations",{"href":211,"dataGaName":212,"dataGaLocation":27},"/integrations/","integrations",{"title":214,"items":215},"Discover",[216,221,226],{"text":217,"config":218},"Customer success stories",{"href":219,"dataGaName":220,"dataGaLocation":27},"/customers/","customer success stories",{"text":222,"config":223},"Blog",{"href":224,"dataGaName":225,"dataGaLocation":27},"/blog/","blog",{"text":227,"config":228},"Remote",{"href":229,"dataGaName":230,"dataGaLocation":27},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":232,"items":233},"Connect",[234,239,244,249,254],{"text":235,"config":236},"GitLab Services",{"href":237,"dataGaName":238,"dataGaLocation":27},"/services/","services",{"text":240,"config":241},"Community",{"href":242,"dataGaName":243,"dataGaLocation":27},"/community/","community",{"text":245,"config":246},"Forum",{"href":247,"dataGaName":248,"dataGaLocation":27},"https://forum.gitlab.com/","forum",{"text":250,"config":251},"Events",{"href":252,"dataGaName":253,"dataGaLocation":27},"/events/","events",{"text":255,"config":256},"Partners",{"href":257,"dataGaName":258,"dataGaLocation":27},"/partners/","partners",{"backgroundColor":260,"textColor":261,"text":262,"image":263,"link":267},"#2f2a6b","#fff","Insights for the future of software development",{"altText":264,"config":265},"the source promo card",{"src":266},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":268,"config":269},"Read the latest",{"href":270,"dataGaName":271,"dataGaLocation":27},"/the-source/","the source",{"text":273,"config":274,"lists":276},"Company",{"dataNavLevelOne":275},"company",[277],{"items":278},[279,284,290,292,297,302,307,312,317,322,327],{"text":280,"config":281},"About",{"href":282,"dataGaName":283,"dataGaLocation":27},"/company/","about",{"text":285,"config":286,"footerGa":289},"Jobs",{"href":287,"dataGaName":288,"dataGaLocation":27},"/jobs/","jobs",{"dataGaName":288},{"text":250,"config":291},{"href":252,"dataGaName":253,"dataGaLocation":27},{"text":293,"config":294},"Leadership",{"href":295,"dataGaName":296,"dataGaLocation":27},"/company/team/e-group/","leadership",{"text":298,"config":299},"Team",{"href":300,"dataGaName":301,"dataGaLocation":27},"/company/team/","team",{"text":303,"config":304},"Handbook",{"href":305,"dataGaName":306,"dataGaLocation":27},"https://handbook.gitlab.com/","handbook",{"text":308,"config":309},"Investor relations",{"href":310,"dataGaName":311,"dataGaLocation":27},"https://ir.gitlab.com/","investor relations",{"text":313,"config":314},"Trust Center",{"href":315,"dataGaName":316,"dataGaLocation":27},"/security/","trust center",{"text":318,"config":319},"AI Transparency Center",{"href":320,"dataGaName":321,"dataGaLocation":27},"/ai-transparency-center/","ai transparency center",{"text":323,"config":324},"Newsletter",{"href":325,"dataGaName":326,"dataGaLocation":27},"/company/contact/#contact-forms","newsletter",{"text":328,"config":329},"Press",{"href":330,"dataGaName":331,"dataGaLocation":27},"/press/","press",{"text":333,"config":334,"lists":335},"Contact us",{"dataNavLevelOne":275},[336],{"items":337},[338,341,346],{"text":34,"config":339},{"href":36,"dataGaName":340,"dataGaLocation":27},"talk to sales",{"text":342,"config":343},"Support portal",{"href":344,"dataGaName":345,"dataGaLocation":27},"https://support.gitlab.com","support portal",{"text":347,"config":348},"Customer portal",{"href":349,"dataGaName":350,"dataGaLocation":27},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":352,"login":353,"suggestions":360},"Close",{"text":354,"link":355},"To search repositories and projects, login to",{"text":356,"config":357},"gitlab.com",{"href":41,"dataGaName":358,"dataGaLocation":359},"search login","search",{"text":361,"default":362},"Suggestions",[363,365,369,371,375,379],{"text":56,"config":364},{"href":61,"dataGaName":56,"dataGaLocation":359},{"text":366,"config":367},"Code Suggestions (AI)",{"href":368,"dataGaName":366,"dataGaLocation":359},"/solutions/code-suggestions/",{"text":90,"config":370},{"href":92,"dataGaName":90,"dataGaLocation":359},{"text":372,"config":373},"GitLab on AWS",{"href":374,"dataGaName":372,"dataGaLocation":359},"/partners/technology-partners/aws/",{"text":376,"config":377},"GitLab on Google Cloud",{"href":378,"dataGaName":376,"dataGaLocation":359},"/partners/technology-partners/google-cloud-platform/",{"text":380,"config":381},"Why GitLab?",{"href":69,"dataGaName":380,"dataGaLocation":359},{"freeTrial":383,"mobileIcon":388,"desktopIcon":393,"secondaryButton":396},{"text":384,"config":385},"Start free trial",{"href":386,"dataGaName":32,"dataGaLocation":387},"https://gitlab.com/-/trials/new/","nav",{"altText":389,"config":390},"Gitlab Icon",{"src":391,"dataGaName":392,"dataGaLocation":387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":389,"config":394},{"src":395,"dataGaName":392,"dataGaLocation":387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":397,"config":398},"Get Started",{"href":399,"dataGaName":400,"dataGaLocation":387},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":402,"mobileIcon":407,"desktopIcon":409},{"text":403,"config":404},"Learn more about GitLab Duo",{"href":405,"dataGaName":406,"dataGaLocation":387},"/gitlab-duo/","gitlab duo",{"altText":389,"config":408},{"src":391,"dataGaName":392,"dataGaLocation":387},{"altText":389,"config":410},{"src":395,"dataGaName":392,"dataGaLocation":387},{"freeTrial":412,"mobileIcon":417,"desktopIcon":419},{"text":413,"config":414},"Back to pricing",{"href":169,"dataGaName":415,"dataGaLocation":387,"icon":416},"back to pricing","GoBack",{"altText":389,"config":418},{"src":391,"dataGaName":392,"dataGaLocation":387},{"altText":389,"config":420},{"src":395,"dataGaName":392,"dataGaLocation":387},{"title":422,"button":423,"config":428},"See how agentic AI transforms software delivery",{"text":424,"config":425},"Watch GitLab Transcend now",{"href":426,"dataGaName":427,"dataGaLocation":27},"/events/transcend/virtual/","transcend event",{"layout":429,"icon":430},"release","AiStar",{"data":432},{"text":433,"source":434,"edit":440,"contribute":445,"config":450,"items":455,"minimal":662},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":435,"config":436},"View page source",{"href":437,"dataGaName":438,"dataGaLocation":439},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":441,"config":442},"Edit this page",{"href":443,"dataGaName":444,"dataGaLocation":439},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":446,"config":447},"Please contribute",{"href":448,"dataGaName":449,"dataGaLocation":439},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":451,"facebook":452,"youtube":453,"linkedin":454},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[456,503,557,601,628],{"title":167,"links":457,"subMenu":472},[458,462,467],{"text":459,"config":460},"View plans",{"href":169,"dataGaName":461,"dataGaLocation":439},"view plans",{"text":463,"config":464},"Why Premium?",{"href":465,"dataGaName":466,"dataGaLocation":439},"/pricing/premium/","why premium",{"text":468,"config":469},"Why Ultimate?",{"href":470,"dataGaName":471,"dataGaLocation":439},"/pricing/ultimate/","why ultimate",[473],{"title":474,"links":475},"Contact Us",[476,479,481,483,488,493,498],{"text":477,"config":478},"Contact sales",{"href":36,"dataGaName":37,"dataGaLocation":439},{"text":342,"config":480},{"href":344,"dataGaName":345,"dataGaLocation":439},{"text":347,"config":482},{"href":349,"dataGaName":350,"dataGaLocation":439},{"text":484,"config":485},"Status",{"href":486,"dataGaName":487,"dataGaLocation":439},"https://status.gitlab.com/","status",{"text":489,"config":490},"Terms of use",{"href":491,"dataGaName":492,"dataGaLocation":439},"/terms/","terms of use",{"text":494,"config":495},"Privacy statement",{"href":496,"dataGaName":497,"dataGaLocation":439},"/privacy/","privacy statement",{"text":499,"config":500},"Cookie preferences",{"dataGaName":501,"dataGaLocation":439,"id":502,"isOneTrustButton":16},"cookie preferences","ot-sdk-btn",{"title":72,"links":504,"subMenu":513},[505,509],{"text":506,"config":507},"DevSecOps platform",{"href":54,"dataGaName":508,"dataGaLocation":439},"devsecops platform",{"text":510,"config":511},"AI-Assisted Development",{"href":405,"dataGaName":512,"dataGaLocation":439},"ai-assisted development",[514],{"title":515,"links":516},"Topics",[517,522,527,532,537,542,547,552],{"text":518,"config":519},"CICD",{"href":520,"dataGaName":521,"dataGaLocation":439},"/topics/ci-cd/","cicd",{"text":523,"config":524},"GitOps",{"href":525,"dataGaName":526,"dataGaLocation":439},"/topics/gitops/","gitops",{"text":528,"config":529},"DevOps",{"href":530,"dataGaName":531,"dataGaLocation":439},"/topics/devops/","devops",{"text":533,"config":534},"Version Control",{"href":535,"dataGaName":536,"dataGaLocation":439},"/topics/version-control/","version control",{"text":538,"config":539},"DevSecOps",{"href":540,"dataGaName":541,"dataGaLocation":439},"/topics/devsecops/","devsecops",{"text":543,"config":544},"Cloud Native",{"href":545,"dataGaName":546,"dataGaLocation":439},"/topics/cloud-native/","cloud native",{"text":548,"config":549},"AI for Coding",{"href":550,"dataGaName":551,"dataGaLocation":439},"/topics/devops/ai-for-coding/","ai for coding",{"text":553,"config":554},"Agentic AI",{"href":555,"dataGaName":556,"dataGaLocation":439},"/topics/agentic-ai/","agentic ai",{"title":558,"links":559},"Solutions",[560,562,564,569,573,576,580,583,585,588,591,596],{"text":114,"config":561},{"href":109,"dataGaName":114,"dataGaLocation":439},{"text":103,"config":563},{"href":86,"dataGaName":87,"dataGaLocation":439},{"text":565,"config":566},"Agile development",{"href":567,"dataGaName":568,"dataGaLocation":439},"/solutions/agile-delivery/","agile delivery",{"text":570,"config":571},"SCM",{"href":99,"dataGaName":572,"dataGaLocation":439},"source code management",{"text":518,"config":574},{"href":92,"dataGaName":575,"dataGaLocation":439},"continuous integration & delivery",{"text":577,"config":578},"Value stream management",{"href":142,"dataGaName":579,"dataGaLocation":439},"value stream management",{"text":523,"config":581},{"href":582,"dataGaName":526,"dataGaLocation":439},"/solutions/gitops/",{"text":152,"config":584},{"href":154,"dataGaName":155,"dataGaLocation":439},{"text":586,"config":587},"Small business",{"href":159,"dataGaName":160,"dataGaLocation":439},{"text":589,"config":590},"Public sector",{"href":164,"dataGaName":165,"dataGaLocation":439},{"text":592,"config":593},"Education",{"href":594,"dataGaName":595,"dataGaLocation":439},"/solutions/education/","education",{"text":597,"config":598},"Financial services",{"href":599,"dataGaName":600,"dataGaLocation":439},"/solutions/finance/","financial services",{"title":172,"links":602},[603,605,607,609,612,614,616,618,620,622,624,626],{"text":184,"config":604},{"href":186,"dataGaName":187,"dataGaLocation":439},{"text":189,"config":606},{"href":191,"dataGaName":192,"dataGaLocation":439},{"text":194,"config":608},{"href":196,"dataGaName":197,"dataGaLocation":439},{"text":199,"config":610},{"href":201,"dataGaName":611,"dataGaLocation":439},"docs",{"text":222,"config":613},{"href":224,"dataGaName":225,"dataGaLocation":439},{"text":217,"config":615},{"href":219,"dataGaName":220,"dataGaLocation":439},{"text":227,"config":617},{"href":229,"dataGaName":230,"dataGaLocation":439},{"text":235,"config":619},{"href":237,"dataGaName":238,"dataGaLocation":439},{"text":240,"config":621},{"href":242,"dataGaName":243,"dataGaLocation":439},{"text":245,"config":623},{"href":247,"dataGaName":248,"dataGaLocation":439},{"text":250,"config":625},{"href":252,"dataGaName":253,"dataGaLocation":439},{"text":255,"config":627},{"href":257,"dataGaName":258,"dataGaLocation":439},{"title":273,"links":629},[630,632,634,636,638,640,642,646,651,653,655,657],{"text":280,"config":631},{"href":282,"dataGaName":275,"dataGaLocation":439},{"text":285,"config":633},{"href":287,"dataGaName":288,"dataGaLocation":439},{"text":293,"config":635},{"href":295,"dataGaName":296,"dataGaLocation":439},{"text":298,"config":637},{"href":300,"dataGaName":301,"dataGaLocation":439},{"text":303,"config":639},{"href":305,"dataGaName":306,"dataGaLocation":439},{"text":308,"config":641},{"href":310,"dataGaName":311,"dataGaLocation":439},{"text":643,"config":644},"Sustainability",{"href":645,"dataGaName":643,"dataGaLocation":439},"/sustainability/",{"text":647,"config":648},"Diversity, inclusion and belonging (DIB)",{"href":649,"dataGaName":650,"dataGaLocation":439},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":313,"config":652},{"href":315,"dataGaName":316,"dataGaLocation":439},{"text":323,"config":654},{"href":325,"dataGaName":326,"dataGaLocation":439},{"text":328,"config":656},{"href":330,"dataGaName":331,"dataGaLocation":439},{"text":658,"config":659},"Modern Slavery Transparency Statement",{"href":660,"dataGaName":661,"dataGaLocation":439},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":663},[664,667,670],{"text":665,"config":666},"Terms",{"href":491,"dataGaName":492,"dataGaLocation":439},{"text":668,"config":669},"Cookies",{"dataGaName":501,"dataGaLocation":439,"id":502,"isOneTrustButton":16},{"text":671,"config":672},"Privacy",{"href":496,"dataGaName":497,"dataGaLocation":439},[674,684,693,703,712,721,730,739,748,757,766,775,785,794,803,812,821,830,839,848],{"content":675,"config":682},{"title":676,"heroImage":677,"category":678,"description":679,"authors":680,"date":681},"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",{"slug":683,"externalUrl":-1},"how-is-ai-ml-changing-devops",{"content":685,"config":691},{"title":686,"heroImage":687,"category":678,"description":688,"authors":689,"date":690},"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",{"slug":692,"externalUrl":-1},"what-makes-a-great-tech-talk",{"content":694,"config":701},{"title":695,"heroImage":696,"category":697,"description":698,"authors":699,"date":700},"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",{"slug":702,"externalUrl":-1},"how-to-access-gitlab-on-a-private-network-with-tailscale",{"content":704,"config":710},{"title":705,"heroImage":706,"category":541,"description":707,"authors":708,"date":709},"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",{"slug":711,"externalUrl":-1},"gitlab-15-the-retrospective",{"content":713,"config":719},{"title":714,"heroImage":715,"category":697,"description":716,"authors":717,"date":718},"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",{"slug":720,"externalUrl":-1},"installing-gitlab-on-raspberry-pi-64-bit-os",{"content":722,"config":728},{"title":723,"heroImage":724,"category":697,"description":725,"authors":726,"date":727},"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",{"slug":729,"externalUrl":-1},"how-to-protect-gitlab-connected-ssh-key-with-yubikey",{"content":731,"config":737},{"title":732,"heroImage":733,"category":541,"description":734,"authors":735,"date":736},"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",{"slug":738,"externalUrl":-1},"the-best-of-gitlabs-devops-platform-2021",{"content":740,"config":746},{"title":741,"heroImage":742,"category":697,"description":743,"authors":744,"date":745},"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",{"slug":747,"externalUrl":-1},"how-to-code-build-and-deploy-from-an-ipad-using-gitlab-and-gitpod",{"content":749,"config":755},{"title":750,"heroImage":751,"category":678,"description":752,"authors":753,"date":754},"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",{"slug":756,"externalUrl":-1},"how-ten-steps-over-ten-years-led-to-the-devops-platform",{"content":758,"config":764},{"title":759,"heroImage":760,"category":541,"description":761,"authors":762,"date":763},"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",{"slug":765,"externalUrl":-1},"5-code-review-features",{"content":767,"config":773},{"title":768,"heroImage":769,"category":678,"description":770,"authors":771,"date":772},"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",{"slug":774,"externalUrl":-1},"cncf-five-technologies-to-watch-in-2021",{"content":776,"config":783},{"title":777,"heroImage":778,"category":779,"description":780,"authors":781,"date":782},"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",{"slug":784,"externalUrl":-1},"use-waypoint-to-deploy-with-gitlab-cicd",{"content":786,"config":792},{"title":787,"heroImage":788,"category":678,"description":789,"authors":790,"date":791},"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",{"slug":793,"externalUrl":-1},"developer-security-divide",{"content":795,"config":801},{"title":796,"heroImage":797,"category":697,"description":798,"authors":799,"date":800},"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",{"slug":802,"externalUrl":-1},"why-gitops-should-be-workflow-of-choice",{"content":804,"config":810},{"title":805,"heroImage":806,"category":678,"description":807,"authors":808,"date":809},"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",{"slug":811,"externalUrl":-1},"beginner-git-guide",{"content":813,"config":819},{"title":814,"heroImage":815,"category":697,"description":816,"authors":817,"date":818},"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",{"slug":820,"externalUrl":-1},"gitlab-ci-cd-with-firebase",{"content":822,"config":828},{"title":823,"heroImage":824,"category":275,"description":825,"authors":826,"date":827},"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",{"slug":829,"externalUrl":-1},"why-i-am-excited-about-gitlab-commit",{"content":831,"config":837},{"title":832,"heroImage":833,"category":697,"description":834,"authors":835,"date":836},"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",{"slug":838,"externalUrl":-1},"building-build-images",{"content":840,"config":846},{"title":841,"heroImage":842,"category":697,"description":843,"authors":844,"date":845},"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",{"slug":847,"externalUrl":-1},"introducing-auto-breakfast-from-gitlab",{"content":849,"config":855},{"title":850,"heroImage":851,"category":275,"description":852,"authors":853,"date":854},"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",{"slug":856,"externalUrl":-1},"using-gitlab-to-manage-house-renovation-priorities",1772652052085]