[{"data":1,"prerenderedAt":1038},["ShallowReactive",2],{"/blog/introducing-accessibility-testing-in-gitlab":3,"navigation-en-us":253,"banner-en-us":680,"footer-en-us":690,"blog-post-authors-en-us-James Heimbuck":935,"blog-related-posts-en-us-introducing-accessibility-testing-in-gitlab":950,"blog-promotions-en-us":974,"next-steps-en-us":1028},{"id":4,"title":5,"authors":6,"body":8,"category":233,"date":234,"description":235,"extension":236,"externalUrl":237,"faq":237,"featured":238,"heroImage":239,"meta":240,"navigation":133,"path":241,"seo":242,"slug":246,"stem":247,"tags":248,"template":251,"updatedDate":237,"__hash__":252},"blogPosts/en-us/blog/introducing-accessibility-testing-in-gitlab.md","Introducing Accessibility Testing in GitLab",[7],"James Heimbuck",{"type":9,"value":10,"toc":228},"minimark",[11,22,27,36,39,47,54,57,67,71,80,84,92,162,171,180,183,207,210,224],[12,13,14,15,21],"p",{},"GitLab has introduced continuous accessibility testing with the 12.8 release. This post adds some context to the ",[16,17,20],"a",{"href":18,"rel":19},"https://docs.gitlab.com/releases/#automated-accessibility-scanning-of-review-apps",[],"release post"," and introduces our vision for accessibility testing going forward.",[23,24,26],"h2",{"id":25},"why-isnt-everyone-doing-accessibility-testing","Why isn't everyone doing accessibility testing?",[12,28,29,30,35],{},"One of the core tenets of the vision of GitLab is that ",[16,31,34],{"href":32,"rel":33},"https://handbook.gitlab.com/handbook/company/vision/#vision",[],"everyone can contribute",". We also firmly believe that GitLab should be accessible to everyone and projects created with GitLab should as well. To better realize this we have introduced Accessibility Testing as a new feature in GitLab 12.8.",[12,37,38],{},"In talking to developers, and even my own colleagues, I have been surprised about how many people around me are color blind and have realized how easy this is to overlook. In fact, 8% of the United States male population is color blind, and this is just one kind of visual impairment that may impact a web site's readability. Take for instance the classic North American color indicators for Go / Stop or Good / Bad - Red and Green. An example of the GitLab pipeline page is shown below as users without and with protanopia would see the page. GitLab does make use of differing icons and wording as indicators of a pipeline's status, but the difference is striking.",[12,40,41,46],{},[42,43],"img",{"alt":44,"src":45},"Pipelines page","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397921/blog/Content%20Images/accessibility_direction/pipelines.png","\nHow the Pipelines page appears to users without Protanopia",[12,48,49,53],{},[42,50],{"alt":51,"src":52},"Pipelines with Protanopia","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397921/blog/Content%20Images/accessibility_direction/pipelines-with-protanopia.png","\nHow the Pipelines page appears to users with Protanopia",[12,55,56],{},"As we dug into the problem with developers we found two common themes:",[58,59,60,64],"ol",{},[61,62,63],"li",{},"Accessibility testing is done late in the development lifecycle, often on a Release Candidate, when it is too late to make changes.",[61,65,66],{},"Accessibility testing is becoming more important across organizations.",[23,68,70],{"id":69},"why-is-accessibility-testing-a-hot-topic","Why is accessibility testing a hot topic?",[12,72,73,74,79],{},"Pizza. More specifically one persons ability to ",[16,75,78],{"href":76,"rel":77},"https://www.usatoday.com/story/money/2019/10/07/dominos-pizza-website-accessibility-supreme-court-wont-hear-case/3904582002/",[],"customize a pizza",". While some companies may see accessibility testing as a defensive move to prevent law suits we see it a different way at GitLab. We want to build software for everyone and we want to build it quickly. Providing developers a mechanism to improve the accessibility of their software for all users is just the right thing to do.",[23,81,83],{"id":82},"how-is-gitlab-solving-this-problem","How is GitLab solving this problem?",[12,85,86,87,91],{},"With the ",[16,88,90],{"href":18,"rel":89},[],"12.8 release"," GitLab has introduced accessibility scanning in the Core product. By including the Accessibility template to your .gitlab-ci.yml file and providing a URL the accessibility scan can be run on every merge request that includes that job.",[93,94,99],"pre",{"className":95,"code":96,"language":97,"meta":98,"style":98},"language-yaml shiki shiki-themes github-light","include:\n  template: Verify/Accessibility.gitlab-ci.yml\n\na11y:\n  variables:\n    a11y_urls: https://example.com\n\n","yaml","",[100,101,102,115,128,135,143,151],"code",{"__ignoreMap":98},[103,104,107,111],"span",{"class":105,"line":106},"line",1,[103,108,110],{"class":109},"shJU0","include",[103,112,114],{"class":113},"sgsFI",":\n",[103,116,118,121,124],{"class":105,"line":117},2,[103,119,120],{"class":109},"  template",[103,122,123],{"class":113},": ",[103,125,127],{"class":126},"sYBdl","Verify/Accessibility.gitlab-ci.yml\n",[103,129,131],{"class":105,"line":130},3,[103,132,134],{"emptyLinePlaceholder":133},true,"\n",[103,136,138,141],{"class":105,"line":137},4,[103,139,140],{"class":109},"a11y",[103,142,114],{"class":113},[103,144,146,149],{"class":105,"line":145},5,[103,147,148],{"class":109},"  variables",[103,150,114],{"class":113},[103,152,154,157,159],{"class":105,"line":153},6,[103,155,156],{"class":109},"    a11y_urls",[103,158,123],{"class":113},[103,160,161],{"class":126},"https://example.com\n",[12,163,164,165,170],{},"The example above is from the ",[16,166,169],{"href":167,"rel":168},"https://docs.gitlab.com/ci/testing/accessibility_testing/",[],"documentation"," which includes some additional details.",[12,172,173,174,179],{},"In the current version of the feature the result is a simple HTML report that outlines the issues with the Review App as identified by the scanner, which uses the ",[16,175,178],{"href":176,"rel":177},"https://www.w3.org/TR/WCAG20/",[],"W2CAGAA standards",". We recognize that this is just a small step in making software more accessible but we are excited about the future.",[12,181,182],{},"Future iterations and improvements in GitLab we will be working on for a11y testing include:",[184,185,186,193,200],"ul",{},[61,187,188],{},[16,189,192],{"href":190,"rel":191},"https://gitlab.com/gitlab-org/gitlab/issues/207383",[],"Identify and scan only changed pages",[61,194,195],{},[16,196,199],{"href":197,"rel":198},"https://gitlab.com/gitlab-org/gitlab/issues/39425",[],"Display newly introduced issues in the Merge Request view",[61,201,202],{},[16,203,206],{"href":204,"rel":205},"https://gitlab.com/gitlab-org/gitlab/issues/36170",[],"Display the full a11y report in GitLab",[12,208,209],{},"This is not a comprehensive list by any means and you can send suggestions for improvements or follow along as the category matures on the Accessibility Testing direction page.",[12,211,212,213,218,219],{},"Photo by ",[16,214,217],{"href":215,"rel":216},"https://unsplash.com/@mcnoble",[],"Matt Noble"," on ",[16,220,223],{"href":221,"rel":222},"https://unsplash.com/",[],"Unsplash",[225,226,227],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":98,"searchDepth":117,"depth":117,"links":229},[230,231,232],{"id":25,"depth":117,"text":26},{"id":69,"depth":117,"text":70},{"id":82,"depth":117,"text":83},"unfiltered","2020-03-04","How Accessibility Testing reinforces our value that everyone can contribute","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666941/Blog/Hero%20Images/accessibility-vision.jpg",{},"/en-us/blog/introducing-accessibility-testing-in-gitlab",{"title":5,"description":235,"ogTitle":5,"ogDescription":235,"noIndex":238,"ogImage":239,"ogUrl":243,"ogSiteName":244,"ogType":245,"canonicalUrls":243},"https://about.gitlab.com/blog/introducing-accessibility-testing-in-gitlab","https://about.gitlab.com","article","introducing-accessibility-testing-in-gitlab","en-us/blog/introducing-accessibility-testing-in-gitlab",[249,250],"CI/CD","features","BlogPost","SryHUy95bPU3D8u70K-CrEN_6y1wtCarRoS0ljm-0Bc",{"logo":254,"freeTrial":259,"sales":264,"login":269,"items":274,"search":600,"minimal":631,"duo":650,"switchNav":659,"pricingDeployment":670},{"config":255},{"href":256,"dataGaName":257,"dataGaLocation":258},"/","gitlab logo","header",{"text":260,"config":261},"Get free trial",{"href":262,"dataGaName":263,"dataGaLocation":258},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":265,"config":266},"Request a demo",{"href":267,"dataGaName":268,"dataGaLocation":258},"/sales/?contact-topic=request-demo","sales",{"text":270,"config":271},"Sign in",{"href":272,"dataGaName":273,"dataGaLocation":258},"https://gitlab.com/users/sign_in/","sign in",[275,304,403,408,522,578],{"text":276,"config":277,"menu":279},"Platform",{"dataNavLevelOne":278},"platform",{"type":280,"columns":281},"cards",[282,288,296],{"title":276,"description":283,"link":284},"The intelligent orchestration platform for DevSecOps",{"text":285,"config":286},"Explore our Platform",{"href":287,"dataGaName":278,"dataGaLocation":258},"/platform/",{"title":289,"description":290,"link":291},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":292,"config":293},"Meet GitLab Duo",{"href":294,"dataGaName":295,"dataGaLocation":258},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":297,"description":298,"link":299},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":300,"config":301},"Learn more",{"href":302,"dataGaName":303,"dataGaLocation":258},"/why-gitlab/","why gitlab",{"text":305,"left":133,"config":306,"menu":308},"Product",{"dataNavLevelOne":307},"solutions",{"type":309,"link":310,"columns":314,"feature":382},"lists",{"text":311,"config":312},"View all Solutions",{"href":313,"dataGaName":307,"dataGaLocation":258},"/solutions/",[315,338,361],{"title":316,"description":317,"link":318,"items":323},"Automation","CI/CD and automation to accelerate deployment",{"config":319},{"icon":320,"href":321,"dataGaName":322,"dataGaLocation":258},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[324,327,330,334],{"text":249,"config":325},{"href":326,"dataGaLocation":258,"dataGaName":249},"/solutions/continuous-integration/",{"text":289,"config":328},{"href":294,"dataGaLocation":258,"dataGaName":329},"gitlab duo agent platform - product menu",{"text":331,"config":332},"Source Code Management",{"href":333,"dataGaLocation":258,"dataGaName":331},"/solutions/source-code-management/",{"text":335,"config":336},"Automated Software Delivery",{"href":321,"dataGaLocation":258,"dataGaName":337},"Automated software delivery",{"title":339,"description":340,"link":341,"items":346},"Security","Deliver code faster without compromising security",{"config":342},{"href":343,"dataGaName":344,"dataGaLocation":258,"icon":345},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[347,351,356],{"text":348,"config":349},"Application Security Testing",{"href":343,"dataGaName":350,"dataGaLocation":258},"Application security testing",{"text":352,"config":353},"Software Supply Chain Security",{"href":354,"dataGaLocation":258,"dataGaName":355},"/solutions/supply-chain/","Software supply chain security",{"text":357,"config":358},"Software Compliance",{"href":359,"dataGaName":360,"dataGaLocation":258},"/solutions/software-compliance/","software compliance",{"title":362,"link":363,"items":368},"Measurement",{"config":364},{"icon":365,"href":366,"dataGaName":367,"dataGaLocation":258},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[369,373,377],{"text":370,"config":371},"Visibility & Measurement",{"href":366,"dataGaLocation":258,"dataGaName":372},"Visibility and Measurement",{"text":374,"config":375},"Value Stream Management",{"href":376,"dataGaLocation":258,"dataGaName":374},"/solutions/value-stream-management/",{"text":378,"config":379},"Analytics & Insights",{"href":380,"dataGaLocation":258,"dataGaName":381},"/solutions/analytics-and-insights/","Analytics and insights",{"title":383,"type":309,"items":384},"GitLab for",[385,391,397],{"text":386,"config":387},"Enterprise",{"icon":388,"href":389,"dataGaLocation":258,"dataGaName":390},"Building","/enterprise/","enterprise",{"text":392,"config":393},"Small Business",{"icon":394,"href":395,"dataGaLocation":258,"dataGaName":396},"Work","/small-business/","small business",{"text":398,"config":399},"Public Sector",{"icon":400,"href":401,"dataGaLocation":258,"dataGaName":402},"Organization","/solutions/public-sector/","public sector",{"text":404,"config":405},"Pricing",{"href":406,"dataGaName":407,"dataGaLocation":258,"dataNavLevelOne":407},"/pricing/","pricing",{"text":409,"config":410,"menu":412},"Resources",{"dataNavLevelOne":411},"resources",{"type":309,"link":413,"columns":417,"feature":511},{"text":414,"config":415},"View all resources",{"href":416,"dataGaName":411,"dataGaLocation":258},"/resources/",[418,451,478],{"title":419,"items":420},"Getting started",[421,426,431,436,441,446],{"text":422,"config":423},"Install",{"href":424,"dataGaName":425,"dataGaLocation":258},"/install/","install",{"text":427,"config":428},"Quick start guides",{"href":429,"dataGaName":430,"dataGaLocation":258},"/get-started/","quick setup checklists",{"text":432,"config":433},"Learn",{"href":434,"dataGaLocation":258,"dataGaName":435},"https://university.gitlab.com/","learn",{"text":437,"config":438},"Product documentation",{"href":439,"dataGaName":440,"dataGaLocation":258},"https://docs.gitlab.com/","product documentation",{"text":442,"config":443},"Best practice videos",{"href":444,"dataGaName":445,"dataGaLocation":258},"/getting-started-videos/","best practice videos",{"text":447,"config":448},"Integrations",{"href":449,"dataGaName":450,"dataGaLocation":258},"/integrations/","integrations",{"title":452,"items":453},"Discover",[454,459,464,469,473],{"text":455,"config":456},"Customer success stories",{"href":457,"dataGaName":458,"dataGaLocation":258},"/customers/","customer success stories",{"text":460,"config":461},"Blog",{"href":462,"dataGaName":463,"dataGaLocation":258},"/blog/","blog",{"text":465,"config":466},"Demo Hub",{"href":467,"dataGaName":468,"dataGaLocation":258},"/demo-hub/","demo hub",{"text":470,"config":471},"The Source",{"href":472,"dataGaName":463,"dataGaLocation":258},"/the-source/",{"text":474,"config":475},"Remote",{"href":476,"dataGaName":477,"dataGaLocation":258},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":479,"items":480},"Connect",[481,486,491,496,501,506],{"text":482,"config":483},"GitLab Services",{"href":484,"dataGaName":485,"dataGaLocation":258},"/services/","services",{"text":487,"config":488},"Contribute",{"href":489,"dataGaName":490,"dataGaLocation":258},"https://contributors.gitlab.com","contribute",{"text":492,"config":493},"Community",{"href":494,"dataGaName":495,"dataGaLocation":258},"/community/","community",{"text":497,"config":498},"Forum",{"href":499,"dataGaName":500,"dataGaLocation":258},"https://forum.gitlab.com/","forum",{"text":502,"config":503},"Events",{"href":504,"dataGaName":505,"dataGaLocation":258},"/events/","events",{"text":507,"config":508},"Partners",{"href":509,"dataGaName":510,"dataGaLocation":258},"/partners/","partners",{"config":512,"title":515,"text":516,"link":517},{"background":513,"textColor":514},"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":518,"config":519},"Read the latest",{"href":520,"dataGaName":521,"dataGaLocation":258},"/whats-new/","whats new",{"text":523,"config":524,"menu":526},"Company",{"dataNavLevelOne":525},"company",{"type":309,"columns":527},[528],{"items":529},[530,535,541,543,548,553,558,563,568,573],{"text":531,"config":532},"About",{"href":533,"dataGaName":534,"dataGaLocation":258},"/company/","about",{"text":536,"config":537,"footerGa":540},"Jobs",{"href":538,"dataGaName":539,"dataGaLocation":258},"/jobs/","jobs",{"dataGaName":539},{"text":502,"config":542},{"href":504,"dataGaName":505,"dataGaLocation":258},{"text":544,"config":545},"Leadership",{"href":546,"dataGaName":547,"dataGaLocation":258},"/company/team/e-group/","leadership",{"text":549,"config":550},"Handbook",{"href":551,"dataGaName":552,"dataGaLocation":258},"https://handbook.gitlab.com/","handbook",{"text":554,"config":555},"Investor relations",{"href":556,"dataGaName":557,"dataGaLocation":258},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":559,"config":560},"Trust Center",{"href":561,"dataGaName":562,"dataGaLocation":258},"/security/","trust center",{"text":564,"config":565},"AI Transparency Center",{"href":566,"dataGaName":567,"dataGaLocation":258},"/ai-transparency-center/","ai transparency center",{"text":569,"config":570},"Newsletter",{"href":571,"dataGaName":572,"dataGaLocation":258},"/company/contact/#contact-forms","newsletter",{"text":574,"config":575},"Press",{"href":576,"dataGaName":577,"dataGaLocation":258},"/press/","press",{"text":579,"config":580,"menu":581},"Contact us",{"dataNavLevelOne":525},{"type":309,"columns":582},[583],{"items":584},[585,590,595],{"text":586,"config":587},"Talk to sales",{"href":588,"dataGaName":589,"dataGaLocation":258},"/sales/","talk to sales",{"text":591,"config":592},"Support portal",{"href":593,"dataGaName":594,"dataGaLocation":258},"https://support.gitlab.com/hc/en-us","support portal",{"text":596,"config":597},"Customer portal",{"href":598,"dataGaName":599,"dataGaLocation":258},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":601,"login":602,"suggestions":609},"Close",{"text":603,"link":604},"To search repositories and projects, login to",{"text":605,"config":606},"gitlab.com",{"href":272,"dataGaName":607,"dataGaLocation":608},"search login","search",{"text":610,"default":611},"Suggestions",[612,614,618,620,624,628],{"text":289,"config":613},{"href":294,"dataGaName":289,"dataGaLocation":608},{"text":615,"config":616},"Code Suggestions (AI)",{"href":617,"dataGaName":615,"dataGaLocation":608},"/solutions/code-suggestions/",{"text":249,"config":619},{"href":326,"dataGaName":249,"dataGaLocation":608},{"text":621,"config":622},"GitLab on AWS",{"href":623,"dataGaName":621,"dataGaLocation":608},"/partners/technology-partners/aws/",{"text":625,"config":626},"GitLab on Google Cloud",{"href":627,"dataGaName":625,"dataGaLocation":608},"/partners/technology-partners/google-cloud-platform/",{"text":629,"config":630},"Why GitLab?",{"href":302,"dataGaName":629,"dataGaLocation":608},{"freeTrial":632,"mobileIcon":637,"desktopIcon":642,"secondaryButton":645},{"text":633,"config":634},"Start free trial",{"href":635,"dataGaName":263,"dataGaLocation":636},"https://gitlab.com/-/trials/new/","nav",{"altText":638,"config":639},"Gitlab Icon",{"src":640,"dataGaName":641,"dataGaLocation":636},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":638,"config":643},{"src":644,"dataGaName":641,"dataGaLocation":636},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":646,"config":647},"Get Started",{"href":648,"dataGaName":649,"dataGaLocation":636},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":651,"mobileIcon":655,"desktopIcon":657},{"text":652,"config":653},"Learn more about GitLab Duo",{"href":294,"dataGaName":654,"dataGaLocation":636},"gitlab duo",{"altText":638,"config":656},{"src":640,"dataGaName":641,"dataGaLocation":636},{"altText":638,"config":658},{"src":644,"dataGaName":641,"dataGaLocation":636},{"button":660,"mobileIcon":665,"desktopIcon":667},{"text":661,"config":662},"/switch",{"href":663,"dataGaName":664,"dataGaLocation":636},"#contact","switch",{"altText":638,"config":666},{"src":640,"dataGaName":641,"dataGaLocation":636},{"altText":638,"config":668},{"src":669,"dataGaName":641,"dataGaLocation":636},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":671,"mobileIcon":676,"desktopIcon":678},{"text":672,"config":673},"Back to pricing",{"href":406,"dataGaName":674,"dataGaLocation":636,"icon":675},"back to pricing","GoBack",{"altText":638,"config":677},{"src":640,"dataGaName":641,"dataGaLocation":636},{"altText":638,"config":679},{"src":644,"dataGaName":641,"dataGaLocation":636},{"title":681,"titleMobile":682,"button":683,"config":688},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":300,"config":684},{"href":685,"dataGaName":686,"dataGaLocation":687},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":689,"disabled":238},"release",{"data":691},{"text":692,"source":693,"edit":699,"contribute":704,"config":709,"items":714,"minimal":924},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":694,"config":695},"View page source",{"href":696,"dataGaName":697,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":700,"config":701},"Edit this page",{"href":702,"dataGaName":703,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":705,"config":706},"Please contribute",{"href":707,"dataGaName":708,"dataGaLocation":698},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":710,"facebook":711,"youtube":712,"linkedin":713},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[715,762,816,860,892],{"title":404,"links":716,"subMenu":731},[717,721,726],{"text":718,"config":719},"View plans",{"href":406,"dataGaName":720,"dataGaLocation":698},"view plans",{"text":722,"config":723},"Why Premium?",{"href":724,"dataGaName":725,"dataGaLocation":698},"/pricing/premium/","why premium",{"text":727,"config":728},"Why Ultimate?",{"href":729,"dataGaName":730,"dataGaLocation":698},"/pricing/ultimate/","why ultimate",[732],{"title":733,"links":734},"Contact Us",[735,738,740,742,747,752,757],{"text":736,"config":737},"Contact sales",{"href":588,"dataGaName":268,"dataGaLocation":698},{"text":591,"config":739},{"href":593,"dataGaName":594,"dataGaLocation":698},{"text":596,"config":741},{"href":598,"dataGaName":599,"dataGaLocation":698},{"text":743,"config":744},"Status",{"href":745,"dataGaName":746,"dataGaLocation":698},"https://status.gitlab.com/","status",{"text":748,"config":749},"Terms of use",{"href":750,"dataGaName":751,"dataGaLocation":698},"/terms/","terms of use",{"text":753,"config":754},"Privacy statement",{"href":755,"dataGaName":756,"dataGaLocation":698},"/privacy/","privacy statement",{"text":758,"config":759},"Cookie preferences",{"dataGaName":760,"dataGaLocation":698,"id":761,"isOneTrustButton":133},"cookie preferences","ot-sdk-btn",{"title":305,"links":763,"subMenu":772},[764,768],{"text":765,"config":766},"DevSecOps platform",{"href":287,"dataGaName":767,"dataGaLocation":698},"devsecops platform",{"text":769,"config":770},"AI-Assisted Development",{"href":294,"dataGaName":771,"dataGaLocation":698},"ai-assisted development",[773],{"title":774,"links":775},"Topics",[776,781,786,791,796,801,806,811],{"text":777,"config":778},"CICD",{"href":779,"dataGaName":780,"dataGaLocation":698},"/topics/ci-cd/","cicd",{"text":782,"config":783},"GitOps",{"href":784,"dataGaName":785,"dataGaLocation":698},"/topics/gitops/","gitops",{"text":787,"config":788},"DevOps",{"href":789,"dataGaName":790,"dataGaLocation":698},"/topics/devops/","devops",{"text":792,"config":793},"Version Control",{"href":794,"dataGaName":795,"dataGaLocation":698},"/topics/version-control/","version control",{"text":797,"config":798},"DevSecOps",{"href":799,"dataGaName":800,"dataGaLocation":698},"/topics/devsecops/","devsecops",{"text":802,"config":803},"Cloud Native",{"href":804,"dataGaName":805,"dataGaLocation":698},"/topics/cloud-native/","cloud native",{"text":807,"config":808},"AI for Coding",{"href":809,"dataGaName":810,"dataGaLocation":698},"/topics/devops/ai-for-coding/","ai for coding",{"text":812,"config":813},"Agentic AI",{"href":814,"dataGaName":815,"dataGaLocation":698},"/topics/agentic-ai/","agentic ai",{"title":817,"links":818},"Solutions",[819,821,823,828,832,835,839,842,844,847,850,855],{"text":348,"config":820},{"href":343,"dataGaName":348,"dataGaLocation":698},{"text":337,"config":822},{"href":321,"dataGaName":322,"dataGaLocation":698},{"text":824,"config":825},"Agile development",{"href":826,"dataGaName":827,"dataGaLocation":698},"/solutions/agile-delivery/","agile delivery",{"text":829,"config":830},"SCM",{"href":333,"dataGaName":831,"dataGaLocation":698},"source code management",{"text":777,"config":833},{"href":326,"dataGaName":834,"dataGaLocation":698},"continuous integration & delivery",{"text":836,"config":837},"Value stream management",{"href":376,"dataGaName":838,"dataGaLocation":698},"value stream management",{"text":782,"config":840},{"href":841,"dataGaName":785,"dataGaLocation":698},"/solutions/gitops/",{"text":386,"config":843},{"href":389,"dataGaName":390,"dataGaLocation":698},{"text":845,"config":846},"Small business",{"href":395,"dataGaName":396,"dataGaLocation":698},{"text":848,"config":849},"Public sector",{"href":401,"dataGaName":402,"dataGaLocation":698},{"text":851,"config":852},"Education",{"href":853,"dataGaName":854,"dataGaLocation":698},"/solutions/education/","education",{"text":856,"config":857},"Financial services",{"href":858,"dataGaName":859,"dataGaLocation":698},"/solutions/finance/","financial services",{"title":409,"links":861},[862,864,866,868,871,873,876,878,880,882,884,886,888,890],{"text":422,"config":863},{"href":424,"dataGaName":425,"dataGaLocation":698},{"text":427,"config":865},{"href":429,"dataGaName":430,"dataGaLocation":698},{"text":432,"config":867},{"href":434,"dataGaName":435,"dataGaLocation":698},{"text":437,"config":869},{"href":439,"dataGaName":870,"dataGaLocation":698},"docs",{"text":460,"config":872},{"href":462,"dataGaName":463,"dataGaLocation":698},{"text":874,"config":875},"What's new",{"href":520,"dataGaName":521,"dataGaLocation":698},{"text":455,"config":877},{"href":457,"dataGaName":458,"dataGaLocation":698},{"text":474,"config":879},{"href":476,"dataGaName":477,"dataGaLocation":698},{"text":482,"config":881},{"href":484,"dataGaName":485,"dataGaLocation":698},{"text":487,"config":883},{"href":489,"dataGaName":490,"dataGaLocation":698},{"text":492,"config":885},{"href":494,"dataGaName":495,"dataGaLocation":698},{"text":497,"config":887},{"href":499,"dataGaName":500,"dataGaLocation":698},{"text":502,"config":889},{"href":504,"dataGaName":505,"dataGaLocation":698},{"text":507,"config":891},{"href":509,"dataGaName":510,"dataGaLocation":698},{"title":523,"links":893},[894,896,898,900,902,904,908,913,915,917,919],{"text":531,"config":895},{"href":533,"dataGaName":525,"dataGaLocation":698},{"text":536,"config":897},{"href":538,"dataGaName":539,"dataGaLocation":698},{"text":544,"config":899},{"href":546,"dataGaName":547,"dataGaLocation":698},{"text":549,"config":901},{"href":551,"dataGaName":552,"dataGaLocation":698},{"text":554,"config":903},{"href":556,"dataGaName":557,"dataGaLocation":698},{"text":905,"config":906},"Sustainability",{"href":907,"dataGaName":905,"dataGaLocation":698},"/sustainability/",{"text":909,"config":910},"Diversity, inclusion and belonging (DIB)",{"href":911,"dataGaName":912,"dataGaLocation":698},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":559,"config":914},{"href":561,"dataGaName":562,"dataGaLocation":698},{"text":569,"config":916},{"href":571,"dataGaName":572,"dataGaLocation":698},{"text":574,"config":918},{"href":576,"dataGaName":577,"dataGaLocation":698},{"text":920,"config":921},"Modern Slavery Transparency Statement",{"href":922,"dataGaName":923,"dataGaLocation":698},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":925},[926,929,932],{"text":927,"config":928},"Terms",{"href":750,"dataGaName":751,"dataGaLocation":698},{"text":930,"config":931},"Cookies",{"dataGaName":760,"dataGaLocation":698,"id":761,"isOneTrustButton":133},{"text":933,"config":934},"Privacy",{"href":755,"dataGaName":756,"dataGaLocation":698},[936],{"id":937,"title":7,"body":237,"config":938,"content":940,"description":237,"extension":944,"meta":945,"navigation":133,"path":946,"seo":947,"stem":948,"__hash__":949},"blogAuthors/en-us/blog/authors/james-heimbuck.yml",{"template":939},"BlogAuthor",{"name":7,"config":941},{"headshot":942,"ctfId":943},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666934/Blog/Author%20Headshots/jheimbuck_gl-headshot.png","jheimbuckgl","yml",{},"/en-us/blog/authors/james-heimbuck",{},"en-us/blog/authors/james-heimbuck","Wp1xLU7HzDRDLA3BxWSnQZ0XjxPQNU08914zG2RxSJw",[951,959,967],{"title":952,"description":953,"heroImage":954,"category":233,"date":955,"authors":956,"slug":958,"externalUrl":237},"CEO Shadow Takeaways from Jacie","Recap of my experience in the CEO Shadow Program.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664102/Blog/Hero%20Images/gitlab-values-cover.png","2021-05-18",[957],"Jacie Bandur","ceo-shadow-recap",{"title":960,"description":961,"heroImage":962,"category":233,"date":963,"authors":964,"slug":966,"externalUrl":237},"Why I love contributing to GitLab","Making small meaningful changes is what it's all about.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679501/Blog/Hero%20Images/new-feature.png","2021-05-11",[965],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":968,"description":969,"heroImage":970,"category":233,"date":963,"authors":971,"slug":973,"externalUrl":237},"Placebo Lines on the Pipeline Graph","Have you noticed the connecting lines missing on your pipelines lately? Here's why","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png",[972],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":975},[976,990,1002,1014],{"id":977,"categories":978,"header":980,"text":981,"button":982,"image":987},"ai-modernization",[979],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":983,"config":984},"Get your AI maturity score",{"href":985,"dataGaName":986,"dataGaLocation":463},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":988},{"src":989},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":991,"categories":992,"header":994,"text":981,"button":995,"image":999},"devops-modernization",[993,800],"product","Are you just managing tools or shipping innovation?",{"text":996,"config":997},"Get your DevOps maturity score",{"href":998,"dataGaName":986,"dataGaLocation":463},"/assessments/devops-modernization-assessment/",{"config":1000},{"src":1001},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1003,"categories":1004,"header":1006,"text":981,"button":1007,"image":1011},"security-modernization",[1005],"security","Are you trading speed for security?",{"text":1008,"config":1009},"Get your security maturity score",{"href":1010,"dataGaName":986,"dataGaLocation":463},"/assessments/security-modernization-assessment/",{"config":1012},{"src":1013},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1015,"paths":1016,"header":1019,"text":1020,"button":1021,"image":1026},"github-azure-migration",[1017,1018],"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":1022,"config":1023},"See how GitLab compares to GitHub",{"href":1024,"dataGaName":1025,"dataGaLocation":463},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1027},{"src":1001},{"header":1029,"blurb":1030,"button":1031,"secondaryButton":1036},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1032,"config":1033},"Get your free trial",{"href":1034,"dataGaName":263,"dataGaLocation":1035},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":736,"config":1037},{"href":588,"dataGaName":268,"dataGaLocation":1035},1786803735555]