[{"data":1,"prerenderedAt":1079},["ShallowReactive",2],{"/blog/security-advisory-for-logjam-vulnerability":3,"navigation-en-us":294,"banner-en-us":721,"footer-en-us":731,"blog-post-authors-en-us-Marin Jankovski":976,"blog-related-posts-en-us-security-advisory-for-logjam-vulnerability":991,"blog-promotions-en-us":1015,"next-steps-en-us":1069},{"id":4,"title":5,"authors":6,"body":8,"category":266,"date":267,"description":268,"extension":269,"externalUrl":270,"faq":270,"featured":271,"heroImage":272,"meta":273,"navigation":284,"path":285,"seo":286,"slug":290,"stem":291,"tags":270,"template":292,"updatedDate":270,"__hash__":293},"blogPosts/en-us/blog/security-advisory-for-logjam-vulnerability.md","Security advisory for Logjam vulnerability",[7],"Marin Jankovski",{"type":9,"value":10,"toc":260},"minimark",[11,28,33,36,56,59,66,69,101,108,113,119,129,136,162,168,176,181,187,191,216,221,225,234,243,246,250,253,256],[12,13,14,15,21,22,27],"p",{},"A recently announced ",[16,17,20],"a",{"href":18,"rel":19},"https://weakdh.org/",[],"Logjam vulnerability"," allows an attacker to do a man-in-the-middle attack, allowing them to downgrade a TLS connection to 512-bit DH parameters. More details on what that is and means can be ",[16,23,26],{"href":24,"rel":25},"https://www.openssl.org/blog/blog/logjam-freak-upcoming-changes/",[],"found on openssl blog",".",[29,30,32],"h3",{"id":31},"impact-on-gitlab","Impact on GitLab",[12,34,35],{},"GitLab is using, by default, up-to-date SSL ciphers:",[37,38,39,47,53],"ul",{},[40,41,42,46],"li",{},[43,44,45],"code",{},"Export Cipher Suites"," are not used.",[40,48,49,52],{},[43,50,51],{},"Elliptic-Curve Diffie-Hellman"," ciphers are used",[40,54,55],{},"By default, 1024-bit DH groups are used",[12,57,58],{},"This means that GitLab is safe in principle. When using 1028-bit DH groups there is a small chance that an attacker with nation-state resources could be eavesdropping.",[12,60,61,62,65],{},"If you find this insufficient for your GitLab installation, you can generate 2048-bit DH groups and enable the ",[43,63,64],{},"ssl_dhparam"," option in NGINX config.",[12,67,68],{},"Params can be generated with:",[70,71,76],"pre",{"className":72,"code":73,"language":74,"meta":75,"style":75},"language-bash shiki shiki-themes github-light","openssl dhparam -out dhparams.pem 2048\n","bash","",[43,77,78],{"__ignoreMap":75},[79,80,83,87,91,95,98],"span",{"class":81,"line":82},"line",1,[79,84,86],{"class":85},"s7eDp","openssl",[79,88,90],{"class":89},"sYBdl"," dhparam",[79,92,94],{"class":93},"sYu0t"," -out",[79,96,97],{"class":89}," dhparams.pem",[79,99,100],{"class":93}," 2048\n",[12,102,103,104,107],{},"After the ",[43,105,106],{},"dhparams.pem"," file has been generated you will need to tell Nginx where the file is located:",[109,110,112],"h4",{"id":111},"gitlab-installations-using-omnibus-gitlab-packages","GitLab installations using omnibus-gitlab packages",[12,114,115],{},[116,117,118],"em",{},"For packages version 7.11.0 and up.",[12,120,121,122,124,125,128],{},"Place the ",[43,123,106],{}," file in ",[43,126,127],{},"/etc/gitlab/ssl/"," directory.",[12,130,131,132,135],{},"In ",[43,133,134],{},"/etc/gitlab/gitlab.rb",", enable the following setting:",[70,137,141],{"className":138,"code":139,"language":140,"meta":75,"style":75},"language-ruby shiki shiki-themes github-light","nginx['ssl_dhparam'] = \"/etc/gitlab/ssl/dhparams.pem\"\n","ruby",[43,142,143],{"__ignoreMap":75},[79,144,145,149,152,155,159],{"class":81,"line":82},[79,146,148],{"class":147},"sgsFI","nginx[",[79,150,151],{"class":89},"'ssl_dhparam'",[79,153,154],{"class":147},"] ",[79,156,158],{"class":157},"sD7c4","=",[79,160,161],{"class":89}," \"/etc/gitlab/ssl/dhparams.pem\"\n",[12,163,164,165,27],{},"and do ",[43,166,167],{},"sudo gitlab-ctl reconfigure",[12,169,170,171,27],{},"More information can be ",[16,172,175],{"href":173,"rel":174},"https://gitlab.com/gitlab-org/omnibus-gitlab/blob/7-11-stable/doc/settings/nginx.md#using-custom-ssl-ciphers",[],"found in the omnibus-gitlab nginx documentation",[12,177,178],{},[116,179,180],{},"Workaround for packages prior to version 7.11.0",[12,182,121,183,124,185,128],{},[43,184,106],{},[43,186,127],{},[12,188,131,189,135],{},[43,190,134],{},[70,192,194],{"className":138,"code":193,"language":140,"meta":75,"style":75},"nginx['custom_gitlab_server_config'] = \"ssl_dhparam /etc/gitlab/ssl/dhparams.pem;\\n\"\n",[43,195,196],{"__ignoreMap":75},[79,197,198,200,203,205,207,210,213],{"class":81,"line":82},[79,199,148],{"class":147},[79,201,202],{"class":89},"'custom_gitlab_server_config'",[79,204,154],{"class":147},[79,206,158],{"class":157},[79,208,209],{"class":89}," \"ssl_dhparam /etc/gitlab/ssl/dhparams.pem;",[79,211,212],{"class":93},"\\n",[79,214,215],{"class":89},"\"\n",[12,217,218,219,27],{},"and run ",[43,220,167],{},[109,222,224],{"id":223},"gitlab-installations-from-source","GitLab installations from source",[12,226,227,228,230,231,27],{},"Place the generated ",[43,229,106],{}," in a suitable location, for example ",[43,232,233],{},"/etc/nginx/ssl/dhparams.pem",[12,235,236,237,239,240,27],{},"In GitLab nginx config find ",[43,238,64],{}," config and set it to ",[43,241,242],{},"ssl_dhparam /etc/nginx/ssl/dhparams.pem;",[12,244,245],{},"Reload your nginx config.",[29,247,249],{"id":248},"impact-on-gitlabcom","Impact on GitLab.com",[12,251,252],{},"GitLab.com is using 1028-bit DH groups. Due to incompatibilities with older Java-based clients we haven't enabled 2048-bit DH params yet as this would prevent some people from using GitLab.com. We are looking into ways to keep a good SSLlabs score and allowing users with older Java-base clients to use GitLab.com.",[12,254,255],{},"We are examining the impact of this and we will update this blog post once we have more information.",[257,258,259],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}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);}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}",{"title":75,"searchDepth":261,"depth":261,"links":262},2,[263,265],{"id":31,"depth":264,"text":32},3,{"id":248,"depth":264,"text":249},"company","2015-05-21","Find information from GitLab relating to the recently announced Logjam vulnerability which allows an attacker to do a man-in-the-middle attack!","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg",{"excerpt":274},{"type":9,"value":275},[276],[12,277,14,278,21,281,27],{},[16,279,20],{"href":18,"rel":280},[],[16,282,26],{"href":24,"rel":283},[],true,"/en-us/blog/security-advisory-for-logjam-vulnerability",{"title":5,"description":268,"ogTitle":5,"ogDescription":268,"noIndex":271,"ogImage":272,"ogUrl":287,"ogSiteName":288,"ogType":289,"canonicalUrls":287},"https://about.gitlab.com/blog/security-advisory-for-logjam-vulnerability","https://about.gitlab.com","article","security-advisory-for-logjam-vulnerability","en-us/blog/security-advisory-for-logjam-vulnerability","BlogPost","MtOckxKgVvx8mKqUFpK5Cc7JZhOn1vJGbnCrowdssVU",{"logo":295,"freeTrial":300,"sales":305,"login":310,"items":315,"search":641,"minimal":672,"duo":691,"switchNav":700,"pricingDeployment":711},{"config":296},{"href":297,"dataGaName":298,"dataGaLocation":299},"/","gitlab logo","header",{"text":301,"config":302},"Get free trial",{"href":303,"dataGaName":304,"dataGaLocation":299},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":306,"config":307},"Request a demo",{"href":308,"dataGaName":309,"dataGaLocation":299},"/sales/?contact-topic=request-demo","sales",{"text":311,"config":312},"Sign in",{"href":313,"dataGaName":314,"dataGaLocation":299},"https://gitlab.com/users/sign_in/","sign in",[316,345,445,450,564,619],{"text":317,"config":318,"menu":320},"Platform",{"dataNavLevelOne":319},"platform",{"type":321,"columns":322},"cards",[323,329,337],{"title":317,"description":324,"link":325},"The intelligent orchestration platform for DevSecOps",{"text":326,"config":327},"Explore our Platform",{"href":328,"dataGaName":319,"dataGaLocation":299},"/platform/",{"title":330,"description":331,"link":332},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":333,"config":334},"Meet GitLab Duo",{"href":335,"dataGaName":336,"dataGaLocation":299},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":338,"description":339,"link":340},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":341,"config":342},"Learn more",{"href":343,"dataGaName":344,"dataGaLocation":299},"/why-gitlab/","why gitlab",{"text":346,"left":284,"config":347,"menu":349},"Product",{"dataNavLevelOne":348},"solutions",{"type":350,"link":351,"columns":355,"feature":424},"lists",{"text":352,"config":353},"View all Solutions",{"href":354,"dataGaName":348,"dataGaLocation":299},"/solutions/",[356,380,403],{"title":357,"description":358,"link":359,"items":364},"Automation","CI/CD and automation to accelerate deployment",{"config":360},{"icon":361,"href":362,"dataGaName":363,"dataGaLocation":299},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[365,369,372,376],{"text":366,"config":367},"CI/CD",{"href":368,"dataGaLocation":299,"dataGaName":366},"/solutions/continuous-integration/",{"text":330,"config":370},{"href":335,"dataGaLocation":299,"dataGaName":371},"gitlab duo agent platform - product menu",{"text":373,"config":374},"Source Code Management",{"href":375,"dataGaLocation":299,"dataGaName":373},"/solutions/source-code-management/",{"text":377,"config":378},"Automated Software Delivery",{"href":362,"dataGaLocation":299,"dataGaName":379},"Automated software delivery",{"title":381,"description":382,"link":383,"items":388},"Security","Deliver code faster without compromising security",{"config":384},{"href":385,"dataGaName":386,"dataGaLocation":299,"icon":387},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[389,393,398],{"text":390,"config":391},"Application Security Testing",{"href":385,"dataGaName":392,"dataGaLocation":299},"Application security testing",{"text":394,"config":395},"Software Supply Chain Security",{"href":396,"dataGaLocation":299,"dataGaName":397},"/solutions/supply-chain/","Software supply chain security",{"text":399,"config":400},"Software Compliance",{"href":401,"dataGaName":402,"dataGaLocation":299},"/solutions/software-compliance/","software compliance",{"title":404,"link":405,"items":410},"Measurement",{"config":406},{"icon":407,"href":408,"dataGaName":409,"dataGaLocation":299},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[411,415,419],{"text":412,"config":413},"Visibility & Measurement",{"href":408,"dataGaLocation":299,"dataGaName":414},"Visibility and Measurement",{"text":416,"config":417},"Value Stream Management",{"href":418,"dataGaLocation":299,"dataGaName":416},"/solutions/value-stream-management/",{"text":420,"config":421},"Analytics & Insights",{"href":422,"dataGaLocation":299,"dataGaName":423},"/solutions/analytics-and-insights/","Analytics and insights",{"title":425,"type":350,"items":426},"GitLab for",[427,433,439],{"text":428,"config":429},"Enterprise",{"icon":430,"href":431,"dataGaLocation":299,"dataGaName":432},"Building","/enterprise/","enterprise",{"text":434,"config":435},"Small Business",{"icon":436,"href":437,"dataGaLocation":299,"dataGaName":438},"Work","/small-business/","small business",{"text":440,"config":441},"Public Sector",{"icon":442,"href":443,"dataGaLocation":299,"dataGaName":444},"Organization","/solutions/public-sector/","public sector",{"text":446,"config":447},"Pricing",{"href":448,"dataGaName":449,"dataGaLocation":299,"dataNavLevelOne":449},"/pricing/","pricing",{"text":451,"config":452,"menu":454},"Resources",{"dataNavLevelOne":453},"resources",{"type":350,"link":455,"columns":459,"feature":553},{"text":456,"config":457},"View all resources",{"href":458,"dataGaName":453,"dataGaLocation":299},"/resources/",[460,493,520],{"title":461,"items":462},"Getting started",[463,468,473,478,483,488],{"text":464,"config":465},"Install",{"href":466,"dataGaName":467,"dataGaLocation":299},"/install/","install",{"text":469,"config":470},"Quick start guides",{"href":471,"dataGaName":472,"dataGaLocation":299},"/get-started/","quick setup checklists",{"text":474,"config":475},"Learn",{"href":476,"dataGaLocation":299,"dataGaName":477},"https://university.gitlab.com/","learn",{"text":479,"config":480},"Product documentation",{"href":481,"dataGaName":482,"dataGaLocation":299},"https://docs.gitlab.com/","product documentation",{"text":484,"config":485},"Best practice videos",{"href":486,"dataGaName":487,"dataGaLocation":299},"/getting-started-videos/","best practice videos",{"text":489,"config":490},"Integrations",{"href":491,"dataGaName":492,"dataGaLocation":299},"/integrations/","integrations",{"title":494,"items":495},"Discover",[496,501,506,511,515],{"text":497,"config":498},"Customer success stories",{"href":499,"dataGaName":500,"dataGaLocation":299},"/customers/","customer success stories",{"text":502,"config":503},"Blog",{"href":504,"dataGaName":505,"dataGaLocation":299},"/blog/","blog",{"text":507,"config":508},"Demo Hub",{"href":509,"dataGaName":510,"dataGaLocation":299},"/demo-hub/","demo hub",{"text":512,"config":513},"The Source",{"href":514,"dataGaName":505,"dataGaLocation":299},"/the-source/",{"text":516,"config":517},"Remote",{"href":518,"dataGaName":519,"dataGaLocation":299},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":521,"items":522},"Connect",[523,528,533,538,543,548],{"text":524,"config":525},"GitLab Services",{"href":526,"dataGaName":527,"dataGaLocation":299},"/services/","services",{"text":529,"config":530},"Contribute",{"href":531,"dataGaName":532,"dataGaLocation":299},"https://contributors.gitlab.com","contribute",{"text":534,"config":535},"Community",{"href":536,"dataGaName":537,"dataGaLocation":299},"/community/","community",{"text":539,"config":540},"Forum",{"href":541,"dataGaName":542,"dataGaLocation":299},"https://forum.gitlab.com/","forum",{"text":544,"config":545},"Events",{"href":546,"dataGaName":547,"dataGaLocation":299},"/events/","events",{"text":549,"config":550},"Partners",{"href":551,"dataGaName":552,"dataGaLocation":299},"/partners/","partners",{"config":554,"title":557,"text":558,"link":559},{"background":555,"textColor":556},"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":560,"config":561},"Read the latest",{"href":562,"dataGaName":563,"dataGaLocation":299},"/whats-new/","whats new",{"text":565,"config":566,"menu":567},"Company",{"dataNavLevelOne":266},{"type":350,"columns":568},[569],{"items":570},[571,576,582,584,589,594,599,604,609,614],{"text":572,"config":573},"About",{"href":574,"dataGaName":575,"dataGaLocation":299},"/company/","about",{"text":577,"config":578,"footerGa":581},"Jobs",{"href":579,"dataGaName":580,"dataGaLocation":299},"/jobs/","jobs",{"dataGaName":580},{"text":544,"config":583},{"href":546,"dataGaName":547,"dataGaLocation":299},{"text":585,"config":586},"Leadership",{"href":587,"dataGaName":588,"dataGaLocation":299},"/company/team/e-group/","leadership",{"text":590,"config":591},"Handbook",{"href":592,"dataGaName":593,"dataGaLocation":299},"https://handbook.gitlab.com/","handbook",{"text":595,"config":596},"Investor relations",{"href":597,"dataGaName":598,"dataGaLocation":299},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":600,"config":601},"Trust Center",{"href":602,"dataGaName":603,"dataGaLocation":299},"/security/","trust center",{"text":605,"config":606},"AI Transparency Center",{"href":607,"dataGaName":608,"dataGaLocation":299},"/ai-transparency-center/","ai transparency center",{"text":610,"config":611},"Newsletter",{"href":612,"dataGaName":613,"dataGaLocation":299},"/company/contact/#contact-forms","newsletter",{"text":615,"config":616},"Press",{"href":617,"dataGaName":618,"dataGaLocation":299},"/press/","press",{"text":620,"config":621,"menu":622},"Contact us",{"dataNavLevelOne":266},{"type":350,"columns":623},[624],{"items":625},[626,631,636],{"text":627,"config":628},"Talk to sales",{"href":629,"dataGaName":630,"dataGaLocation":299},"/sales/","talk to sales",{"text":632,"config":633},"Support portal",{"href":634,"dataGaName":635,"dataGaLocation":299},"https://support.gitlab.com/hc/en-us","support portal",{"text":637,"config":638},"Customer portal",{"href":639,"dataGaName":640,"dataGaLocation":299},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":642,"login":643,"suggestions":650},"Close",{"text":644,"link":645},"To search repositories and projects, login to",{"text":646,"config":647},"gitlab.com",{"href":313,"dataGaName":648,"dataGaLocation":649},"search login","search",{"text":651,"default":652},"Suggestions",[653,655,659,661,665,669],{"text":330,"config":654},{"href":335,"dataGaName":330,"dataGaLocation":649},{"text":656,"config":657},"Code Suggestions (AI)",{"href":658,"dataGaName":656,"dataGaLocation":649},"/solutions/code-suggestions/",{"text":366,"config":660},{"href":368,"dataGaName":366,"dataGaLocation":649},{"text":662,"config":663},"GitLab on AWS",{"href":664,"dataGaName":662,"dataGaLocation":649},"/partners/technology-partners/aws/",{"text":666,"config":667},"GitLab on Google Cloud",{"href":668,"dataGaName":666,"dataGaLocation":649},"/partners/technology-partners/google-cloud-platform/",{"text":670,"config":671},"Why GitLab?",{"href":343,"dataGaName":670,"dataGaLocation":649},{"freeTrial":673,"mobileIcon":678,"desktopIcon":683,"secondaryButton":686},{"text":674,"config":675},"Start free trial",{"href":676,"dataGaName":304,"dataGaLocation":677},"https://gitlab.com/-/trials/new/","nav",{"altText":679,"config":680},"Gitlab Icon",{"src":681,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":679,"config":684},{"src":685,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":687,"config":688},"Get Started",{"href":689,"dataGaName":690,"dataGaLocation":677},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":692,"mobileIcon":696,"desktopIcon":698},{"text":693,"config":694},"Learn more about GitLab Duo",{"href":335,"dataGaName":695,"dataGaLocation":677},"gitlab duo",{"altText":679,"config":697},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":699},{"src":685,"dataGaName":682,"dataGaLocation":677},{"button":701,"mobileIcon":706,"desktopIcon":708},{"text":702,"config":703},"/switch",{"href":704,"dataGaName":705,"dataGaLocation":677},"#contact","switch",{"altText":679,"config":707},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":709},{"src":710,"dataGaName":682,"dataGaLocation":677},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":712,"mobileIcon":717,"desktopIcon":719},{"text":713,"config":714},"Back to pricing",{"href":448,"dataGaName":715,"dataGaLocation":677,"icon":716},"back to pricing","GoBack",{"altText":679,"config":718},{"src":681,"dataGaName":682,"dataGaLocation":677},{"altText":679,"config":720},{"src":685,"dataGaName":682,"dataGaLocation":677},{"title":722,"titleMobile":723,"button":724,"config":729},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":341,"config":725},{"href":726,"dataGaName":727,"dataGaLocation":728},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":730,"disabled":271},"release",{"data":732},{"text":733,"source":734,"edit":740,"contribute":745,"config":750,"items":755,"minimal":965},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":735,"config":736},"View page source",{"href":737,"dataGaName":738,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":741,"config":742},"Edit this page",{"href":743,"dataGaName":744,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":746,"config":747},"Please contribute",{"href":748,"dataGaName":749,"dataGaLocation":739},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":751,"facebook":752,"youtube":753,"linkedin":754},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[756,803,857,901,933],{"title":446,"links":757,"subMenu":772},[758,762,767],{"text":759,"config":760},"View plans",{"href":448,"dataGaName":761,"dataGaLocation":739},"view plans",{"text":763,"config":764},"Why Premium?",{"href":765,"dataGaName":766,"dataGaLocation":739},"/pricing/premium/","why premium",{"text":768,"config":769},"Why Ultimate?",{"href":770,"dataGaName":771,"dataGaLocation":739},"/pricing/ultimate/","why ultimate",[773],{"title":774,"links":775},"Contact Us",[776,779,781,783,788,793,798],{"text":777,"config":778},"Contact sales",{"href":629,"dataGaName":309,"dataGaLocation":739},{"text":632,"config":780},{"href":634,"dataGaName":635,"dataGaLocation":739},{"text":637,"config":782},{"href":639,"dataGaName":640,"dataGaLocation":739},{"text":784,"config":785},"Status",{"href":786,"dataGaName":787,"dataGaLocation":739},"https://status.gitlab.com/","status",{"text":789,"config":790},"Terms of use",{"href":791,"dataGaName":792,"dataGaLocation":739},"/terms/","terms of use",{"text":794,"config":795},"Privacy statement",{"href":796,"dataGaName":797,"dataGaLocation":739},"/privacy/","privacy statement",{"text":799,"config":800},"Cookie preferences",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":284},"cookie preferences","ot-sdk-btn",{"title":346,"links":804,"subMenu":813},[805,809],{"text":806,"config":807},"DevSecOps platform",{"href":328,"dataGaName":808,"dataGaLocation":739},"devsecops platform",{"text":810,"config":811},"AI-Assisted Development",{"href":335,"dataGaName":812,"dataGaLocation":739},"ai-assisted development",[814],{"title":815,"links":816},"Topics",[817,822,827,832,837,842,847,852],{"text":818,"config":819},"CICD",{"href":820,"dataGaName":821,"dataGaLocation":739},"/topics/ci-cd/","cicd",{"text":823,"config":824},"GitOps",{"href":825,"dataGaName":826,"dataGaLocation":739},"/topics/gitops/","gitops",{"text":828,"config":829},"DevOps",{"href":830,"dataGaName":831,"dataGaLocation":739},"/topics/devops/","devops",{"text":833,"config":834},"Version Control",{"href":835,"dataGaName":836,"dataGaLocation":739},"/topics/version-control/","version control",{"text":838,"config":839},"DevSecOps",{"href":840,"dataGaName":841,"dataGaLocation":739},"/topics/devsecops/","devsecops",{"text":843,"config":844},"Cloud Native",{"href":845,"dataGaName":846,"dataGaLocation":739},"/topics/cloud-native/","cloud native",{"text":848,"config":849},"AI for Coding",{"href":850,"dataGaName":851,"dataGaLocation":739},"/topics/devops/ai-for-coding/","ai for coding",{"text":853,"config":854},"Agentic AI",{"href":855,"dataGaName":856,"dataGaLocation":739},"/topics/agentic-ai/","agentic ai",{"title":858,"links":859},"Solutions",[860,862,864,869,873,876,880,883,885,888,891,896],{"text":390,"config":861},{"href":385,"dataGaName":390,"dataGaLocation":739},{"text":379,"config":863},{"href":362,"dataGaName":363,"dataGaLocation":739},{"text":865,"config":866},"Agile development",{"href":867,"dataGaName":868,"dataGaLocation":739},"/solutions/agile-delivery/","agile delivery",{"text":870,"config":871},"SCM",{"href":375,"dataGaName":872,"dataGaLocation":739},"source code management",{"text":818,"config":874},{"href":368,"dataGaName":875,"dataGaLocation":739},"continuous integration & delivery",{"text":877,"config":878},"Value stream management",{"href":418,"dataGaName":879,"dataGaLocation":739},"value stream management",{"text":823,"config":881},{"href":882,"dataGaName":826,"dataGaLocation":739},"/solutions/gitops/",{"text":428,"config":884},{"href":431,"dataGaName":432,"dataGaLocation":739},{"text":886,"config":887},"Small business",{"href":437,"dataGaName":438,"dataGaLocation":739},{"text":889,"config":890},"Public sector",{"href":443,"dataGaName":444,"dataGaLocation":739},{"text":892,"config":893},"Education",{"href":894,"dataGaName":895,"dataGaLocation":739},"/solutions/education/","education",{"text":897,"config":898},"Financial services",{"href":899,"dataGaName":900,"dataGaLocation":739},"/solutions/finance/","financial services",{"title":451,"links":902},[903,905,907,909,912,914,917,919,921,923,925,927,929,931],{"text":464,"config":904},{"href":466,"dataGaName":467,"dataGaLocation":739},{"text":469,"config":906},{"href":471,"dataGaName":472,"dataGaLocation":739},{"text":474,"config":908},{"href":476,"dataGaName":477,"dataGaLocation":739},{"text":479,"config":910},{"href":481,"dataGaName":911,"dataGaLocation":739},"docs",{"text":502,"config":913},{"href":504,"dataGaName":505,"dataGaLocation":739},{"text":915,"config":916},"What's new",{"href":562,"dataGaName":563,"dataGaLocation":739},{"text":497,"config":918},{"href":499,"dataGaName":500,"dataGaLocation":739},{"text":516,"config":920},{"href":518,"dataGaName":519,"dataGaLocation":739},{"text":524,"config":922},{"href":526,"dataGaName":527,"dataGaLocation":739},{"text":529,"config":924},{"href":531,"dataGaName":532,"dataGaLocation":739},{"text":534,"config":926},{"href":536,"dataGaName":537,"dataGaLocation":739},{"text":539,"config":928},{"href":541,"dataGaName":542,"dataGaLocation":739},{"text":544,"config":930},{"href":546,"dataGaName":547,"dataGaLocation":739},{"text":549,"config":932},{"href":551,"dataGaName":552,"dataGaLocation":739},{"title":565,"links":934},[935,937,939,941,943,945,949,954,956,958,960],{"text":572,"config":936},{"href":574,"dataGaName":266,"dataGaLocation":739},{"text":577,"config":938},{"href":579,"dataGaName":580,"dataGaLocation":739},{"text":585,"config":940},{"href":587,"dataGaName":588,"dataGaLocation":739},{"text":590,"config":942},{"href":592,"dataGaName":593,"dataGaLocation":739},{"text":595,"config":944},{"href":597,"dataGaName":598,"dataGaLocation":739},{"text":946,"config":947},"Sustainability",{"href":948,"dataGaName":946,"dataGaLocation":739},"/sustainability/",{"text":950,"config":951},"Diversity, inclusion and belonging (DIB)",{"href":952,"dataGaName":953,"dataGaLocation":739},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":600,"config":955},{"href":602,"dataGaName":603,"dataGaLocation":739},{"text":610,"config":957},{"href":612,"dataGaName":613,"dataGaLocation":739},{"text":615,"config":959},{"href":617,"dataGaName":618,"dataGaLocation":739},{"text":961,"config":962},"Modern Slavery Transparency Statement",{"href":963,"dataGaName":964,"dataGaLocation":739},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":966},[967,970,973],{"text":968,"config":969},"Terms",{"href":791,"dataGaName":792,"dataGaLocation":739},{"text":971,"config":972},"Cookies",{"dataGaName":801,"dataGaLocation":739,"id":802,"isOneTrustButton":284},{"text":974,"config":975},"Privacy",{"href":796,"dataGaName":797,"dataGaLocation":739},[977],{"id":978,"title":7,"body":270,"config":979,"content":981,"description":270,"extension":985,"meta":986,"navigation":284,"path":987,"seo":988,"stem":989,"__hash__":990},"blogAuthors/en-us/blog/authors/marin-jankovski.yml",{"template":980},"BlogAuthor",{"name":7,"config":982},{"headshot":983,"ctfId":984},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749671628/Blog/Author%20Headshots/marin-headshot.jpg","Marin-Jankovski","yml",{},"/en-us/blog/authors/marin-jankovski",{},"en-us/blog/authors/marin-jankovski","xUlu3cnotMGILqHu8SuDcXi7ks2Gu9IQQ8fA82jQqJU",[992,1000,1007],{"title":993,"description":994,"heroImage":995,"category":266,"date":996,"authors":997,"slug":999,"externalUrl":270},"Why GitLab signed the Open Weights and American AI Leadership letter","GitLab supports customer choice, data privacy, and AI model neutrality, empowering teams to run secure, cost-effective, local solutions.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785333264/ww4mlighwlvvzgnmbe6w.png","2026-07-29",[998],"Bill Staples","open-weight-model-letter",{"title":1001,"description":1002,"heroImage":1003,"category":266,"date":1004,"authors":1005,"slug":1006,"externalUrl":270},"GitLab Act 2","A letter to our customers and our investors.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-05-11",[998],"gitlab-act-2",{"title":1008,"description":1009,"heroImage":1010,"category":266,"date":1011,"authors":1012,"slug":1014,"externalUrl":270},"GitLab named a 2026 Omdia Universe Leader","Omdia's 2026 report on AI-assisted software development ranked 19 vendors. Here is what GitLab's top scores mean for engineering teams.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-13",[1013],"Rebecca Carter","gitlab-named-a-2026-omdia-universe-leader",{"promotions":1016},[1017,1031,1043,1055],{"id":1018,"categories":1019,"header":1021,"text":1022,"button":1023,"image":1028},"ai-modernization",[1020],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1024,"config":1025},"Get your AI maturity score",{"href":1026,"dataGaName":1027,"dataGaLocation":505},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1029},{"src":1030},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1032,"categories":1033,"header":1035,"text":1022,"button":1036,"image":1040},"devops-modernization",[1034,841],"product","Are you just managing tools or shipping innovation?",{"text":1037,"config":1038},"Get your DevOps maturity score",{"href":1039,"dataGaName":1027,"dataGaLocation":505},"/assessments/devops-modernization-assessment/",{"config":1041},{"src":1042},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1044,"categories":1045,"header":1047,"text":1022,"button":1048,"image":1052},"security-modernization",[1046],"security","Are you trading speed for security?",{"text":1049,"config":1050},"Get your security maturity score",{"href":1051,"dataGaName":1027,"dataGaLocation":505},"/assessments/security-modernization-assessment/",{"config":1053},{"src":1054},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1056,"paths":1057,"header":1060,"text":1061,"button":1062,"image":1067},"github-azure-migration",[1058,1059],"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":1063,"config":1064},"See how GitLab compares to GitHub",{"href":1065,"dataGaName":1066,"dataGaLocation":505},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1068},{"src":1042},{"header":1070,"blurb":1071,"button":1072,"secondaryButton":1077},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1073,"config":1074},"Get your free trial",{"href":1075,"dataGaName":304,"dataGaLocation":1076},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":777,"config":1078},{"href":629,"dataGaName":309,"dataGaLocation":1076},1786803754521]