[{"data":1,"prerenderedAt":920},["ShallowReactive",2],{"/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders":3,"navigation-en-us":153,"banner-en-us":585,"footer-en-us":595,"blog-post-authors-en-us-Sid Sijbrandij":856,"blog-related-posts-en-us-gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders":875,"blog-share-wrapper-en-us":900,"next-steps-en-us":910},{"id":4,"title":5,"authors":6,"body":8,"category":122,"date":123,"description":124,"extension":125,"externalUrl":126,"faq":126,"featured":127,"heroImage":128,"meta":129,"navigation":143,"path":144,"seo":145,"slug":149,"stem":150,"tags":126,"template":151,"updatedDate":126,"__hash__":152},"blogPosts/en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders.md","GitLab reduced merge conflicts by 90% with changelog placeholders",[7],"Sid Sijbrandij",{"type":9,"value":10,"toc":114},"minimark",[11,34,39,49,52,56,76,80,89,98,107,111],[12,13,14,15,21,22,27,28,33],"p",{},"GitLab has a very active development cycle with many features being added to its monthly release by\n",[16,17,20],"a",{"href":18,"rel":19},"http://contributors.gitlab.com/",[],"more than 700 contributors",".\nLike many projects it has a\n",[16,23,26],{"href":24,"rel":25},"https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG",[],"changelog file","\nthat details all significant new features, bugfixes and changes to behaviour.\nEvery pull/merge request author is ",[16,29,32],{"href":30,"rel":31},"https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#merge-request-guidelines",[],"encouraged","\nto add a line to this changelog. Unfortunately, the amount of merge requests lead to a time-consuming problem.",[35,36,38],"h2",{"id":37},"problem","Problem",[12,40,41],{},[16,42,44],{"href":43},"/images/conflict.png",[45,46],"img",{"alt":47,"src":48},":(","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404838/site/Content%20Images/conflict.png",[12,50,51],{},"The order in which merge requests are accepted is not know in advance.\nMost merge request added a new line to the changelog the end of the upcoming version.\nThis meant that upon merging a single merge request, all other unmerged MRs were immediately broken, since they modified the same line.\nThe authors of the merge requests had to solve the merge conflict with a commit or rebase before their code could be merged in the web UI.",[35,53,55],{"id":54},"update","Update",[12,57,58,59,63,64,69,70,75],{},"ayufan suggested a much better solution in the comments of this article.\nIf you add ",[60,61,62],"code",{},"CHANGELOG merge=union"," to the .gitattributes file in the root of the repo you should not have any conflicts.\nInstead of leaving conflicts the ",[16,65,68],{"href":66,"rel":67},"http://git-scm.com/docs/git-merge-file",[],"union merge option"," will resolve conflicts favouring both side of the lines.\nAn example of such a setting change is in the ",[16,71,74],{"href":72,"rel":73},"https://code.google.com/p/endgame-singularity/source/browse/.gitattributes",[],"endgamesingularity repo",".\nThanks ayufan, we'll try this instead.",[35,77,79],{"id":78},"solution","Solution",[12,81,82,83,88],{},"At GitLab we solved the above problem by adding a 100 lines with just a hyphen placeholder at the top of the changelog.\nPeople can insert their entry at a random location in the changelog.\nThere is still a chance of conflict when two merge requests change the same line but it is greatly reduced.\nIt looks a bit strange to have these empty lines on top so we added a ",[16,84,87],{"href":85,"rel":86},"https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG#L1",[],"comment to explain their purpose.",".",[12,90,91],{},[16,92,94],{"href":93},"/images/accept.png",[45,95],{"alt":96,"src":97},"What developer happiness looks like","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782404825/site/Content%20Images/accept.png",[12,99,100,101,106],{},"As ",[16,102,105],{"href":103,"rel":104},"https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/release/monthly.md#prepare-changelog-for-next-release",[],"part of the monthly release process"," all the empty lines are removed and new ones for the upcoming release are added.\nThe placeholders ensure that lead GitLab developer Dmitriy can merge new contributions easily from his iPad.\nWhich has led to more late-night merging activity making everyone happy.",[35,108,110],{"id":109},"what-do-you-do","What do you do?",[12,112,113],{},"We hope this article inspires other open and closed source projects to reduce their merge conflicts.\nOr if you don't have a changelog yet to start maintaining one, it sure beats doing git diffs all the time.\nPlease let us know if you are inspired or if you have any other tricks to share in the comments.",{"title":115,"searchDepth":116,"depth":116,"links":117},"",2,[118,119,120,121],{"id":37,"depth":116,"text":38},{"id":54,"depth":116,"text":55},{"id":78,"depth":116,"text":79},{"id":109,"depth":116,"text":110},"engineering","2015-02-10","By utilising changelog placeholders GitLab reduced merge conflicts by 90 percent! Read more here.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683633/Blog/Hero%20Images/changelog.jpg",{"excerpt":130},{"type":9,"value":131},[132],[12,133,14,134,21,137,27,140,33],{},[16,135,20],{"href":18,"rel":136},[],[16,138,26],{"href":24,"rel":139},[],[16,141,32],{"href":30,"rel":142},[],true,"/en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders",{"title":5,"description":124,"ogTitle":5,"ogDescription":124,"noIndex":127,"ogImage":128,"ogUrl":146,"ogSiteName":147,"ogType":148,"canonicalUrls":146},"https://about.gitlab.com/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders","https://about.gitlab.com","article","gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders","en-us/blog/gitlab-reduced-merge-conflicts-by-90-percent-with-changelog-placeholders","BlogPost","XewglqDSNq-_zdYC7PVLGPF1fH9YHl4N5sjopC5PUlk",{"logo":154,"freeTrial":159,"sales":164,"login":169,"items":174,"search":505,"minimal":536,"duo":555,"switchNav":564,"pricingDeployment":575},{"config":155},{"href":156,"dataGaName":157,"dataGaLocation":158},"/","gitlab logo","header",{"text":160,"config":161},"Get free trial",{"href":162,"dataGaName":163,"dataGaLocation":158},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":165,"config":166},"Request a demo",{"href":167,"dataGaName":168,"dataGaLocation":158},"/request-a-demo/","sales",{"text":170,"config":171},"Sign in",{"href":172,"dataGaName":173,"dataGaLocation":158},"https://gitlab.com/users/sign_in/","sign in",[175,261,349,354,429,483],{"text":176,"left":143,"config":177,"menu":179},"Platform",{"dataNavLevelOne":178},"platform",{"type":180,"link":181,"columns":185,"feature":250},"lists",{"text":182,"config":183},"Explore the Platform",{"href":184,"dataGaName":178,"dataGaLocation":158},"/platform/",[186,209,232],{"title":187,"items":188},"Execution & Workflows",[189,194,199,204],{"text":190,"config":191},"CI/CD",{"href":192,"dataGaLocation":158,"dataGaName":193},"/solutions/continuous-integration/","ci/cd",{"text":195,"config":196},"Source Code Management",{"href":197,"dataGaLocation":158,"dataGaName":198},"/solutions/source-code-management/","source code management",{"text":200,"config":201},"Agile Delivery",{"href":202,"dataGaLocation":158,"dataGaName":203},"/solutions/agile-delivery/","agile delivery",{"text":205,"config":206},"Artifact Management",{"href":207,"dataGaLocation":158,"dataGaName":208},"/artifact-central/","artifact management",{"title":210,"items":211},"Security & Governance",[212,217,222,227],{"text":213,"config":214},"Application Security Testing",{"href":215,"dataGaLocation":158,"dataGaName":216},"/solutions/application-security-testing/","application security testing",{"text":218,"config":219},"Governance & Compliance",{"href":220,"dataGaLocation":158,"dataGaName":221},"/solutions/software-compliance/","governance and compliance",{"text":223,"config":224},"Secrets Management",{"href":225,"dataGaLocation":158,"dataGaName":226},"/gitlab-secrets-manager/","secrets management",{"text":228,"config":229},"Supply Chain Security",{"href":230,"dataGaLocation":158,"dataGaName":231},"/solutions/supply-chain/","supply chain security",{"title":233,"items":234},"Context & AI",[235,240,245],{"text":236,"config":237},"Agentic Orchestration",{"href":238,"dataGaLocation":158,"dataGaName":239},"/gitlab-duo-agent-platform/","agentic orchestration",{"text":241,"config":242},"Context Graph",{"href":243,"dataGaLocation":158,"dataGaName":244},"/gitlab-orbit/","context graph",{"text":246,"config":247},"Visibility & Measurement",{"href":248,"dataGaLocation":158,"dataGaName":249},"/solutions/visibility-measurement/","visibility and measurement",{"config":251,"title":254,"text":255,"link":256},{"background":252,"textColor":253},"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":257,"config":258},"Learn more",{"href":259,"dataGaName":260,"dataGaLocation":158},"/why-gitlab/","why gitlab",{"text":262,"left":143,"config":263,"menu":265},"Solutions",{"dataNavLevelOne":264},"solutions",{"type":180,"link":266,"columns":270,"feature":340},{"text":267,"config":268},"View all Solutions",{"href":269,"dataGaName":264,"dataGaLocation":158},"/solutions/",[271,289,307],{"title":272,"items":273},"Outcomes",[274,279,284],{"text":275,"config":276},"DevOps Modernization",{"href":277,"dataGaLocation":158,"dataGaName":278},"/assessments/devops-modernization-assessment/","devops modernization",{"text":280,"config":281},"Security Modernization",{"href":282,"dataGaLocation":158,"dataGaName":283},"/assessments/security-modernization-assessment/","security modernization",{"text":285,"config":286},"AI Modernization",{"href":287,"dataGaLocation":158,"dataGaName":288},"/assessments/ai-modernization-assessment/","ai modernization",{"title":290,"items":291},"By size",[292,297,302],{"text":293,"config":294},"Enterprise",{"href":295,"dataGaLocation":158,"dataGaName":296},"/enterprise/","enterprise",{"text":298,"config":299},"Small Business",{"href":300,"dataGaLocation":158,"dataGaName":301},"/small-business/","small business",{"text":303,"config":304},"Startups",{"href":305,"dataGaLocation":158,"dataGaName":306},"/solutions/startups/","startups",{"title":308,"items":309},"Industries",[310,315,320,325,330,335],{"text":311,"config":312},"Financial Services",{"href":313,"dataGaLocation":158,"dataGaName":314},"/solutions/finance/","financial services",{"text":316,"config":317},"Public Sector",{"href":318,"dataGaLocation":158,"dataGaName":319},"/solutions/public-sector/","public sector",{"text":321,"config":322},"Telecommunications",{"href":323,"dataGaLocation":158,"dataGaName":324},"/solutions/telecommunications/","telecommunications",{"text":326,"config":327},"Automotive",{"href":328,"dataGaLocation":158,"dataGaName":329},"/solutions/automotive/","automotive",{"text":331,"config":332},"Education",{"href":333,"dataGaLocation":158,"dataGaName":334},"/solutions/education/","education",{"text":336,"config":337},"Aerospace",{"href":338,"dataGaLocation":158,"dataGaName":339},"/solutions/aerospace/","aerospace",{"config":341,"title":342,"text":343,"link":344},{"background":252,"textColor":253},"GitLab Security Standard","Learn how to harden your software factory and let AI agents earn autonomy, without trading away security.",{"text":345,"config":346},"Explore the standard",{"href":347,"dataGaName":348,"dataGaLocation":158},"/gitlab-security-standard/","gitlab security standard",{"text":350,"config":351},"Pricing",{"href":352,"dataGaName":353,"dataGaLocation":158,"dataNavLevelOne":353},"/pricing/","pricing",{"text":355,"config":356,"menu":358},"Resources",{"dataNavLevelOne":357},"resources",{"type":180,"link":359,"columns":363,"feature":420},{"text":360,"config":361},"View all resources",{"href":362,"dataGaName":357,"dataGaLocation":158},"/resources/",[364,392],{"title":365,"items":366},"Discover",[367,372,377,382,387],{"text":368,"config":369},"Docs",{"href":370,"dataGaName":371,"dataGaLocation":158},"https://docs.gitlab.com/","docs",{"text":373,"config":374},"University",{"href":375,"dataGaName":376,"dataGaLocation":158},"https://university.gitlab.com/","university",{"text":378,"config":379},"Demo Series",{"href":380,"dataGaName":381,"dataGaLocation":158},"/gitlab-technical-demo-series/","demo series",{"text":383,"config":384},"Demo Hub",{"href":385,"dataGaName":386,"dataGaLocation":158},"/demo-hub/","demo hub",{"text":388,"config":389},"Services",{"href":390,"dataGaName":391,"dataGaLocation":158},"/services/","services",{"title":393,"items":394},"Connect",[395,400,405,410,415],{"text":396,"config":397},"Blog",{"href":398,"dataGaName":399,"dataGaLocation":158},"/blog/","blog",{"text":401,"config":402},"Community",{"href":403,"dataGaName":404,"dataGaLocation":158},"/community/","community",{"text":406,"config":407},"Customers",{"href":408,"dataGaName":409,"dataGaLocation":158},"/customers/","customers",{"text":411,"config":412},"Partners",{"href":413,"dataGaName":414,"dataGaLocation":158},"/partners/","partners",{"text":416,"config":417},"Events",{"href":418,"dataGaName":419,"dataGaLocation":158},"/events/","events",{"config":421,"title":422,"text":423,"link":424},{"background":252,"textColor":253},"What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":425,"config":426},"Read the latest",{"href":427,"dataGaName":428,"dataGaLocation":158},"/whats-new/","whats new",{"text":430,"config":431,"menu":433},"Company",{"dataNavLevelOne":432},"company",{"type":180,"columns":434},[435],{"items":436},[437,442,448,453,458,463,468,473,478],{"text":438,"config":439},"About",{"href":440,"dataGaName":441,"dataGaLocation":158},"/company/","about",{"text":443,"config":444,"footerGa":447},"Jobs",{"href":445,"dataGaName":446,"dataGaLocation":158},"/jobs/","jobs",{"dataGaName":446},{"text":449,"config":450},"Press",{"href":451,"dataGaName":452,"dataGaLocation":158},"/press/","press",{"text":454,"config":455},"Handbook",{"href":456,"dataGaName":457,"dataGaLocation":158},"https://handbook.gitlab.com/","handbook",{"text":459,"config":460},"Leadership",{"href":461,"dataGaName":462,"dataGaLocation":158},"/company/team/e-group/","leadership",{"text":464,"config":465},"Investor relations",{"href":466,"dataGaName":467,"dataGaLocation":158},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":469,"config":470},"Trust Center",{"href":471,"dataGaName":472,"dataGaLocation":158},"/security/","trust center",{"text":474,"config":475},"AI Transparency Center",{"href":476,"dataGaName":477,"dataGaLocation":158},"/ai-transparency-center/","ai transparency center",{"text":479,"config":480},"Newsletter",{"href":481,"dataGaName":482,"dataGaLocation":158},"/company/contact/#contact-forms","newsletter",{"text":484,"config":485,"menu":486},"Contact us",{"dataNavLevelOne":432},{"type":180,"columns":487},[488],{"items":489},[490,495,500],{"text":491,"config":492},"Talk to sales",{"href":493,"dataGaName":494,"dataGaLocation":158},"/sales/","talk to sales",{"text":496,"config":497},"Support portal",{"href":498,"dataGaName":499,"dataGaLocation":158},"https://support.gitlab.com/hc/en-us","support portal",{"text":501,"config":502},"Customer portal",{"href":503,"dataGaName":504,"dataGaLocation":158},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":506,"login":507,"suggestions":514},"Close",{"text":508,"link":509},"To search repositories and projects, login to",{"text":510,"config":511},"gitlab.com",{"href":172,"dataGaName":512,"dataGaLocation":513},"search login","search",{"text":515,"default":516},"Suggestions",[517,520,523,525,529,533],{"text":518,"config":519},"GitLab Duo Agent Platform",{"href":238,"dataGaName":518,"dataGaLocation":513},{"text":521,"config":522},"Code Suggestions (AI)",{"href":238,"dataGaName":521,"dataGaLocation":513},{"text":190,"config":524},{"href":192,"dataGaName":190,"dataGaLocation":513},{"text":526,"config":527},"GitLab on AWS",{"href":528,"dataGaName":526,"dataGaLocation":513},"/partners/technology-partners/aws/",{"text":530,"config":531},"GitLab on Google Cloud",{"href":532,"dataGaName":530,"dataGaLocation":513},"/partners/technology-partners/google-cloud-platform/",{"text":534,"config":535},"Why GitLab?",{"href":259,"dataGaName":534,"dataGaLocation":513},{"freeTrial":537,"mobileIcon":542,"desktopIcon":547,"secondaryButton":550},{"text":538,"config":539},"Start free trial",{"href":540,"dataGaName":163,"dataGaLocation":541},"https://gitlab.com/-/trials/new/","nav",{"altText":543,"config":544},"Gitlab Icon",{"src":545,"dataGaName":546,"dataGaLocation":541},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":543,"config":548},{"src":549,"dataGaName":546,"dataGaLocation":541},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":551,"config":552},"Get Started",{"href":553,"dataGaName":554,"dataGaLocation":541},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":556,"mobileIcon":560,"desktopIcon":562},{"text":557,"config":558},"Learn more about GitLab Duo",{"href":238,"dataGaName":559,"dataGaLocation":541},"gitlab duo",{"altText":543,"config":561},{"src":545,"dataGaName":546,"dataGaLocation":541},{"altText":543,"config":563},{"src":549,"dataGaName":546,"dataGaLocation":541},{"button":565,"mobileIcon":570,"desktopIcon":572},{"text":566,"config":567},"/switch",{"href":568,"dataGaName":569,"dataGaLocation":541},"#contact","switch",{"altText":543,"config":571},{"src":545,"dataGaName":546,"dataGaLocation":541},{"altText":543,"config":573},{"src":574,"dataGaName":546,"dataGaLocation":541},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":576,"mobileIcon":581,"desktopIcon":583},{"text":577,"config":578},"Back to pricing",{"href":352,"dataGaName":579,"dataGaLocation":541,"icon":580},"back to pricing","GoBack",{"altText":543,"config":582},{"src":545,"dataGaName":546,"dataGaLocation":541},{"altText":543,"config":584},{"src":549,"dataGaName":546,"dataGaLocation":541},{"title":586,"button":587,"config":593},"Ship at agent speed. Prove every step. Transcend is here.",{"text":588,"config":589},"Watch now",{"href":590,"dataGaName":591,"dataGaLocation":592},"/events/transcend/virtual/#watch-gitlab-transcend","transcend-october-2026-banner","global-banner",{"layout":594,"disabled":127},"release",{"data":596},{"text":597,"source":598,"edit":604,"contribute":609,"config":614,"items":619,"minimal":845},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":599,"config":600},"View page source",{"href":601,"dataGaName":602,"dataGaLocation":603},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":605,"config":606},"Edit this page",{"href":607,"dataGaName":608,"dataGaLocation":603},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":610,"config":611},"Please contribute",{"href":612,"dataGaName":613,"dataGaLocation":603},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":615,"facebook":616,"youtube":617,"linkedin":618},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[620,667,725,772,813],{"title":350,"links":621,"subMenu":636},[622,626,631],{"text":623,"config":624},"View plans",{"href":352,"dataGaName":625,"dataGaLocation":603},"view plans",{"text":627,"config":628},"Why Premium?",{"href":629,"dataGaName":630,"dataGaLocation":603},"/pricing/premium/","why premium",{"text":632,"config":633},"Why Ultimate?",{"href":634,"dataGaName":635,"dataGaLocation":603},"/pricing/ultimate/","why ultimate",[637],{"title":638,"links":639},"Contact Us",[640,643,645,647,652,657,662],{"text":641,"config":642},"Contact sales",{"href":493,"dataGaName":168,"dataGaLocation":603},{"text":496,"config":644},{"href":498,"dataGaName":499,"dataGaLocation":603},{"text":501,"config":646},{"href":503,"dataGaName":504,"dataGaLocation":603},{"text":648,"config":649},"Status",{"href":650,"dataGaName":651,"dataGaLocation":603},"https://status.gitlab.com/","status",{"text":653,"config":654},"Terms of use",{"href":655,"dataGaName":656,"dataGaLocation":603},"/terms/","terms of use",{"text":658,"config":659},"Privacy statement",{"href":660,"dataGaName":661,"dataGaLocation":603},"/privacy/","privacy statement",{"text":663,"config":664},"Cookie preferences",{"dataGaName":665,"dataGaLocation":603,"id":666,"isOneTrustButton":143},"cookie preferences","ot-sdk-btn",{"title":176,"links":668,"subMenu":682},[669,672,674,676,678,680],{"text":670,"config":671},"Explore the platform",{"href":184,"dataGaName":178,"dataGaLocation":603},{"text":236,"config":673},{"href":238,"dataGaName":239,"dataGaLocation":603},{"text":190,"config":675},{"href":192,"dataGaName":193,"dataGaLocation":603},{"text":241,"config":677},{"href":243,"dataGaName":244,"dataGaLocation":603},{"text":223,"config":679},{"href":225,"dataGaName":226,"dataGaLocation":603},{"text":254,"config":681},{"href":259,"dataGaName":260,"dataGaLocation":603},[683],{"title":684,"links":685},"Topics",[686,690,695,700,705,710,715,720],{"text":190,"config":687},{"href":688,"dataGaName":689,"dataGaLocation":603},"/topics/ci-cd/","cicd",{"text":691,"config":692},"GitOps",{"href":693,"dataGaName":694,"dataGaLocation":603},"/topics/gitops/","gitops",{"text":696,"config":697},"DevOps",{"href":698,"dataGaName":699,"dataGaLocation":603},"/topics/devops/","devops",{"text":701,"config":702},"Version Control",{"href":703,"dataGaName":704,"dataGaLocation":603},"/topics/version-control/","version control",{"text":706,"config":707},"DevSecOps",{"href":708,"dataGaName":709,"dataGaLocation":603},"/topics/devsecops/","devsecops",{"text":711,"config":712},"Cloud Native",{"href":713,"dataGaName":714,"dataGaLocation":603},"/topics/cloud-native/","cloud native",{"text":716,"config":717},"AI for Coding",{"href":718,"dataGaName":719,"dataGaLocation":603},"/topics/devops/ai-for-coding/","ai for coding",{"text":721,"config":722},"Agentic AI",{"href":723,"dataGaName":724,"dataGaLocation":603},"/topics/agentic-ai/","agentic ai",{"title":262,"links":726},[727,730,733,736,739,742,744,746,748,750,752,755,757,760,764,768],{"text":728,"config":729},"DevOps modernization",{"href":277,"dataGaName":278,"dataGaLocation":603},{"text":731,"config":732},"Security modernization",{"href":282,"dataGaName":283,"dataGaLocation":603},{"text":734,"config":735},"AI modernization",{"href":287,"dataGaName":288,"dataGaLocation":603},{"text":737,"config":738},"Financial services",{"href":313,"dataGaName":314,"dataGaLocation":603},{"text":740,"config":741},"Public sector",{"href":318,"dataGaName":319,"dataGaLocation":603},{"text":321,"config":743},{"href":323,"dataGaName":324,"dataGaLocation":603},{"text":326,"config":745},{"href":328,"dataGaName":329,"dataGaLocation":603},{"text":331,"config":747},{"href":333,"dataGaName":334,"dataGaLocation":603},{"text":336,"config":749},{"href":338,"dataGaName":339,"dataGaLocation":603},{"text":293,"config":751},{"href":295,"dataGaName":296,"dataGaLocation":603},{"text":753,"config":754},"Small business",{"href":300,"dataGaName":301,"dataGaLocation":603},{"text":303,"config":756},{"href":305,"dataGaName":306,"dataGaLocation":603},{"text":691,"config":758},{"href":759,"dataGaName":694,"dataGaLocation":603},"/solutions/gitops/",{"text":761,"config":762},"Software composition analysis",{"href":230,"dataGaName":763,"dataGaLocation":603},"software composition analysis",{"text":765,"config":766},"Value stream management",{"href":248,"dataGaName":767,"dataGaLocation":603},"value stream management",{"text":769,"config":770},"All solutions",{"href":269,"dataGaName":771,"dataGaLocation":603},"all solutions",{"title":355,"links":773},[774,779,784,786,788,790,792,794,796,798,800,802,804,806,809],{"text":775,"config":776},"Install",{"href":777,"dataGaName":778,"dataGaLocation":603},"/install/","install",{"text":780,"config":781},"Quick start guides",{"href":782,"dataGaName":783,"dataGaLocation":603},"/get-started/","quick setup checklists",{"text":368,"config":785},{"href":370,"dataGaName":371,"dataGaLocation":603},{"text":373,"config":787},{"href":375,"dataGaName":376,"dataGaLocation":603},{"text":378,"config":789},{"href":380,"dataGaName":381,"dataGaLocation":603},{"text":383,"config":791},{"href":385,"dataGaName":386,"dataGaLocation":603},{"text":388,"config":793},{"href":390,"dataGaName":391,"dataGaLocation":603},{"text":396,"config":795},{"href":398,"dataGaName":399,"dataGaLocation":603},{"text":401,"config":797},{"href":403,"dataGaName":404,"dataGaLocation":603},{"text":406,"config":799},{"href":408,"dataGaName":409,"dataGaLocation":603},{"text":411,"config":801},{"href":413,"dataGaName":414,"dataGaLocation":603},{"text":416,"config":803},{"href":418,"dataGaName":419,"dataGaLocation":603},{"text":479,"config":805},{"href":481,"dataGaName":482,"dataGaLocation":603},{"text":807,"config":808},"What's new",{"href":427,"dataGaName":428,"dataGaLocation":603},{"text":810,"config":811},"All resources",{"href":362,"dataGaName":812,"dataGaLocation":603},"all resources",{"title":430,"links":814},[815,817,819,821,823,825,827,829,831,835,840],{"text":438,"config":816},{"href":440,"dataGaName":432,"dataGaLocation":603},{"text":443,"config":818},{"href":445,"dataGaName":446,"dataGaLocation":603},{"text":449,"config":820},{"href":451,"dataGaName":452,"dataGaLocation":603},{"text":454,"config":822},{"href":456,"dataGaName":457,"dataGaLocation":603},{"text":459,"config":824},{"href":461,"dataGaName":462,"dataGaLocation":603},{"text":464,"config":826},{"href":466,"dataGaName":467,"dataGaLocation":603},{"text":469,"config":828},{"href":471,"dataGaName":472,"dataGaLocation":603},{"text":474,"config":830},{"href":476,"dataGaName":477,"dataGaLocation":603},{"text":832,"config":833},"Sustainability",{"href":834,"dataGaName":832,"dataGaLocation":603},"/sustainability/",{"text":836,"config":837},"Diversity, inclusion and belonging (DIB)",{"href":838,"dataGaName":839,"dataGaLocation":603},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":841,"config":842},"Modern Slavery Transparency Statement",{"href":843,"dataGaName":844,"dataGaLocation":603},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":846},[847,850,853],{"text":848,"config":849},"Terms",{"href":655,"dataGaName":656,"dataGaLocation":603},{"text":851,"config":852},"Cookies",{"dataGaName":665,"dataGaLocation":603,"id":666,"isOneTrustButton":143},{"text":854,"config":855},"Privacy",{"href":660,"dataGaName":661,"dataGaLocation":603},[857],{"id":858,"title":7,"body":126,"config":859,"content":861,"description":126,"extension":869,"meta":870,"navigation":143,"path":871,"seo":872,"stem":873,"__hash__":874},"blogAuthors/en-us/blog/authors/sid-sijbrandij.yml",{"template":860},"BlogAuthor",{"role":862,"name":7,"bio":863,"config":864},"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":865,"twitter":866,"linkedin":867,"ctfId":868},"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",[876,884,892],{"title":877,"description":878,"heroImage":879,"category":122,"date":880,"authors":881,"slug":883,"externalUrl":126},"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",[882],"Donovan Felton","module-level-access-in-a-django-grc-app",{"title":885,"description":886,"heroImage":887,"category":122,"date":888,"authors":889,"slug":891,"externalUrl":126},"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",[890],"Mikolaj Wawrzyniak","how-gitlab-reduced-code-per-agentic-flow-ratio",{"title":893,"description":894,"heroImage":895,"category":122,"date":896,"authors":897,"slug":899,"externalUrl":126},"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",[898],"Isa Huerga","co-create-h1-2026",{"header":901,"text":902,"button":906,"disclaimer":909},"Start your free\n\n30-day GitLab trial\n",[903,904,905],"GitLab Duo Agent Platform access","Try our most advanced features","Automate complex tasks with AI",{"text":160,"config":907},{"href":908,"dataGaName":163,"dataGaLocation":399},"https://gitlab.com/-/trials/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/blog/","No credit card required.",{"header":911,"blurb":912,"button":913,"secondaryButton":918},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":914,"config":915},"Get your free trial",{"href":916,"dataGaName":163,"dataGaLocation":917},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":641,"config":919},{"href":493,"dataGaName":168,"dataGaLocation":917},1792018374258]