[{"data":1,"prerenderedAt":944},["ShallowReactive",2],{"/en-us/blog/authors/job-van-der-voort":3,"navigation-en-us":21,"banner-en-us":442,"footer-en-us":453,"blog-author-posts-en-us-job-van-der-voort":695},{"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/job-van-der-voort.yml","Job Van Der Voort",null,{"template":8},"BlogAuthor",{"name":10,"config":11},"Job van der Voort",{"headshot":12,"ctfId":13},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Job-van-der-Voort","yml",{},true,"/en-us/blog/authors/job-van-der-voort",{},"en-us/blog/authors/job-van-der-voort","w8TOn_hGFgQQOv35VnObjxoMM-hviRbwtijFETooJCM",{"logo":22,"freeTrial":27,"sales":32,"login":37,"items":42,"search":362,"minimal":393,"duo":412,"switchNav":421,"pricingDeployment":432},{"config":23},{"href":24,"dataGaName":25,"dataGaLocation":26},"/","gitlab logo","header",{"text":28,"config":29},"Get free trial",{"href":30,"dataGaName":31,"dataGaLocation":26},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":33,"config":34},"Talk to sales",{"href":35,"dataGaName":36,"dataGaLocation":26},"/sales/","sales",{"text":38,"config":39},"Sign in",{"href":40,"dataGaName":41,"dataGaLocation":26},"https://gitlab.com/users/sign_in/","sign in",[43,72,172,177,281,342],{"text":44,"config":45,"menu":47},"Platform",{"dataNavLevelOne":46},"platform",{"type":48,"columns":49},"cards",[50,56,64],{"title":44,"description":51,"link":52},"The intelligent orchestration platform for DevSecOps",{"text":53,"config":54},"Explore our Platform",{"href":55,"dataGaName":46,"dataGaLocation":26},"/platform/",{"title":57,"description":58,"link":59},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":60,"config":61},"Meet GitLab Duo",{"href":62,"dataGaName":63,"dataGaLocation":26},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":65,"description":66,"link":67},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":68,"config":69},"Learn more",{"href":70,"dataGaName":71,"dataGaLocation":26},"/why-gitlab/","why gitlab",{"text":73,"left":16,"config":74,"menu":76},"Product",{"dataNavLevelOne":75},"solutions",{"type":77,"link":78,"columns":82,"feature":151},"lists",{"text":79,"config":80},"View all Solutions",{"href":81,"dataGaName":75,"dataGaLocation":26},"/solutions/",[83,107,130],{"title":84,"description":85,"link":86,"items":91},"Automation","CI/CD and automation to accelerate deployment",{"config":87},{"icon":88,"href":89,"dataGaName":90,"dataGaLocation":26},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[92,96,99,103],{"text":93,"config":94},"CI/CD",{"href":95,"dataGaLocation":26,"dataGaName":93},"/solutions/continuous-integration/",{"text":57,"config":97},{"href":62,"dataGaLocation":26,"dataGaName":98},"gitlab duo agent platform - product menu",{"text":100,"config":101},"Source Code Management",{"href":102,"dataGaLocation":26,"dataGaName":100},"/solutions/source-code-management/",{"text":104,"config":105},"Automated Software Delivery",{"href":89,"dataGaLocation":26,"dataGaName":106},"Automated software delivery",{"title":108,"description":109,"link":110,"items":115},"Security","Deliver code faster without compromising security",{"config":111},{"href":112,"dataGaName":113,"dataGaLocation":26,"icon":114},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[116,120,125],{"text":117,"config":118},"Application Security Testing",{"href":112,"dataGaName":119,"dataGaLocation":26},"Application security testing",{"text":121,"config":122},"Software Supply Chain Security",{"href":123,"dataGaLocation":26,"dataGaName":124},"/solutions/supply-chain/","Software supply chain security",{"text":126,"config":127},"Software Compliance",{"href":128,"dataGaName":129,"dataGaLocation":26},"/solutions/software-compliance/","software compliance",{"title":131,"link":132,"items":137},"Measurement",{"config":133},{"icon":134,"href":135,"dataGaName":136,"dataGaLocation":26},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[138,142,146],{"text":139,"config":140},"Visibility & Measurement",{"href":135,"dataGaLocation":26,"dataGaName":141},"Visibility and Measurement",{"text":143,"config":144},"Value Stream Management",{"href":145,"dataGaLocation":26,"dataGaName":143},"/solutions/value-stream-management/",{"text":147,"config":148},"Analytics & Insights",{"href":149,"dataGaLocation":26,"dataGaName":150},"/solutions/analytics-and-insights/","Analytics and insights",{"title":152,"type":77,"items":153},"GitLab for",[154,160,166],{"text":155,"config":156},"Enterprise",{"icon":157,"href":158,"dataGaLocation":26,"dataGaName":159},"Building","/enterprise/","enterprise",{"text":161,"config":162},"Small Business",{"icon":163,"href":164,"dataGaLocation":26,"dataGaName":165},"Work","/small-business/","small business",{"text":167,"config":168},"Public Sector",{"icon":169,"href":170,"dataGaLocation":26,"dataGaName":171},"Organization","/solutions/public-sector/","public sector",{"text":173,"config":174},"Pricing",{"href":175,"dataGaName":176,"dataGaLocation":26,"dataNavLevelOne":176},"/pricing/","pricing",{"text":178,"config":179,"menu":181},"Resources",{"dataNavLevelOne":180},"resources",{"type":77,"link":182,"columns":186,"feature":270},{"text":183,"config":184},"View all resources",{"href":185,"dataGaName":180,"dataGaLocation":26},"/resources/",[187,220,242],{"title":188,"items":189},"Getting started",[190,195,200,205,210,215],{"text":191,"config":192},"Install",{"href":193,"dataGaName":194,"dataGaLocation":26},"/install/","install",{"text":196,"config":197},"Quick start guides",{"href":198,"dataGaName":199,"dataGaLocation":26},"/get-started/","quick setup checklists",{"text":201,"config":202},"Learn",{"href":203,"dataGaLocation":26,"dataGaName":204},"https://university.gitlab.com/","learn",{"text":206,"config":207},"Product documentation",{"href":208,"dataGaName":209,"dataGaLocation":26},"https://docs.gitlab.com/","product documentation",{"text":211,"config":212},"Best practice videos",{"href":213,"dataGaName":214,"dataGaLocation":26},"/getting-started-videos/","best practice videos",{"text":216,"config":217},"Integrations",{"href":218,"dataGaName":219,"dataGaLocation":26},"/integrations/","integrations",{"title":221,"items":222},"Discover",[223,228,233,237],{"text":224,"config":225},"Customer success stories",{"href":226,"dataGaName":227,"dataGaLocation":26},"/customers/","customer success stories",{"text":229,"config":230},"Blog",{"href":231,"dataGaName":232,"dataGaLocation":26},"/blog/","blog",{"text":234,"config":235},"The Source",{"href":236,"dataGaName":232,"dataGaLocation":26},"/the-source/",{"text":238,"config":239},"Remote",{"href":240,"dataGaName":241,"dataGaLocation":26},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":243,"items":244},"Connect",[245,250,255,260,265],{"text":246,"config":247},"GitLab Services",{"href":248,"dataGaName":249,"dataGaLocation":26},"/services/","services",{"text":251,"config":252},"Community",{"href":253,"dataGaName":254,"dataGaLocation":26},"/community/","community",{"text":256,"config":257},"Forum",{"href":258,"dataGaName":259,"dataGaLocation":26},"https://forum.gitlab.com/","forum",{"text":261,"config":262},"Events",{"href":263,"dataGaName":264,"dataGaLocation":26},"/events/","events",{"text":266,"config":267},"Partners",{"href":268,"dataGaName":269,"dataGaLocation":26},"/partners/","partners",{"config":271,"title":274,"text":275,"link":276},{"background":272,"textColor":273},"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":277,"config":278},"Read the latest",{"href":279,"dataGaName":280,"dataGaLocation":26},"/releases/whats-new/","whats new",{"text":282,"config":283,"menu":285},"Company",{"dataNavLevelOne":284},"company",{"type":77,"columns":286},[287],{"items":288},[289,294,300,302,307,312,317,322,327,332,337],{"text":290,"config":291},"About",{"href":292,"dataGaName":293,"dataGaLocation":26},"/company/","about",{"text":295,"config":296,"footerGa":299},"Jobs",{"href":297,"dataGaName":298,"dataGaLocation":26},"/jobs/","jobs",{"dataGaName":298},{"text":261,"config":301},{"href":263,"dataGaName":264,"dataGaLocation":26},{"text":303,"config":304},"Leadership",{"href":305,"dataGaName":306,"dataGaLocation":26},"/company/team/e-group/","leadership",{"text":308,"config":309},"Team",{"href":310,"dataGaName":311,"dataGaLocation":26},"/company/team/","team",{"text":313,"config":314},"Handbook",{"href":315,"dataGaName":316,"dataGaLocation":26},"https://handbook.gitlab.com/","handbook",{"text":318,"config":319},"Investor relations",{"href":320,"dataGaName":321,"dataGaLocation":26},"https://ir.gitlab.com/","investor relations",{"text":323,"config":324},"Trust Center",{"href":325,"dataGaName":326,"dataGaLocation":26},"/security/","trust center",{"text":328,"config":329},"AI Transparency Center",{"href":330,"dataGaName":331,"dataGaLocation":26},"/ai-transparency-center/","ai transparency center",{"text":333,"config":334},"Newsletter",{"href":335,"dataGaName":336,"dataGaLocation":26},"/company/contact/#contact-forms","newsletter",{"text":338,"config":339},"Press",{"href":340,"dataGaName":341,"dataGaLocation":26},"/press/","press",{"text":343,"config":344,"menu":345},"Contact us",{"dataNavLevelOne":284},{"type":77,"columns":346},[347],{"items":348},[349,352,357],{"text":33,"config":350},{"href":35,"dataGaName":351,"dataGaLocation":26},"talk to sales",{"text":353,"config":354},"Support portal",{"href":355,"dataGaName":356,"dataGaLocation":26},"https://support.gitlab.com","support portal",{"text":358,"config":359},"Customer portal",{"href":360,"dataGaName":361,"dataGaLocation":26},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":363,"login":364,"suggestions":371},"Close",{"text":365,"link":366},"To search repositories and projects, login to",{"text":367,"config":368},"gitlab.com",{"href":40,"dataGaName":369,"dataGaLocation":370},"search login","search",{"text":372,"default":373},"Suggestions",[374,376,380,382,386,390],{"text":57,"config":375},{"href":62,"dataGaName":57,"dataGaLocation":370},{"text":377,"config":378},"Code Suggestions (AI)",{"href":379,"dataGaName":377,"dataGaLocation":370},"/solutions/code-suggestions/",{"text":93,"config":381},{"href":95,"dataGaName":93,"dataGaLocation":370},{"text":383,"config":384},"GitLab on AWS",{"href":385,"dataGaName":383,"dataGaLocation":370},"/partners/technology-partners/aws/",{"text":387,"config":388},"GitLab on Google Cloud",{"href":389,"dataGaName":387,"dataGaLocation":370},"/partners/technology-partners/google-cloud-platform/",{"text":391,"config":392},"Why GitLab?",{"href":70,"dataGaName":391,"dataGaLocation":370},{"freeTrial":394,"mobileIcon":399,"desktopIcon":404,"secondaryButton":407},{"text":395,"config":396},"Start free trial",{"href":397,"dataGaName":31,"dataGaLocation":398},"https://gitlab.com/-/trials/new/","nav",{"altText":400,"config":401},"Gitlab Icon",{"src":402,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":400,"config":405},{"src":406,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":408,"config":409},"Get Started",{"href":410,"dataGaName":411,"dataGaLocation":398},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":413,"mobileIcon":417,"desktopIcon":419},{"text":414,"config":415},"Learn more about GitLab Duo",{"href":62,"dataGaName":416,"dataGaLocation":398},"gitlab duo",{"altText":400,"config":418},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":420},{"src":406,"dataGaName":403,"dataGaLocation":398},{"button":422,"mobileIcon":427,"desktopIcon":429},{"text":423,"config":424},"/switch",{"href":425,"dataGaName":426,"dataGaLocation":398},"#contact","switch",{"altText":400,"config":428},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":430},{"src":431,"dataGaName":403,"dataGaLocation":398},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":433,"mobileIcon":438,"desktopIcon":440},{"text":434,"config":435},"Back to pricing",{"href":175,"dataGaName":436,"dataGaLocation":398,"icon":437},"back to pricing","GoBack",{"altText":400,"config":439},{"src":402,"dataGaName":403,"dataGaLocation":398},{"altText":400,"config":441},{"src":406,"dataGaName":403,"dataGaLocation":398},{"title":443,"button":444,"config":449},"See how agentic AI transforms software delivery",{"text":445,"config":446},"Sign up for GitLab Transcend on June 10",{"href":447,"dataGaName":448,"dataGaLocation":26},"/releases/whats-new/#sign-up","transcend event",{"layout":450,"icon":451,"disabled":452},"release","AiStar",false,{"data":454},{"text":455,"source":456,"edit":462,"contribute":467,"config":472,"items":477,"minimal":684},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":457,"config":458},"View page source",{"href":459,"dataGaName":460,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":463,"config":464},"Edit this page",{"href":465,"dataGaName":466,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":468,"config":469},"Please contribute",{"href":470,"dataGaName":471,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":473,"facebook":474,"youtube":475,"linkedin":476},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[478,525,579,623,650],{"title":173,"links":479,"subMenu":494},[480,484,489],{"text":481,"config":482},"View plans",{"href":175,"dataGaName":483,"dataGaLocation":461},"view plans",{"text":485,"config":486},"Why Premium?",{"href":487,"dataGaName":488,"dataGaLocation":461},"/pricing/premium/","why premium",{"text":490,"config":491},"Why Ultimate?",{"href":492,"dataGaName":493,"dataGaLocation":461},"/pricing/ultimate/","why ultimate",[495],{"title":496,"links":497},"Contact Us",[498,501,503,505,510,515,520],{"text":499,"config":500},"Contact sales",{"href":35,"dataGaName":36,"dataGaLocation":461},{"text":353,"config":502},{"href":355,"dataGaName":356,"dataGaLocation":461},{"text":358,"config":504},{"href":360,"dataGaName":361,"dataGaLocation":461},{"text":506,"config":507},"Status",{"href":508,"dataGaName":509,"dataGaLocation":461},"https://status.gitlab.com/","status",{"text":511,"config":512},"Terms of use",{"href":513,"dataGaName":514,"dataGaLocation":461},"/terms/","terms of use",{"text":516,"config":517},"Privacy statement",{"href":518,"dataGaName":519,"dataGaLocation":461},"/privacy/","privacy statement",{"text":521,"config":522},"Cookie preferences",{"dataGaName":523,"dataGaLocation":461,"id":524,"isOneTrustButton":16},"cookie preferences","ot-sdk-btn",{"title":73,"links":526,"subMenu":535},[527,531],{"text":528,"config":529},"DevSecOps platform",{"href":55,"dataGaName":530,"dataGaLocation":461},"devsecops platform",{"text":532,"config":533},"AI-Assisted Development",{"href":62,"dataGaName":534,"dataGaLocation":461},"ai-assisted development",[536],{"title":537,"links":538},"Topics",[539,544,549,554,559,564,569,574],{"text":540,"config":541},"CICD",{"href":542,"dataGaName":543,"dataGaLocation":461},"/topics/ci-cd/","cicd",{"text":545,"config":546},"GitOps",{"href":547,"dataGaName":548,"dataGaLocation":461},"/topics/gitops/","gitops",{"text":550,"config":551},"DevOps",{"href":552,"dataGaName":553,"dataGaLocation":461},"/topics/devops/","devops",{"text":555,"config":556},"Version Control",{"href":557,"dataGaName":558,"dataGaLocation":461},"/topics/version-control/","version control",{"text":560,"config":561},"DevSecOps",{"href":562,"dataGaName":563,"dataGaLocation":461},"/topics/devsecops/","devsecops",{"text":565,"config":566},"Cloud Native",{"href":567,"dataGaName":568,"dataGaLocation":461},"/topics/cloud-native/","cloud native",{"text":570,"config":571},"AI for Coding",{"href":572,"dataGaName":573,"dataGaLocation":461},"/topics/devops/ai-for-coding/","ai for coding",{"text":575,"config":576},"Agentic AI",{"href":577,"dataGaName":578,"dataGaLocation":461},"/topics/agentic-ai/","agentic ai",{"title":580,"links":581},"Solutions",[582,584,586,591,595,598,602,605,607,610,613,618],{"text":117,"config":583},{"href":112,"dataGaName":117,"dataGaLocation":461},{"text":106,"config":585},{"href":89,"dataGaName":90,"dataGaLocation":461},{"text":587,"config":588},"Agile development",{"href":589,"dataGaName":590,"dataGaLocation":461},"/solutions/agile-delivery/","agile delivery",{"text":592,"config":593},"SCM",{"href":102,"dataGaName":594,"dataGaLocation":461},"source code management",{"text":540,"config":596},{"href":95,"dataGaName":597,"dataGaLocation":461},"continuous integration & delivery",{"text":599,"config":600},"Value stream management",{"href":145,"dataGaName":601,"dataGaLocation":461},"value stream management",{"text":545,"config":603},{"href":604,"dataGaName":548,"dataGaLocation":461},"/solutions/gitops/",{"text":155,"config":606},{"href":158,"dataGaName":159,"dataGaLocation":461},{"text":608,"config":609},"Small business",{"href":164,"dataGaName":165,"dataGaLocation":461},{"text":611,"config":612},"Public sector",{"href":170,"dataGaName":171,"dataGaLocation":461},{"text":614,"config":615},"Education",{"href":616,"dataGaName":617,"dataGaLocation":461},"/solutions/education/","education",{"text":619,"config":620},"Financial services",{"href":621,"dataGaName":622,"dataGaLocation":461},"/solutions/finance/","financial services",{"title":178,"links":624},[625,627,629,631,634,636,638,640,642,644,646,648],{"text":191,"config":626},{"href":193,"dataGaName":194,"dataGaLocation":461},{"text":196,"config":628},{"href":198,"dataGaName":199,"dataGaLocation":461},{"text":201,"config":630},{"href":203,"dataGaName":204,"dataGaLocation":461},{"text":206,"config":632},{"href":208,"dataGaName":633,"dataGaLocation":461},"docs",{"text":229,"config":635},{"href":231,"dataGaName":232,"dataGaLocation":461},{"text":224,"config":637},{"href":226,"dataGaName":227,"dataGaLocation":461},{"text":238,"config":639},{"href":240,"dataGaName":241,"dataGaLocation":461},{"text":246,"config":641},{"href":248,"dataGaName":249,"dataGaLocation":461},{"text":251,"config":643},{"href":253,"dataGaName":254,"dataGaLocation":461},{"text":256,"config":645},{"href":258,"dataGaName":259,"dataGaLocation":461},{"text":261,"config":647},{"href":263,"dataGaName":264,"dataGaLocation":461},{"text":266,"config":649},{"href":268,"dataGaName":269,"dataGaLocation":461},{"title":282,"links":651},[652,654,656,658,660,662,664,668,673,675,677,679],{"text":290,"config":653},{"href":292,"dataGaName":284,"dataGaLocation":461},{"text":295,"config":655},{"href":297,"dataGaName":298,"dataGaLocation":461},{"text":303,"config":657},{"href":305,"dataGaName":306,"dataGaLocation":461},{"text":308,"config":659},{"href":310,"dataGaName":311,"dataGaLocation":461},{"text":313,"config":661},{"href":315,"dataGaName":316,"dataGaLocation":461},{"text":318,"config":663},{"href":320,"dataGaName":321,"dataGaLocation":461},{"text":665,"config":666},"Sustainability",{"href":667,"dataGaName":665,"dataGaLocation":461},"/sustainability/",{"text":669,"config":670},"Diversity, inclusion and belonging (DIB)",{"href":671,"dataGaName":672,"dataGaLocation":461},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":323,"config":674},{"href":325,"dataGaName":326,"dataGaLocation":461},{"text":333,"config":676},{"href":335,"dataGaName":336,"dataGaLocation":461},{"text":338,"config":678},{"href":340,"dataGaName":341,"dataGaLocation":461},{"text":680,"config":681},"Modern Slavery Transparency Statement",{"href":682,"dataGaName":683,"dataGaLocation":461},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":685},[686,689,692],{"text":687,"config":688},"Terms",{"href":513,"dataGaName":514,"dataGaLocation":461},{"text":690,"config":691},"Cookies",{"dataGaName":523,"dataGaLocation":461,"id":524,"isOneTrustButton":16},{"text":693,"config":694},"Privacy",{"href":518,"dataGaName":519,"dataGaLocation":461},[696,706,716,725,734,742,750,759,768,777,786,794,803,811,820,829,838,847,856,864,871,879,888,896,904,913,921,929,937],{"content":697,"config":704},{"title":698,"heroImage":699,"category":700,"description":701,"authors":702,"date":703},"Set expectations, manage better","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683955/Blog/Hero%20Images/set-expectations-manage-better.jpg","culture","Creating overhead with meetings and reviews is a risk to the efficiency and remote culture of organisations and should be actively avoided for an organisation to succeed remote at scale.",[10],"2017-01-03",{"slug":705,"externalUrl":-1},"set-expectations",{"content":707,"config":714},{"title":708,"heroImage":709,"category":710,"description":711,"authors":712,"date":713},"Feature Highlight: Subscribe to Label","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684195/Blog/Hero%20Images/ios-development.jpg","insights","In GitLab 8.6 and up, you can subscribe to a label. Whenever an issue is tagged with the label you subscribed to, you will get a notification.",[10],"2016-04-13",{"slug":715,"externalUrl":-1},"feature-highlight-subscribe-to-label",{"content":717,"config":723},{"title":718,"heroImage":719,"category":710,"description":720,"authors":721,"date":722},"Commits Do Not Equal Productivity","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684616/Blog/Hero%20Images/racing.png","In this post we'll consider some ways people evaluate or represent productivity, and I ask for your thoughts on what you track and what you think matters.",[10],"2016-03-08",{"slug":724,"externalUrl":-1},"commits-do-not-equal-productivity",{"content":726,"config":732},{"title":727,"heroImage":728,"category":700,"description":729,"authors":730,"date":731},"Making GitLab Better for Large Open Source Projects","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","Here we would like to share our thoughts about these issues and what we’re planning to do to make things better with GitLab.",[10],"2016-01-15",{"slug":733,"externalUrl":-1},"making-gitlab-better-for-large-open-source-projects",{"content":735,"config":740},{"title":736,"heroImage":728,"category":284,"description":737,"authors":738,"date":739},"Feature Highlight: WIP","At GitLab we'll tell you to make small merge requests, review and merge often. But in the real world, you have to build a complex feature that requires weeks and thousands of changes.",[10],"2016-01-08",{"slug":741,"externalUrl":-1},"feature-highlight-wip",{"content":743,"config":748},{"title":744,"heroImage":728,"category":284,"description":745,"authors":746,"date":747},"Improving Open Development for Everyone","We want to give everyone that loves GitLab the opportunity to help shape its progress and be empowered to do this effortlessly.",[10],"2015-12-16",{"slug":749,"externalUrl":-1},"improving-open-development-for-everyone",{"content":751,"config":757},{"title":752,"heroImage":753,"category":700,"description":754,"authors":755,"date":756},"Remote Agile at GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684484/Blog/Hero%20Images/agile.jpg","This is a start in describing the workflow that we've established over the past year at GitLab.",[10],"2015-09-14",{"slug":758,"externalUrl":-1},"remote-agile-at-gitlab",{"content":760,"config":766},{"title":761,"heroImage":762,"category":710,"description":763,"authors":764,"date":765},"6 reasons why pre is better than post production code review","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670664/Blog/Hero%20Images/code.png","Six good reasons why you should review code before it's being deployed/ released/ merged.",[10],"2015-08-05",{"slug":767,"externalUrl":-1},"6-reasons-why-pre-is-better-than-post-production-code-review",{"content":769,"config":775},{"title":770,"heroImage":771,"category":700,"description":772,"authors":773,"date":774},"Almost Everything We Do Will Be Open","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684463/Blog/Hero%20Images/open.jpg","We're announcing a move from doing the majority of our development work internally, to almost exclusively working in public issue trackers on GitLab.com.",[10],"2015-08-03",{"slug":776,"externalUrl":-1},"almost-everything-we-do-is-now-open",{"content":778,"config":784},{"title":779,"heroImage":728,"category":780,"description":781,"authors":782,"date":783},"Feature Highlight: Merge Request Approvals","engineering","If you want keep code quality high, it is important that you use a code review process. In GitLab, the best way to do this is by using Merge Requests. Read how to approve merge requests here.",[10],"2015-07-29",{"slug":785,"externalUrl":-1},"feature-highlight-merge-request-approvals",{"content":787,"config":792},{"title":788,"heroImage":728,"category":780,"description":789,"authors":790,"date":791},"Implementing .gitlab-ci.yml","We replacing GitLab CI jobs with a .gitlab-ci.yml and wanted to share the details of that process with you and would love to hear what you think.",[10],"2015-06-08",{"slug":793,"externalUrl":-1},"implementing-gitlab-ci-dot-yml",{"content":795,"config":801},{"title":796,"heroImage":797,"category":284,"description":798,"authors":799,"date":800},"Why we're replacing GitLab CI jobs with .gitlab-ci.yml","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684407/Blog/Hero%20Images/ci-yml.jpg","Every single GitLab installation ships with a powerful continuous integration tool: GitLab CI. Read how to enable it in 2 minutes.",[10],"2015-05-06",{"slug":802,"externalUrl":-1},"why-were-replacing-gitlab-ci-jobs-with-gitlab-ci-dot-yml",{"content":804,"config":809},{"title":805,"heroImage":728,"category":284,"description":806,"authors":807,"date":808},"GitLab on Debian 8","From now on, GitLab Omnibus packages for Debian 8 will be available with every release. Learn more here!",[10],"2015-05-01",{"slug":810,"externalUrl":-1},"gitlab-on-debian-8",{"content":812,"config":818},{"title":813,"heroImage":814,"category":284,"description":815,"authors":816,"date":817},"Bitbucket vs. GitLab.com","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684393/Blog/Hero%20Images/bb.jpg","Considering a move from Bitbucket to GitLab? We've compiled a list of our advantages for you to view.",[10],"2015-04-15",{"slug":819,"externalUrl":-1},"bitbucket-vs-gitlab-com",{"content":821,"config":827},{"title":822,"heroImage":823,"category":284,"description":824,"authors":825,"date":826},"GitLab AMI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684381/Blog/Hero%20Images/mac.jpg","We're happy to announce that GitLab now has Amazon Web Services Machines Images (AMIs) available for GitLab CE.",[10],"2015-03-11",{"slug":828,"externalUrl":-1},"gitlab-ami",{"content":830,"config":836},{"title":831,"heroImage":832,"category":780,"description":833,"authors":834,"date":835},"How to install GitLab on your own domain","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684373/Blog/Hero%20Images/installing.jpg","Want to get your first own GitLab instance running? Use these easy to follow instructions and you will be active in no time!",[10],"2015-02-24",{"slug":837,"externalUrl":-1},"how-to-install-gitlab",{"content":839,"config":845},{"title":840,"heroImage":841,"category":710,"description":842,"authors":843,"date":844},"7 Git personalities, which one are you?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684330/Blog/Hero%20Images/git_personalities.jpg","Working on an open source projects we receive many merge and pull requests and see a number of different git personalities. Do you recognize yourself?",[10],"2015-01-27",{"slug":846,"externalUrl":-1},"7-git-personalities",{"content":848,"config":854},{"title":849,"heroImage":850,"category":284,"description":851,"authors":852,"date":853},"The hardware that powers 100,000 git repositories","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684271/Blog/Hero%20Images/hardware.jpg","Want to host your public and private repositories somewhere for free? You can on GitLab.com. Learn more here!",[10],"2015-01-03",{"slug":855,"externalUrl":-1},"the-hardware-that-powers-100k-git-repos",{"content":857,"config":862},{"title":858,"heroImage":728,"category":284,"description":859,"authors":860,"date":861},"GitLab got bit: MySQL fails at Rails migrations that work in PostgreSQL","One day after releasing GitLab 7.6 we had to release a patch. This is how we got bit by a failing migration and why it was our own fault.",[10],"2014-12-30",{"slug":863,"externalUrl":-1},"gitlab-got-bit-mysql-fails-at-rails-migrations-that-work-in-postgresql",{"content":865,"config":869},{"title":866,"heroImage":728,"category":284,"description":866,"authors":867,"date":868},"3 reasons why GitLab is not vulnerable to the Gollum vulnerability and 1 tip",[10],"2014-12-09",{"slug":870,"externalUrl":-1},"three-reasons-gitlab-is-not-vulnerable-to-the-gollum-vulnerability",{"content":872,"config":877},{"title":873,"heroImage":728,"category":780,"description":874,"authors":875,"date":876},"How you can send your logs ballistically using UDP","With GitLab Enterprise Edition 7.1 and up Omnibus packages, we introduced UDP log shipping.",[10],"2014-12-08",{"slug":878,"externalUrl":-1},"ship-log-data-off-site-using-udp",{"content":880,"config":886},{"title":881,"heroImage":882,"category":710,"description":883,"authors":884,"date":885},"How GitLab Permissions and Protected Branches Keep Your Code Safe","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749684249/Blog/Hero%20Images/how-permissions-and-protected-branches-keep-your-code-safe.jpg","At GitLab we believe that by preventing force pushes and by stimulating code review practices, mistakes can be easily avoided and code quality will improve.",[10],"2014-11-26",{"slug":887,"externalUrl":-1},"keeping-your-code-protected",{"content":889,"config":894},{"title":890,"heroImage":728,"category":700,"description":891,"authors":892,"date":893},"Happiness at GitLab","People are happy at GitLab. Happy people are more productive.",[10],"2014-10-09",{"slug":895,"externalUrl":-1},"happiness-at-gitlab",{"content":897,"config":902},{"title":898,"heroImage":728,"category":710,"description":899,"authors":900,"date":901},"Feature highlight: Git Hooks in GitLab Enterprise Edition","Sometimes you need additional control over pushes to your repository. For each project you can have unique Git Hooks.",[10],"2014-08-25",{"slug":903,"externalUrl":-1},"feature-highlight-git-hooks",{"content":905,"config":911},{"title":906,"heroImage":728,"category":284,"description":907,"authors":908,"date":910},"Feature Highlight: LDAP Integration","In GitLab Enterprise Edition it is possible to sync your GitLab groups with your LDAP groups, making it super easy to manage access to projects.",[909,10],"Jacob Vosmaer","2014-07-10",{"slug":912,"externalUrl":-1},"feature-highlight-ldap-sync",{"content":914,"config":919},{"title":915,"heroImage":728,"category":700,"description":916,"authors":917,"date":918},"How GitLab works remotely","GitLab is a fully remote company, meaning that all of us work 100% of our time from home or any other place in the world.",[10],"2014-07-03",{"slug":920,"externalUrl":-1},"how-gitlab-works-remotely",{"content":922,"config":927},{"title":923,"heroImage":728,"category":710,"description":924,"authors":925,"date":926},"GitLab Feature Highlight: Groups","GitLab groups allow you to group projects into directories and give users access to several projects at once.",[909,10],"2014-06-30",{"slug":928,"externalUrl":-1},"feature-highlight-groups",{"content":930,"config":935},{"title":931,"heroImage":728,"category":284,"description":932,"authors":933,"date":934},"Adding a SSH key to GitLab Screencast","In this screencast we show you that adding a SSH key to GitLab is very simple, allowing everyone to push and pull to GitLab without your username and password every time.",[10],"2014-03-04",{"slug":936,"externalUrl":-1},"add-ssh-key-screencast",{"content":938,"config":942},{"title":939,"heroImage":728,"category":710,"description":940,"authors":941,"date":934},"Issues and Merge Requests in GitLab Screencast","We are excited to show you some of the possibilities in our new screencast.",[10],{"slug":943,"externalUrl":-1},"gitlab-flow-screencast",1777934804779]