[{"data":1,"prerenderedAt":881},["ShallowReactive",2],{"/blog/version-check":3,"navigation-en-us":114,"banner-en-us":546,"footer-en-us":556,"blog-post-authors-en-us-Sid Sijbrandij":817,"blog-related-posts-en-us-version-check":836,"blog-share-wrapper-en-us":861,"next-steps-en-us":871},{"id":4,"title":5,"authors":6,"body":8,"category":92,"date":93,"description":94,"extension":95,"externalUrl":96,"faq":96,"featured":97,"heroImage":98,"meta":99,"navigation":104,"path":105,"seo":106,"slug":110,"stem":111,"tags":96,"template":112,"updatedDate":96,"__hash__":113},"blogPosts/en-us/blog/version-check.md","Version Check Functionality",[7],"Sid Sijbrandij",{"type":9,"value":10,"toc":82},"minimark",[11,15,20,33,48,51,54,59,62,66,69,72,75,79],[12,13,14],"p",{},"We're working on a version check function for GitLab to reduce the problem of outdated servers.\nThese servers are a security problem, provide a bad user experience and\nlead to issues being created with problems that have already been solved.\nBy making outdated installations visible to its users we hope that people will upgrade sooner.",[16,17,19],"h2",{"id":18},"how-itll-work","How it'll work",[12,21,22,23,27,28,32],{},"The version check will work in the following way. The ",[24,25,26],"code",{},"/help"," page of GitLab will\nload an image from ",[29,30,31],"em",{},"version.gitlab.com",". This image will show green for an\nup to date version, yellow for an out of date version and red for a missing security update.",[12,34,35,40,44],{},[36,37],"img",{"alt":38,"src":39},"No update necessary","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404922/site/Content%20Images/version_check/green.png",[36,41],{"alt":42,"src":43},"New version out!","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404922/site/Content%20Images/version_check/orange.png",[36,45],{"alt":46,"src":47},"Update ASAP","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404922/site/Content%20Images/version_check/red.png",[12,49,50],{},"The image requests parameters requests will contain the GitLab version and the server hostname.\nWe'll store each request with a timestamp, the GitLab version and the server hostname.\nWe will not store the user ip-address.",[12,52,53],{},"We will send the server hostname to have more information about where and how GitLab is used.\nLoading external images is similar to how the gravatar images of users are used.",[55,56,58],"h3",{"id":57},"opt-out","Opt-out",[12,60,61],{},"Just like the gravatar images you will be able to turn off the functionality\nif you don't want your GitLab server to connect outside the firewall.\nThe version check functionality can be disabled in the application settings.",[16,63,65],{"id":64},"trade-off","Trade-off",[12,67,68],{},"Providing the new package server and the version check server requires\nconstant maintenance and operational capacity.\nGetting better insight into where and how GitLab is used\nwill help us improve GitLab for everyone.",[12,70,71],{},"We realize that it sending the server\nhostname by default is not a trivial action and not everyone will be happy about this.\nWe think that ensuring the sustainability of GitLab package server and\nversion check services makes it a good trade-off.\nThere will always be an option to turn this behavior off.",[12,73,74],{},"Please let us know what you think about the above plan in the comments.",[16,76,78],{"id":77},"update","Update",[12,80,81],{},"We decided against sending the hostname in the url of the picture request.\nBut the https picture request itself will have a HTTP referer header.\nWe can use that to see where and how GitLab is used.\nWe will still not store the ip-address of the requests.",{"title":83,"searchDepth":84,"depth":84,"links":85},"",2,[86,90,91],{"id":18,"depth":84,"text":19,"children":87},[88],{"id":57,"depth":89,"text":58},3,{"id":64,"depth":84,"text":65},{"id":77,"depth":84,"text":78},"engineering","2015-05-07","We're working on a version check function for GitLab to reduce the problem of outdated servers which can be a security problem and provide a bad user experience","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{"excerpt":100},{"type":9,"value":101},[102],[12,103,14],{},true,"/en-us/blog/version-check",{"title":5,"description":94,"ogTitle":5,"ogDescription":94,"noIndex":97,"ogImage":98,"ogUrl":107,"ogSiteName":108,"ogType":109,"canonicalUrls":107},"https://about.gitlab.com/blog/version-check","https://about.gitlab.com","article","version-check","en-us/blog/version-check","BlogPost","ul3rAgf1VbE3M0Pge5KyVcPl4GT-JrAcVwvstzQ1qKM",{"logo":115,"freeTrial":120,"sales":125,"login":130,"items":135,"search":466,"minimal":497,"duo":516,"switchNav":525,"pricingDeployment":536},{"config":116},{"href":117,"dataGaName":118,"dataGaLocation":119},"/","gitlab logo","header",{"text":121,"config":122},"Get free trial",{"href":123,"dataGaName":124,"dataGaLocation":119},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":126,"config":127},"Request a demo",{"href":128,"dataGaName":129,"dataGaLocation":119},"/request-a-demo/","sales",{"text":131,"config":132},"Sign in",{"href":133,"dataGaName":134,"dataGaLocation":119},"https://gitlab.com/users/sign_in/","sign in",[136,222,310,315,390,444],{"text":137,"left":104,"config":138,"menu":140},"Platform",{"dataNavLevelOne":139},"platform",{"type":141,"link":142,"columns":146,"feature":211},"lists",{"text":143,"config":144},"Explore the Platform",{"href":145,"dataGaName":139,"dataGaLocation":119},"/platform/",[147,170,193],{"title":148,"items":149},"Execution & Workflows",[150,155,160,165],{"text":151,"config":152},"CI/CD",{"href":153,"dataGaLocation":119,"dataGaName":154},"/solutions/continuous-integration/","ci/cd",{"text":156,"config":157},"Source Code Management",{"href":158,"dataGaLocation":119,"dataGaName":159},"/solutions/source-code-management/","source code management",{"text":161,"config":162},"Agile Delivery",{"href":163,"dataGaLocation":119,"dataGaName":164},"/solutions/agile-delivery/","agile delivery",{"text":166,"config":167},"Artifact Management",{"href":168,"dataGaLocation":119,"dataGaName":169},"/artifact-central/","artifact management",{"title":171,"items":172},"Security & Governance",[173,178,183,188],{"text":174,"config":175},"Application Security Testing",{"href":176,"dataGaLocation":119,"dataGaName":177},"/solutions/application-security-testing/","application security testing",{"text":179,"config":180},"Governance & Compliance",{"href":181,"dataGaLocation":119,"dataGaName":182},"/solutions/software-compliance/","governance and compliance",{"text":184,"config":185},"Secrets Management",{"href":186,"dataGaLocation":119,"dataGaName":187},"/gitlab-secrets-manager/","secrets management",{"text":189,"config":190},"Supply Chain Security",{"href":191,"dataGaLocation":119,"dataGaName":192},"/solutions/supply-chain/","supply chain security",{"title":194,"items":195},"Context & AI",[196,201,206],{"text":197,"config":198},"Agentic Orchestration",{"href":199,"dataGaLocation":119,"dataGaName":200},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":202,"config":203},"Context Graph",{"href":204,"dataGaLocation":119,"dataGaName":205},"/gitlab-orbit/","context graph",{"text":207,"config":208},"Visibility & Measurement",{"href":209,"dataGaLocation":119,"dataGaName":210},"/solutions/visibility-measurement/","visibility and measurement",{"config":212,"title":215,"text":216,"link":217},{"background":213,"textColor":214},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1790185102/o7dn32anqcb6z8dgd3as.jpg')","#000","Why GitLab","One platform for speed with control across your software lifecycle.",{"text":218,"config":219},"Learn more",{"href":220,"dataGaName":221,"dataGaLocation":119},"/why-gitlab/","why gitlab",{"text":223,"left":104,"config":224,"menu":226},"Solutions",{"dataNavLevelOne":225},"solutions",{"type":141,"link":227,"columns":231,"feature":301},{"text":228,"config":229},"View all Solutions",{"href":230,"dataGaName":225,"dataGaLocation":119},"/solutions/",[232,250,268],{"title":233,"items":234},"Outcomes",[235,240,245],{"text":236,"config":237},"DevOps Modernization",{"href":238,"dataGaLocation":119,"dataGaName":239},"/assessments/devops-modernization-assessment/","devops modernization",{"text":241,"config":242},"Security Modernization",{"href":243,"dataGaLocation":119,"dataGaName":244},"/assessments/security-modernization-assessment/","security modernization",{"text":246,"config":247},"AI Modernization",{"href":248,"dataGaLocation":119,"dataGaName":249},"/assessments/ai-modernization-assessment/","ai modernization",{"title":251,"items":252},"By size",[253,258,263],{"text":254,"config":255},"Enterprise",{"href":256,"dataGaLocation":119,"dataGaName":257},"/enterprise/","enterprise",{"text":259,"config":260},"Small Business",{"href":261,"dataGaLocation":119,"dataGaName":262},"/small-business/","small business",{"text":264,"config":265},"Startups",{"href":266,"dataGaLocation":119,"dataGaName":267},"/solutions/startups/","startups",{"title":269,"items":270},"Industries",[271,276,281,286,291,296],{"text":272,"config":273},"Financial Services",{"href":274,"dataGaLocation":119,"dataGaName":275},"/solutions/finance/","financial services",{"text":277,"config":278},"Public Sector",{"href":279,"dataGaLocation":119,"dataGaName":280},"/solutions/public-sector/","public sector",{"text":282,"config":283},"Telecommunications",{"href":284,"dataGaLocation":119,"dataGaName":285},"/solutions/telecommunications/","telecommunications",{"text":287,"config":288},"Automotive",{"href":289,"dataGaLocation":119,"dataGaName":290},"/solutions/automotive/","automotive",{"text":292,"config":293},"Education",{"href":294,"dataGaLocation":119,"dataGaName":295},"/solutions/education/","education",{"text":297,"config":298},"Aerospace",{"href":299,"dataGaLocation":119,"dataGaName":300},"/solutions/aerospace/","aerospace",{"config":302,"title":303,"text":304,"link":305},{"background":213,"textColor":214},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":306,"config":307},"Explore the standard",{"href":308,"dataGaName":309,"dataGaLocation":119},"/gitlab-security-standard/","gitlab security standard",{"text":311,"config":312},"Pricing",{"href":313,"dataGaName":314,"dataGaLocation":119,"dataNavLevelOne":314},"/pricing/","pricing",{"text":316,"config":317,"menu":319},"Resources",{"dataNavLevelOne":318},"resources",{"type":141,"link":320,"columns":324,"feature":381},{"text":321,"config":322},"View all resources",{"href":323,"dataGaName":318,"dataGaLocation":119},"/resources/",[325,353],{"title":326,"items":327},"Discover",[328,333,338,343,348],{"text":329,"config":330},"Docs",{"href":331,"dataGaName":332,"dataGaLocation":119},"https://docs.gitlab.com/","docs",{"text":334,"config":335},"University",{"href":336,"dataGaName":337,"dataGaLocation":119},"https://university.gitlab.com/","university",{"text":339,"config":340},"Demo Series",{"href":341,"dataGaName":342,"dataGaLocation":119},"/gitlab-technical-demo-series/","demo series",{"text":344,"config":345},"Demo Hub",{"href":346,"dataGaName":347,"dataGaLocation":119},"/demo-hub/","demo hub",{"text":349,"config":350},"Services",{"href":351,"dataGaName":352,"dataGaLocation":119},"/services/","services",{"title":354,"items":355},"Connect",[356,361,366,371,376],{"text":357,"config":358},"Blog",{"href":359,"dataGaName":360,"dataGaLocation":119},"/blog/","blog",{"text":362,"config":363},"Community",{"href":364,"dataGaName":365,"dataGaLocation":119},"/community/","community",{"text":367,"config":368},"Customers",{"href":369,"dataGaName":370,"dataGaLocation":119},"/customers/","customers",{"text":372,"config":373},"Partners",{"href":374,"dataGaName":375,"dataGaLocation":119},"/partners/","partners",{"text":377,"config":378},"Events",{"href":379,"dataGaName":380,"dataGaLocation":119},"/events/","events",{"config":382,"title":383,"text":384,"link":385},{"background":213,"textColor":214},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":386,"config":387},"Read the latest",{"href":388,"dataGaName":389,"dataGaLocation":119},"/whats-new/","whats new",{"text":391,"config":392,"menu":394},"Company",{"dataNavLevelOne":393},"company",{"type":141,"columns":395},[396],{"items":397},[398,403,409,414,419,424,429,434,439],{"text":399,"config":400},"About",{"href":401,"dataGaName":402,"dataGaLocation":119},"/company/","about",{"text":404,"config":405,"footerGa":408},"Jobs",{"href":406,"dataGaName":407,"dataGaLocation":119},"/jobs/","jobs",{"dataGaName":407},{"text":410,"config":411},"Press",{"href":412,"dataGaName":413,"dataGaLocation":119},"/press/","press",{"text":415,"config":416},"Handbook",{"href":417,"dataGaName":418,"dataGaLocation":119},"https://handbook.gitlab.com/","handbook",{"text":420,"config":421},"Leadership",{"href":422,"dataGaName":423,"dataGaLocation":119},"/company/team/e-group/","leadership",{"text":425,"config":426},"Investor relations",{"href":427,"dataGaName":428,"dataGaLocation":119},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":430,"config":431},"Trust Center",{"href":432,"dataGaName":433,"dataGaLocation":119},"/security/","trust center",{"text":435,"config":436},"AI Transparency Center",{"href":437,"dataGaName":438,"dataGaLocation":119},"/ai-transparency-center/","ai transparency center",{"text":440,"config":441},"Newsletter",{"href":442,"dataGaName":443,"dataGaLocation":119},"/company/contact/#contact-forms","newsletter",{"text":445,"config":446,"menu":447},"Contact us",{"dataNavLevelOne":393},{"type":141,"columns":448},[449],{"items":450},[451,456,461],{"text":452,"config":453},"Talk to sales",{"href":454,"dataGaName":455,"dataGaLocation":119},"/sales/","talk to sales",{"text":457,"config":458},"Support portal",{"href":459,"dataGaName":460,"dataGaLocation":119},"https://support.gitlab.com/hc/en-us","support portal",{"text":462,"config":463},"Customer portal",{"href":464,"dataGaName":465,"dataGaLocation":119},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":467,"login":468,"suggestions":475},"Close",{"text":469,"link":470},"To search repositories and projects, login to",{"text":471,"config":472},"gitlab.com",{"href":133,"dataGaName":473,"dataGaLocation":474},"search login","search",{"text":476,"default":477},"Suggestions",[478,481,484,486,490,494],{"text":479,"config":480},"GitLab Duo Agent Platform",{"href":199,"dataGaName":479,"dataGaLocation":474},{"text":482,"config":483},"Code Suggestions (AI)",{"href":199,"dataGaName":482,"dataGaLocation":474},{"text":151,"config":485},{"href":153,"dataGaName":151,"dataGaLocation":474},{"text":487,"config":488},"GitLab on AWS",{"href":489,"dataGaName":487,"dataGaLocation":474},"/partners/technology-partners/aws/",{"text":491,"config":492},"GitLab on Google Cloud",{"href":493,"dataGaName":491,"dataGaLocation":474},"/partners/technology-partners/google-cloud-platform/",{"text":495,"config":496},"Why GitLab?",{"href":220,"dataGaName":495,"dataGaLocation":474},{"freeTrial":498,"mobileIcon":503,"desktopIcon":508,"secondaryButton":511},{"text":499,"config":500},"Start free trial",{"href":501,"dataGaName":124,"dataGaLocation":502},"https://gitlab.com/-/trials/new/","nav",{"altText":504,"config":505},"Gitlab Icon",{"src":506,"dataGaName":507,"dataGaLocation":502},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":504,"config":509},{"src":510,"dataGaName":507,"dataGaLocation":502},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":512,"config":513},"Get Started",{"href":514,"dataGaName":515,"dataGaLocation":502},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":517,"mobileIcon":521,"desktopIcon":523},{"text":518,"config":519},"Learn more about GitLab Duo",{"href":199,"dataGaName":520,"dataGaLocation":502},"gitlab duo",{"altText":504,"config":522},{"src":506,"dataGaName":507,"dataGaLocation":502},{"altText":504,"config":524},{"src":510,"dataGaName":507,"dataGaLocation":502},{"button":526,"mobileIcon":531,"desktopIcon":533},{"text":527,"config":528},"/switch",{"href":529,"dataGaName":530,"dataGaLocation":502},"#contact","switch",{"altText":504,"config":532},{"src":506,"dataGaName":507,"dataGaLocation":502},{"altText":504,"config":534},{"src":535,"dataGaName":507,"dataGaLocation":502},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":537,"mobileIcon":542,"desktopIcon":544},{"text":538,"config":539},"Back to pricing",{"href":313,"dataGaName":540,"dataGaLocation":502,"icon":541},"back to pricing","GoBack",{"altText":504,"config":543},{"src":506,"dataGaName":507,"dataGaLocation":502},{"altText":504,"config":545},{"src":510,"dataGaName":507,"dataGaLocation":502},{"title":547,"button":548,"config":554},"Ship at agent speed. Prove every step. Transcend is here.",{"text":549,"config":550},"Watch now",{"href":551,"dataGaName":552,"dataGaLocation":553},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":555,"disabled":97},"release",{"data":557},{"text":558,"source":559,"edit":565,"contribute":570,"config":575,"items":580,"minimal":806},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":560,"config":561},"View page source",{"href":562,"dataGaName":563,"dataGaLocation":564},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":566,"config":567},"Edit this page",{"href":568,"dataGaName":569,"dataGaLocation":564},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":571,"config":572},"Please contribute",{"href":573,"dataGaName":574,"dataGaLocation":564},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":576,"facebook":577,"youtube":578,"linkedin":579},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[581,628,686,733,774],{"title":311,"links":582,"subMenu":597},[583,587,592],{"text":584,"config":585},"View plans",{"href":313,"dataGaName":586,"dataGaLocation":564},"view plans",{"text":588,"config":589},"Why Premium?",{"href":590,"dataGaName":591,"dataGaLocation":564},"/pricing/premium/","why premium",{"text":593,"config":594},"Why Ultimate?",{"href":595,"dataGaName":596,"dataGaLocation":564},"/pricing/ultimate/","why ultimate",[598],{"title":599,"links":600},"Contact Us",[601,604,606,608,613,618,623],{"text":602,"config":603},"Contact sales",{"href":454,"dataGaName":129,"dataGaLocation":564},{"text":457,"config":605},{"href":459,"dataGaName":460,"dataGaLocation":564},{"text":462,"config":607},{"href":464,"dataGaName":465,"dataGaLocation":564},{"text":609,"config":610},"Status",{"href":611,"dataGaName":612,"dataGaLocation":564},"https://status.gitlab.com/","status",{"text":614,"config":615},"Terms of use",{"href":616,"dataGaName":617,"dataGaLocation":564},"/terms/","terms of use",{"text":619,"config":620},"Privacy statement",{"href":621,"dataGaName":622,"dataGaLocation":564},"/privacy/","privacy statement",{"text":624,"config":625},"Cookie preferences",{"dataGaName":626,"dataGaLocation":564,"id":627,"isOneTrustButton":104},"cookie preferences","ot-sdk-btn",{"title":137,"links":629,"subMenu":643},[630,633,635,637,639,641],{"text":631,"config":632},"Explore the platform",{"href":145,"dataGaName":139,"dataGaLocation":564},{"text":197,"config":634},{"href":199,"dataGaName":200,"dataGaLocation":564},{"text":151,"config":636},{"href":153,"dataGaName":154,"dataGaLocation":564},{"text":202,"config":638},{"href":204,"dataGaName":205,"dataGaLocation":564},{"text":184,"config":640},{"href":186,"dataGaName":187,"dataGaLocation":564},{"text":215,"config":642},{"href":220,"dataGaName":221,"dataGaLocation":564},[644],{"title":645,"links":646},"Topics",[647,651,656,661,666,671,676,681],{"text":151,"config":648},{"href":649,"dataGaName":650,"dataGaLocation":564},"/topics/ci-cd/","cicd",{"text":652,"config":653},"GitOps",{"href":654,"dataGaName":655,"dataGaLocation":564},"/topics/gitops/","gitops",{"text":657,"config":658},"DevOps",{"href":659,"dataGaName":660,"dataGaLocation":564},"/topics/devops/","devops",{"text":662,"config":663},"Version Control",{"href":664,"dataGaName":665,"dataGaLocation":564},"/topics/version-control/","version control",{"text":667,"config":668},"DevSecOps",{"href":669,"dataGaName":670,"dataGaLocation":564},"/topics/devsecops/","devsecops",{"text":672,"config":673},"Cloud Native",{"href":674,"dataGaName":675,"dataGaLocation":564},"/topics/cloud-native/","cloud native",{"text":677,"config":678},"AI for Coding",{"href":679,"dataGaName":680,"dataGaLocation":564},"/topics/devops/ai-for-coding/","ai for coding",{"text":682,"config":683},"Agentic AI",{"href":684,"dataGaName":685,"dataGaLocation":564},"/topics/agentic-ai/","agentic ai",{"title":223,"links":687},[688,691,694,697,700,703,705,707,709,711,713,716,718,721,725,729],{"text":689,"config":690},"DevOps modernization",{"href":238,"dataGaName":239,"dataGaLocation":564},{"text":692,"config":693},"Security modernization",{"href":243,"dataGaName":244,"dataGaLocation":564},{"text":695,"config":696},"AI modernization",{"href":248,"dataGaName":249,"dataGaLocation":564},{"text":698,"config":699},"Financial services",{"href":274,"dataGaName":275,"dataGaLocation":564},{"text":701,"config":702},"Public sector",{"href":279,"dataGaName":280,"dataGaLocation":564},{"text":282,"config":704},{"href":284,"dataGaName":285,"dataGaLocation":564},{"text":287,"config":706},{"href":289,"dataGaName":290,"dataGaLocation":564},{"text":292,"config":708},{"href":294,"dataGaName":295,"dataGaLocation":564},{"text":297,"config":710},{"href":299,"dataGaName":300,"dataGaLocation":564},{"text":254,"config":712},{"href":256,"dataGaName":257,"dataGaLocation":564},{"text":714,"config":715},"Small business",{"href":261,"dataGaName":262,"dataGaLocation":564},{"text":264,"config":717},{"href":266,"dataGaName":267,"dataGaLocation":564},{"text":652,"config":719},{"href":720,"dataGaName":655,"dataGaLocation":564},"/solutions/gitops/",{"text":722,"config":723},"Software composition analysis",{"href":191,"dataGaName":724,"dataGaLocation":564},"software composition analysis",{"text":726,"config":727},"Value stream management",{"href":209,"dataGaName":728,"dataGaLocation":564},"value stream management",{"text":730,"config":731},"All solutions",{"href":230,"dataGaName":732,"dataGaLocation":564},"all solutions",{"title":316,"links":734},[735,740,745,747,749,751,753,755,757,759,761,763,765,767,770],{"text":736,"config":737},"Install",{"href":738,"dataGaName":739,"dataGaLocation":564},"/install/","install",{"text":741,"config":742},"Quick start guides",{"href":743,"dataGaName":744,"dataGaLocation":564},"/get-started/","quick setup checklists",{"text":329,"config":746},{"href":331,"dataGaName":332,"dataGaLocation":564},{"text":334,"config":748},{"href":336,"dataGaName":337,"dataGaLocation":564},{"text":339,"config":750},{"href":341,"dataGaName":342,"dataGaLocation":564},{"text":344,"config":752},{"href":346,"dataGaName":347,"dataGaLocation":564},{"text":349,"config":754},{"href":351,"dataGaName":352,"dataGaLocation":564},{"text":357,"config":756},{"href":359,"dataGaName":360,"dataGaLocation":564},{"text":362,"config":758},{"href":364,"dataGaName":365,"dataGaLocation":564},{"text":367,"config":760},{"href":369,"dataGaName":370,"dataGaLocation":564},{"text":372,"config":762},{"href":374,"dataGaName":375,"dataGaLocation":564},{"text":377,"config":764},{"href":379,"dataGaName":380,"dataGaLocation":564},{"text":440,"config":766},{"href":442,"dataGaName":443,"dataGaLocation":564},{"text":768,"config":769},"What's new",{"href":388,"dataGaName":389,"dataGaLocation":564},{"text":771,"config":772},"All resources",{"href":323,"dataGaName":773,"dataGaLocation":564},"all resources",{"title":391,"links":775},[776,778,780,782,784,786,788,790,792,796,801],{"text":399,"config":777},{"href":401,"dataGaName":393,"dataGaLocation":564},{"text":404,"config":779},{"href":406,"dataGaName":407,"dataGaLocation":564},{"text":410,"config":781},{"href":412,"dataGaName":413,"dataGaLocation":564},{"text":415,"config":783},{"href":417,"dataGaName":418,"dataGaLocation":564},{"text":420,"config":785},{"href":422,"dataGaName":423,"dataGaLocation":564},{"text":425,"config":787},{"href":427,"dataGaName":428,"dataGaLocation":564},{"text":430,"config":789},{"href":432,"dataGaName":433,"dataGaLocation":564},{"text":435,"config":791},{"href":437,"dataGaName":438,"dataGaLocation":564},{"text":793,"config":794},"Sustainability",{"href":795,"dataGaName":793,"dataGaLocation":564},"/sustainability/",{"text":797,"config":798},"Diversity, inclusion and belonging (DIB)",{"href":799,"dataGaName":800,"dataGaLocation":564},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":802,"config":803},"Modern Slavery Transparency Statement",{"href":804,"dataGaName":805,"dataGaLocation":564},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":807},[808,811,814],{"text":809,"config":810},"Terms",{"href":616,"dataGaName":617,"dataGaLocation":564},{"text":812,"config":813},"Cookies",{"dataGaName":626,"dataGaLocation":564,"id":627,"isOneTrustButton":104},{"text":815,"config":816},"Privacy",{"href":621,"dataGaName":622,"dataGaLocation":564},[818],{"id":819,"title":7,"body":96,"config":820,"content":822,"description":96,"extension":830,"meta":831,"navigation":104,"path":832,"seo":833,"stem":834,"__hash__":835},"blogAuthors/en-us/blog/authors/sid-sijbrandij.yml",{"template":821},"BlogAuthor",{"role":823,"name":7,"bio":824,"config":825},"Co-founder, Chief Executive Officer and Board Chair of GitLab Inc.","Sid Sijbrandij (pronounced see-brandy) is the Co-founder, Chief Executive Officer and Board Chair of GitLab Inc., the most comprehensive AI-powered DevSecOps platform. GitLab's single application helps organizations deliver software faster and more efficiently while strengthening their security and compliance.\n\nSid's career path has been anything but traditional. He spent four years building recreational submarines for U-Boat Worx and while at Ministerie van Justitie en Veiligheid he worked on the Legis project, which developed several innovative web applications to aid lawmaking. He first saw Ruby code in 2007 and loved it so much that he taught himself how to program. In 2012, as a Ruby programmer, he encountered GitLab and discovered his passion for open source. Soon after, Sid commercialized GitLab, and by 2015 he led the company through Y Combinator's Winter 2015 batch. Under his leadership, the company has grown with an estimated 30 million+ registered users from startups to global enterprises.\n\nSid studied at the University of Twente in the Netherlands where he received an M.S. in Management Science. Sid was named one of the greatest minds of the pandemic by Forbes for spreading the gospel of remote work.",{"headshot":826,"twitter":827,"linkedin":828,"ctfId":829},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665383/Blog/Author%20Headshots/sytses-headshot.png","https://twitter.com/sytses","https://www.linkedin.com/in/sijbrandij","sytses","yml",{},"/en-us/blog/authors/sid-sijbrandij",{},"en-us/blog/authors/sid-sijbrandij","ZdVvFbtL6NKLtKZEjFCVOecdpvuPzX3wmEZBrC6pRWg",[837,845,853],{"title":838,"description":839,"heroImage":840,"category":92,"date":841,"authors":842,"slug":844,"externalUrl":96},"Two front doors: Module-level access in a Django GRC app","A technical deep-dive on restructuring a Django internal tool to support two distinct GitLab teams: Security Compliance and Internal Audit.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097663/Blog/Hero%20Images/Blog/Hero%20Images/Workflow%201800x945_2gQoQIbY9NvjLFpXtsxtXy_1750097663612.png","2026-10-05",[843],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":846,"description":847,"heroImage":848,"category":92,"date":849,"authors":850,"slug":852,"externalUrl":96},"How GitLab reduced code-per-agentic-flow ratio by 45%","Learn how Flow Registry, a component-based framework that compiles YAML configurations into fully functional LangGraph flows, helped improve scalability and more.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-09-22",[851],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":854,"description":855,"heroImage":856,"category":92,"date":857,"authors":858,"slug":860,"externalUrl":96},"Co-Create: Building GitLab with our users","How GitLab users collaborated with us to build practical product improvements in the first half of 2026.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-09-10",[859],"Isa Huerga","co-create-h1-2026",{"header":862,"text":863,"button":867,"disclaimer":870},"Start your free\n\n30-day GitLab trial\n",[864,865,866],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":121,"config":868},{"href":869,"dataGaName":124,"dataGaLocation":360},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":872,"blurb":873,"button":874,"secondaryButton":879},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":875,"config":876},"Get your free trial",{"href":877,"dataGaName":124,"dataGaLocation":878},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":602,"config":880},{"href":454,"dataGaName":129,"dataGaLocation":878},1792018377260]