[{"data":1,"prerenderedAt":1129},["ShallowReactive",2],{"/blog/gitlab-and-yubico-security-webcast":3,"navigation-en-us":342,"banner-en-us":770,"footer-en-us":780,"blog-post-authors-en-us-Amara Nwaigwe":1025,"blog-related-posts-en-us-gitlab-and-yubico-security-webcast":1040,"blog-promotions-en-us":1065,"next-steps-en-us":1119},{"id":4,"title":5,"authors":6,"body":8,"category":310,"date":311,"description":312,"extension":313,"externalUrl":314,"faq":314,"featured":315,"heroImage":316,"meta":317,"navigation":332,"path":333,"seo":334,"slug":338,"stem":339,"tags":314,"template":340,"updatedDate":314,"__hash__":341},"blogPosts/en-us/blog/gitlab-and-yubico-security-webcast.md","Security Webcast with Yubico",[7],"Amara Nwaigwe",{"type":9,"value":10,"toc":303},"minimark",[11,15,36,41,60,64,77,80,88,92,95,137],[12,13,14],"p",{},"Git is distributed, meaning that people can maintain a copy of the source code. While Git’s distributed nature is what makes it so\npopular amongst developers, it is also what makes it a security concern to enterprises. The concern is that your source code is only\nas secure as the machine it’s been copied. Each of these devices could be a point of exposure. We understand how important it\nis to maintain the integrity of your source code.",[12,16,17,18,24,25,30,31,35],{},"With the release of ",[19,20,23],"a",{"href":21,"rel":22},"https://docs.gitlab.com/releases/",[],"GitLab 8.9"," we announced that we partnered with ",[19,26,29],{"href":27,"rel":28},"https://www.yubico.com/",[],"Yubico"," to help\ncustomers strengthen their authentication process with YubiKeys. YubiKeys are a single key providing universal 2nd factor\nauthentication into an unlimited number of applications. After ",[19,32,34],{"href":33},"/blog/gitlab-adds-support-for-u2f/","our announcement",", we asked Yubico to join us on a webcast. In this\nwebcast, we talked about common security threats and how you can use GitLab and Yubico to protect your private data\nand maintain a secure Git repo as a single source of truth.",[37,38,40],"h2",{"id":39},"in-this-webcast","In this Webcast",[42,43,44,48,51,54,57],"ul",{},[45,46,47],"li",{},"Top security threats",[45,49,50],{},"Inside look at how YubiKeys work",[45,52,53],{},"Demo of setting up and using a YubiKey with GitLab",[45,55,56],{},"Demo GitLab’s additional security capabilities beyond authentication",[45,58,59],{},"Industry best practices for securing your Git repository",[37,61,63],{"id":62},"recording-slides","Recording & Slides",[65,66,69,70],"figure",{"className":67},[68],"video_container","\n  ",[71,72,76],"iframe",{"src":73,"frameBorder":74,"allowFullScreen":75},"https://www.youtube.com/embed/pO9-7R3N5Ok","0","true"," ",[78,79],"br",{},[65,81,83],{"className":82},[68],[71,84],{"src":85,"frameBorder":74,"width":86,"height":87,"allowFullScreen":75,"mozallowfullscreen":75,"webkitallowfullscreen":75},"https://docs.google.com/presentation/d/175zQz9CcQf3fQ65rbYFH_ysgllEkXrtnjYpAH_CDcrc/embed?start=false&loop=false&delayms=5000",1280,749,[37,89,91],{"id":90},"key-takeaways","Key Takeaways",[12,93,94],{},"If you don’t have time to watch the full video, here are the highlights.",[96,97,101,111,117,133],"div",{"className":98},[99,100],"panel","panel-info",[12,102,76,105],{"className":103},[104],"panel-heading",[106,107,108,109],"strong",{},"Definition of a YubiKey",[106,110],{},[12,112,113],{},[106,114,115],{},[106,116],{},[96,118,121],{"className":119},[120],"panel-body",[106,122,123],{},[106,124,69,125],{},[12,126,127,128,132],{},"A ",[19,129,131],{"href":130},"https://www.yubico.com/faq/yubikey/","YubiKey"," is a small hardware device that offers two-factor authentication with a simple touch of a button.",[106,134,135],{},[106,136],{},[106,138,139],{},[106,140,141,143,164,69,183,185,211,292,299],{},[78,142],{},[96,144,69,147,153],{"className":145},[99,146],"panel-success",[12,148,150],{"className":149},[104],[106,151,152],{},"Reasons YubiKeys are preferred over 2FA via SMS",[96,154,69,156],{"className":155},[120],[12,157,158,159,163],{},"From a security standpoint, push notifications and SMS codes (a form of ",[19,160,162],{"href":161},"https://en.wikipedia.org/wiki/One-time_password","One-time Passwords",") are all\nvulnerable to phishing attacks and replay attacks. Getting a bit technical here, if you are using the U2F protocol\nwith the YubiKey, a properly implemented U2F registration flow contains Origin (phishing protection!) information\nas well as TLS Channel Identification information (Man in the Middle attack protection). Finally, the\n    challenge-response piece of the U2F protocol provides complete replay attack protection.",[96,165,69,168,174],{"className":166},[99,167],"panel-gitlab",[12,169,171],{"className":170},[104],[106,172,173],{},"GitLab + YubiKey",[96,175,177,178,182],{"className":176},[120],"\nOur goal is to secure our customer’s work with proven, seamless solutions. The YubiKey provides\n  ",[19,179,181],{"href":180},"https://www.yubico.com/2015/11/yubico-docker-codesign/","one-touch authentication",", reducing the number of steps users have to take to access their accounts.\nRemembering and entering passwords or pins can be a cumbersome process. Hopefully, YubiKeys can reduce some\nof that friction and encourage more teams to secure their GitLab instance.\n",[78,184],{},[96,186,69,189,195],{"className":187},[99,188],"panel-danger",[12,190,192],{"className":191},[104],[106,193,194],{},"GitLab's additional security capabilities beyond authentication",[96,196,69,198],{"className":197},[120],[42,199,200,201,204,205,204,208,69],{},"\n    ",[45,202,203],{},"Access and permissions: control who has access to your repositories","\n     ",[45,206,207],{},"Workflow management: control what changes are being made to your repositories",[45,209,210],{},"Audit trail: keep a record of what happened within you GitLab instance",[96,212,69,215,221],{"className":213},[99,214],"panel-gitlab-purple",[12,216,218],{"className":217},[104],[106,219,220],{},"Nine security best practices",[96,222,224,69,237],{"className":223},[120],[12,225,226,227,231,232,236],{},"Of course there are many more than just nine. These were the ones that stuck out to us but for more resources\n  take a look at ",[19,228,230],{"href":229},"http://resources.infosecinstitute.com/security-best-practices-for-git-users/","InfoSec’s article on security best practices for Git users"," and you can also check out\n  the ",[19,233,235],{"href":234},"https://handbook.gitlab.com/handbook/security/","security section"," of our employee handbook.",[238,239,200,240,200,248,200,251,200,254,200,257,200,260,200,263,200,282,69],"ol",{},[45,241,242,243,247],{},"Assign strong passwords and store in an encrypted vault (e.g., ",[19,244,246],{"href":245},"https://1password.com/","1Password",").",[45,249,250],{},"Never reuse your passwords across accounts.",[45,252,253],{},"Ensure proper user identity by restricting the use of shared or system accounts.",[45,255,256],{},"Enforce two-factor authentication.",[45,258,259],{},"Assign and review the proper access and permissions levels to projects.",[45,261,262],{},"Only use HTTPS or SSH to access git repositories, git repository management software, CI systems and ticketing / bug tracking systems.",[45,264,265,266,270,271,274,275,278,279,281],{},"Enforce integrity checks on all incoming objects by setting ",[267,268,269],"code",{},"transfer.fsckObjects",", ",[267,272,273],{},"fetch.fsckObjects"," and ",[267,276,277],{},"receive.fscObjects"," to ",[267,280,75],{},".",[45,283,284,285,288,289,291],{},"Enforce usage of ",[267,286,287],{},".gitignore"," files by providing a proper ",[267,290,287],{}," file content to all current and future projects.",[12,293,294,295,281],{},"As always, if you have any questions feel free to comment on this post or ",[296,297,298],"span",{},"tweet at us",[300,301,302],"style",{},"\n.panel-gitlab {\n  border-color: rgba(252,163,38,.3);\n}\n.panel-gitlab > .panel-heading {\n  color: rgb(226,67,41);\n  background-color: rgba(252,163,38,.3);\n  border-color: rgba(252,163,38,.3);\n}\n.panel-gitlab-purple {\n  border-color: rgba(107,79,187,.3);\n}\n.panel-gitlab-purple > .panel-heading {\n  color: rgb(107,79,187);\n  background-color: rgba(107,79,187,.3);\n  border-color: rgba(107,79,187,.3);\n}\n",{"title":304,"searchDepth":305,"depth":305,"links":306},"",2,[307,308,309],{"id":39,"depth":305,"text":40},{"id":62,"depth":305,"text":63},{"id":90,"depth":305,"text":91},"insights","2016-08-31","GitLab and Yubico discuss security best practices for Git users.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666581/Blog/Hero%20Images/fido-u2f-yubikey.jpg",{"excerpt":318},{"type":9,"value":319},[320,322],[12,321,14],{},[12,323,17,324,24,327,30,330,35],{},[19,325,23],{"href":21,"rel":326},[],[19,328,29],{"href":27,"rel":329},[],[19,331,34],{"href":33},true,"/en-us/blog/gitlab-and-yubico-security-webcast",{"title":5,"description":312,"ogTitle":5,"ogDescription":312,"noIndex":315,"ogImage":316,"ogUrl":335,"ogSiteName":336,"ogType":337,"canonicalUrls":335},"https://about.gitlab.com/blog/gitlab-and-yubico-security-webcast","https://about.gitlab.com","article","gitlab-and-yubico-security-webcast","en-us/blog/gitlab-and-yubico-security-webcast","BlogPost","8KMfLO5UGhgavkAwnMmGQrUPB1pmqDMJYpRGt8KLfC8",{"logo":343,"freeTrial":348,"sales":353,"login":358,"items":363,"search":690,"minimal":721,"duo":740,"switchNav":749,"pricingDeployment":760},{"config":344},{"href":345,"dataGaName":346,"dataGaLocation":347},"/","gitlab logo","header",{"text":349,"config":350},"Get free trial",{"href":351,"dataGaName":352,"dataGaLocation":347},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":354,"config":355},"Request a demo",{"href":356,"dataGaName":357,"dataGaLocation":347},"/sales/?contact-topic=request-demo","sales",{"text":359,"config":360},"Sign in",{"href":361,"dataGaName":362,"dataGaLocation":347},"https://gitlab.com/users/sign_in/","sign in",[364,393,493,498,612,668],{"text":365,"config":366,"menu":368},"Platform",{"dataNavLevelOne":367},"platform",{"type":369,"columns":370},"cards",[371,377,385],{"title":365,"description":372,"link":373},"The intelligent orchestration platform for DevSecOps",{"text":374,"config":375},"Explore our Platform",{"href":376,"dataGaName":367,"dataGaLocation":347},"/platform/",{"title":378,"description":379,"link":380},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":381,"config":382},"Meet GitLab Duo",{"href":383,"dataGaName":384,"dataGaLocation":347},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":386,"description":387,"link":388},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":389,"config":390},"Learn more",{"href":391,"dataGaName":392,"dataGaLocation":347},"/why-gitlab/","why gitlab",{"text":394,"left":332,"config":395,"menu":397},"Product",{"dataNavLevelOne":396},"solutions",{"type":398,"link":399,"columns":403,"feature":472},"lists",{"text":400,"config":401},"View all Solutions",{"href":402,"dataGaName":396,"dataGaLocation":347},"/solutions/",[404,428,451],{"title":405,"description":406,"link":407,"items":412},"Automation","CI/CD and automation to accelerate deployment",{"config":408},{"icon":409,"href":410,"dataGaName":411,"dataGaLocation":347},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[413,417,420,424],{"text":414,"config":415},"CI/CD",{"href":416,"dataGaLocation":347,"dataGaName":414},"/solutions/continuous-integration/",{"text":378,"config":418},{"href":383,"dataGaLocation":347,"dataGaName":419},"gitlab duo agent platform - product menu",{"text":421,"config":422},"Source Code Management",{"href":423,"dataGaLocation":347,"dataGaName":421},"/solutions/source-code-management/",{"text":425,"config":426},"Automated Software Delivery",{"href":410,"dataGaLocation":347,"dataGaName":427},"Automated software delivery",{"title":429,"description":430,"link":431,"items":436},"Security","Deliver code faster without compromising security",{"config":432},{"href":433,"dataGaName":434,"dataGaLocation":347,"icon":435},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[437,441,446],{"text":438,"config":439},"Application Security Testing",{"href":433,"dataGaName":440,"dataGaLocation":347},"Application security testing",{"text":442,"config":443},"Software Supply Chain Security",{"href":444,"dataGaLocation":347,"dataGaName":445},"/solutions/supply-chain/","Software supply chain security",{"text":447,"config":448},"Software Compliance",{"href":449,"dataGaName":450,"dataGaLocation":347},"/solutions/software-compliance/","software compliance",{"title":452,"link":453,"items":458},"Measurement",{"config":454},{"icon":455,"href":456,"dataGaName":457,"dataGaLocation":347},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[459,463,467],{"text":460,"config":461},"Visibility & Measurement",{"href":456,"dataGaLocation":347,"dataGaName":462},"Visibility and Measurement",{"text":464,"config":465},"Value Stream Management",{"href":466,"dataGaLocation":347,"dataGaName":464},"/solutions/value-stream-management/",{"text":468,"config":469},"Analytics & Insights",{"href":470,"dataGaLocation":347,"dataGaName":471},"/solutions/analytics-and-insights/","Analytics and insights",{"title":473,"type":398,"items":474},"GitLab for",[475,481,487],{"text":476,"config":477},"Enterprise",{"icon":478,"href":479,"dataGaLocation":347,"dataGaName":480},"Building","/enterprise/","enterprise",{"text":482,"config":483},"Small Business",{"icon":484,"href":485,"dataGaLocation":347,"dataGaName":486},"Work","/small-business/","small business",{"text":488,"config":489},"Public Sector",{"icon":490,"href":491,"dataGaLocation":347,"dataGaName":492},"Organization","/solutions/public-sector/","public sector",{"text":494,"config":495},"Pricing",{"href":496,"dataGaName":497,"dataGaLocation":347,"dataNavLevelOne":497},"/pricing/","pricing",{"text":499,"config":500,"menu":502},"Resources",{"dataNavLevelOne":501},"resources",{"type":398,"link":503,"columns":507,"feature":601},{"text":504,"config":505},"View all resources",{"href":506,"dataGaName":501,"dataGaLocation":347},"/resources/",[508,541,568],{"title":509,"items":510},"Getting started",[511,516,521,526,531,536],{"text":512,"config":513},"Install",{"href":514,"dataGaName":515,"dataGaLocation":347},"/install/","install",{"text":517,"config":518},"Quick start guides",{"href":519,"dataGaName":520,"dataGaLocation":347},"/get-started/","quick setup checklists",{"text":522,"config":523},"Learn",{"href":524,"dataGaLocation":347,"dataGaName":525},"https://university.gitlab.com/","learn",{"text":527,"config":528},"Product documentation",{"href":529,"dataGaName":530,"dataGaLocation":347},"https://docs.gitlab.com/","product documentation",{"text":532,"config":533},"Best practice videos",{"href":534,"dataGaName":535,"dataGaLocation":347},"/getting-started-videos/","best practice videos",{"text":537,"config":538},"Integrations",{"href":539,"dataGaName":540,"dataGaLocation":347},"/integrations/","integrations",{"title":542,"items":543},"Discover",[544,549,554,559,563],{"text":545,"config":546},"Customer success stories",{"href":547,"dataGaName":548,"dataGaLocation":347},"/customers/","customer success stories",{"text":550,"config":551},"Blog",{"href":552,"dataGaName":553,"dataGaLocation":347},"/blog/","blog",{"text":555,"config":556},"Demo Hub",{"href":557,"dataGaName":558,"dataGaLocation":347},"/demo-hub/","demo hub",{"text":560,"config":561},"The Source",{"href":562,"dataGaName":553,"dataGaLocation":347},"/the-source/",{"text":564,"config":565},"Remote",{"href":566,"dataGaName":567,"dataGaLocation":347},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":569,"items":570},"Connect",[571,576,581,586,591,596],{"text":572,"config":573},"GitLab Services",{"href":574,"dataGaName":575,"dataGaLocation":347},"/services/","services",{"text":577,"config":578},"Contribute",{"href":579,"dataGaName":580,"dataGaLocation":347},"https://contributors.gitlab.com","contribute",{"text":582,"config":583},"Community",{"href":584,"dataGaName":585,"dataGaLocation":347},"/community/","community",{"text":587,"config":588},"Forum",{"href":589,"dataGaName":590,"dataGaLocation":347},"https://forum.gitlab.com/","forum",{"text":592,"config":593},"Events",{"href":594,"dataGaName":595,"dataGaLocation":347},"/events/","events",{"text":597,"config":598},"Partners",{"href":599,"dataGaName":600,"dataGaLocation":347},"/partners/","partners",{"config":602,"title":605,"text":606,"link":607},{"background":603,"textColor":604},"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":608,"config":609},"Read the latest",{"href":610,"dataGaName":611,"dataGaLocation":347},"/whats-new/","whats new",{"text":613,"config":614,"menu":616},"Company",{"dataNavLevelOne":615},"company",{"type":398,"columns":617},[618],{"items":619},[620,625,631,633,638,643,648,653,658,663],{"text":621,"config":622},"About",{"href":623,"dataGaName":624,"dataGaLocation":347},"/company/","about",{"text":626,"config":627,"footerGa":630},"Jobs",{"href":628,"dataGaName":629,"dataGaLocation":347},"/jobs/","jobs",{"dataGaName":629},{"text":592,"config":632},{"href":594,"dataGaName":595,"dataGaLocation":347},{"text":634,"config":635},"Leadership",{"href":636,"dataGaName":637,"dataGaLocation":347},"/company/team/e-group/","leadership",{"text":639,"config":640},"Handbook",{"href":641,"dataGaName":642,"dataGaLocation":347},"https://handbook.gitlab.com/","handbook",{"text":644,"config":645},"Investor relations",{"href":646,"dataGaName":647,"dataGaLocation":347},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":649,"config":650},"Trust Center",{"href":651,"dataGaName":652,"dataGaLocation":347},"/security/","trust center",{"text":654,"config":655},"AI Transparency Center",{"href":656,"dataGaName":657,"dataGaLocation":347},"/ai-transparency-center/","ai transparency center",{"text":659,"config":660},"Newsletter",{"href":661,"dataGaName":662,"dataGaLocation":347},"/company/contact/#contact-forms","newsletter",{"text":664,"config":665},"Press",{"href":666,"dataGaName":667,"dataGaLocation":347},"/press/","press",{"text":669,"config":670,"menu":671},"Contact us",{"dataNavLevelOne":615},{"type":398,"columns":672},[673],{"items":674},[675,680,685],{"text":676,"config":677},"Talk to sales",{"href":678,"dataGaName":679,"dataGaLocation":347},"/sales/","talk to sales",{"text":681,"config":682},"Support portal",{"href":683,"dataGaName":684,"dataGaLocation":347},"https://support.gitlab.com/hc/en-us","support portal",{"text":686,"config":687},"Customer portal",{"href":688,"dataGaName":689,"dataGaLocation":347},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":691,"login":692,"suggestions":699},"Close",{"text":693,"link":694},"To search repositories and projects, login to",{"text":695,"config":696},"gitlab.com",{"href":361,"dataGaName":697,"dataGaLocation":698},"search login","search",{"text":700,"default":701},"Suggestions",[702,704,708,710,714,718],{"text":378,"config":703},{"href":383,"dataGaName":378,"dataGaLocation":698},{"text":705,"config":706},"Code Suggestions (AI)",{"href":707,"dataGaName":705,"dataGaLocation":698},"/solutions/code-suggestions/",{"text":414,"config":709},{"href":416,"dataGaName":414,"dataGaLocation":698},{"text":711,"config":712},"GitLab on AWS",{"href":713,"dataGaName":711,"dataGaLocation":698},"/partners/technology-partners/aws/",{"text":715,"config":716},"GitLab on Google Cloud",{"href":717,"dataGaName":715,"dataGaLocation":698},"/partners/technology-partners/google-cloud-platform/",{"text":719,"config":720},"Why GitLab?",{"href":391,"dataGaName":719,"dataGaLocation":698},{"freeTrial":722,"mobileIcon":727,"desktopIcon":732,"secondaryButton":735},{"text":723,"config":724},"Start free trial",{"href":725,"dataGaName":352,"dataGaLocation":726},"https://gitlab.com/-/trials/new/","nav",{"altText":728,"config":729},"Gitlab Icon",{"src":730,"dataGaName":731,"dataGaLocation":726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":728,"config":733},{"src":734,"dataGaName":731,"dataGaLocation":726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":736,"config":737},"Get Started",{"href":738,"dataGaName":739,"dataGaLocation":726},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":741,"mobileIcon":745,"desktopIcon":747},{"text":742,"config":743},"Learn more about GitLab Duo",{"href":383,"dataGaName":744,"dataGaLocation":726},"gitlab duo",{"altText":728,"config":746},{"src":730,"dataGaName":731,"dataGaLocation":726},{"altText":728,"config":748},{"src":734,"dataGaName":731,"dataGaLocation":726},{"button":750,"mobileIcon":755,"desktopIcon":757},{"text":751,"config":752},"/switch",{"href":753,"dataGaName":754,"dataGaLocation":726},"#contact","switch",{"altText":728,"config":756},{"src":730,"dataGaName":731,"dataGaLocation":726},{"altText":728,"config":758},{"src":759,"dataGaName":731,"dataGaLocation":726},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":761,"mobileIcon":766,"desktopIcon":768},{"text":762,"config":763},"Back to pricing",{"href":496,"dataGaName":764,"dataGaLocation":726,"icon":765},"back to pricing","GoBack",{"altText":728,"config":767},{"src":730,"dataGaName":731,"dataGaLocation":726},{"altText":728,"config":769},{"src":734,"dataGaName":731,"dataGaLocation":726},{"title":771,"titleMobile":772,"button":773,"config":778},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":389,"config":774},{"href":775,"dataGaName":776,"dataGaLocation":777},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":779,"disabled":315},"release",{"data":781},{"text":782,"source":783,"edit":789,"contribute":794,"config":799,"items":804,"minimal":1014},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":784,"config":785},"View page source",{"href":786,"dataGaName":787,"dataGaLocation":788},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":790,"config":791},"Edit this page",{"href":792,"dataGaName":793,"dataGaLocation":788},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":795,"config":796},"Please contribute",{"href":797,"dataGaName":798,"dataGaLocation":788},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":800,"facebook":801,"youtube":802,"linkedin":803},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[805,852,906,950,982],{"title":494,"links":806,"subMenu":821},[807,811,816],{"text":808,"config":809},"View plans",{"href":496,"dataGaName":810,"dataGaLocation":788},"view plans",{"text":812,"config":813},"Why Premium?",{"href":814,"dataGaName":815,"dataGaLocation":788},"/pricing/premium/","why premium",{"text":817,"config":818},"Why Ultimate?",{"href":819,"dataGaName":820,"dataGaLocation":788},"/pricing/ultimate/","why ultimate",[822],{"title":823,"links":824},"Contact Us",[825,828,830,832,837,842,847],{"text":826,"config":827},"Contact sales",{"href":678,"dataGaName":357,"dataGaLocation":788},{"text":681,"config":829},{"href":683,"dataGaName":684,"dataGaLocation":788},{"text":686,"config":831},{"href":688,"dataGaName":689,"dataGaLocation":788},{"text":833,"config":834},"Status",{"href":835,"dataGaName":836,"dataGaLocation":788},"https://status.gitlab.com/","status",{"text":838,"config":839},"Terms of use",{"href":840,"dataGaName":841,"dataGaLocation":788},"/terms/","terms of use",{"text":843,"config":844},"Privacy statement",{"href":845,"dataGaName":846,"dataGaLocation":788},"/privacy/","privacy statement",{"text":848,"config":849},"Cookie preferences",{"dataGaName":850,"dataGaLocation":788,"id":851,"isOneTrustButton":332},"cookie preferences","ot-sdk-btn",{"title":394,"links":853,"subMenu":862},[854,858],{"text":855,"config":856},"DevSecOps platform",{"href":376,"dataGaName":857,"dataGaLocation":788},"devsecops platform",{"text":859,"config":860},"AI-Assisted Development",{"href":383,"dataGaName":861,"dataGaLocation":788},"ai-assisted development",[863],{"title":864,"links":865},"Topics",[866,871,876,881,886,891,896,901],{"text":867,"config":868},"CICD",{"href":869,"dataGaName":870,"dataGaLocation":788},"/topics/ci-cd/","cicd",{"text":872,"config":873},"GitOps",{"href":874,"dataGaName":875,"dataGaLocation":788},"/topics/gitops/","gitops",{"text":877,"config":878},"DevOps",{"href":879,"dataGaName":880,"dataGaLocation":788},"/topics/devops/","devops",{"text":882,"config":883},"Version Control",{"href":884,"dataGaName":885,"dataGaLocation":788},"/topics/version-control/","version control",{"text":887,"config":888},"DevSecOps",{"href":889,"dataGaName":890,"dataGaLocation":788},"/topics/devsecops/","devsecops",{"text":892,"config":893},"Cloud Native",{"href":894,"dataGaName":895,"dataGaLocation":788},"/topics/cloud-native/","cloud native",{"text":897,"config":898},"AI for Coding",{"href":899,"dataGaName":900,"dataGaLocation":788},"/topics/devops/ai-for-coding/","ai for coding",{"text":902,"config":903},"Agentic AI",{"href":904,"dataGaName":905,"dataGaLocation":788},"/topics/agentic-ai/","agentic ai",{"title":907,"links":908},"Solutions",[909,911,913,918,922,925,929,932,934,937,940,945],{"text":438,"config":910},{"href":433,"dataGaName":438,"dataGaLocation":788},{"text":427,"config":912},{"href":410,"dataGaName":411,"dataGaLocation":788},{"text":914,"config":915},"Agile development",{"href":916,"dataGaName":917,"dataGaLocation":788},"/solutions/agile-delivery/","agile delivery",{"text":919,"config":920},"SCM",{"href":423,"dataGaName":921,"dataGaLocation":788},"source code management",{"text":867,"config":923},{"href":416,"dataGaName":924,"dataGaLocation":788},"continuous integration & delivery",{"text":926,"config":927},"Value stream management",{"href":466,"dataGaName":928,"dataGaLocation":788},"value stream management",{"text":872,"config":930},{"href":931,"dataGaName":875,"dataGaLocation":788},"/solutions/gitops/",{"text":476,"config":933},{"href":479,"dataGaName":480,"dataGaLocation":788},{"text":935,"config":936},"Small business",{"href":485,"dataGaName":486,"dataGaLocation":788},{"text":938,"config":939},"Public sector",{"href":491,"dataGaName":492,"dataGaLocation":788},{"text":941,"config":942},"Education",{"href":943,"dataGaName":944,"dataGaLocation":788},"/solutions/education/","education",{"text":946,"config":947},"Financial services",{"href":948,"dataGaName":949,"dataGaLocation":788},"/solutions/finance/","financial services",{"title":499,"links":951},[952,954,956,958,961,963,966,968,970,972,974,976,978,980],{"text":512,"config":953},{"href":514,"dataGaName":515,"dataGaLocation":788},{"text":517,"config":955},{"href":519,"dataGaName":520,"dataGaLocation":788},{"text":522,"config":957},{"href":524,"dataGaName":525,"dataGaLocation":788},{"text":527,"config":959},{"href":529,"dataGaName":960,"dataGaLocation":788},"docs",{"text":550,"config":962},{"href":552,"dataGaName":553,"dataGaLocation":788},{"text":964,"config":965},"What's new",{"href":610,"dataGaName":611,"dataGaLocation":788},{"text":545,"config":967},{"href":547,"dataGaName":548,"dataGaLocation":788},{"text":564,"config":969},{"href":566,"dataGaName":567,"dataGaLocation":788},{"text":572,"config":971},{"href":574,"dataGaName":575,"dataGaLocation":788},{"text":577,"config":973},{"href":579,"dataGaName":580,"dataGaLocation":788},{"text":582,"config":975},{"href":584,"dataGaName":585,"dataGaLocation":788},{"text":587,"config":977},{"href":589,"dataGaName":590,"dataGaLocation":788},{"text":592,"config":979},{"href":594,"dataGaName":595,"dataGaLocation":788},{"text":597,"config":981},{"href":599,"dataGaName":600,"dataGaLocation":788},{"title":613,"links":983},[984,986,988,990,992,994,998,1003,1005,1007,1009],{"text":621,"config":985},{"href":623,"dataGaName":615,"dataGaLocation":788},{"text":626,"config":987},{"href":628,"dataGaName":629,"dataGaLocation":788},{"text":634,"config":989},{"href":636,"dataGaName":637,"dataGaLocation":788},{"text":639,"config":991},{"href":641,"dataGaName":642,"dataGaLocation":788},{"text":644,"config":993},{"href":646,"dataGaName":647,"dataGaLocation":788},{"text":995,"config":996},"Sustainability",{"href":997,"dataGaName":995,"dataGaLocation":788},"/sustainability/",{"text":999,"config":1000},"Diversity, inclusion and belonging (DIB)",{"href":1001,"dataGaName":1002,"dataGaLocation":788},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":649,"config":1004},{"href":651,"dataGaName":652,"dataGaLocation":788},{"text":659,"config":1006},{"href":661,"dataGaName":662,"dataGaLocation":788},{"text":664,"config":1008},{"href":666,"dataGaName":667,"dataGaLocation":788},{"text":1010,"config":1011},"Modern Slavery Transparency Statement",{"href":1012,"dataGaName":1013,"dataGaLocation":788},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1015},[1016,1019,1022],{"text":1017,"config":1018},"Terms",{"href":840,"dataGaName":841,"dataGaLocation":788},{"text":1020,"config":1021},"Cookies",{"dataGaName":850,"dataGaLocation":788,"id":851,"isOneTrustButton":332},{"text":1023,"config":1024},"Privacy",{"href":845,"dataGaName":846,"dataGaLocation":788},[1026],{"id":1027,"title":7,"body":314,"config":1028,"content":1030,"description":314,"extension":1034,"meta":1035,"navigation":332,"path":1036,"seo":1037,"stem":1038,"__hash__":1039},"blogAuthors/en-us/blog/authors/amara-nwaigwe.yml",{"template":1029},"BlogAuthor",{"name":7,"config":1031},{"headshot":1032,"ctfId":1033},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Amara-Nwaigwe","yml",{},"/en-us/blog/authors/amara-nwaigwe",{},"en-us/blog/authors/amara-nwaigwe","cLEakoyT_oUW-RcvSjPO-nlQn2X2f1nXKRP_eTkeO9k",[1041,1049,1057],{"title":1042,"description":1043,"heroImage":1044,"category":310,"date":1045,"authors":1046,"slug":1048,"externalUrl":314},"How we overhauled GitLab navigation","Users weren't getting what they needed from our navigation. Here are the steps we took to turn that experience around.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682884/Blog/Hero%20Images/navigation.jpg","2023-08-15",[1047],"Ashley Knobloch","navigation-research-blog-post",{"title":1050,"description":1051,"heroImage":1052,"category":310,"date":1053,"authors":1054,"slug":1056,"externalUrl":314},"Beautifying our UI: Giving GitLab build features a fresh look","Get an inside look at how we are improving the usability of GitLab build features with multiple visual design improvements.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682807/Blog/Hero%20Images/beautify.jpg","2023-07-05",[1055],"Veethika Mishra","beautifying-of-our-ui",{"title":1058,"description":1059,"heroImage":1060,"category":310,"date":1061,"authors":1062,"slug":1064,"externalUrl":314},"4 best practices leading orgs to release software faster","GitLab's 2023 Global DevSecOps Survey illuminates the strategies that organizations deploying more frequently have in common.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663908/Blog/Hero%20Images/2023-devsecops-report-blog-banner2.png","2023-06-08",[1063],"Kristina Weis","best-practices-leading-orgs-to-release-software-faster",{"promotions":1066},[1067,1081,1093,1105],{"id":1068,"categories":1069,"header":1071,"text":1072,"button":1073,"image":1078},"ai-modernization",[1070],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1074,"config":1075},"Get your AI maturity score",{"href":1076,"dataGaName":1077,"dataGaLocation":553},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1079},{"src":1080},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1082,"categories":1083,"header":1085,"text":1072,"button":1086,"image":1090},"devops-modernization",[1084,890],"product","Are you just managing tools or shipping innovation?",{"text":1087,"config":1088},"Get your DevOps maturity score",{"href":1089,"dataGaName":1077,"dataGaLocation":553},"/assessments/devops-modernization-assessment/",{"config":1091},{"src":1092},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1094,"categories":1095,"header":1097,"text":1072,"button":1098,"image":1102},"security-modernization",[1096],"security","Are you trading speed for security?",{"text":1099,"config":1100},"Get your security maturity score",{"href":1101,"dataGaName":1077,"dataGaLocation":553},"/assessments/security-modernization-assessment/",{"config":1103},{"src":1104},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1106,"paths":1107,"header":1110,"text":1111,"button":1112,"image":1117},"github-azure-migration",[1108,1109],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":1113,"config":1114},"See how GitLab compares to GitHub",{"href":1115,"dataGaName":1116,"dataGaLocation":553},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1118},{"src":1092},{"header":1120,"blurb":1121,"button":1122,"secondaryButton":1127},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1123,"config":1124},"Get your free trial",{"href":1125,"dataGaName":352,"dataGaLocation":1126},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":826,"config":1128},{"href":678,"dataGaName":357,"dataGaLocation":1126},1786803767569]