[{"data":1,"prerenderedAt":1021},["ShallowReactive",2],{"/blog/best-practices-customer-feature-request":3,"navigation-en-us":222,"banner-en-us":648,"footer-en-us":658,"blog-post-authors-en-us-Christina Hupy, Ph.D.|Neil McCorrison":903,"blog-related-posts-en-us-best-practices-customer-feature-request":931,"blog-promotions-en-us":957,"next-steps-en-us":1011},{"id":4,"title":5,"authors":6,"body":9,"category":199,"date":200,"description":201,"extension":202,"externalUrl":203,"faq":203,"featured":204,"heroImage":205,"meta":206,"navigation":207,"path":208,"seo":209,"slug":213,"stem":214,"tags":215,"template":220,"updatedDate":203,"__hash__":221},"blogPosts/en-us/blog/best-practices-customer-feature-request.md","How to incorporate private customer needs into a public product roadmap",[7,8],"Christina Hupy, Ph.D.","Neil McCorrison",{"type":10,"value":11,"toc":195},"minimark",[12,16,19,29,50,57,66,69,84,87,106,115,124,130,154,157,160,179,182],[13,14,15],"p",{},"Effectively communicating a customer’s private needs to product teams is essential to a product’s success, but it can be a tricky undertaking.",[13,17,18],{},"Teams can face several challenges in communicating and tracking customers' requests, including protecting customer confidentiality, tracking priority and progress, and making sure the product team is getting actionable feedback that can be incorporated into product milestones.",[13,20,21,22,28],{},"This blog post shares GitLab's best practices and lessons learned, as well as a video conversation between GitLab CEO Sid Sijbrandij and Fleet CEO ",[23,24,27],"a",{"href":25,"rel":26},"https://www.linkedin.com/in/mikermcneil/",[],"Mike McNeil",".",[13,30,31,32,37,38,43,44,49],{},"In line with GitLab's ",[23,33,36],{"href":34,"rel":35},"https://handbook.gitlab.com/handbook/company/stewardship/",[],"open core model"," and ",[23,39,42],{"href":40,"rel":41},"https://handbook.gitlab.com/handbook/values/#transparency",[],"transparency value",", our product roadmap is public and the product team uses ",[23,45,48],{"href":46,"rel":47},"https://gitlab.com/gitlab-org/gitlab/-/work_items",[],"public issue trackers"," for feature requests and to plan the work. Because the issues are public, customers and community members can see how the product team works, what direction we are headed, and what the priorities are. Contributors can even decide to create a feature themselves.",[13,51,52,53],{},"Ever wonder what a DevOps Platform could do for your team? ",[23,54,56],{"href":55},"/solutions/devops-platform/","Here's what you need to know",[13,58,59,60,65],{},"When a customer indicates a feature request to a technical account manager (TAM), the manager searches for the relevant open feature request in the product teams' issue tracker and adds a comment with generic details about the customer such as number of users and product. If an issue for that feature request does not already exist, the technical account manager can create an issue with the ",[23,61,64],{"href":62,"rel":63},"https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20Proposal%20-%20lean",[],"Feature Proposal"," issue template then and add the customer’s request as a comment.",[13,67,68],{},"For example, the comment should include the following:",[70,71,72],"blockquote",{},[13,73,74,75,79,80,83],{},"Hello ",[76,77,78],"code",{},"@product-manager",",  an Ultimate customer with 1500 users (",[76,81,82],{},"salesforce-link",") would like to see this feature prioritized, ideally within the next 6 months. They need this feature in order to X, which is important to them because Y, and they do not currently have a workaround. Additionally, releasing this feature would result in an estimated 250 additional users.",[13,85,86],{},"The TAM includes a link to the account in the customer relationship management system (CRM), in GitLab’s case Salesforce, so the internal teams can view the details. We even have a feedback template to ensure the proper details are captured in the comment. The comment is public but the record in the CRM is private.",[13,88,89,90,94,95,94,98,101,102,105],{},"The product manager reviews the request and responds. Relevant labels are added based on priority. For example, labels include ",[91,92,93],"strong",{},"critical requests",", ",[91,96,97],{},"high-priority requests",[91,99,100],{},"low priority requests"," or ",[91,103,104],{},"promised to a customer",". Milestones can be assigned to track timelines and make sure the feature ships on time. The feature tracking issue should be maintained regularly and acts as the single source of truth on the customer needs. These issues can also be reviewed for metrics on previously delivered feature requests.",[13,107,108],{},[91,109,110,111],{},"Elevating your DevOps skills? Join us at ",[23,112,114],{"href":113},"/events/","Commit at KubeCon - Oct. 11!",[13,116,117,118,123],{},"In this case, a noisy feature request issue with comments from customers is a good thing. It helps the product manager directly see where the action is and how customers would benefit, and it also helps when prioritizing what feature ships next. Seeing direct input from the customers provides context and also creates developer empathy and connection with the end user. Additional team members, including ",[23,119,122],{"href":120,"rel":121},"https://handbook.gitlab.com/job-description-library/sales/solutions-architect/",[],"solution architects"," find it useful to subscribe to these issues, keeping them automatically updated on progress and discussion by the product team.",[13,125,126,129],{},[91,127,128],{},"Getting the product team involved early on is essential"," to the success of this workflow. Another essential element is that the CSMs bring their customers'feedback directly to the issue where the work is being planned and prioritized.",[13,131,132,135,136,141,142,147,148,153],{},[91,133,134],{},"Contributing to GitLab:","   Once a product manager has triaged an issue and applied the appropriate ",[23,137,140],{"href":138,"rel":139},"https://handbook.gitlab.com/handbook/product-development/how-we-work/product-development-flow/",[],"Product Development Workflow"," labels, it may be deemed that the feature is ready for the customer or community to help build the feature directly. Our motto is \"Everyone Can Contribute\", and the ~\"Accepting Merge Requests\" label (",[23,143,146],{"href":144,"rel":145},"https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/developer-experience/triage-operations/#sts=Accepting%20merge%20requests",[],"handbook",") is a great way to identify when a feature is ready for a community contribution. Customers who wish to contribute back to GitLab can ask for a ",[23,149,152],{"href":150,"rel":151},"https://handbook.gitlab.com/job-description-library/expert/merge-request-coach/",[],"Merge Request Coach"," to help guide them through the process to ensure timely review and alignment with our engineering best practices.",[13,155,156],{},"GitLab learned early on that creating a separate issue for customer feedback can get complicated and ends up being disjointed from where the product managers are doing their work.",[13,158,159],{},"In summary, best practices for delivering customer feature requests to the product team include:",[161,162,163,167,170,173,176],"ul",{},[164,165,166],"li",{},"Ensure the feedback is directly where the product managers are working and prioritizing features.",[164,168,169],{},"Provide only generic details on the customer with a link to internal confidential information, but provide as much detail as possible regarding the customer's use case and business need.",[164,171,172],{},"Share the feature request issue back with the customer. If they feel inclined, they can comment and add details. This builds trust between the customer, their account team, and the product team.",[164,174,175],{},"Labels and milestones are essential for tracking. If something is critical to the customer, make sure the labels and milestones indicate as such.",[164,177,178],{},"The feature request issue should act as the single source of truth for the customers' needs; aggregating this information elsewhere results in a disconnect between the need and the work.",[13,180,181],{},"Watch the full discussion between Sid and Mike:",[183,184,187,188],"figure",{"className":185},[186],"video_container","\n  ",[189,190,194],"iframe",{"src":191,"frameBorder":192,"allowFullScreen":193},"https://www.youtube.com/embed/JH2cFhoUzsI","0","true"," ",{"title":196,"searchDepth":197,"depth":197,"links":198},"",2,[],"engineering","2021-09-23","We've had lots of experience documenting and tracking private customer feature requests effectively. Here's our best advice and how to get the most out of GitLab issues and issue trackers.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{},true,"/en-us/blog/best-practices-customer-feature-request",{"title":5,"description":201,"ogTitle":5,"ogDescription":201,"noIndex":204,"ogImage":205,"ogUrl":210,"ogSiteName":211,"ogType":212,"canonicalUrls":210},"https://about.gitlab.com/blog/best-practices-customer-feature-request","https://about.gitlab.com","article","best-practices-customer-feature-request","en-us/blog/best-practices-customer-feature-request",[216,217,218,219],"workflow","features","customers","collaboration","BlogPost","CskQwUh1D9IohQIsEY78LgLKS52JZnkkHllE7-Dnebk",{"logo":223,"freeTrial":228,"sales":233,"login":238,"items":243,"search":568,"minimal":599,"duo":618,"switchNav":627,"pricingDeployment":638},{"config":224},{"href":225,"dataGaName":226,"dataGaLocation":227},"/","gitlab logo","header",{"text":229,"config":230},"Get free trial",{"href":231,"dataGaName":232,"dataGaLocation":227},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":234,"config":235},"Request a demo",{"href":236,"dataGaName":237,"dataGaLocation":227},"/sales/?contact-topic=request-demo","sales",{"text":239,"config":240},"Sign in",{"href":241,"dataGaName":242,"dataGaLocation":227},"https://gitlab.com/users/sign_in/","sign in",[244,273,373,378,491,546],{"text":245,"config":246,"menu":248},"Platform",{"dataNavLevelOne":247},"platform",{"type":249,"columns":250},"cards",[251,257,265],{"title":245,"description":252,"link":253},"The intelligent orchestration platform for DevSecOps",{"text":254,"config":255},"Explore our Platform",{"href":256,"dataGaName":247,"dataGaLocation":227},"/platform/",{"title":258,"description":259,"link":260},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":261,"config":262},"Meet GitLab Duo",{"href":263,"dataGaName":264,"dataGaLocation":227},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":266,"description":267,"link":268},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":269,"config":270},"Learn more",{"href":271,"dataGaName":272,"dataGaLocation":227},"/why-gitlab/","why gitlab",{"text":274,"left":207,"config":275,"menu":277},"Product",{"dataNavLevelOne":276},"solutions",{"type":278,"link":279,"columns":283,"feature":352},"lists",{"text":280,"config":281},"View all Solutions",{"href":282,"dataGaName":276,"dataGaLocation":227},"/solutions/",[284,308,331],{"title":285,"description":286,"link":287,"items":292},"Automation","CI/CD and automation to accelerate deployment",{"config":288},{"icon":289,"href":290,"dataGaName":291,"dataGaLocation":227},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[293,297,300,304],{"text":294,"config":295},"CI/CD",{"href":296,"dataGaLocation":227,"dataGaName":294},"/solutions/continuous-integration/",{"text":258,"config":298},{"href":263,"dataGaLocation":227,"dataGaName":299},"gitlab duo agent platform - product menu",{"text":301,"config":302},"Source Code Management",{"href":303,"dataGaLocation":227,"dataGaName":301},"/solutions/source-code-management/",{"text":305,"config":306},"Automated Software Delivery",{"href":290,"dataGaLocation":227,"dataGaName":307},"Automated software delivery",{"title":309,"description":310,"link":311,"items":316},"Security","Deliver code faster without compromising security",{"config":312},{"href":313,"dataGaName":314,"dataGaLocation":227,"icon":315},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[317,321,326],{"text":318,"config":319},"Application Security Testing",{"href":313,"dataGaName":320,"dataGaLocation":227},"Application security testing",{"text":322,"config":323},"Software Supply Chain Security",{"href":324,"dataGaLocation":227,"dataGaName":325},"/solutions/supply-chain/","Software supply chain security",{"text":327,"config":328},"Software Compliance",{"href":329,"dataGaName":330,"dataGaLocation":227},"/solutions/software-compliance/","software compliance",{"title":332,"link":333,"items":338},"Measurement",{"config":334},{"icon":335,"href":336,"dataGaName":337,"dataGaLocation":227},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[339,343,347],{"text":340,"config":341},"Visibility & Measurement",{"href":336,"dataGaLocation":227,"dataGaName":342},"Visibility and Measurement",{"text":344,"config":345},"Value Stream Management",{"href":346,"dataGaLocation":227,"dataGaName":344},"/solutions/value-stream-management/",{"text":348,"config":349},"Analytics & Insights",{"href":350,"dataGaLocation":227,"dataGaName":351},"/solutions/analytics-and-insights/","Analytics and insights",{"title":353,"type":278,"items":354},"GitLab for",[355,361,367],{"text":356,"config":357},"Enterprise",{"icon":358,"href":359,"dataGaLocation":227,"dataGaName":360},"Building","/enterprise/","enterprise",{"text":362,"config":363},"Small Business",{"icon":364,"href":365,"dataGaLocation":227,"dataGaName":366},"Work","/small-business/","small business",{"text":368,"config":369},"Public Sector",{"icon":370,"href":371,"dataGaLocation":227,"dataGaName":372},"Organization","/solutions/public-sector/","public sector",{"text":374,"config":375},"Pricing",{"href":376,"dataGaName":377,"dataGaLocation":227,"dataNavLevelOne":377},"/pricing/","pricing",{"text":379,"config":380,"menu":382},"Resources",{"dataNavLevelOne":381},"resources",{"type":278,"link":383,"columns":387,"feature":480},{"text":384,"config":385},"View all resources",{"href":386,"dataGaName":381,"dataGaLocation":227},"/resources/",[388,421,448],{"title":389,"items":390},"Getting started",[391,396,401,406,411,416],{"text":392,"config":393},"Install",{"href":394,"dataGaName":395,"dataGaLocation":227},"/install/","install",{"text":397,"config":398},"Quick start guides",{"href":399,"dataGaName":400,"dataGaLocation":227},"/get-started/","quick setup checklists",{"text":402,"config":403},"Learn",{"href":404,"dataGaLocation":227,"dataGaName":405},"https://university.gitlab.com/","learn",{"text":407,"config":408},"Product documentation",{"href":409,"dataGaName":410,"dataGaLocation":227},"https://docs.gitlab.com/","product documentation",{"text":412,"config":413},"Best practice videos",{"href":414,"dataGaName":415,"dataGaLocation":227},"/getting-started-videos/","best practice videos",{"text":417,"config":418},"Integrations",{"href":419,"dataGaName":420,"dataGaLocation":227},"/integrations/","integrations",{"title":422,"items":423},"Discover",[424,429,434,439,443],{"text":425,"config":426},"Customer success stories",{"href":427,"dataGaName":428,"dataGaLocation":227},"/customers/","customer success stories",{"text":430,"config":431},"Blog",{"href":432,"dataGaName":433,"dataGaLocation":227},"/blog/","blog",{"text":435,"config":436},"Demo Hub",{"href":437,"dataGaName":438,"dataGaLocation":227},"/demo-hub/","demo hub",{"text":440,"config":441},"The Source",{"href":442,"dataGaName":433,"dataGaLocation":227},"/the-source/",{"text":444,"config":445},"Remote",{"href":446,"dataGaName":447,"dataGaLocation":227},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":449,"items":450},"Connect",[451,456,461,466,471,475],{"text":452,"config":453},"GitLab Services",{"href":454,"dataGaName":455,"dataGaLocation":227},"/services/","services",{"text":457,"config":458},"Contribute",{"href":459,"dataGaName":460,"dataGaLocation":227},"https://contributors.gitlab.com","contribute",{"text":462,"config":463},"Community",{"href":464,"dataGaName":465,"dataGaLocation":227},"/community/","community",{"text":467,"config":468},"Forum",{"href":469,"dataGaName":470,"dataGaLocation":227},"https://forum.gitlab.com/","forum",{"text":472,"config":473},"Events",{"href":113,"dataGaName":474,"dataGaLocation":227},"events",{"text":476,"config":477},"Partners",{"href":478,"dataGaName":479,"dataGaLocation":227},"/partners/","partners",{"config":481,"title":484,"text":485,"link":486},{"background":482,"textColor":483},"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":487,"config":488},"Read the latest",{"href":489,"dataGaName":490,"dataGaLocation":227},"/whats-new/","whats new",{"text":492,"config":493,"menu":495},"Company",{"dataNavLevelOne":494},"company",{"type":278,"columns":496},[497],{"items":498},[499,504,510,512,517,521,526,531,536,541],{"text":500,"config":501},"About",{"href":502,"dataGaName":503,"dataGaLocation":227},"/company/","about",{"text":505,"config":506,"footerGa":509},"Jobs",{"href":507,"dataGaName":508,"dataGaLocation":227},"/jobs/","jobs",{"dataGaName":508},{"text":472,"config":511},{"href":113,"dataGaName":474,"dataGaLocation":227},{"text":513,"config":514},"Leadership",{"href":515,"dataGaName":516,"dataGaLocation":227},"/company/team/e-group/","leadership",{"text":518,"config":519},"Handbook",{"href":520,"dataGaName":146,"dataGaLocation":227},"https://handbook.gitlab.com/",{"text":522,"config":523},"Investor relations",{"href":524,"dataGaName":525,"dataGaLocation":227},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":527,"config":528},"Trust Center",{"href":529,"dataGaName":530,"dataGaLocation":227},"/security/","trust center",{"text":532,"config":533},"AI Transparency Center",{"href":534,"dataGaName":535,"dataGaLocation":227},"/ai-transparency-center/","ai transparency center",{"text":537,"config":538},"Newsletter",{"href":539,"dataGaName":540,"dataGaLocation":227},"/company/contact/#contact-forms","newsletter",{"text":542,"config":543},"Press",{"href":544,"dataGaName":545,"dataGaLocation":227},"/press/","press",{"text":547,"config":548,"menu":549},"Contact us",{"dataNavLevelOne":494},{"type":278,"columns":550},[551],{"items":552},[553,558,563],{"text":554,"config":555},"Talk to sales",{"href":556,"dataGaName":557,"dataGaLocation":227},"/sales/","talk to sales",{"text":559,"config":560},"Support portal",{"href":561,"dataGaName":562,"dataGaLocation":227},"https://support.gitlab.com/hc/en-us","support portal",{"text":564,"config":565},"Customer portal",{"href":566,"dataGaName":567,"dataGaLocation":227},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":569,"login":570,"suggestions":577},"Close",{"text":571,"link":572},"To search repositories and projects, login to",{"text":573,"config":574},"gitlab.com",{"href":241,"dataGaName":575,"dataGaLocation":576},"search login","search",{"text":578,"default":579},"Suggestions",[580,582,586,588,592,596],{"text":258,"config":581},{"href":263,"dataGaName":258,"dataGaLocation":576},{"text":583,"config":584},"Code Suggestions (AI)",{"href":585,"dataGaName":583,"dataGaLocation":576},"/solutions/code-suggestions/",{"text":294,"config":587},{"href":296,"dataGaName":294,"dataGaLocation":576},{"text":589,"config":590},"GitLab on AWS",{"href":591,"dataGaName":589,"dataGaLocation":576},"/partners/technology-partners/aws/",{"text":593,"config":594},"GitLab on Google Cloud",{"href":595,"dataGaName":593,"dataGaLocation":576},"/partners/technology-partners/google-cloud-platform/",{"text":597,"config":598},"Why GitLab?",{"href":271,"dataGaName":597,"dataGaLocation":576},{"freeTrial":600,"mobileIcon":605,"desktopIcon":610,"secondaryButton":613},{"text":601,"config":602},"Start free trial",{"href":603,"dataGaName":232,"dataGaLocation":604},"https://gitlab.com/-/trials/new/","nav",{"altText":606,"config":607},"Gitlab Icon",{"src":608,"dataGaName":609,"dataGaLocation":604},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":606,"config":611},{"src":612,"dataGaName":609,"dataGaLocation":604},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":614,"config":615},"Get Started",{"href":616,"dataGaName":617,"dataGaLocation":604},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":619,"mobileIcon":623,"desktopIcon":625},{"text":620,"config":621},"Learn more about GitLab Duo",{"href":263,"dataGaName":622,"dataGaLocation":604},"gitlab duo",{"altText":606,"config":624},{"src":608,"dataGaName":609,"dataGaLocation":604},{"altText":606,"config":626},{"src":612,"dataGaName":609,"dataGaLocation":604},{"button":628,"mobileIcon":633,"desktopIcon":635},{"text":629,"config":630},"/switch",{"href":631,"dataGaName":632,"dataGaLocation":604},"#contact","switch",{"altText":606,"config":634},{"src":608,"dataGaName":609,"dataGaLocation":604},{"altText":606,"config":636},{"src":637,"dataGaName":609,"dataGaLocation":604},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":639,"mobileIcon":644,"desktopIcon":646},{"text":640,"config":641},"Back to pricing",{"href":376,"dataGaName":642,"dataGaLocation":604,"icon":643},"back to pricing","GoBack",{"altText":606,"config":645},{"src":608,"dataGaName":609,"dataGaLocation":604},{"altText":606,"config":647},{"src":612,"dataGaName":609,"dataGaLocation":604},{"title":649,"titleMobile":650,"button":651,"config":656},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":269,"config":652},{"href":653,"dataGaName":654,"dataGaLocation":655},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":657,"disabled":204},"release",{"data":659},{"text":660,"source":661,"edit":667,"contribute":672,"config":677,"items":682,"minimal":892},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":662,"config":663},"View page source",{"href":664,"dataGaName":665,"dataGaLocation":666},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":668,"config":669},"Edit this page",{"href":670,"dataGaName":671,"dataGaLocation":666},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":673,"config":674},"Please contribute",{"href":675,"dataGaName":676,"dataGaLocation":666},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":678,"facebook":679,"youtube":680,"linkedin":681},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[683,730,784,828,860],{"title":374,"links":684,"subMenu":699},[685,689,694],{"text":686,"config":687},"View plans",{"href":376,"dataGaName":688,"dataGaLocation":666},"view plans",{"text":690,"config":691},"Why Premium?",{"href":692,"dataGaName":693,"dataGaLocation":666},"/pricing/premium/","why premium",{"text":695,"config":696},"Why Ultimate?",{"href":697,"dataGaName":698,"dataGaLocation":666},"/pricing/ultimate/","why ultimate",[700],{"title":701,"links":702},"Contact Us",[703,706,708,710,715,720,725],{"text":704,"config":705},"Contact sales",{"href":556,"dataGaName":237,"dataGaLocation":666},{"text":559,"config":707},{"href":561,"dataGaName":562,"dataGaLocation":666},{"text":564,"config":709},{"href":566,"dataGaName":567,"dataGaLocation":666},{"text":711,"config":712},"Status",{"href":713,"dataGaName":714,"dataGaLocation":666},"https://status.gitlab.com/","status",{"text":716,"config":717},"Terms of use",{"href":718,"dataGaName":719,"dataGaLocation":666},"/terms/","terms of use",{"text":721,"config":722},"Privacy statement",{"href":723,"dataGaName":724,"dataGaLocation":666},"/privacy/","privacy statement",{"text":726,"config":727},"Cookie preferences",{"dataGaName":728,"dataGaLocation":666,"id":729,"isOneTrustButton":207},"cookie preferences","ot-sdk-btn",{"title":274,"links":731,"subMenu":740},[732,736],{"text":733,"config":734},"DevSecOps platform",{"href":256,"dataGaName":735,"dataGaLocation":666},"devsecops platform",{"text":737,"config":738},"AI-Assisted Development",{"href":263,"dataGaName":739,"dataGaLocation":666},"ai-assisted development",[741],{"title":742,"links":743},"Topics",[744,749,754,759,764,769,774,779],{"text":745,"config":746},"CICD",{"href":747,"dataGaName":748,"dataGaLocation":666},"/topics/ci-cd/","cicd",{"text":750,"config":751},"GitOps",{"href":752,"dataGaName":753,"dataGaLocation":666},"/topics/gitops/","gitops",{"text":755,"config":756},"DevOps",{"href":757,"dataGaName":758,"dataGaLocation":666},"/topics/devops/","devops",{"text":760,"config":761},"Version Control",{"href":762,"dataGaName":763,"dataGaLocation":666},"/topics/version-control/","version control",{"text":765,"config":766},"DevSecOps",{"href":767,"dataGaName":768,"dataGaLocation":666},"/topics/devsecops/","devsecops",{"text":770,"config":771},"Cloud Native",{"href":772,"dataGaName":773,"dataGaLocation":666},"/topics/cloud-native/","cloud native",{"text":775,"config":776},"AI for Coding",{"href":777,"dataGaName":778,"dataGaLocation":666},"/topics/devops/ai-for-coding/","ai for coding",{"text":780,"config":781},"Agentic AI",{"href":782,"dataGaName":783,"dataGaLocation":666},"/topics/agentic-ai/","agentic ai",{"title":785,"links":786},"Solutions",[787,789,791,796,800,803,807,810,812,815,818,823],{"text":318,"config":788},{"href":313,"dataGaName":318,"dataGaLocation":666},{"text":307,"config":790},{"href":290,"dataGaName":291,"dataGaLocation":666},{"text":792,"config":793},"Agile development",{"href":794,"dataGaName":795,"dataGaLocation":666},"/solutions/agile-delivery/","agile delivery",{"text":797,"config":798},"SCM",{"href":303,"dataGaName":799,"dataGaLocation":666},"source code management",{"text":745,"config":801},{"href":296,"dataGaName":802,"dataGaLocation":666},"continuous integration & delivery",{"text":804,"config":805},"Value stream management",{"href":346,"dataGaName":806,"dataGaLocation":666},"value stream management",{"text":750,"config":808},{"href":809,"dataGaName":753,"dataGaLocation":666},"/solutions/gitops/",{"text":356,"config":811},{"href":359,"dataGaName":360,"dataGaLocation":666},{"text":813,"config":814},"Small business",{"href":365,"dataGaName":366,"dataGaLocation":666},{"text":816,"config":817},"Public sector",{"href":371,"dataGaName":372,"dataGaLocation":666},{"text":819,"config":820},"Education",{"href":821,"dataGaName":822,"dataGaLocation":666},"/solutions/education/","education",{"text":824,"config":825},"Financial services",{"href":826,"dataGaName":827,"dataGaLocation":666},"/solutions/finance/","financial services",{"title":379,"links":829},[830,832,834,836,839,841,844,846,848,850,852,854,856,858],{"text":392,"config":831},{"href":394,"dataGaName":395,"dataGaLocation":666},{"text":397,"config":833},{"href":399,"dataGaName":400,"dataGaLocation":666},{"text":402,"config":835},{"href":404,"dataGaName":405,"dataGaLocation":666},{"text":407,"config":837},{"href":409,"dataGaName":838,"dataGaLocation":666},"docs",{"text":430,"config":840},{"href":432,"dataGaName":433,"dataGaLocation":666},{"text":842,"config":843},"What's new",{"href":489,"dataGaName":490,"dataGaLocation":666},{"text":425,"config":845},{"href":427,"dataGaName":428,"dataGaLocation":666},{"text":444,"config":847},{"href":446,"dataGaName":447,"dataGaLocation":666},{"text":452,"config":849},{"href":454,"dataGaName":455,"dataGaLocation":666},{"text":457,"config":851},{"href":459,"dataGaName":460,"dataGaLocation":666},{"text":462,"config":853},{"href":464,"dataGaName":465,"dataGaLocation":666},{"text":467,"config":855},{"href":469,"dataGaName":470,"dataGaLocation":666},{"text":472,"config":857},{"href":113,"dataGaName":474,"dataGaLocation":666},{"text":476,"config":859},{"href":478,"dataGaName":479,"dataGaLocation":666},{"title":492,"links":861},[862,864,866,868,870,872,876,881,883,885,887],{"text":500,"config":863},{"href":502,"dataGaName":494,"dataGaLocation":666},{"text":505,"config":865},{"href":507,"dataGaName":508,"dataGaLocation":666},{"text":513,"config":867},{"href":515,"dataGaName":516,"dataGaLocation":666},{"text":518,"config":869},{"href":520,"dataGaName":146,"dataGaLocation":666},{"text":522,"config":871},{"href":524,"dataGaName":525,"dataGaLocation":666},{"text":873,"config":874},"Sustainability",{"href":875,"dataGaName":873,"dataGaLocation":666},"/sustainability/",{"text":877,"config":878},"Diversity, inclusion and belonging (DIB)",{"href":879,"dataGaName":880,"dataGaLocation":666},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":527,"config":882},{"href":529,"dataGaName":530,"dataGaLocation":666},{"text":537,"config":884},{"href":539,"dataGaName":540,"dataGaLocation":666},{"text":542,"config":886},{"href":544,"dataGaName":545,"dataGaLocation":666},{"text":888,"config":889},"Modern Slavery Transparency Statement",{"href":890,"dataGaName":891,"dataGaLocation":666},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":893},[894,897,900],{"text":895,"config":896},"Terms",{"href":718,"dataGaName":719,"dataGaLocation":666},{"text":898,"config":899},"Cookies",{"dataGaName":728,"dataGaLocation":666,"id":729,"isOneTrustButton":207},{"text":901,"config":902},"Privacy",{"href":723,"dataGaName":724,"dataGaLocation":666},[904,918],{"id":905,"title":906,"body":203,"config":907,"content":909,"description":203,"extension":912,"meta":913,"navigation":207,"path":914,"seo":915,"stem":916,"__hash__":917},"blogAuthors/en-us/blog/authors/christina-hupy-phd.yml","Christina Hupy Phd",{"template":908},"BlogAuthor",{"name":7,"config":910},{"headshot":196,"ctfId":911},"chupy","yml",{},"/en-us/blog/authors/christina-hupy-phd",{},"en-us/blog/authors/christina-hupy-phd","vj58U3XnXzhuPozZyW8AvxsQMmDMX8Y1JZa3TSc7wOQ",{"id":919,"title":920,"body":203,"config":921,"content":922,"description":203,"extension":912,"meta":926,"navigation":207,"path":927,"seo":928,"stem":929,"__hash__":930},"blogAuthors/en-us/blog/authors/neil-mccorrison.yml","Neil Mccorrison",{"template":908},{"name":8,"config":923},{"headshot":924,"ctfId":925},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669499/Blog/Author%20Headshots/nmccorrison-headshot.jpg","nmccorrison",{},"/en-us/blog/authors/neil-mccorrison",{},"en-us/blog/authors/neil-mccorrison","QlYcObtSAbfn82rRjzw2ZfJNdtshnSn8boHw8O-BOf4",[932,941,949],{"title":933,"description":934,"heroImage":935,"category":199,"date":936,"authors":937,"slug":940,"externalUrl":203},"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",[938,939],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":942,"description":943,"heroImage":944,"category":199,"date":945,"authors":946,"slug":948,"externalUrl":203},"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",[947],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":950,"description":951,"heroImage":952,"category":199,"date":953,"authors":954,"slug":956,"externalUrl":203},"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",[955],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":958},[959,973,985,997],{"id":960,"categories":961,"header":963,"text":964,"button":965,"image":970},"ai-modernization",[962],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":966,"config":967},"Get your AI maturity score",{"href":968,"dataGaName":969,"dataGaLocation":433},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":971},{"src":972},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":974,"categories":975,"header":977,"text":964,"button":978,"image":982},"devops-modernization",[976,768],"product","Are you just managing tools or shipping innovation?",{"text":979,"config":980},"Get your DevOps maturity score",{"href":981,"dataGaName":969,"dataGaLocation":433},"/assessments/devops-modernization-assessment/",{"config":983},{"src":984},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":986,"categories":987,"header":989,"text":964,"button":990,"image":994},"security-modernization",[988],"security","Are you trading speed for security?",{"text":991,"config":992},"Get your security maturity score",{"href":993,"dataGaName":969,"dataGaLocation":433},"/assessments/security-modernization-assessment/",{"config":995},{"src":996},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":998,"paths":999,"header":1002,"text":1003,"button":1004,"image":1009},"github-azure-migration",[1000,1001],"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":1005,"config":1006},"See how GitLab compares to GitHub",{"href":1007,"dataGaName":1008,"dataGaLocation":433},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1010},{"src":984},{"header":1012,"blurb":1013,"button":1014,"secondaryButton":1019},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1015,"config":1016},"Get your free trial",{"href":1017,"dataGaName":232,"dataGaLocation":1018},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":704,"config":1020},{"href":556,"dataGaName":237,"dataGaLocation":1018},1786803747327]