[{"data":1,"prerenderedAt":974},["ShallowReactive",2],{"/blog/feature-highlight-merge-request-approvals":3,"navigation-en-us":185,"banner-en-us":613,"footer-en-us":623,"blog-post-authors-en-us-Job van der Voort":868,"blog-related-posts-en-us-feature-highlight-merge-request-approvals":884,"blog-promotions-en-us":910,"next-steps-en-us":964},{"id":4,"title":5,"authors":6,"body":8,"category":153,"date":154,"description":155,"extension":156,"externalUrl":157,"faq":157,"featured":158,"heroImage":159,"meta":160,"navigation":175,"path":176,"seo":177,"slug":181,"stem":182,"tags":157,"template":183,"updatedDate":157,"__hash__":184},"blogPosts/en-us/blog/feature-highlight-merge-request-approvals.md","Feature Highlight: Merge Request Approvals",[7],"Job van der Voort",{"type":9,"value":10,"toc":140},"minimark",[11,15,23,33,38,41,44,51,56,68,84,88,91,95,98,101,105,108,114,117,121,124,127,130,134],[12,13,14],"p",{},"If you want keep code quality high, it is important that you use a code review\nprocess. In GitLab, the best way to do this is by using Merge Requests.",[12,16,17,18,22],{},"We created merge requests so that only a person with the required\npermission (developer or higher) can merge code into the target branch.\nIf you want more people to review code before it's merged, you can now do this\nwith Merge Request Approvals in ",[19,20,21],"span",{},"GitLab Enterprise Edition",".",[12,24,25],{},[26,27,28,29,32],"em",{},"Note: this is a follow up to our ",[19,30,31],{},"previous feature highlight on approvals",",\nsince we've added additional functionality in GitLab 7.13",[34,35,37],"h2",{"id":36},"how-approvals-work","How Approvals work",[12,39,40],{},"Approvals will block the merging of a merge request until the configured number\nof approvals has been met. This allows you to force a certain amount of people\nto check all the code that goes into important branches in your repository.",[12,42,43],{},"You can set the number of required approvals and you can assign specific approvers\nthat need to approve the merge request. If you set specific approvers, only\nthey will be able to approve the merge request. If you do not, anyone with\ndeveloper permission or higher will be able to approve the merge request.",[12,45,46],{},[47,48],"img",{"alt":49,"src":50},"Approvers in a Merge Request","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782405556/site/Content%20Images/7_13/approvers_mr.png",[52,53,55],"h3",{"id":54},"assigning-approvers","Assigning Approvers",[12,57,58,59,63,64,67],{},"It's possible to use a combination of specific and non-specific approvers,\nfor instance by setting the required number of approvers to ",[60,61,62],"code",{},"3"," and only\n",[60,65,66],{},"Jane"," as an approver.",[12,69,70,71,73,74,77,78,80,81,83],{},"You can even set a higher number of approvers than required approvals, in which\ncase only a subset of the approvers needs to approve the merge request.\nWith one required approver and ",[60,72,66],{}," and ",[60,75,76],{},"John"," set as approvers, either\n",[60,79,66],{}," or ",[60,82,76],{}," need to approve the merge request.",[52,85,87],{"id":86},"default-approvers","Default Approvers",[12,89,90],{},"You can choose the approvers on merge request creation, but a default can be\nset in the project settings. This prevents you from having to change the project\nsettings every time an important code reviewer is unavailable.",[52,92,94],{"id":93},"automatically-resetting-approvals","Automatically Resetting Approvals",[12,96,97],{},"If you want to have all your approvals reset after a new push is made to the\nmerge request, you can configure this. This means that after each push that is\nmade, any previously done approvals are reset.",[12,99,100],{},"If this setting is turned off, approvals will persist, independent of pushes\nto the merge request.",[34,102,104],{"id":103},"getting-started-with-approvals","Getting started with Approvals",[12,106,107],{},"To start using Approvals, visit the settings of your project and set the\nrequired amount of approvers to a value of your choosing, higher than 1.",[12,109,110],{},[47,111],{"alt":112,"src":113},"Setting default suggested approvers for a project","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782405556/site/Content%20Images/7_13/approvers_settings.png",[12,115,116],{},"Here you are also able to set the default approvers, and whether you want to\nreset the approvals on each push to the merge request.",[34,118,120],{"id":119},"future","Future",[12,122,123],{},"We created the Merge Request Approvals on request of our customers. Our goal\nis to add great features to GitLab that benefit everyone that uses them and\ndon't inconvenience anyone that doesn't.",[12,125,126],{},"We're thinking about more improvements to the Merge Request Approvals, the main\nimprovement being automatic suggestions for reviewers, based on the history of\nthe changed files in the merge request.\nFor instance, if Jane worked a lot on a certain class and you submit a change\nto that class, Jane gets suggested to approve your merge request.",[12,128,129],{},"We're interested in hearing what you think about this feature and how we can\nfurther improve it.",[34,131,133],{"id":132},"documentation","Documentation",[12,135,136,137,22],{},"Find our ",[19,138,139],{},"documentation on Merge Request Approvals",{"title":141,"searchDepth":142,"depth":142,"links":143},"",2,[144,150,151,152],{"id":36,"depth":142,"text":37,"children":145},[146,148,149],{"id":54,"depth":147,"text":55},3,{"id":86,"depth":147,"text":87},{"id":93,"depth":147,"text":94},{"id":103,"depth":142,"text":104},{"id":119,"depth":142,"text":120},{"id":132,"depth":142,"text":133},"engineering","2015-07-29","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.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{"excerpt":161},{"type":9,"value":162},[163,165,169],[12,164,14],{},[12,166,17,167,22],{},[19,168,21],{},[12,170,171],{},[26,172,28,173,32],{},[19,174,31],{},true,"/en-us/blog/feature-highlight-merge-request-approvals",{"title":5,"description":155,"ogTitle":5,"ogDescription":155,"noIndex":158,"ogImage":159,"ogUrl":178,"ogSiteName":179,"ogType":180,"canonicalUrls":178},"https://about.gitlab.com/blog/feature-highlight-merge-request-approvals","https://about.gitlab.com","article","feature-highlight-merge-request-approvals","en-us/blog/feature-highlight-merge-request-approvals","BlogPost","WPotH_T6wEZuLmLRImjcyeFf0t939r9t4D8C6W23DzQ",{"logo":186,"freeTrial":191,"sales":196,"login":201,"items":206,"search":533,"minimal":564,"duo":583,"switchNav":592,"pricingDeployment":603},{"config":187},{"href":188,"dataGaName":189,"dataGaLocation":190},"/","gitlab logo","header",{"text":192,"config":193},"Get free trial",{"href":194,"dataGaName":195,"dataGaLocation":190},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":197,"config":198},"Request a demo",{"href":199,"dataGaName":200,"dataGaLocation":190},"/sales/?contact-topic=request-demo","sales",{"text":202,"config":203},"Sign in",{"href":204,"dataGaName":205,"dataGaLocation":190},"https://gitlab.com/users/sign_in/","sign in",[207,236,336,341,455,511],{"text":208,"config":209,"menu":211},"Platform",{"dataNavLevelOne":210},"platform",{"type":212,"columns":213},"cards",[214,220,228],{"title":208,"description":215,"link":216},"The intelligent orchestration platform for DevSecOps",{"text":217,"config":218},"Explore our Platform",{"href":219,"dataGaName":210,"dataGaLocation":190},"/platform/",{"title":221,"description":222,"link":223},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":224,"config":225},"Meet GitLab Duo",{"href":226,"dataGaName":227,"dataGaLocation":190},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":229,"description":230,"link":231},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":232,"config":233},"Learn more",{"href":234,"dataGaName":235,"dataGaLocation":190},"/why-gitlab/","why gitlab",{"text":237,"left":175,"config":238,"menu":240},"Product",{"dataNavLevelOne":239},"solutions",{"type":241,"link":242,"columns":246,"feature":315},"lists",{"text":243,"config":244},"View all Solutions",{"href":245,"dataGaName":239,"dataGaLocation":190},"/solutions/",[247,271,294],{"title":248,"description":249,"link":250,"items":255},"Automation","CI/CD and automation to accelerate deployment",{"config":251},{"icon":252,"href":253,"dataGaName":254,"dataGaLocation":190},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[256,260,263,267],{"text":257,"config":258},"CI/CD",{"href":259,"dataGaLocation":190,"dataGaName":257},"/solutions/continuous-integration/",{"text":221,"config":261},{"href":226,"dataGaLocation":190,"dataGaName":262},"gitlab duo agent platform - product menu",{"text":264,"config":265},"Source Code Management",{"href":266,"dataGaLocation":190,"dataGaName":264},"/solutions/source-code-management/",{"text":268,"config":269},"Automated Software Delivery",{"href":253,"dataGaLocation":190,"dataGaName":270},"Automated software delivery",{"title":272,"description":273,"link":274,"items":279},"Security","Deliver code faster without compromising security",{"config":275},{"href":276,"dataGaName":277,"dataGaLocation":190,"icon":278},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[280,284,289],{"text":281,"config":282},"Application Security Testing",{"href":276,"dataGaName":283,"dataGaLocation":190},"Application security testing",{"text":285,"config":286},"Software Supply Chain Security",{"href":287,"dataGaLocation":190,"dataGaName":288},"/solutions/supply-chain/","Software supply chain security",{"text":290,"config":291},"Software Compliance",{"href":292,"dataGaName":293,"dataGaLocation":190},"/solutions/software-compliance/","software compliance",{"title":295,"link":296,"items":301},"Measurement",{"config":297},{"icon":298,"href":299,"dataGaName":300,"dataGaLocation":190},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[302,306,310],{"text":303,"config":304},"Visibility & Measurement",{"href":299,"dataGaLocation":190,"dataGaName":305},"Visibility and Measurement",{"text":307,"config":308},"Value Stream Management",{"href":309,"dataGaLocation":190,"dataGaName":307},"/solutions/value-stream-management/",{"text":311,"config":312},"Analytics & Insights",{"href":313,"dataGaLocation":190,"dataGaName":314},"/solutions/analytics-and-insights/","Analytics and insights",{"title":316,"type":241,"items":317},"GitLab for",[318,324,330],{"text":319,"config":320},"Enterprise",{"icon":321,"href":322,"dataGaLocation":190,"dataGaName":323},"Building","/enterprise/","enterprise",{"text":325,"config":326},"Small Business",{"icon":327,"href":328,"dataGaLocation":190,"dataGaName":329},"Work","/small-business/","small business",{"text":331,"config":332},"Public Sector",{"icon":333,"href":334,"dataGaLocation":190,"dataGaName":335},"Organization","/solutions/public-sector/","public sector",{"text":337,"config":338},"Pricing",{"href":339,"dataGaName":340,"dataGaLocation":190,"dataNavLevelOne":340},"/pricing/","pricing",{"text":342,"config":343,"menu":345},"Resources",{"dataNavLevelOne":344},"resources",{"type":241,"link":346,"columns":350,"feature":444},{"text":347,"config":348},"View all resources",{"href":349,"dataGaName":344,"dataGaLocation":190},"/resources/",[351,384,411],{"title":352,"items":353},"Getting started",[354,359,364,369,374,379],{"text":355,"config":356},"Install",{"href":357,"dataGaName":358,"dataGaLocation":190},"/install/","install",{"text":360,"config":361},"Quick start guides",{"href":362,"dataGaName":363,"dataGaLocation":190},"/get-started/","quick setup checklists",{"text":365,"config":366},"Learn",{"href":367,"dataGaLocation":190,"dataGaName":368},"https://university.gitlab.com/","learn",{"text":370,"config":371},"Product documentation",{"href":372,"dataGaName":373,"dataGaLocation":190},"https://docs.gitlab.com/","product documentation",{"text":375,"config":376},"Best practice videos",{"href":377,"dataGaName":378,"dataGaLocation":190},"/getting-started-videos/","best practice videos",{"text":380,"config":381},"Integrations",{"href":382,"dataGaName":383,"dataGaLocation":190},"/integrations/","integrations",{"title":385,"items":386},"Discover",[387,392,397,402,406],{"text":388,"config":389},"Customer success stories",{"href":390,"dataGaName":391,"dataGaLocation":190},"/customers/","customer success stories",{"text":393,"config":394},"Blog",{"href":395,"dataGaName":396,"dataGaLocation":190},"/blog/","blog",{"text":398,"config":399},"Demo Hub",{"href":400,"dataGaName":401,"dataGaLocation":190},"/demo-hub/","demo hub",{"text":403,"config":404},"The Source",{"href":405,"dataGaName":396,"dataGaLocation":190},"/the-source/",{"text":407,"config":408},"Remote",{"href":409,"dataGaName":410,"dataGaLocation":190},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":412,"items":413},"Connect",[414,419,424,429,434,439],{"text":415,"config":416},"GitLab Services",{"href":417,"dataGaName":418,"dataGaLocation":190},"/services/","services",{"text":420,"config":421},"Contribute",{"href":422,"dataGaName":423,"dataGaLocation":190},"https://contributors.gitlab.com","contribute",{"text":425,"config":426},"Community",{"href":427,"dataGaName":428,"dataGaLocation":190},"/community/","community",{"text":430,"config":431},"Forum",{"href":432,"dataGaName":433,"dataGaLocation":190},"https://forum.gitlab.com/","forum",{"text":435,"config":436},"Events",{"href":437,"dataGaName":438,"dataGaLocation":190},"/events/","events",{"text":440,"config":441},"Partners",{"href":442,"dataGaName":443,"dataGaLocation":190},"/partners/","partners",{"config":445,"title":448,"text":449,"link":450},{"background":446,"textColor":447},"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":451,"config":452},"Read the latest",{"href":453,"dataGaName":454,"dataGaLocation":190},"/whats-new/","whats new",{"text":456,"config":457,"menu":459},"Company",{"dataNavLevelOne":458},"company",{"type":241,"columns":460},[461],{"items":462},[463,468,474,476,481,486,491,496,501,506],{"text":464,"config":465},"About",{"href":466,"dataGaName":467,"dataGaLocation":190},"/company/","about",{"text":469,"config":470,"footerGa":473},"Jobs",{"href":471,"dataGaName":472,"dataGaLocation":190},"/jobs/","jobs",{"dataGaName":472},{"text":435,"config":475},{"href":437,"dataGaName":438,"dataGaLocation":190},{"text":477,"config":478},"Leadership",{"href":479,"dataGaName":480,"dataGaLocation":190},"/company/team/e-group/","leadership",{"text":482,"config":483},"Handbook",{"href":484,"dataGaName":485,"dataGaLocation":190},"https://handbook.gitlab.com/","handbook",{"text":487,"config":488},"Investor relations",{"href":489,"dataGaName":490,"dataGaLocation":190},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":492,"config":493},"Trust Center",{"href":494,"dataGaName":495,"dataGaLocation":190},"/security/","trust center",{"text":497,"config":498},"AI Transparency Center",{"href":499,"dataGaName":500,"dataGaLocation":190},"/ai-transparency-center/","ai transparency center",{"text":502,"config":503},"Newsletter",{"href":504,"dataGaName":505,"dataGaLocation":190},"/company/contact/#contact-forms","newsletter",{"text":507,"config":508},"Press",{"href":509,"dataGaName":510,"dataGaLocation":190},"/press/","press",{"text":512,"config":513,"menu":514},"Contact us",{"dataNavLevelOne":458},{"type":241,"columns":515},[516],{"items":517},[518,523,528],{"text":519,"config":520},"Talk to sales",{"href":521,"dataGaName":522,"dataGaLocation":190},"/sales/","talk to sales",{"text":524,"config":525},"Support portal",{"href":526,"dataGaName":527,"dataGaLocation":190},"https://support.gitlab.com/hc/en-us","support portal",{"text":529,"config":530},"Customer portal",{"href":531,"dataGaName":532,"dataGaLocation":190},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":534,"login":535,"suggestions":542},"Close",{"text":536,"link":537},"To search repositories and projects, login to",{"text":538,"config":539},"gitlab.com",{"href":204,"dataGaName":540,"dataGaLocation":541},"search login","search",{"text":543,"default":544},"Suggestions",[545,547,551,553,557,561],{"text":221,"config":546},{"href":226,"dataGaName":221,"dataGaLocation":541},{"text":548,"config":549},"Code Suggestions (AI)",{"href":550,"dataGaName":548,"dataGaLocation":541},"/solutions/code-suggestions/",{"text":257,"config":552},{"href":259,"dataGaName":257,"dataGaLocation":541},{"text":554,"config":555},"GitLab on AWS",{"href":556,"dataGaName":554,"dataGaLocation":541},"/partners/technology-partners/aws/",{"text":558,"config":559},"GitLab on Google Cloud",{"href":560,"dataGaName":558,"dataGaLocation":541},"/partners/technology-partners/google-cloud-platform/",{"text":562,"config":563},"Why GitLab?",{"href":234,"dataGaName":562,"dataGaLocation":541},{"freeTrial":565,"mobileIcon":570,"desktopIcon":575,"secondaryButton":578},{"text":566,"config":567},"Start free trial",{"href":568,"dataGaName":195,"dataGaLocation":569},"https://gitlab.com/-/trials/new/","nav",{"altText":571,"config":572},"Gitlab Icon",{"src":573,"dataGaName":574,"dataGaLocation":569},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":571,"config":576},{"src":577,"dataGaName":574,"dataGaLocation":569},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":579,"config":580},"Get Started",{"href":581,"dataGaName":582,"dataGaLocation":569},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":584,"mobileIcon":588,"desktopIcon":590},{"text":585,"config":586},"Learn more about GitLab Duo",{"href":226,"dataGaName":587,"dataGaLocation":569},"gitlab duo",{"altText":571,"config":589},{"src":573,"dataGaName":574,"dataGaLocation":569},{"altText":571,"config":591},{"src":577,"dataGaName":574,"dataGaLocation":569},{"button":593,"mobileIcon":598,"desktopIcon":600},{"text":594,"config":595},"/switch",{"href":596,"dataGaName":597,"dataGaLocation":569},"#contact","switch",{"altText":571,"config":599},{"src":573,"dataGaName":574,"dataGaLocation":569},{"altText":571,"config":601},{"src":602,"dataGaName":574,"dataGaLocation":569},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":604,"mobileIcon":609,"desktopIcon":611},{"text":605,"config":606},"Back to pricing",{"href":339,"dataGaName":607,"dataGaLocation":569,"icon":608},"back to pricing","GoBack",{"altText":571,"config":610},{"src":573,"dataGaName":574,"dataGaLocation":569},{"altText":571,"config":612},{"src":577,"dataGaName":574,"dataGaLocation":569},{"title":614,"titleMobile":615,"button":616,"config":621},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":232,"config":617},{"href":618,"dataGaName":619,"dataGaLocation":620},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":622,"disabled":158},"release",{"data":624},{"text":625,"source":626,"edit":632,"contribute":637,"config":642,"items":647,"minimal":857},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":627,"config":628},"View page source",{"href":629,"dataGaName":630,"dataGaLocation":631},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":633,"config":634},"Edit this page",{"href":635,"dataGaName":636,"dataGaLocation":631},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":638,"config":639},"Please contribute",{"href":640,"dataGaName":641,"dataGaLocation":631},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":643,"facebook":644,"youtube":645,"linkedin":646},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[648,695,749,793,825],{"title":337,"links":649,"subMenu":664},[650,654,659],{"text":651,"config":652},"View plans",{"href":339,"dataGaName":653,"dataGaLocation":631},"view plans",{"text":655,"config":656},"Why Premium?",{"href":657,"dataGaName":658,"dataGaLocation":631},"/pricing/premium/","why premium",{"text":660,"config":661},"Why Ultimate?",{"href":662,"dataGaName":663,"dataGaLocation":631},"/pricing/ultimate/","why ultimate",[665],{"title":666,"links":667},"Contact Us",[668,671,673,675,680,685,690],{"text":669,"config":670},"Contact sales",{"href":521,"dataGaName":200,"dataGaLocation":631},{"text":524,"config":672},{"href":526,"dataGaName":527,"dataGaLocation":631},{"text":529,"config":674},{"href":531,"dataGaName":532,"dataGaLocation":631},{"text":676,"config":677},"Status",{"href":678,"dataGaName":679,"dataGaLocation":631},"https://status.gitlab.com/","status",{"text":681,"config":682},"Terms of use",{"href":683,"dataGaName":684,"dataGaLocation":631},"/terms/","terms of use",{"text":686,"config":687},"Privacy statement",{"href":688,"dataGaName":689,"dataGaLocation":631},"/privacy/","privacy statement",{"text":691,"config":692},"Cookie preferences",{"dataGaName":693,"dataGaLocation":631,"id":694,"isOneTrustButton":175},"cookie preferences","ot-sdk-btn",{"title":237,"links":696,"subMenu":705},[697,701],{"text":698,"config":699},"DevSecOps platform",{"href":219,"dataGaName":700,"dataGaLocation":631},"devsecops platform",{"text":702,"config":703},"AI-Assisted Development",{"href":226,"dataGaName":704,"dataGaLocation":631},"ai-assisted development",[706],{"title":707,"links":708},"Topics",[709,714,719,724,729,734,739,744],{"text":710,"config":711},"CICD",{"href":712,"dataGaName":713,"dataGaLocation":631},"/topics/ci-cd/","cicd",{"text":715,"config":716},"GitOps",{"href":717,"dataGaName":718,"dataGaLocation":631},"/topics/gitops/","gitops",{"text":720,"config":721},"DevOps",{"href":722,"dataGaName":723,"dataGaLocation":631},"/topics/devops/","devops",{"text":725,"config":726},"Version Control",{"href":727,"dataGaName":728,"dataGaLocation":631},"/topics/version-control/","version control",{"text":730,"config":731},"DevSecOps",{"href":732,"dataGaName":733,"dataGaLocation":631},"/topics/devsecops/","devsecops",{"text":735,"config":736},"Cloud Native",{"href":737,"dataGaName":738,"dataGaLocation":631},"/topics/cloud-native/","cloud native",{"text":740,"config":741},"AI for Coding",{"href":742,"dataGaName":743,"dataGaLocation":631},"/topics/devops/ai-for-coding/","ai for coding",{"text":745,"config":746},"Agentic AI",{"href":747,"dataGaName":748,"dataGaLocation":631},"/topics/agentic-ai/","agentic ai",{"title":750,"links":751},"Solutions",[752,754,756,761,765,768,772,775,777,780,783,788],{"text":281,"config":753},{"href":276,"dataGaName":281,"dataGaLocation":631},{"text":270,"config":755},{"href":253,"dataGaName":254,"dataGaLocation":631},{"text":757,"config":758},"Agile development",{"href":759,"dataGaName":760,"dataGaLocation":631},"/solutions/agile-delivery/","agile delivery",{"text":762,"config":763},"SCM",{"href":266,"dataGaName":764,"dataGaLocation":631},"source code management",{"text":710,"config":766},{"href":259,"dataGaName":767,"dataGaLocation":631},"continuous integration & delivery",{"text":769,"config":770},"Value stream management",{"href":309,"dataGaName":771,"dataGaLocation":631},"value stream management",{"text":715,"config":773},{"href":774,"dataGaName":718,"dataGaLocation":631},"/solutions/gitops/",{"text":319,"config":776},{"href":322,"dataGaName":323,"dataGaLocation":631},{"text":778,"config":779},"Small business",{"href":328,"dataGaName":329,"dataGaLocation":631},{"text":781,"config":782},"Public sector",{"href":334,"dataGaName":335,"dataGaLocation":631},{"text":784,"config":785},"Education",{"href":786,"dataGaName":787,"dataGaLocation":631},"/solutions/education/","education",{"text":789,"config":790},"Financial services",{"href":791,"dataGaName":792,"dataGaLocation":631},"/solutions/finance/","financial services",{"title":342,"links":794},[795,797,799,801,804,806,809,811,813,815,817,819,821,823],{"text":355,"config":796},{"href":357,"dataGaName":358,"dataGaLocation":631},{"text":360,"config":798},{"href":362,"dataGaName":363,"dataGaLocation":631},{"text":365,"config":800},{"href":367,"dataGaName":368,"dataGaLocation":631},{"text":370,"config":802},{"href":372,"dataGaName":803,"dataGaLocation":631},"docs",{"text":393,"config":805},{"href":395,"dataGaName":396,"dataGaLocation":631},{"text":807,"config":808},"What's new",{"href":453,"dataGaName":454,"dataGaLocation":631},{"text":388,"config":810},{"href":390,"dataGaName":391,"dataGaLocation":631},{"text":407,"config":812},{"href":409,"dataGaName":410,"dataGaLocation":631},{"text":415,"config":814},{"href":417,"dataGaName":418,"dataGaLocation":631},{"text":420,"config":816},{"href":422,"dataGaName":423,"dataGaLocation":631},{"text":425,"config":818},{"href":427,"dataGaName":428,"dataGaLocation":631},{"text":430,"config":820},{"href":432,"dataGaName":433,"dataGaLocation":631},{"text":435,"config":822},{"href":437,"dataGaName":438,"dataGaLocation":631},{"text":440,"config":824},{"href":442,"dataGaName":443,"dataGaLocation":631},{"title":456,"links":826},[827,829,831,833,835,837,841,846,848,850,852],{"text":464,"config":828},{"href":466,"dataGaName":458,"dataGaLocation":631},{"text":469,"config":830},{"href":471,"dataGaName":472,"dataGaLocation":631},{"text":477,"config":832},{"href":479,"dataGaName":480,"dataGaLocation":631},{"text":482,"config":834},{"href":484,"dataGaName":485,"dataGaLocation":631},{"text":487,"config":836},{"href":489,"dataGaName":490,"dataGaLocation":631},{"text":838,"config":839},"Sustainability",{"href":840,"dataGaName":838,"dataGaLocation":631},"/sustainability/",{"text":842,"config":843},"Diversity, inclusion and belonging (DIB)",{"href":844,"dataGaName":845,"dataGaLocation":631},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":492,"config":847},{"href":494,"dataGaName":495,"dataGaLocation":631},{"text":502,"config":849},{"href":504,"dataGaName":505,"dataGaLocation":631},{"text":507,"config":851},{"href":509,"dataGaName":510,"dataGaLocation":631},{"text":853,"config":854},"Modern Slavery Transparency Statement",{"href":855,"dataGaName":856,"dataGaLocation":631},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":858},[859,862,865],{"text":860,"config":861},"Terms",{"href":683,"dataGaName":684,"dataGaLocation":631},{"text":863,"config":864},"Cookies",{"dataGaName":693,"dataGaLocation":631,"id":694,"isOneTrustButton":175},{"text":866,"config":867},"Privacy",{"href":688,"dataGaName":689,"dataGaLocation":631},[869],{"id":870,"title":871,"body":157,"config":872,"content":874,"description":157,"extension":878,"meta":879,"navigation":175,"path":880,"seo":881,"stem":882,"__hash__":883},"blogAuthors/en-us/blog/authors/job-van-der-voort.yml","Job Van Der Voort",{"template":873},"BlogAuthor",{"name":7,"config":875},{"headshot":876,"ctfId":877},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","Job-van-der-Voort","yml",{},"/en-us/blog/authors/job-van-der-voort",{},"en-us/blog/authors/job-van-der-voort","w8TOn_hGFgQQOv35VnObjxoMM-hviRbwtijFETooJCM",[885,894,902],{"title":886,"description":887,"heroImage":888,"category":153,"date":889,"authors":890,"slug":893,"externalUrl":157},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[891,892],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":895,"description":896,"heroImage":897,"category":153,"date":898,"authors":899,"slug":901,"externalUrl":157},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[900],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":903,"description":904,"heroImage":905,"category":153,"date":906,"authors":907,"slug":909,"externalUrl":157},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[908],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":911},[912,926,938,950],{"id":913,"categories":914,"header":916,"text":917,"button":918,"image":923},"ai-modernization",[915],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":919,"config":920},"Get your AI maturity score",{"href":921,"dataGaName":922,"dataGaLocation":396},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":924},{"src":925},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":927,"categories":928,"header":930,"text":917,"button":931,"image":935},"devops-modernization",[929,733],"product","Are you just managing tools or shipping innovation?",{"text":932,"config":933},"Get your DevOps maturity score",{"href":934,"dataGaName":922,"dataGaLocation":396},"/assessments/devops-modernization-assessment/",{"config":936},{"src":937},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":939,"categories":940,"header":942,"text":917,"button":943,"image":947},"security-modernization",[941],"security","Are you trading speed for security?",{"text":944,"config":945},"Get your security maturity score",{"href":946,"dataGaName":922,"dataGaLocation":396},"/assessments/security-modernization-assessment/",{"config":948},{"src":949},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":951,"paths":952,"header":955,"text":956,"button":957,"image":962},"github-azure-migration",[953,954],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":958,"config":959},"See how GitLab compares to GitHub",{"href":960,"dataGaName":961,"dataGaLocation":396},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":963},{"src":937},{"header":965,"blurb":966,"button":967,"secondaryButton":972},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":968,"config":969},"Get your free trial",{"href":970,"dataGaName":195,"dataGaLocation":971},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":669,"config":973},{"href":521,"dataGaName":200,"dataGaLocation":971},1786803766825]