[{"data":1,"prerenderedAt":1321},["ShallowReactive",2],{"/blog/try-dependency-scanning":3,"navigation-en-us":538,"banner-en-us":965,"footer-en-us":975,"blog-post-authors-en-us-Nicole Schwartz":1220,"blog-related-posts-en-us-try-dependency-scanning":1234,"blog-promotions-en-us":1258,"next-steps-en-us":1311},{"id":4,"title":5,"authors":6,"body":8,"category":517,"date":518,"description":519,"extension":520,"externalUrl":521,"faq":521,"featured":522,"heroImage":523,"meta":524,"navigation":202,"path":525,"seo":526,"slug":530,"stem":531,"tags":532,"template":536,"updatedDate":521,"__hash__":537},"blogPosts/en-us/blog/try-dependency-scanning.md","A quick guide to GitLab Dependency Scanning",[7],"Nicole Schwartz",{"type":9,"value":10,"toc":511},"minimark",[11,15,18,34,37,42,45,113,117,122,134,142,162,168,186,302,308,312,341,345,348,371,380,388,392,395,411,437,444,457,469,472,480,488,507],[12,13,14],"p",{},"Are you curious about our Secure offerings? They are easy, and free, to try out!",[12,16,17],{},"I suggest you create a free demo project to check them out and see if it's something you might want.",[12,19,20,21,27,28,33],{},"Did you know? If you have a public project on GitLab.com you can enable our Secure scanning functionality. Please note that ",[22,23,26],"a",{"href":24,"rel":25},"https://about.gitlab.com/solutions/education/",[],"educational institutions"," and ",[22,29,32],{"href":30,"rel":31},"https://about.gitlab.com/solutions/open-source/join/",[],"open-source projects"," can also request free licenses.",[12,35,36],{},"In this blog I will walk you through creating a new demo project, adding Dependency Scanning, and reviewing the results of the scan. Following the steps below should take you 15 minutes.",[38,39,41],"h3",{"id":40},"create-a-test-project","Create a test project",[12,43,44],{},"Let's grab a test project and enable Dependency Scanning.",[46,47,48,57,71,74,92,95,106],"ol",{},[49,50,51,56],"li",{},[22,52,55],{"href":53,"rel":54},"https://gitlab.com/users/sign_in",[],"Sign in"," to your GitLab account.",[49,58,59,60,65,66],{},"Create a new project by clicking \"New project\" on your ",[22,61,64],{"href":62,"rel":63},"https://gitlab.com/dashboard/projects",[],"project list",".\n",[67,68],"img",{"alt":69,"src":70},"New project","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397658/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/01_new_project.png",[49,72,73],{},"Select the \"Create from template\" option.",[49,75,76,77,82,83,65,88],{},"Select a project template. Be sure to choose one that is written in one of our ",[22,78,81],{"href":79,"rel":80},"https://docs.gitlab.com/user/application_security/dependency_scanning/#supported-languages-and-package-managers",[],"supported languages and package managers",". I have chosen a ",[22,84,87],{"href":85,"rel":86},"https://gitlab.com/gitlab-org/project-templates/rails",[],"Ruby on Rails template",[67,89],{"alt":90,"src":91},"Project from template","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397658/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/02_from_template.png",[49,93,94],{},"Click the \"Use template\" button.",[49,96,97,98,65,102],{},"You need to name your project. I named mine \"mytestrubyonrails\". ",[99,100,101],"strong",{},"Be sure to set the Visibility level to \"Public\"",[67,103],{"alt":104,"src":105},"Template settings","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397659/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/03_template_settings.png",[49,107,108,109],{},"You now have a new project.\n",[67,110],{"alt":111,"src":112},"Your new project","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397659/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/04_new_project.png",[38,114,116],{"id":115},"configure-dependency-scanning-to-run-in-the-pipeline","Configure Dependency Scanning to run in the pipeline",[118,119,121],"h4",{"id":120},"create-a-new-file-in-your-project","Create a new file in your project",[46,123,124,131],{},[49,125,126,127],{},"Click \"New file\".\n",[67,128],{"alt":129,"src":130},"Add a new file","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397660/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/05_new_file.png",[49,132,133],{},"You have two choices to populate the file - Template or Advanced.",[118,135,137,138],{"id":136},"use-the-template-to-fill-gitlab-ciyml","Use the template to fill ",[139,140,141],"code",{},".gitlab-ci.yml",[46,143,144,155],{},[49,145,146,147,150,151],{},"On the ",[139,148,149],{},"New file"," page choose \"Select a template type > .gitlab-ci.yml\".\n",[67,152],{"alt":153,"src":154},"pick yml as file template","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397661/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/06_yml_template.png",[49,156,157,158],{},"Select \"Apply a template > Dependency-Scanning\".\n",[67,159],{"alt":160,"src":161},"dependency scanning template yml","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397661/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/07_yml_ds.png",[118,163,165,166],{"id":164},"advanced-manually-enter-data-into-gitlab-ciyml","Advanced - manually enter data into ",[139,167,141],{},[46,169,170,178],{},[49,171,146,172,174,175,177],{},[139,173,149],{}," page name the file ",[139,176,141],{},".",[49,179,180,181,177],{},"Insert the necessary lines of code per our ",[22,182,185],{"href":183,"rel":184},"https://docs.gitlab.com/user/application_security/dependency_scanning/#configuration",[],"user documentation",[187,188,193],"pre",{"className":189,"code":190,"language":191,"meta":192,"style":192},"language-yaml shiki shiki-themes github-light","\n   stages:\n   - test\n   - qa\n\n   include:\n   - template: Dependency-Scanning.gitlab-ci.yml\n\n   dependency_scanning:\n   stage: test\n   variables:\n     CI_DEBUG_TRACE: \"true\"\n\n","yaml","",[139,194,195,204,215,225,233,238,246,260,265,273,283,291],{"__ignoreMap":192},[196,197,200],"span",{"class":198,"line":199},"line",1,[196,201,203],{"emptyLinePlaceholder":202},true,"\n",[196,205,207,211],{"class":198,"line":206},2,[196,208,210],{"class":209},"shJU0","   stages",[196,212,214],{"class":213},"sgsFI",":\n",[196,216,218,221],{"class":198,"line":217},3,[196,219,220],{"class":213},"   - ",[196,222,224],{"class":223},"sYBdl","test\n",[196,226,228,230],{"class":198,"line":227},4,[196,229,220],{"class":213},[196,231,232],{"class":223},"qa\n",[196,234,236],{"class":198,"line":235},5,[196,237,203],{"emptyLinePlaceholder":202},[196,239,241,244],{"class":198,"line":240},6,[196,242,243],{"class":209},"   include",[196,245,214],{"class":213},[196,247,249,251,254,257],{"class":198,"line":248},7,[196,250,220],{"class":213},[196,252,253],{"class":209},"template",[196,255,256],{"class":213},": ",[196,258,259],{"class":223},"Dependency-Scanning.gitlab-ci.yml\n",[196,261,263],{"class":198,"line":262},8,[196,264,203],{"emptyLinePlaceholder":202},[196,266,268,271],{"class":198,"line":267},9,[196,269,270],{"class":209},"   dependency_scanning",[196,272,214],{"class":213},[196,274,276,279,281],{"class":198,"line":275},10,[196,277,278],{"class":209},"   stage",[196,280,256],{"class":213},[196,282,224],{"class":223},[196,284,286,289],{"class":198,"line":285},11,[196,287,288],{"class":209},"   variables",[196,290,214],{"class":213},[196,292,294,297,299],{"class":198,"line":293},12,[196,295,296],{"class":209},"     CI_DEBUG_TRACE",[196,298,256],{"class":213},[196,300,301],{"class":223},"\"true\"\n",[12,303,304],{},[67,305],{"alt":306,"src":307},"advanced yml","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397662/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/08_yml_advanced.png",[118,309,311],{"id":310},"commit-the-file","Commit the file",[46,313,314,317,324,327,338],{},[49,315,316],{},"Add a commit message if you want.",[49,318,319,320],{},"Change the \"Target Branch\" from \"master\" to something else - for example \"add-ds\", and leave the \"Start a new merge request with these changes\" box checked.\n",[67,321],{"alt":322,"src":323},"dependency scanning template rename target","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397662/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/07_yml_template_rename.png",[49,325,326],{},"Click \"Commit changes\".",[49,328,329,330,334],{},"A \"New Merge Request\" page will load. Scroll to the bottom and click \"Submit merge request\".\n",[67,331],{"alt":332,"src":333},"dependency scanning template merge request part 1","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397661/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/07_yml_template_mr_01.png",[67,335],{"alt":336,"src":337},"dependency scanning template merge request part 2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397661/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/07_yml_template_mr_02.png",[49,339,340],{},"The pipeline will now run.",[38,342,344],{"id":343},"view-pipeline-results","View pipeline results",[12,346,347],{},"Now that you have your first pipeline, this and any future pipeline will run the Dependency Scanning jobs. You can review the results after a pipeline completes by:",[46,349,350,357,364],{},[49,351,352,353],{},"View the Merge request - look at the security MR report area.\n",[67,354],{"alt":355,"src":356},"merge request security report","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397662/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/09_mr_report.png",[49,358,359,360],{},"Click expand to see the details.\n",[67,361],{"alt":362,"src":363},"expanded merge request security report","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397663/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/10_mr_report_expanded.png",[49,365,366,367],{},"You can also view the Security tab in the pipeline.\n",[67,368],{"alt":369,"src":370},"security tab in the pipeline","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397663/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/11_pipeline_security_tab.png",[12,372,373,374,379],{},"Note: For this example we are going to decide not to act on the findings as part of the merge request, and we have not configured ",[22,375,378],{"href":376,"rel":377},"https://docs.gitlab.com/user/application_security/#security-approvals-in-merge-requests",[],"security merge request approvals"," so findings do not require additional approvers before you are permitted to merge.",[12,381,382,383,177],{},"You can see ",[22,384,387],{"href":385,"rel":386},"https://gitlab.com/NicoleSchwartz/mytestrubyonrails/-/merge_requests/1",[],"my example merge request",[38,389,391],{"id":390},"view-results-outside-of-the-merge-request","View results outside of the merge request",[12,393,394],{},"First, merge this request in to master for your test project. The results will not show outside of the merge request until this is done.",[12,396,397,398,65,403,407],{},"Now you can see the findings by navigating to the ",[22,399,402],{"href":400,"rel":401},"https://docs.gitlab.com/user/application_security/security_dashboard/",[],"Security Dashboard",[67,404],{"alt":405,"src":406},"navigate to the security dashboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397665/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/navigate_dashboard.png",[67,408],{"alt":409,"src":410},"the security dashboard","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397664/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/dashboard.png",[12,412,413,414,65,419,423,427,431,432,177],{},"You can view just the dependencies and their found issues by viewing the ",[22,415,418],{"href":416,"rel":417},"https://docs.gitlab.com/user/application_security/dependency_list/",[],"Dependency List",[67,420],{"alt":421,"src":422},"navigate to the dependency list","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397665/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/navigate_d_list.png",[67,424],{"alt":425,"src":426},"the dependency list","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397664/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/dependency_list.png",[67,428],{"alt":429,"src":430},"expand a row in the dependency list","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397665/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/dependency_list_expanded.png","\nYou can see ",[22,433,436],{"href":434,"rel":435},"https://gitlab.com/NicoleSchwartz/mytestrubyonrails/-/dependencies",[],"my dependency list",[12,438,439,440],{},"You can click on a finding in the dashboard to see more details. This takes you to the vulnerability's page.\n",[67,441],{"alt":442,"src":443},"stand alone vulnerability's page","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397666/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/stand_alone_vuln.png",[12,445,446,447,451,452,177],{},"On the vulnerability's page you can decide to set the status (dismiss, confirm, resolve) after triaging.\n",[67,448],{"alt":449,"src":450},"stand alone vulnerabilities status","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397666/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/stand_alone_vuln_status.png","\nYou can ",[22,453,456],{"href":454,"rel":455},"https://gitlab.com/NicoleSchwartz/mytestrubyonrails/-/security/vulnerabilities/4085028",[],"see my example finding",[12,458,459,460,451,464,177],{},"You can create an issue from a vulnerability.\n",[67,461],{"alt":462,"src":463},"stand alone vulnerabilities created issue","https://res.cloudinary.com/about-gitlab-com/image/upload/v1782397665/blog/Content%20Images/2020-unfiltered-try-dependency-scanning/issue_created.png",[22,465,468],{"href":466,"rel":467},"https://gitlab.com/NicoleSchwartz/mytestrubyonrails/-/issues/1",[],"see my example issue",[12,470,471],{},"Now go on and try it yourself!",[12,473,474,475,177],{},"If the above blog walkthrough of creating a demo project and running Dependency Scanning got you curious you can ",[22,476,479],{"href":477,"rel":478},"https://docs.gitlab.com/user/application_security/dependency_scanning/",[],"read more about Dependency Scanning in our user documentation",[12,481,482,483,177],{},"If you would rather try a different type of Secure scanner - they are all just as easy to set up ",[22,484,487],{"href":485,"rel":486},"https://docs.gitlab.com/user/application_security/#security-scanning-tools",[],"read more about our Secure scanning tools in our user documentation",[12,489,490,495,496,501,502],{},[22,491,494],{"href":492,"rel":493},"https://flic.kr/p/4SyNQi",[],"Cover image"," by ",[22,497,500],{"href":498,"rel":499},"https://www.flickr.com/people/alan-light/",[],"Alan Light",", licensed under ",[22,503,506],{"href":504,"rel":505},"https://creativecommons.org/licenses/by/2.0/",[],"Attribution 2.0 Generic (CC BY 2.0)",[508,509,510],"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":192,"searchDepth":206,"depth":206,"links":512},[513,514,515,516],{"id":40,"depth":217,"text":41},{"id":115,"depth":217,"text":116},{"id":343,"depth":217,"text":344},{"id":390,"depth":217,"text":391},"unfiltered","2021-01-14","A walk through of creating a quick example project in order to see Dependency Scanning in action.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681849/Blog/Hero%20Images/iceberg_header.jpg",{},"/en-us/blog/try-dependency-scanning",{"title":5,"description":519,"ogTitle":5,"ogDescription":519,"noIndex":522,"ogImage":523,"ogUrl":527,"ogSiteName":528,"ogType":529,"canonicalUrls":527},"https://about.gitlab.com/blog/try-dependency-scanning","https://about.gitlab.com","article","try-dependency-scanning","en-us/blog/try-dependency-scanning",[533,534,535],"features","security","demo","BlogPost","UIRv_2MqONFXudZD6bzhTn5q8W3Jqss0XYMkOIq66RM",{"logo":539,"freeTrial":544,"sales":549,"login":554,"items":558,"search":885,"minimal":916,"duo":935,"switchNav":944,"pricingDeployment":955},{"config":540},{"href":541,"dataGaName":542,"dataGaLocation":543},"/","gitlab logo","header",{"text":545,"config":546},"Get free trial",{"href":547,"dataGaName":548,"dataGaLocation":543},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":550,"config":551},"Request a demo",{"href":552,"dataGaName":553,"dataGaLocation":543},"/sales/?contact-topic=request-demo","sales",{"text":55,"config":555},{"href":556,"dataGaName":557,"dataGaLocation":543},"https://gitlab.com/users/sign_in/","sign in",[559,588,688,693,807,863],{"text":560,"config":561,"menu":563},"Platform",{"dataNavLevelOne":562},"platform",{"type":564,"columns":565},"cards",[566,572,580],{"title":560,"description":567,"link":568},"The intelligent orchestration platform for DevSecOps",{"text":569,"config":570},"Explore our Platform",{"href":571,"dataGaName":562,"dataGaLocation":543},"/platform/",{"title":573,"description":574,"link":575},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":576,"config":577},"Meet GitLab Duo",{"href":578,"dataGaName":579,"dataGaLocation":543},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":581,"description":582,"link":583},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":584,"config":585},"Learn more",{"href":586,"dataGaName":587,"dataGaLocation":543},"/why-gitlab/","why gitlab",{"text":589,"left":202,"config":590,"menu":592},"Product",{"dataNavLevelOne":591},"solutions",{"type":593,"link":594,"columns":598,"feature":667},"lists",{"text":595,"config":596},"View all Solutions",{"href":597,"dataGaName":591,"dataGaLocation":543},"/solutions/",[599,623,646],{"title":600,"description":601,"link":602,"items":607},"Automation","CI/CD and automation to accelerate deployment",{"config":603},{"icon":604,"href":605,"dataGaName":606,"dataGaLocation":543},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[608,612,615,619],{"text":609,"config":610},"CI/CD",{"href":611,"dataGaLocation":543,"dataGaName":609},"/solutions/continuous-integration/",{"text":573,"config":613},{"href":578,"dataGaLocation":543,"dataGaName":614},"gitlab duo agent platform - product menu",{"text":616,"config":617},"Source Code Management",{"href":618,"dataGaLocation":543,"dataGaName":616},"/solutions/source-code-management/",{"text":620,"config":621},"Automated Software Delivery",{"href":605,"dataGaLocation":543,"dataGaName":622},"Automated software delivery",{"title":624,"description":625,"link":626,"items":631},"Security","Deliver code faster without compromising security",{"config":627},{"href":628,"dataGaName":629,"dataGaLocation":543,"icon":630},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[632,636,641],{"text":633,"config":634},"Application Security Testing",{"href":628,"dataGaName":635,"dataGaLocation":543},"Application security testing",{"text":637,"config":638},"Software Supply Chain Security",{"href":639,"dataGaLocation":543,"dataGaName":640},"/solutions/supply-chain/","Software supply chain security",{"text":642,"config":643},"Software Compliance",{"href":644,"dataGaName":645,"dataGaLocation":543},"/solutions/software-compliance/","software compliance",{"title":647,"link":648,"items":653},"Measurement",{"config":649},{"icon":650,"href":651,"dataGaName":652,"dataGaLocation":543},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[654,658,662],{"text":655,"config":656},"Visibility & Measurement",{"href":651,"dataGaLocation":543,"dataGaName":657},"Visibility and Measurement",{"text":659,"config":660},"Value Stream Management",{"href":661,"dataGaLocation":543,"dataGaName":659},"/solutions/value-stream-management/",{"text":663,"config":664},"Analytics & Insights",{"href":665,"dataGaLocation":543,"dataGaName":666},"/solutions/analytics-and-insights/","Analytics and insights",{"title":668,"type":593,"items":669},"GitLab for",[670,676,682],{"text":671,"config":672},"Enterprise",{"icon":673,"href":674,"dataGaLocation":543,"dataGaName":675},"Building","/enterprise/","enterprise",{"text":677,"config":678},"Small Business",{"icon":679,"href":680,"dataGaLocation":543,"dataGaName":681},"Work","/small-business/","small business",{"text":683,"config":684},"Public Sector",{"icon":685,"href":686,"dataGaLocation":543,"dataGaName":687},"Organization","/solutions/public-sector/","public sector",{"text":689,"config":690},"Pricing",{"href":691,"dataGaName":692,"dataGaLocation":543,"dataNavLevelOne":692},"/pricing/","pricing",{"text":694,"config":695,"menu":697},"Resources",{"dataNavLevelOne":696},"resources",{"type":593,"link":698,"columns":702,"feature":796},{"text":699,"config":700},"View all resources",{"href":701,"dataGaName":696,"dataGaLocation":543},"/resources/",[703,736,763],{"title":704,"items":705},"Getting started",[706,711,716,721,726,731],{"text":707,"config":708},"Install",{"href":709,"dataGaName":710,"dataGaLocation":543},"/install/","install",{"text":712,"config":713},"Quick start guides",{"href":714,"dataGaName":715,"dataGaLocation":543},"/get-started/","quick setup checklists",{"text":717,"config":718},"Learn",{"href":719,"dataGaLocation":543,"dataGaName":720},"https://university.gitlab.com/","learn",{"text":722,"config":723},"Product documentation",{"href":724,"dataGaName":725,"dataGaLocation":543},"https://docs.gitlab.com/","product documentation",{"text":727,"config":728},"Best practice videos",{"href":729,"dataGaName":730,"dataGaLocation":543},"/getting-started-videos/","best practice videos",{"text":732,"config":733},"Integrations",{"href":734,"dataGaName":735,"dataGaLocation":543},"/integrations/","integrations",{"title":737,"items":738},"Discover",[739,744,749,754,758],{"text":740,"config":741},"Customer success stories",{"href":742,"dataGaName":743,"dataGaLocation":543},"/customers/","customer success stories",{"text":745,"config":746},"Blog",{"href":747,"dataGaName":748,"dataGaLocation":543},"/blog/","blog",{"text":750,"config":751},"Demo Hub",{"href":752,"dataGaName":753,"dataGaLocation":543},"/demo-hub/","demo hub",{"text":755,"config":756},"The Source",{"href":757,"dataGaName":748,"dataGaLocation":543},"/the-source/",{"text":759,"config":760},"Remote",{"href":761,"dataGaName":762,"dataGaLocation":543},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":764,"items":765},"Connect",[766,771,776,781,786,791],{"text":767,"config":768},"GitLab Services",{"href":769,"dataGaName":770,"dataGaLocation":543},"/services/","services",{"text":772,"config":773},"Contribute",{"href":774,"dataGaName":775,"dataGaLocation":543},"https://contributors.gitlab.com","contribute",{"text":777,"config":778},"Community",{"href":779,"dataGaName":780,"dataGaLocation":543},"/community/","community",{"text":782,"config":783},"Forum",{"href":784,"dataGaName":785,"dataGaLocation":543},"https://forum.gitlab.com/","forum",{"text":787,"config":788},"Events",{"href":789,"dataGaName":790,"dataGaLocation":543},"/events/","events",{"text":792,"config":793},"Partners",{"href":794,"dataGaName":795,"dataGaLocation":543},"/partners/","partners",{"config":797,"title":800,"text":801,"link":802},{"background":798,"textColor":799},"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":803,"config":804},"Read the latest",{"href":805,"dataGaName":806,"dataGaLocation":543},"/whats-new/","whats new",{"text":808,"config":809,"menu":811},"Company",{"dataNavLevelOne":810},"company",{"type":593,"columns":812},[813],{"items":814},[815,820,826,828,833,838,843,848,853,858],{"text":816,"config":817},"About",{"href":818,"dataGaName":819,"dataGaLocation":543},"/company/","about",{"text":821,"config":822,"footerGa":825},"Jobs",{"href":823,"dataGaName":824,"dataGaLocation":543},"/jobs/","jobs",{"dataGaName":824},{"text":787,"config":827},{"href":789,"dataGaName":790,"dataGaLocation":543},{"text":829,"config":830},"Leadership",{"href":831,"dataGaName":832,"dataGaLocation":543},"/company/team/e-group/","leadership",{"text":834,"config":835},"Handbook",{"href":836,"dataGaName":837,"dataGaLocation":543},"https://handbook.gitlab.com/","handbook",{"text":839,"config":840},"Investor relations",{"href":841,"dataGaName":842,"dataGaLocation":543},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":844,"config":845},"Trust Center",{"href":846,"dataGaName":847,"dataGaLocation":543},"/security/","trust center",{"text":849,"config":850},"AI Transparency Center",{"href":851,"dataGaName":852,"dataGaLocation":543},"/ai-transparency-center/","ai transparency center",{"text":854,"config":855},"Newsletter",{"href":856,"dataGaName":857,"dataGaLocation":543},"/company/contact/#contact-forms","newsletter",{"text":859,"config":860},"Press",{"href":861,"dataGaName":862,"dataGaLocation":543},"/press/","press",{"text":864,"config":865,"menu":866},"Contact us",{"dataNavLevelOne":810},{"type":593,"columns":867},[868],{"items":869},[870,875,880],{"text":871,"config":872},"Talk to sales",{"href":873,"dataGaName":874,"dataGaLocation":543},"/sales/","talk to sales",{"text":876,"config":877},"Support portal",{"href":878,"dataGaName":879,"dataGaLocation":543},"https://support.gitlab.com/hc/en-us","support portal",{"text":881,"config":882},"Customer portal",{"href":883,"dataGaName":884,"dataGaLocation":543},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":886,"login":887,"suggestions":894},"Close",{"text":888,"link":889},"To search repositories and projects, login to",{"text":890,"config":891},"gitlab.com",{"href":556,"dataGaName":892,"dataGaLocation":893},"search login","search",{"text":895,"default":896},"Suggestions",[897,899,903,905,909,913],{"text":573,"config":898},{"href":578,"dataGaName":573,"dataGaLocation":893},{"text":900,"config":901},"Code Suggestions (AI)",{"href":902,"dataGaName":900,"dataGaLocation":893},"/solutions/code-suggestions/",{"text":609,"config":904},{"href":611,"dataGaName":609,"dataGaLocation":893},{"text":906,"config":907},"GitLab on AWS",{"href":908,"dataGaName":906,"dataGaLocation":893},"/partners/technology-partners/aws/",{"text":910,"config":911},"GitLab on Google Cloud",{"href":912,"dataGaName":910,"dataGaLocation":893},"/partners/technology-partners/google-cloud-platform/",{"text":914,"config":915},"Why GitLab?",{"href":586,"dataGaName":914,"dataGaLocation":893},{"freeTrial":917,"mobileIcon":922,"desktopIcon":927,"secondaryButton":930},{"text":918,"config":919},"Start free trial",{"href":920,"dataGaName":548,"dataGaLocation":921},"https://gitlab.com/-/trials/new/","nav",{"altText":923,"config":924},"Gitlab Icon",{"src":925,"dataGaName":926,"dataGaLocation":921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":923,"config":928},{"src":929,"dataGaName":926,"dataGaLocation":921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":931,"config":932},"Get Started",{"href":933,"dataGaName":934,"dataGaLocation":921},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":936,"mobileIcon":940,"desktopIcon":942},{"text":937,"config":938},"Learn more about GitLab Duo",{"href":578,"dataGaName":939,"dataGaLocation":921},"gitlab duo",{"altText":923,"config":941},{"src":925,"dataGaName":926,"dataGaLocation":921},{"altText":923,"config":943},{"src":929,"dataGaName":926,"dataGaLocation":921},{"button":945,"mobileIcon":950,"desktopIcon":952},{"text":946,"config":947},"/switch",{"href":948,"dataGaName":949,"dataGaLocation":921},"#contact","switch",{"altText":923,"config":951},{"src":925,"dataGaName":926,"dataGaLocation":921},{"altText":923,"config":953},{"src":954,"dataGaName":926,"dataGaLocation":921},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":956,"mobileIcon":961,"desktopIcon":963},{"text":957,"config":958},"Back to pricing",{"href":691,"dataGaName":959,"dataGaLocation":921,"icon":960},"back to pricing","GoBack",{"altText":923,"config":962},{"src":925,"dataGaName":926,"dataGaLocation":921},{"altText":923,"config":964},{"src":929,"dataGaName":926,"dataGaLocation":921},{"title":966,"titleMobile":967,"button":968,"config":973},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":584,"config":969},{"href":970,"dataGaName":971,"dataGaLocation":972},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":974,"disabled":522},"release",{"data":976},{"text":977,"source":978,"edit":984,"contribute":989,"config":994,"items":999,"minimal":1209},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":979,"config":980},"View page source",{"href":981,"dataGaName":982,"dataGaLocation":983},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":985,"config":986},"Edit this page",{"href":987,"dataGaName":988,"dataGaLocation":983},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":990,"config":991},"Please contribute",{"href":992,"dataGaName":993,"dataGaLocation":983},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":995,"facebook":996,"youtube":997,"linkedin":998},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1000,1047,1101,1145,1177],{"title":689,"links":1001,"subMenu":1016},[1002,1006,1011],{"text":1003,"config":1004},"View plans",{"href":691,"dataGaName":1005,"dataGaLocation":983},"view plans",{"text":1007,"config":1008},"Why Premium?",{"href":1009,"dataGaName":1010,"dataGaLocation":983},"/pricing/premium/","why premium",{"text":1012,"config":1013},"Why Ultimate?",{"href":1014,"dataGaName":1015,"dataGaLocation":983},"/pricing/ultimate/","why ultimate",[1017],{"title":1018,"links":1019},"Contact Us",[1020,1023,1025,1027,1032,1037,1042],{"text":1021,"config":1022},"Contact sales",{"href":873,"dataGaName":553,"dataGaLocation":983},{"text":876,"config":1024},{"href":878,"dataGaName":879,"dataGaLocation":983},{"text":881,"config":1026},{"href":883,"dataGaName":884,"dataGaLocation":983},{"text":1028,"config":1029},"Status",{"href":1030,"dataGaName":1031,"dataGaLocation":983},"https://status.gitlab.com/","status",{"text":1033,"config":1034},"Terms of use",{"href":1035,"dataGaName":1036,"dataGaLocation":983},"/terms/","terms of use",{"text":1038,"config":1039},"Privacy statement",{"href":1040,"dataGaName":1041,"dataGaLocation":983},"/privacy/","privacy statement",{"text":1043,"config":1044},"Cookie preferences",{"dataGaName":1045,"dataGaLocation":983,"id":1046,"isOneTrustButton":202},"cookie preferences","ot-sdk-btn",{"title":589,"links":1048,"subMenu":1057},[1049,1053],{"text":1050,"config":1051},"DevSecOps platform",{"href":571,"dataGaName":1052,"dataGaLocation":983},"devsecops platform",{"text":1054,"config":1055},"AI-Assisted Development",{"href":578,"dataGaName":1056,"dataGaLocation":983},"ai-assisted development",[1058],{"title":1059,"links":1060},"Topics",[1061,1066,1071,1076,1081,1086,1091,1096],{"text":1062,"config":1063},"CICD",{"href":1064,"dataGaName":1065,"dataGaLocation":983},"/topics/ci-cd/","cicd",{"text":1067,"config":1068},"GitOps",{"href":1069,"dataGaName":1070,"dataGaLocation":983},"/topics/gitops/","gitops",{"text":1072,"config":1073},"DevOps",{"href":1074,"dataGaName":1075,"dataGaLocation":983},"/topics/devops/","devops",{"text":1077,"config":1078},"Version Control",{"href":1079,"dataGaName":1080,"dataGaLocation":983},"/topics/version-control/","version control",{"text":1082,"config":1083},"DevSecOps",{"href":1084,"dataGaName":1085,"dataGaLocation":983},"/topics/devsecops/","devsecops",{"text":1087,"config":1088},"Cloud Native",{"href":1089,"dataGaName":1090,"dataGaLocation":983},"/topics/cloud-native/","cloud native",{"text":1092,"config":1093},"AI for Coding",{"href":1094,"dataGaName":1095,"dataGaLocation":983},"/topics/devops/ai-for-coding/","ai for coding",{"text":1097,"config":1098},"Agentic AI",{"href":1099,"dataGaName":1100,"dataGaLocation":983},"/topics/agentic-ai/","agentic ai",{"title":1102,"links":1103},"Solutions",[1104,1106,1108,1113,1117,1120,1124,1127,1129,1132,1135,1140],{"text":633,"config":1105},{"href":628,"dataGaName":633,"dataGaLocation":983},{"text":622,"config":1107},{"href":605,"dataGaName":606,"dataGaLocation":983},{"text":1109,"config":1110},"Agile development",{"href":1111,"dataGaName":1112,"dataGaLocation":983},"/solutions/agile-delivery/","agile delivery",{"text":1114,"config":1115},"SCM",{"href":618,"dataGaName":1116,"dataGaLocation":983},"source code management",{"text":1062,"config":1118},{"href":611,"dataGaName":1119,"dataGaLocation":983},"continuous integration & delivery",{"text":1121,"config":1122},"Value stream management",{"href":661,"dataGaName":1123,"dataGaLocation":983},"value stream management",{"text":1067,"config":1125},{"href":1126,"dataGaName":1070,"dataGaLocation":983},"/solutions/gitops/",{"text":671,"config":1128},{"href":674,"dataGaName":675,"dataGaLocation":983},{"text":1130,"config":1131},"Small business",{"href":680,"dataGaName":681,"dataGaLocation":983},{"text":1133,"config":1134},"Public sector",{"href":686,"dataGaName":687,"dataGaLocation":983},{"text":1136,"config":1137},"Education",{"href":1138,"dataGaName":1139,"dataGaLocation":983},"/solutions/education/","education",{"text":1141,"config":1142},"Financial services",{"href":1143,"dataGaName":1144,"dataGaLocation":983},"/solutions/finance/","financial services",{"title":694,"links":1146},[1147,1149,1151,1153,1156,1158,1161,1163,1165,1167,1169,1171,1173,1175],{"text":707,"config":1148},{"href":709,"dataGaName":710,"dataGaLocation":983},{"text":712,"config":1150},{"href":714,"dataGaName":715,"dataGaLocation":983},{"text":717,"config":1152},{"href":719,"dataGaName":720,"dataGaLocation":983},{"text":722,"config":1154},{"href":724,"dataGaName":1155,"dataGaLocation":983},"docs",{"text":745,"config":1157},{"href":747,"dataGaName":748,"dataGaLocation":983},{"text":1159,"config":1160},"What's new",{"href":805,"dataGaName":806,"dataGaLocation":983},{"text":740,"config":1162},{"href":742,"dataGaName":743,"dataGaLocation":983},{"text":759,"config":1164},{"href":761,"dataGaName":762,"dataGaLocation":983},{"text":767,"config":1166},{"href":769,"dataGaName":770,"dataGaLocation":983},{"text":772,"config":1168},{"href":774,"dataGaName":775,"dataGaLocation":983},{"text":777,"config":1170},{"href":779,"dataGaName":780,"dataGaLocation":983},{"text":782,"config":1172},{"href":784,"dataGaName":785,"dataGaLocation":983},{"text":787,"config":1174},{"href":789,"dataGaName":790,"dataGaLocation":983},{"text":792,"config":1176},{"href":794,"dataGaName":795,"dataGaLocation":983},{"title":808,"links":1178},[1179,1181,1183,1185,1187,1189,1193,1198,1200,1202,1204],{"text":816,"config":1180},{"href":818,"dataGaName":810,"dataGaLocation":983},{"text":821,"config":1182},{"href":823,"dataGaName":824,"dataGaLocation":983},{"text":829,"config":1184},{"href":831,"dataGaName":832,"dataGaLocation":983},{"text":834,"config":1186},{"href":836,"dataGaName":837,"dataGaLocation":983},{"text":839,"config":1188},{"href":841,"dataGaName":842,"dataGaLocation":983},{"text":1190,"config":1191},"Sustainability",{"href":1192,"dataGaName":1190,"dataGaLocation":983},"/sustainability/",{"text":1194,"config":1195},"Diversity, inclusion and belonging (DIB)",{"href":1196,"dataGaName":1197,"dataGaLocation":983},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":844,"config":1199},{"href":846,"dataGaName":847,"dataGaLocation":983},{"text":854,"config":1201},{"href":856,"dataGaName":857,"dataGaLocation":983},{"text":859,"config":1203},{"href":861,"dataGaName":862,"dataGaLocation":983},{"text":1205,"config":1206},"Modern Slavery Transparency Statement",{"href":1207,"dataGaName":1208,"dataGaLocation":983},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1210},[1211,1214,1217],{"text":1212,"config":1213},"Terms",{"href":1035,"dataGaName":1036,"dataGaLocation":983},{"text":1215,"config":1216},"Cookies",{"dataGaName":1045,"dataGaLocation":983,"id":1046,"isOneTrustButton":202},{"text":1218,"config":1219},"Privacy",{"href":1040,"dataGaName":1041,"dataGaLocation":983},[1221],{"id":1222,"title":7,"body":521,"config":1223,"content":1225,"description":521,"extension":1228,"meta":1229,"navigation":202,"path":1230,"seo":1231,"stem":1232,"__hash__":1233},"blogAuthors/en-us/blog/authors/nicole-schwartz.yml",{"template":1224},"BlogAuthor",{"name":7,"config":1226},{"headshot":192,"ctfId":1227},"nicoleschwartz","yml",{},"/en-us/blog/authors/nicole-schwartz",{},"en-us/blog/authors/nicole-schwartz","rOmvp54iy-eNQvQZ0VxJuSNU4XtQJGjxQfEOTEA9qB0",[1235,1243,1251],{"title":1236,"description":1237,"heroImage":1238,"category":517,"date":1239,"authors":1240,"slug":1242,"externalUrl":521},"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",[1241],"Jacie Bandur","ceo-shadow-recap",{"title":1244,"description":1245,"heroImage":1246,"category":517,"date":1247,"authors":1248,"slug":1250,"externalUrl":521},"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",[1249],"Austin Regnery","why-i-love-contributing-to-gitlab",{"title":1252,"description":1253,"heroImage":1254,"category":517,"date":1247,"authors":1255,"slug":1257,"externalUrl":521},"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",[1256],"Sam Beckham","placebo-lines-on-the-pipeline-graph",{"promotions":1259},[1260,1274,1286,1297],{"id":1261,"categories":1262,"header":1264,"text":1265,"button":1266,"image":1271},"ai-modernization",[1263],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1267,"config":1268},"Get your AI maturity score",{"href":1269,"dataGaName":1270,"dataGaLocation":748},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1272},{"src":1273},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1275,"categories":1276,"header":1278,"text":1265,"button":1279,"image":1283},"devops-modernization",[1277,1085],"product","Are you just managing tools or shipping innovation?",{"text":1280,"config":1281},"Get your DevOps maturity score",{"href":1282,"dataGaName":1270,"dataGaLocation":748},"/assessments/devops-modernization-assessment/",{"config":1284},{"src":1285},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1287,"categories":1288,"header":1289,"text":1265,"button":1290,"image":1294},"security-modernization",[534],"Are you trading speed for security?",{"text":1291,"config":1292},"Get your security maturity score",{"href":1293,"dataGaName":1270,"dataGaLocation":748},"/assessments/security-modernization-assessment/",{"config":1295},{"src":1296},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1298,"paths":1299,"header":1302,"text":1303,"button":1304,"image":1309},"github-azure-migration",[1300,1301],"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":1305,"config":1306},"See how GitLab compares to GitHub",{"href":1307,"dataGaName":1308,"dataGaLocation":748},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1310},{"src":1285},{"header":1312,"blurb":1313,"button":1314,"secondaryButton":1319},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1315,"config":1316},"Get your free trial",{"href":1317,"dataGaName":548,"dataGaLocation":1318},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1021,"config":1320},{"href":873,"dataGaName":553,"dataGaLocation":1318},1786803755884]