[{"data":1,"prerenderedAt":969},["ShallowReactive",2],{"/blog/revisiting-the-variables-management-workflow":3,"navigation-en-us":184,"banner-en-us":611,"footer-en-us":621,"blog-post-authors-en-us-Veethika Mishra":864,"blog-related-posts-en-us-revisiting-the-variables-management-workflow":879,"blog-promotions-en-us":905,"next-steps-en-us":959},{"id":4,"title":5,"authors":6,"body":8,"category":161,"date":162,"description":163,"extension":164,"externalUrl":165,"faq":165,"featured":166,"heroImage":167,"meta":168,"navigation":166,"path":169,"seo":170,"slug":175,"stem":176,"tags":177,"template":182,"updatedDate":165,"__hash__":183},"blogPosts/en-us/blog/revisiting-the-variables-management-workflow.md","Revisiting the variables management workflow",[7],"Veethika Mishra",{"type":9,"value":10,"toc":151},"minimark",[11,28,41,46,53,56,60,66,69,73,79,82,86,95,99,108,123,127,145],[12,13,14,15,21,22,27],"p",{},"CI/CD variables play a vital role in building and maintaining CI/CD pipelines and platforms. They are an essential part of the majority of developers’ workflows, serving a range of purposes from storing reusable information to maintaining data integrity. Given their significance, we made enhancing workflows related to CI/CD variables a priority.\nRecently, we conducted interviews with users representing different ",[16,17,20],"a",{"href":18,"rel":19},"https://handbook.gitlab.com/handbook/product/personas/#list-of-user-personas",[],"personas"," related to software development, working in teams with different structural and cultural dynamics. Our aim was to gain insights into the challenges they encounter when using and managing CI/CD variables within GitLab. The feedback helped us gain valuable perspective, guiding us toward ",[16,23,26],{"href":24,"rel":25},"https://gitlab.com/gitlab-org/gitlab/-/issues/418331",[],"necessary improvements"," in these workflows. Some of the notable changes are highlighted in this blog.",[29,30,33,34],"figure",{"className":31},[32],"video_container","\n  ",[35,36,40],"iframe",{"src":37,"frameBorder":38,"allowFullScreen":39},"https://www.youtube.com/embed/gdL2cEp3kw0?si=aNmhofDU3DsnofiP","0","true"," ",[42,43,45],"h2",{"id":44},"better-management","Better management",[12,47,48],{},[49,50],"img",{"alt":51,"src":52},"variables management - image 1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098505/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750098504762.png",[12,54,55],{},"Effective decision-making regarding the addition, modification, or removal of CI/CD variables hinges on understanding their purpose within a project or group. Lacking visibility into a variable's purpose can complicate these decisions. To address this challenge, we've introduced an enhancement to the variable creation process that will allow users to provide a description detailing the usage and context of a variable, reducing reliance on memory. This description will be displayed in the list, along with the other attributes of the variable.",[42,57,59],{"id":58},"seamless-task-continuity","Seamless task continuity",[12,61,62],{},[49,63],{"alt":64,"src":65},"variables management - image 2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098505/Blog/Content%20Images/Blog/Content%20Images/image3_aHR0cHM6_1750098504763.png",[12,67,68],{},"Efficiency is paramount in software development as it allows developers to make time to focus on qualitative aspects of their work. We have changed the variable creation workflow to facilitate consecutive addition or editing of multiple variables to boost efficiency. Improved, clear notifications and contextual error messages ensure users can perform tasks without the need to repeatedly open separate forms.",[42,70,72],{"id":71},"enhanced-error-prevention","Enhanced error prevention",[12,74,75],{},[49,76],{"alt":77,"src":78},"variables management - image 3","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098505/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750098504764.png",[12,80,81],{},"How the error messages are presented and made accessible in a workflow determines their effectiveness in error resolution. We revisited the different error states users are likely to encounter during variable creation and editing workflow and identified the improvement opportunities ranging from adding new validations and help-texts to enhancing existing error-handling states.",[42,83,85],{"id":84},"share-your-feedback","Share your feedback",[12,87,88,89,94],{},"We believe in taking an iterative approach to better the product. We used insights from the recent user research and our best judgment when deciding on the changes, but there’s always room for improvement. Your feedback from your experience of using the changed UI for performing the tasks in your everyday work will help us understand what’s working and what isn’t, and, therefore, decide on future iterations. Please head to our ",[16,90,93],{"href":91,"rel":92},"https://gitlab.com/gitlab-org/gitlab/-/issues/441177",[],"feedback issue"," to share your thoughts and suggestions on the changes made.",[42,96,98],{"id":97},"whats-next","What’s next?",[12,100,101,102,107],{},"As we work on making the existing variables workflow more usable, we’re also making progress on the ",[16,103,106],{"href":104,"rel":105},"https://docs.gitlab.com/ci/secrets/",[],"GitLab Secret Manager"," to provide users with a more secure method for enabling GitLab, or a component built within GitLab, to connect to other systems.",[12,109,110,111,116,117,122],{},"There’s an ongoing effort to ",[16,112,115],{"href":113,"rel":114},"https://gitlab.com/gitlab-org/gitlab/-/issues/403176",[],"improve the variables table layout to clearly represent the visual hierarchy"," between group and project variables and enhancing the ",[16,118,121],{"href":119,"rel":120},"https://gitlab.com/gitlab-org/gitlab/-/issues/416148",[],"audit history for CI variables"," to provide better visibility into activities related to variables.",[42,124,126],{"id":125},"read-more-about-our-ui-improvements","Read more about our UI improvements",[128,129,130,138],"ul",{},[131,132,133],"li",{},[16,134,137],{"href":135,"rel":136},"https://about.gitlab.com/blog/navigation-research-blog-post/",[],"How we overhauled GitLab navigation",[131,139,140],{},[16,141,144],{"href":142,"rel":143},"https://about.gitlab.com/blog/beautifying-of-our-ui/",[],"Beautifying our UI: Giving GitLab build features a fresh look",[12,146,147],{},[148,149,150],"em",{},"Disclaimer: This blog contains information related to upcoming products, features, and functionality. It is important to note that the information in this blog post is for informational purposes only. Please do not rely on this information for purchasing or planning purposes. As with all projects, the items mentioned in this blog and linked pages are subject to change or delay. The development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab.",{"title":152,"searchDepth":153,"depth":153,"links":154},"",2,[155,156,157,158,159,160],{"id":44,"depth":153,"text":45},{"id":58,"depth":153,"text":59},{"id":71,"depth":153,"text":72},{"id":84,"depth":153,"text":85},{"id":97,"depth":153,"text":98},{"id":125,"depth":153,"text":126},"engineering","2024-02-26","Our users helped us identify the hurdles in the variables management experience and we used those insights to guide improvements.","md",null,true,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098484/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_618473457_nd5Dr8kfGdrlTWLOPmDjb_1750098483284.jpg",{},"/en-us/blog/revisiting-the-variables-management-workflow",{"title":5,"description":163,"ogTitle":5,"ogDescription":163,"noIndex":171,"ogImage":167,"ogUrl":172,"ogSiteName":173,"ogType":174,"canonicalUrls":172},false,"https://about.gitlab.com/blog/revisiting-the-variables-management-workflow","https://about.gitlab.com","article","revisiting-the-variables-management-workflow","en-us/blog/revisiting-the-variables-management-workflow",[178,179,180,181],"CI/CD","UX","DevSecOps","DevOps","BlogPost","WkWQGHmXuo8VVGNbg6-AWuAlG2r02sOZWxb2sNcEp58",{"logo":185,"freeTrial":190,"sales":195,"login":200,"items":205,"search":531,"minimal":562,"duo":581,"switchNav":590,"pricingDeployment":601},{"config":186},{"href":187,"dataGaName":188,"dataGaLocation":189},"/","gitlab logo","header",{"text":191,"config":192},"Get free trial",{"href":193,"dataGaName":194,"dataGaLocation":189},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":196,"config":197},"Request a demo",{"href":198,"dataGaName":199,"dataGaLocation":189},"/sales/?contact-topic=request-demo","sales",{"text":201,"config":202},"Sign in",{"href":203,"dataGaName":204,"dataGaLocation":189},"https://gitlab.com/users/sign_in/","sign in",[206,235,334,339,453,509],{"text":207,"config":208,"menu":210},"Platform",{"dataNavLevelOne":209},"platform",{"type":211,"columns":212},"cards",[213,219,227],{"title":207,"description":214,"link":215},"The intelligent orchestration platform for DevSecOps",{"text":216,"config":217},"Explore our Platform",{"href":218,"dataGaName":209,"dataGaLocation":189},"/platform/",{"title":220,"description":221,"link":222},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":223,"config":224},"Meet GitLab Duo",{"href":225,"dataGaName":226,"dataGaLocation":189},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":228,"description":229,"link":230},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":231,"config":232},"Learn more",{"href":233,"dataGaName":234,"dataGaLocation":189},"/why-gitlab/","why gitlab",{"text":236,"left":166,"config":237,"menu":239},"Product",{"dataNavLevelOne":238},"solutions",{"type":240,"link":241,"columns":245,"feature":313},"lists",{"text":242,"config":243},"View all Solutions",{"href":244,"dataGaName":238,"dataGaLocation":189},"/solutions/",[246,269,292],{"title":247,"description":248,"link":249,"items":254},"Automation","CI/CD and automation to accelerate deployment",{"config":250},{"icon":251,"href":252,"dataGaName":253,"dataGaLocation":189},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[255,258,261,265],{"text":178,"config":256},{"href":257,"dataGaLocation":189,"dataGaName":178},"/solutions/continuous-integration/",{"text":220,"config":259},{"href":225,"dataGaLocation":189,"dataGaName":260},"gitlab duo agent platform - product menu",{"text":262,"config":263},"Source Code Management",{"href":264,"dataGaLocation":189,"dataGaName":262},"/solutions/source-code-management/",{"text":266,"config":267},"Automated Software Delivery",{"href":252,"dataGaLocation":189,"dataGaName":268},"Automated software delivery",{"title":270,"description":271,"link":272,"items":277},"Security","Deliver code faster without compromising security",{"config":273},{"href":274,"dataGaName":275,"dataGaLocation":189,"icon":276},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[278,282,287],{"text":279,"config":280},"Application Security Testing",{"href":274,"dataGaName":281,"dataGaLocation":189},"Application security testing",{"text":283,"config":284},"Software Supply Chain Security",{"href":285,"dataGaLocation":189,"dataGaName":286},"/solutions/supply-chain/","Software supply chain security",{"text":288,"config":289},"Software Compliance",{"href":290,"dataGaName":291,"dataGaLocation":189},"/solutions/software-compliance/","software compliance",{"title":293,"link":294,"items":299},"Measurement",{"config":295},{"icon":296,"href":297,"dataGaName":298,"dataGaLocation":189},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[300,304,308],{"text":301,"config":302},"Visibility & Measurement",{"href":297,"dataGaLocation":189,"dataGaName":303},"Visibility and Measurement",{"text":305,"config":306},"Value Stream Management",{"href":307,"dataGaLocation":189,"dataGaName":305},"/solutions/value-stream-management/",{"text":309,"config":310},"Analytics & Insights",{"href":311,"dataGaLocation":189,"dataGaName":312},"/solutions/analytics-and-insights/","Analytics and insights",{"title":314,"type":240,"items":315},"GitLab for",[316,322,328],{"text":317,"config":318},"Enterprise",{"icon":319,"href":320,"dataGaLocation":189,"dataGaName":321},"Building","/enterprise/","enterprise",{"text":323,"config":324},"Small Business",{"icon":325,"href":326,"dataGaLocation":189,"dataGaName":327},"Work","/small-business/","small business",{"text":329,"config":330},"Public Sector",{"icon":331,"href":332,"dataGaLocation":189,"dataGaName":333},"Organization","/solutions/public-sector/","public sector",{"text":335,"config":336},"Pricing",{"href":337,"dataGaName":338,"dataGaLocation":189,"dataNavLevelOne":338},"/pricing/","pricing",{"text":340,"config":341,"menu":343},"Resources",{"dataNavLevelOne":342},"resources",{"type":240,"link":344,"columns":348,"feature":442},{"text":345,"config":346},"View all resources",{"href":347,"dataGaName":342,"dataGaLocation":189},"/resources/",[349,382,409],{"title":350,"items":351},"Getting started",[352,357,362,367,372,377],{"text":353,"config":354},"Install",{"href":355,"dataGaName":356,"dataGaLocation":189},"/install/","install",{"text":358,"config":359},"Quick start guides",{"href":360,"dataGaName":361,"dataGaLocation":189},"/get-started/","quick setup checklists",{"text":363,"config":364},"Learn",{"href":365,"dataGaLocation":189,"dataGaName":366},"https://university.gitlab.com/","learn",{"text":368,"config":369},"Product documentation",{"href":370,"dataGaName":371,"dataGaLocation":189},"https://docs.gitlab.com/","product documentation",{"text":373,"config":374},"Best practice videos",{"href":375,"dataGaName":376,"dataGaLocation":189},"/getting-started-videos/","best practice videos",{"text":378,"config":379},"Integrations",{"href":380,"dataGaName":381,"dataGaLocation":189},"/integrations/","integrations",{"title":383,"items":384},"Discover",[385,390,395,400,404],{"text":386,"config":387},"Customer success stories",{"href":388,"dataGaName":389,"dataGaLocation":189},"/customers/","customer success stories",{"text":391,"config":392},"Blog",{"href":393,"dataGaName":394,"dataGaLocation":189},"/blog/","blog",{"text":396,"config":397},"Demo Hub",{"href":398,"dataGaName":399,"dataGaLocation":189},"/demo-hub/","demo hub",{"text":401,"config":402},"The Source",{"href":403,"dataGaName":394,"dataGaLocation":189},"/the-source/",{"text":405,"config":406},"Remote",{"href":407,"dataGaName":408,"dataGaLocation":189},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":410,"items":411},"Connect",[412,417,422,427,432,437],{"text":413,"config":414},"GitLab Services",{"href":415,"dataGaName":416,"dataGaLocation":189},"/services/","services",{"text":418,"config":419},"Contribute",{"href":420,"dataGaName":421,"dataGaLocation":189},"https://contributors.gitlab.com","contribute",{"text":423,"config":424},"Community",{"href":425,"dataGaName":426,"dataGaLocation":189},"/community/","community",{"text":428,"config":429},"Forum",{"href":430,"dataGaName":431,"dataGaLocation":189},"https://forum.gitlab.com/","forum",{"text":433,"config":434},"Events",{"href":435,"dataGaName":436,"dataGaLocation":189},"/events/","events",{"text":438,"config":439},"Partners",{"href":440,"dataGaName":441,"dataGaLocation":189},"/partners/","partners",{"config":443,"title":446,"text":447,"link":448},{"background":444,"textColor":445},"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":449,"config":450},"Read the latest",{"href":451,"dataGaName":452,"dataGaLocation":189},"/whats-new/","whats new",{"text":454,"config":455,"menu":457},"Company",{"dataNavLevelOne":456},"company",{"type":240,"columns":458},[459],{"items":460},[461,466,472,474,479,484,489,494,499,504],{"text":462,"config":463},"About",{"href":464,"dataGaName":465,"dataGaLocation":189},"/company/","about",{"text":467,"config":468,"footerGa":471},"Jobs",{"href":469,"dataGaName":470,"dataGaLocation":189},"/jobs/","jobs",{"dataGaName":470},{"text":433,"config":473},{"href":435,"dataGaName":436,"dataGaLocation":189},{"text":475,"config":476},"Leadership",{"href":477,"dataGaName":478,"dataGaLocation":189},"/company/team/e-group/","leadership",{"text":480,"config":481},"Handbook",{"href":482,"dataGaName":483,"dataGaLocation":189},"https://handbook.gitlab.com/","handbook",{"text":485,"config":486},"Investor relations",{"href":487,"dataGaName":488,"dataGaLocation":189},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":490,"config":491},"Trust Center",{"href":492,"dataGaName":493,"dataGaLocation":189},"/security/","trust center",{"text":495,"config":496},"AI Transparency Center",{"href":497,"dataGaName":498,"dataGaLocation":189},"/ai-transparency-center/","ai transparency center",{"text":500,"config":501},"Newsletter",{"href":502,"dataGaName":503,"dataGaLocation":189},"/company/contact/#contact-forms","newsletter",{"text":505,"config":506},"Press",{"href":507,"dataGaName":508,"dataGaLocation":189},"/press/","press",{"text":510,"config":511,"menu":512},"Contact us",{"dataNavLevelOne":456},{"type":240,"columns":513},[514],{"items":515},[516,521,526],{"text":517,"config":518},"Talk to sales",{"href":519,"dataGaName":520,"dataGaLocation":189},"/sales/","talk to sales",{"text":522,"config":523},"Support portal",{"href":524,"dataGaName":525,"dataGaLocation":189},"https://support.gitlab.com/hc/en-us","support portal",{"text":527,"config":528},"Customer portal",{"href":529,"dataGaName":530,"dataGaLocation":189},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":532,"login":533,"suggestions":540},"Close",{"text":534,"link":535},"To search repositories and projects, login to",{"text":536,"config":537},"gitlab.com",{"href":203,"dataGaName":538,"dataGaLocation":539},"search login","search",{"text":541,"default":542},"Suggestions",[543,545,549,551,555,559],{"text":220,"config":544},{"href":225,"dataGaName":220,"dataGaLocation":539},{"text":546,"config":547},"Code Suggestions (AI)",{"href":548,"dataGaName":546,"dataGaLocation":539},"/solutions/code-suggestions/",{"text":178,"config":550},{"href":257,"dataGaName":178,"dataGaLocation":539},{"text":552,"config":553},"GitLab on AWS",{"href":554,"dataGaName":552,"dataGaLocation":539},"/partners/technology-partners/aws/",{"text":556,"config":557},"GitLab on Google Cloud",{"href":558,"dataGaName":556,"dataGaLocation":539},"/partners/technology-partners/google-cloud-platform/",{"text":560,"config":561},"Why GitLab?",{"href":233,"dataGaName":560,"dataGaLocation":539},{"freeTrial":563,"mobileIcon":568,"desktopIcon":573,"secondaryButton":576},{"text":564,"config":565},"Start free trial",{"href":566,"dataGaName":194,"dataGaLocation":567},"https://gitlab.com/-/trials/new/","nav",{"altText":569,"config":570},"Gitlab Icon",{"src":571,"dataGaName":572,"dataGaLocation":567},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":569,"config":574},{"src":575,"dataGaName":572,"dataGaLocation":567},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":577,"config":578},"Get Started",{"href":579,"dataGaName":580,"dataGaLocation":567},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":582,"mobileIcon":586,"desktopIcon":588},{"text":583,"config":584},"Learn more about GitLab Duo",{"href":225,"dataGaName":585,"dataGaLocation":567},"gitlab duo",{"altText":569,"config":587},{"src":571,"dataGaName":572,"dataGaLocation":567},{"altText":569,"config":589},{"src":575,"dataGaName":572,"dataGaLocation":567},{"button":591,"mobileIcon":596,"desktopIcon":598},{"text":592,"config":593},"/switch",{"href":594,"dataGaName":595,"dataGaLocation":567},"#contact","switch",{"altText":569,"config":597},{"src":571,"dataGaName":572,"dataGaLocation":567},{"altText":569,"config":599},{"src":600,"dataGaName":572,"dataGaLocation":567},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":602,"mobileIcon":607,"desktopIcon":609},{"text":603,"config":604},"Back to pricing",{"href":337,"dataGaName":605,"dataGaLocation":567,"icon":606},"back to pricing","GoBack",{"altText":569,"config":608},{"src":571,"dataGaName":572,"dataGaLocation":567},{"altText":569,"config":610},{"src":575,"dataGaName":572,"dataGaLocation":567},{"title":612,"titleMobile":613,"button":614,"config":619},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":231,"config":615},{"href":616,"dataGaName":617,"dataGaLocation":618},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":620,"disabled":171},"release",{"data":622},{"text":623,"source":624,"edit":630,"contribute":635,"config":640,"items":645,"minimal":853},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":625,"config":626},"View page source",{"href":627,"dataGaName":628,"dataGaLocation":629},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":631,"config":632},"Edit this page",{"href":633,"dataGaName":634,"dataGaLocation":629},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":636,"config":637},"Please contribute",{"href":638,"dataGaName":639,"dataGaLocation":629},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":641,"facebook":642,"youtube":643,"linkedin":644},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[646,693,745,789,821],{"title":335,"links":647,"subMenu":662},[648,652,657],{"text":649,"config":650},"View plans",{"href":337,"dataGaName":651,"dataGaLocation":629},"view plans",{"text":653,"config":654},"Why Premium?",{"href":655,"dataGaName":656,"dataGaLocation":629},"/pricing/premium/","why premium",{"text":658,"config":659},"Why Ultimate?",{"href":660,"dataGaName":661,"dataGaLocation":629},"/pricing/ultimate/","why ultimate",[663],{"title":664,"links":665},"Contact Us",[666,669,671,673,678,683,688],{"text":667,"config":668},"Contact sales",{"href":519,"dataGaName":199,"dataGaLocation":629},{"text":522,"config":670},{"href":524,"dataGaName":525,"dataGaLocation":629},{"text":527,"config":672},{"href":529,"dataGaName":530,"dataGaLocation":629},{"text":674,"config":675},"Status",{"href":676,"dataGaName":677,"dataGaLocation":629},"https://status.gitlab.com/","status",{"text":679,"config":680},"Terms of use",{"href":681,"dataGaName":682,"dataGaLocation":629},"/terms/","terms of use",{"text":684,"config":685},"Privacy statement",{"href":686,"dataGaName":687,"dataGaLocation":629},"/privacy/","privacy statement",{"text":689,"config":690},"Cookie preferences",{"dataGaName":691,"dataGaLocation":629,"id":692,"isOneTrustButton":166},"cookie preferences","ot-sdk-btn",{"title":236,"links":694,"subMenu":703},[695,699],{"text":696,"config":697},"DevSecOps platform",{"href":218,"dataGaName":698,"dataGaLocation":629},"devsecops platform",{"text":700,"config":701},"AI-Assisted Development",{"href":225,"dataGaName":702,"dataGaLocation":629},"ai-assisted development",[704],{"title":705,"links":706},"Topics",[707,712,717,721,726,730,735,740],{"text":708,"config":709},"CICD",{"href":710,"dataGaName":711,"dataGaLocation":629},"/topics/ci-cd/","cicd",{"text":713,"config":714},"GitOps",{"href":715,"dataGaName":716,"dataGaLocation":629},"/topics/gitops/","gitops",{"text":181,"config":718},{"href":719,"dataGaName":720,"dataGaLocation":629},"/topics/devops/","devops",{"text":722,"config":723},"Version Control",{"href":724,"dataGaName":725,"dataGaLocation":629},"/topics/version-control/","version control",{"text":180,"config":727},{"href":728,"dataGaName":729,"dataGaLocation":629},"/topics/devsecops/","devsecops",{"text":731,"config":732},"Cloud Native",{"href":733,"dataGaName":734,"dataGaLocation":629},"/topics/cloud-native/","cloud native",{"text":736,"config":737},"AI for Coding",{"href":738,"dataGaName":739,"dataGaLocation":629},"/topics/devops/ai-for-coding/","ai for coding",{"text":741,"config":742},"Agentic AI",{"href":743,"dataGaName":744,"dataGaLocation":629},"/topics/agentic-ai/","agentic ai",{"title":746,"links":747},"Solutions",[748,750,752,757,761,764,768,771,773,776,779,784],{"text":279,"config":749},{"href":274,"dataGaName":279,"dataGaLocation":629},{"text":268,"config":751},{"href":252,"dataGaName":253,"dataGaLocation":629},{"text":753,"config":754},"Agile development",{"href":755,"dataGaName":756,"dataGaLocation":629},"/solutions/agile-delivery/","agile delivery",{"text":758,"config":759},"SCM",{"href":264,"dataGaName":760,"dataGaLocation":629},"source code management",{"text":708,"config":762},{"href":257,"dataGaName":763,"dataGaLocation":629},"continuous integration & delivery",{"text":765,"config":766},"Value stream management",{"href":307,"dataGaName":767,"dataGaLocation":629},"value stream management",{"text":713,"config":769},{"href":770,"dataGaName":716,"dataGaLocation":629},"/solutions/gitops/",{"text":317,"config":772},{"href":320,"dataGaName":321,"dataGaLocation":629},{"text":774,"config":775},"Small business",{"href":326,"dataGaName":327,"dataGaLocation":629},{"text":777,"config":778},"Public sector",{"href":332,"dataGaName":333,"dataGaLocation":629},{"text":780,"config":781},"Education",{"href":782,"dataGaName":783,"dataGaLocation":629},"/solutions/education/","education",{"text":785,"config":786},"Financial services",{"href":787,"dataGaName":788,"dataGaLocation":629},"/solutions/finance/","financial services",{"title":340,"links":790},[791,793,795,797,800,802,805,807,809,811,813,815,817,819],{"text":353,"config":792},{"href":355,"dataGaName":356,"dataGaLocation":629},{"text":358,"config":794},{"href":360,"dataGaName":361,"dataGaLocation":629},{"text":363,"config":796},{"href":365,"dataGaName":366,"dataGaLocation":629},{"text":368,"config":798},{"href":370,"dataGaName":799,"dataGaLocation":629},"docs",{"text":391,"config":801},{"href":393,"dataGaName":394,"dataGaLocation":629},{"text":803,"config":804},"What's new",{"href":451,"dataGaName":452,"dataGaLocation":629},{"text":386,"config":806},{"href":388,"dataGaName":389,"dataGaLocation":629},{"text":405,"config":808},{"href":407,"dataGaName":408,"dataGaLocation":629},{"text":413,"config":810},{"href":415,"dataGaName":416,"dataGaLocation":629},{"text":418,"config":812},{"href":420,"dataGaName":421,"dataGaLocation":629},{"text":423,"config":814},{"href":425,"dataGaName":426,"dataGaLocation":629},{"text":428,"config":816},{"href":430,"dataGaName":431,"dataGaLocation":629},{"text":433,"config":818},{"href":435,"dataGaName":436,"dataGaLocation":629},{"text":438,"config":820},{"href":440,"dataGaName":441,"dataGaLocation":629},{"title":454,"links":822},[823,825,827,829,831,833,837,842,844,846,848],{"text":462,"config":824},{"href":464,"dataGaName":456,"dataGaLocation":629},{"text":467,"config":826},{"href":469,"dataGaName":470,"dataGaLocation":629},{"text":475,"config":828},{"href":477,"dataGaName":478,"dataGaLocation":629},{"text":480,"config":830},{"href":482,"dataGaName":483,"dataGaLocation":629},{"text":485,"config":832},{"href":487,"dataGaName":488,"dataGaLocation":629},{"text":834,"config":835},"Sustainability",{"href":836,"dataGaName":834,"dataGaLocation":629},"/sustainability/",{"text":838,"config":839},"Diversity, inclusion and belonging (DIB)",{"href":840,"dataGaName":841,"dataGaLocation":629},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":490,"config":843},{"href":492,"dataGaName":493,"dataGaLocation":629},{"text":500,"config":845},{"href":502,"dataGaName":503,"dataGaLocation":629},{"text":505,"config":847},{"href":507,"dataGaName":508,"dataGaLocation":629},{"text":849,"config":850},"Modern Slavery Transparency Statement",{"href":851,"dataGaName":852,"dataGaLocation":629},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":854},[855,858,861],{"text":856,"config":857},"Terms",{"href":681,"dataGaName":682,"dataGaLocation":629},{"text":859,"config":860},"Cookies",{"dataGaName":691,"dataGaLocation":629,"id":692,"isOneTrustButton":166},{"text":862,"config":863},"Privacy",{"href":686,"dataGaName":687,"dataGaLocation":629},[865],{"id":866,"title":7,"body":165,"config":867,"content":869,"description":165,"extension":873,"meta":874,"navigation":166,"path":875,"seo":876,"stem":877,"__hash__":878},"blogAuthors/en-us/blog/authors/veethika-mishra.yml",{"template":868},"BlogAuthor",{"name":7,"config":870},{"headshot":871,"ctfId":872},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664676/Blog/Author%20Headshots/veethika-headshot.jpg","veethika","yml",{},"/en-us/blog/authors/veethika-mishra",{},"en-us/blog/authors/veethika-mishra","avkx2hzdTVpCmkhh26RGfXRkuPdPQWwSTuPDuHtSjSQ",[880,889,897],{"title":881,"description":882,"heroImage":883,"category":161,"date":884,"authors":885,"slug":888,"externalUrl":165},"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",[886,887],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":890,"description":891,"heroImage":892,"category":161,"date":893,"authors":894,"slug":896,"externalUrl":165},"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",[895],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":898,"description":899,"heroImage":900,"category":161,"date":901,"authors":902,"slug":904,"externalUrl":165},"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",[903],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":906},[907,921,933,945],{"id":908,"categories":909,"header":911,"text":912,"button":913,"image":918},"ai-modernization",[910],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":914,"config":915},"Get your AI maturity score",{"href":916,"dataGaName":917,"dataGaLocation":394},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":919},{"src":920},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":922,"categories":923,"header":925,"text":912,"button":926,"image":930},"devops-modernization",[924,729],"product","Are you just managing tools or shipping innovation?",{"text":927,"config":928},"Get your DevOps maturity score",{"href":929,"dataGaName":917,"dataGaLocation":394},"/assessments/devops-modernization-assessment/",{"config":931},{"src":932},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":934,"categories":935,"header":937,"text":912,"button":938,"image":942},"security-modernization",[936],"security","Are you trading speed for security?",{"text":939,"config":940},"Get your security maturity score",{"href":941,"dataGaName":917,"dataGaLocation":394},"/assessments/security-modernization-assessment/",{"config":943},{"src":944},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":946,"paths":947,"header":950,"text":951,"button":952,"image":957},"github-azure-migration",[948,949],"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":953,"config":954},"See how GitLab compares to GitHub",{"href":955,"dataGaName":956,"dataGaLocation":394},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":958},{"src":932},{"header":960,"blurb":961,"button":962,"secondaryButton":967},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":963,"config":964},"Get your free trial",{"href":965,"dataGaName":194,"dataGaLocation":966},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":667,"config":968},{"href":519,"dataGaName":199,"dataGaLocation":966},1786803752349]