[{"data":1,"prerenderedAt":1476},["ShallowReactive",2],{"/blog/changes-to-packages-gitlab-com-what-you-need-to-know":3,"navigation-en-us":697,"banner-en-us":1124,"footer-en-us":1134,"blog-post-authors-en-us-Denis Afonso":1379,"blog-related-posts-en-us-changes-to-packages-gitlab-com-what-you-need-to-know":1394,"blog-promotions-en-us":1413,"next-steps-en-us":1466},{"id":4,"title":5,"authors":6,"body":8,"category":679,"date":680,"description":681,"extension":682,"externalUrl":683,"faq":683,"featured":684,"heroImage":685,"meta":686,"navigation":687,"path":688,"seo":689,"slug":691,"stem":692,"tags":693,"template":695,"updatedDate":683,"__hash__":696},"blogPosts/en-us/blog/changes-to-packages-gitlab-com-what-you-need-to-know.md","Changes to packages.gitlab.com: What you need to know",[7],"Denis Afonso",{"type":9,"value":10,"toc":659},"minimark",[11,20,31,41,44,49,56,63,66,70,73,161,164,168,176,196,202,238,251,254,259,278,281,297,302,318,321,336,350,356,366,370,373,409,413,419,424,442,447,467,474,478,490,499,506,521,526,540,545,557,560,568,572,582,591,598,602,624,628,642,646,655],[12,13,14,15,19],"p",{},"Over the past few months, we have been gradually migrating the infrastructure behind ",[16,17,18],"code",{},"packages.gitlab.com"," to a new package hosting system.",[12,21,22,23,25,26,30],{},"The base domain ",[16,24,18],{}," remains the same, but URL formats, GPG key locations, network requirements, and the package browsing UI are changing. ",[27,28,29],"strong",{},"Your existing configuration will continue to work during the transition period until September 30, 2026"," — we are maintaining backwards compatibility with old URL formats through URL rewrite rules while customers transition.",[12,32,33,34,40],{},"The updated ",[35,36,39],"a",{"href":37,"rel":38},"https://docs.gitlab.com/install/package/ubuntu/",[],"installation documentation"," already reflects the new URL formats. If you are setting up a new installation, follow the documentation and no further action is needed.",[12,42,43],{},"If you have an existing installation, read on for what's changing and what you need to do.",[45,46,48],"h2",{"id":47},"timeline","Timeline",[12,50,51,52,55],{},"The old PackageCloud system and its UI will be shut down on ",[27,53,54],{},"March 31, 2026",". Since all traffic has been served from the new system for months, we do not expect any disruptions.",[12,57,58,59,62],{},"The URL rewrite rules maintaining backwards compatibility ",[27,60,61],{},"will be removed by the end of September 2026",". After that date, only the new URL formats will work.",[12,64,65],{},"We recommend updating your configurations as soon as possible.",[45,67,69],{"id":68},"required-actions","Required actions",[12,71,72],{},"Before the end of September 2026, you need to:",[74,75,76,99,113,122,128,148],"ol",{},[77,78,79,82,83,88,89,94,95,98],"li",{},[27,80,81],{},"Re-run the installation script"," (",[35,84,87],{"href":85,"rel":86},"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh",[],"DEB"," or ",[35,90,93],{"href":91,"rel":92},"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh",[],"RPM",") or manually update repository configurations for ",[16,96,97],{},"gitlab/*"," repos to use the new URL formats.",[77,100,101,104,105,108,109,112],{},[27,102,103],{},"Update GPG key references"," from ",[16,106,107],{},"https://packages.gitlab.com/gpg.key"," to ",[16,110,111],{},"https://packages.gitlab.com/gpgkey/gpg.key",".",[77,114,115,118,119,112],{},[27,116,117],{},"Update firewall/proxy allowlists"," to permit traffic to ",[16,120,121],{},"https://storage.googleapis.com/packages-ops",[77,123,124,127],{},[27,125,126],{},"Update mirroring configurations"," to use the new URL formats, if you mirror GitLab package repositories.",[77,129,130,137,138,140,141,144,145,147],{},[27,131,132,133,136],{},"Update Runner ",[16,134,135],{},"noarch"," RPM references"," from the ",[16,139,135],{}," path to ",[16,142,143],{},"x86_64",", if you use Runner ",[16,146,135],{}," RPM packages.",[77,149,150,153,154,88,157,160],{},[27,151,152],{},"Update any direct download automation",", if you relied on PackageCloud-style ",[16,155,156],{},"download.rpm",[16,158,159],{},"download.deb"," URLs.",[12,162,163],{},"Read on for the details behind each change.",[45,165,167],{"id":166},"whats-changing","What's changing",[169,170,172,173,175],"h3",{"id":171},"deb-repository-urls-for-gitlab-repos","DEB repository URLs for ",[16,174,97],{}," repos",[12,177,178,179,181,182,185,186,189,190,195],{},"For ",[16,180,97],{}," repositories (e.g., ",[16,183,184],{},"gitlab-ee",", ",[16,187,188],{},"gitlab-ce","), the DEB repository URL structure now includes the distribution codename as a path segment. This aligns with the ",[35,191,194],{"href":192,"rel":193},"https://wiki.debian.org/DebianRepository/Format",[],"standard Debian repository format",", where the distribution codename is part of the base URL that your package manager uses to locate package metadata and pools. The old PackageCloud format omitted this path segment.",[12,197,198,201],{},[27,199,200],{},"The easiest way to update is to re-run the installation script",", which will automatically configure the correct repository URLs:",[203,204,209],"pre",{"className":205,"code":206,"language":207,"meta":208,"style":208},"language-shell shiki shiki-themes github-light","curl --location \"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh\" | sudo bash\n","shell","",[16,210,211],{"__ignoreMap":208},[212,213,216,220,224,228,232,235],"span",{"class":214,"line":215},"line",1,[212,217,219],{"class":218},"s7eDp","curl",[212,221,223],{"class":222},"sYu0t"," --location",[212,225,227],{"class":226},"sYBdl"," \"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh\"",[212,229,231],{"class":230},"sD7c4"," |",[212,233,234],{"class":218}," sudo",[212,236,237],{"class":226}," bash\n",[12,239,240,241,243,244,246,247,250],{},"Replace ",[16,242,184],{}," with the appropriate repository name (e.g., ",[16,245,188],{},"). For RPM-based systems, use ",[16,248,249],{},"script.rpm.sh"," instead.",[12,252,253],{},"If you prefer to update your configuration manually, here is what changed. For example, for GitLab EE on Ubuntu Jammy:",[12,255,256],{},[27,257,258],{},"Old format (to be deprecated):",[203,260,262],{"className":205,"code":261,"language":207,"meta":208,"style":208},"deb https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/ jammy main\n",[16,263,264],{"__ignoreMap":208},[212,265,266,269,272,275],{"class":214,"line":215},[212,267,268],{"class":218},"deb",[212,270,271],{"class":226}," https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/",[212,273,274],{"class":226}," jammy",[212,276,277],{"class":226}," main\n",[12,279,280],{},"This resolved to paths like:",[203,282,284],{"className":205,"code":283,"language":207,"meta":208,"style":208},"/gitlab/gitlab-ee/ubuntu/dists/jammy/...\n/gitlab/gitlab-ee/ubuntu/pool/...\n",[16,285,286,291],{"__ignoreMap":208},[212,287,288],{"class":214,"line":215},[212,289,290],{"class":218},"/gitlab/gitlab-ee/ubuntu/dists/jammy/...\n",[212,292,294],{"class":214,"line":293},2,[212,295,296],{"class":218},"/gitlab/gitlab-ee/ubuntu/pool/...\n",[12,298,299],{},[27,300,301],{},"New format:",[203,303,305],{"className":205,"code":304,"language":207,"meta":208,"style":208},"deb https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/jammy jammy main\n",[16,306,307],{"__ignoreMap":208},[212,308,309,311,314,316],{"class":214,"line":215},[212,310,268],{"class":218},[212,312,313],{"class":226}," https://packages.gitlab.com/gitlab/gitlab-ee/ubuntu/jammy",[212,315,274],{"class":226},[212,317,277],{"class":226},[12,319,320],{},"Which resolves to:",[203,322,324],{"className":205,"code":323,"language":207,"meta":208,"style":208},"/gitlab/gitlab-ee/ubuntu/jammy/dists/jammy/...\n/gitlab/gitlab-ee/ubuntu/jammy/pool/...\n",[16,325,326,331],{"__ignoreMap":208},[212,327,328],{"class":214,"line":215},[212,329,330],{"class":218},"/gitlab/gitlab-ee/ubuntu/jammy/dists/jammy/...\n",[212,332,333],{"class":214,"line":293},[212,334,335],{"class":218},"/gitlab/gitlab-ee/ubuntu/jammy/pool/...\n",[12,337,338,339,342,343,346,347,112],{},"Note the addition of the distribution codename (",[16,340,341],{},"jammy",") as a path segment before ",[16,344,345],{},"dists/"," and ",[16,348,349],{},"pool/",[169,351,172,353,175],{"id":352},"deb-repository-urls-for-runner-repos",[16,354,355],{},"runner/*",[12,357,358,359,361,362,365],{},"The URL format for ",[16,360,355],{}," DEB repositories (e.g., ",[16,363,364],{},"runner/gitlab-runner",") are unchanged. No action is needed.",[169,367,369],{"id":368},"gpg-key-url","GPG key URL",[12,371,372],{},"The GPG key URL has changed. Update any references in your configuration:",[374,375,376,392],"table",{},[377,378,379],"thead",{},[380,381,382,386,389],"tr",{},[383,384],"th",{"align":385},"left",[383,387,388],{"align":385},"Old URL",[383,390,391],{"align":385},"New URL",[393,394,395],"tbody",{},[380,396,397,401,405],{},[398,399,400],"td",{"align":385},"GPG key",[398,402,403],{"align":385},[16,404,107],{},[398,406,407],{"align":385},[16,408,111],{},[169,410,412],{"id":411},"installation-scripts","Installation scripts",[12,414,415,418],{},[27,416,417],{},"Do not reuse old installation scripts."," If you have previously saved copies of the installation scripts, download the latest versions:",[12,420,421],{},[27,422,423],{},"DEB-based (Debian/Ubuntu):",[203,425,426],{"className":205,"code":206,"language":207,"meta":208,"style":208},[16,427,428],{"__ignoreMap":208},[212,429,430,432,434,436,438,440],{"class":214,"line":215},[212,431,219],{"class":218},[212,433,223],{"class":222},[212,435,227],{"class":226},[212,437,231],{"class":230},[212,439,234],{"class":218},[212,441,237],{"class":226},[12,443,444],{},[27,445,446],{},"RPM-based (RHEL/CentOS/etc.):",[203,448,450],{"className":205,"code":449,"language":207,"meta":208,"style":208},"curl --location \"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh\" | sudo bash\n",[16,451,452],{"__ignoreMap":208},[212,453,454,456,458,461,463,465],{"class":214,"line":215},[212,455,219],{"class":218},[212,457,223],{"class":222},[212,459,460],{"class":226}," \"https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh\"",[212,462,231],{"class":230},[212,464,234],{"class":218},[212,466,237],{"class":226},[12,468,240,469,243,471,473],{},[16,470,184],{},[16,472,188],{},").",[169,475,477],{"id":476},"direct-package-download-urls","Direct package download URLs",[12,479,480,481,484,485,185,487,489],{},"The old PackageCloud UI exposed download links in a format like ",[16,482,483],{},"/\u003Corg>/\u003Crepo>/packages/\u003Cdistro>/\u003Cos>/\u003Cfilename>.\u003Cext>/download.\u003Cext>"," (e.g., ",[16,486,159],{},[16,488,156],{},"). The new UI links directly to the actual package paths instead.",[12,491,492,493,495,496,498],{},"If you navigate packages through the new UI, no action is needed. However, if you have automation that scrapped the old UI or relied on the ",[16,494,159],{}," / ",[16,497,156],{}," URL format, you will need to update it to use the new path structure or switch to standard package manager repository access.",[169,500,502,503,505],{"id":501},"gitlab-runner-noarch-rpm-package-changes","GitLab Runner ",[16,504,135],{}," RPM package changes",[12,507,502,508,510,511,514,515,517,518,520],{},[16,509,135],{}," RPM packages (such as ",[16,512,513],{},"gitlab-runner-helper-images",") have been moved from the ",[16,516,135],{}," architecture path to ",[16,519,143],{},". For example:",[12,522,523],{},[27,524,525],{},"Old path:",[203,527,529],{"className":205,"code":528,"language":207,"meta":208,"style":208},"/\u003Corg>/\u003Crepo>/\u003Cdistro>/\u003Cos>/noarch/Packages/...\n",[16,530,531],{"__ignoreMap":208},[212,532,533,536],{"class":214,"line":215},[212,534,535],{"class":218},"/",[212,537,539],{"class":538},"sgsFI","\u003Corg>/\u003Crepo>/\u003Cdistro>/\u003Cos>/noarch/Packages/...\n",[12,541,542],{},[27,543,544],{},"New path:",[203,546,548],{"className":205,"code":547,"language":207,"meta":208,"style":208},"/\u003Corg>/\u003Crepo>/\u003Cdistro>/\u003Cos>/x86_64/Packages/...\n",[16,549,550],{"__ignoreMap":208},[212,551,552,554],{"class":214,"line":215},[212,553,535],{"class":218},[212,555,556],{"class":538},"\u003Corg>/\u003Crepo>/\u003Cdistro>/\u003Cos>/x86_64/Packages/...\n",[12,558,559],{},"This change only affects RPM-based distributions (e.g., EL/8, EL/9). DEB-based Runner packages are not affected.",[12,561,562,563,565,566,250],{},"If you have automation or configuration that references the ",[16,564,135],{}," path for Runner RPM packages, update it to use ",[16,567,143],{},[45,569,571],{"id":570},"firewall-and-network-allowlist-updates","Firewall and network allowlist updates",[12,573,574,575,577,578,581],{},"Package downloads from ",[16,576,18],{}," now redirect to ",[27,579,580],{},"Google Cloud Storage",". Previously, packages were served through AWS CloudFront. If your environment has strict firewall or proxy rules, you must add the following to your allowlist:",[203,583,585],{"className":205,"code":584,"language":207,"meta":208,"style":208},"https://storage.googleapis.com/packages-ops\n",[16,586,587],{"__ignoreMap":208},[212,588,589],{"class":214,"line":215},[212,590,584],{"class":218},[12,592,593,594,597],{},"Without this change, package downloads may fail with ",[16,595,596],{},"503"," errors or connection timeouts.",[45,599,601],{"id":600},"repository-mirroring","Repository mirroring",[12,603,604,605,185,608,611,612,615,616,618,619,112],{},"If you mirror GitLab package repositories using tools like ",[16,606,607],{},"apt-mirror",[16,609,610],{},"reposync",", or Red Hat Satellite, you ",[27,613,614],{},"must"," update to the new URL format for ",[16,617,97],{}," repos. The old URL format does not work correctly for mirroring with the new infrastructure. More detailed instructions can be found on the ",[35,620,623],{"href":621,"rel":622},"https://docs.gitlab.com/install/mirror/",[],"installation guide",[45,625,627],{"id":626},"ui-changes","UI changes",[12,629,630,631,633,634,637,638,641],{},"The package browsing interface at ",[16,632,18],{}," is being updated with a new UI. The old interface (previously accessible at ",[16,635,636],{},"packages.gitlab.com/gitlab/... and","  ",[16,639,640],{},"packages.gitlab.com/runner/..."," ) will no longer be available. The new interface provides similar package browsing functionality.",[45,643,645],{"id":644},"feedback","Feedback",[12,647,648,649,654],{},"If you encounter any issues related to these changes, please report them in our ",[35,650,653],{"href":651,"rel":652},"https://gitlab.com/gitlab-org/gitlab/-/work_items/595277",[],"public feedback issue",". We are actively monitoring it and will respond to reports.",[656,657,658],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}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}",{"title":208,"searchDepth":293,"depth":293,"links":660},[661,662,663,675,676,677,678],{"id":47,"depth":293,"text":48},{"id":68,"depth":293,"text":69},{"id":166,"depth":293,"text":167,"children":664},[665,668,670,671,672,673],{"id":171,"depth":666,"text":667},3,"DEB repository URLs for gitlab/* repos",{"id":352,"depth":666,"text":669},"DEB repository URLs for runner/* repos",{"id":368,"depth":666,"text":369},{"id":411,"depth":666,"text":412},{"id":476,"depth":666,"text":477},{"id":501,"depth":666,"text":674},"GitLab Runner noarch RPM package changes",{"id":570,"depth":293,"text":571},{"id":600,"depth":293,"text":601},{"id":626,"depth":293,"text":627},{"id":644,"depth":293,"text":645},"product","2026-03-31","GitLab's package hosting infrastructure has changed. Learn what actions to take before old URL formats are deprecated in September 2026.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1774957323/xfnzvlwc4c2vhal3v3jv.png",{},true,"/en-us/blog/changes-to-packages-gitlab-com-what-you-need-to-know",{"config":690,"title":5,"description":681},{"noIndex":684},"changes-to-packages-gitlab-com-what-you-need-to-know","en-us/blog/changes-to-packages-gitlab-com-what-you-need-to-know",[694,679],"news","BlogPost","iWlL0EK25P-4lLmmgzEM1FCttxv31DxZYZtS0LvcqWw",{"logo":698,"freeTrial":702,"sales":707,"login":712,"items":717,"search":1044,"minimal":1075,"duo":1094,"switchNav":1103,"pricingDeployment":1114},{"config":699},{"href":535,"dataGaName":700,"dataGaLocation":701},"gitlab logo","header",{"text":703,"config":704},"Get free trial",{"href":705,"dataGaName":706,"dataGaLocation":701},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":708,"config":709},"Request a demo",{"href":710,"dataGaName":711,"dataGaLocation":701},"/sales/?contact-topic=request-demo","sales",{"text":713,"config":714},"Sign in",{"href":715,"dataGaName":716,"dataGaLocation":701},"https://gitlab.com/users/sign_in/","sign in",[718,747,847,852,966,1022],{"text":719,"config":720,"menu":722},"Platform",{"dataNavLevelOne":721},"platform",{"type":723,"columns":724},"cards",[725,731,739],{"title":719,"description":726,"link":727},"The intelligent orchestration platform for DevSecOps",{"text":728,"config":729},"Explore our Platform",{"href":730,"dataGaName":721,"dataGaLocation":701},"/platform/",{"title":732,"description":733,"link":734},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":735,"config":736},"Meet GitLab Duo",{"href":737,"dataGaName":738,"dataGaLocation":701},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":740,"description":741,"link":742},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":743,"config":744},"Learn more",{"href":745,"dataGaName":746,"dataGaLocation":701},"/why-gitlab/","why gitlab",{"text":748,"left":687,"config":749,"menu":751},"Product",{"dataNavLevelOne":750},"solutions",{"type":752,"link":753,"columns":757,"feature":826},"lists",{"text":754,"config":755},"View all Solutions",{"href":756,"dataGaName":750,"dataGaLocation":701},"/solutions/",[758,782,805],{"title":759,"description":760,"link":761,"items":766},"Automation","CI/CD and automation to accelerate deployment",{"config":762},{"icon":763,"href":764,"dataGaName":765,"dataGaLocation":701},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[767,771,774,778],{"text":768,"config":769},"CI/CD",{"href":770,"dataGaLocation":701,"dataGaName":768},"/solutions/continuous-integration/",{"text":732,"config":772},{"href":737,"dataGaLocation":701,"dataGaName":773},"gitlab duo agent platform - product menu",{"text":775,"config":776},"Source Code Management",{"href":777,"dataGaLocation":701,"dataGaName":775},"/solutions/source-code-management/",{"text":779,"config":780},"Automated Software Delivery",{"href":764,"dataGaLocation":701,"dataGaName":781},"Automated software delivery",{"title":783,"description":784,"link":785,"items":790},"Security","Deliver code faster without compromising security",{"config":786},{"href":787,"dataGaName":788,"dataGaLocation":701,"icon":789},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[791,795,800],{"text":792,"config":793},"Application Security Testing",{"href":787,"dataGaName":794,"dataGaLocation":701},"Application security testing",{"text":796,"config":797},"Software Supply Chain Security",{"href":798,"dataGaLocation":701,"dataGaName":799},"/solutions/supply-chain/","Software supply chain security",{"text":801,"config":802},"Software Compliance",{"href":803,"dataGaName":804,"dataGaLocation":701},"/solutions/software-compliance/","software compliance",{"title":806,"link":807,"items":812},"Measurement",{"config":808},{"icon":809,"href":810,"dataGaName":811,"dataGaLocation":701},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[813,817,821],{"text":814,"config":815},"Visibility & Measurement",{"href":810,"dataGaLocation":701,"dataGaName":816},"Visibility and Measurement",{"text":818,"config":819},"Value Stream Management",{"href":820,"dataGaLocation":701,"dataGaName":818},"/solutions/value-stream-management/",{"text":822,"config":823},"Analytics & Insights",{"href":824,"dataGaLocation":701,"dataGaName":825},"/solutions/analytics-and-insights/","Analytics and insights",{"title":827,"type":752,"items":828},"GitLab for",[829,835,841],{"text":830,"config":831},"Enterprise",{"icon":832,"href":833,"dataGaLocation":701,"dataGaName":834},"Building","/enterprise/","enterprise",{"text":836,"config":837},"Small Business",{"icon":838,"href":839,"dataGaLocation":701,"dataGaName":840},"Work","/small-business/","small business",{"text":842,"config":843},"Public Sector",{"icon":844,"href":845,"dataGaLocation":701,"dataGaName":846},"Organization","/solutions/public-sector/","public sector",{"text":848,"config":849},"Pricing",{"href":850,"dataGaName":851,"dataGaLocation":701,"dataNavLevelOne":851},"/pricing/","pricing",{"text":853,"config":854,"menu":856},"Resources",{"dataNavLevelOne":855},"resources",{"type":752,"link":857,"columns":861,"feature":955},{"text":858,"config":859},"View all resources",{"href":860,"dataGaName":855,"dataGaLocation":701},"/resources/",[862,895,922],{"title":863,"items":864},"Getting started",[865,870,875,880,885,890],{"text":866,"config":867},"Install",{"href":868,"dataGaName":869,"dataGaLocation":701},"/install/","install",{"text":871,"config":872},"Quick start guides",{"href":873,"dataGaName":874,"dataGaLocation":701},"/get-started/","quick setup checklists",{"text":876,"config":877},"Learn",{"href":878,"dataGaLocation":701,"dataGaName":879},"https://university.gitlab.com/","learn",{"text":881,"config":882},"Product documentation",{"href":883,"dataGaName":884,"dataGaLocation":701},"https://docs.gitlab.com/","product documentation",{"text":886,"config":887},"Best practice videos",{"href":888,"dataGaName":889,"dataGaLocation":701},"/getting-started-videos/","best practice videos",{"text":891,"config":892},"Integrations",{"href":893,"dataGaName":894,"dataGaLocation":701},"/integrations/","integrations",{"title":896,"items":897},"Discover",[898,903,908,913,917],{"text":899,"config":900},"Customer success stories",{"href":901,"dataGaName":902,"dataGaLocation":701},"/customers/","customer success stories",{"text":904,"config":905},"Blog",{"href":906,"dataGaName":907,"dataGaLocation":701},"/blog/","blog",{"text":909,"config":910},"Demo Hub",{"href":911,"dataGaName":912,"dataGaLocation":701},"/demo-hub/","demo hub",{"text":914,"config":915},"The Source",{"href":916,"dataGaName":907,"dataGaLocation":701},"/the-source/",{"text":918,"config":919},"Remote",{"href":920,"dataGaName":921,"dataGaLocation":701},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":923,"items":924},"Connect",[925,930,935,940,945,950],{"text":926,"config":927},"GitLab Services",{"href":928,"dataGaName":929,"dataGaLocation":701},"/services/","services",{"text":931,"config":932},"Contribute",{"href":933,"dataGaName":934,"dataGaLocation":701},"https://contributors.gitlab.com","contribute",{"text":936,"config":937},"Community",{"href":938,"dataGaName":939,"dataGaLocation":701},"/community/","community",{"text":941,"config":942},"Forum",{"href":943,"dataGaName":944,"dataGaLocation":701},"https://forum.gitlab.com/","forum",{"text":946,"config":947},"Events",{"href":948,"dataGaName":949,"dataGaLocation":701},"/events/","events",{"text":951,"config":952},"Partners",{"href":953,"dataGaName":954,"dataGaLocation":701},"/partners/","partners",{"config":956,"title":959,"text":960,"link":961},{"background":957,"textColor":958},"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":962,"config":963},"Read the latest",{"href":964,"dataGaName":965,"dataGaLocation":701},"/whats-new/","whats new",{"text":967,"config":968,"menu":970},"Company",{"dataNavLevelOne":969},"company",{"type":752,"columns":971},[972],{"items":973},[974,979,985,987,992,997,1002,1007,1012,1017],{"text":975,"config":976},"About",{"href":977,"dataGaName":978,"dataGaLocation":701},"/company/","about",{"text":980,"config":981,"footerGa":984},"Jobs",{"href":982,"dataGaName":983,"dataGaLocation":701},"/jobs/","jobs",{"dataGaName":983},{"text":946,"config":986},{"href":948,"dataGaName":949,"dataGaLocation":701},{"text":988,"config":989},"Leadership",{"href":990,"dataGaName":991,"dataGaLocation":701},"/company/team/e-group/","leadership",{"text":993,"config":994},"Handbook",{"href":995,"dataGaName":996,"dataGaLocation":701},"https://handbook.gitlab.com/","handbook",{"text":998,"config":999},"Investor relations",{"href":1000,"dataGaName":1001,"dataGaLocation":701},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1003,"config":1004},"Trust Center",{"href":1005,"dataGaName":1006,"dataGaLocation":701},"/security/","trust center",{"text":1008,"config":1009},"AI Transparency Center",{"href":1010,"dataGaName":1011,"dataGaLocation":701},"/ai-transparency-center/","ai transparency center",{"text":1013,"config":1014},"Newsletter",{"href":1015,"dataGaName":1016,"dataGaLocation":701},"/company/contact/#contact-forms","newsletter",{"text":1018,"config":1019},"Press",{"href":1020,"dataGaName":1021,"dataGaLocation":701},"/press/","press",{"text":1023,"config":1024,"menu":1025},"Contact us",{"dataNavLevelOne":969},{"type":752,"columns":1026},[1027],{"items":1028},[1029,1034,1039],{"text":1030,"config":1031},"Talk to sales",{"href":1032,"dataGaName":1033,"dataGaLocation":701},"/sales/","talk to sales",{"text":1035,"config":1036},"Support portal",{"href":1037,"dataGaName":1038,"dataGaLocation":701},"https://support.gitlab.com/hc/en-us","support portal",{"text":1040,"config":1041},"Customer portal",{"href":1042,"dataGaName":1043,"dataGaLocation":701},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1045,"login":1046,"suggestions":1053},"Close",{"text":1047,"link":1048},"To search repositories and projects, login to",{"text":1049,"config":1050},"gitlab.com",{"href":715,"dataGaName":1051,"dataGaLocation":1052},"search login","search",{"text":1054,"default":1055},"Suggestions",[1056,1058,1062,1064,1068,1072],{"text":732,"config":1057},{"href":737,"dataGaName":732,"dataGaLocation":1052},{"text":1059,"config":1060},"Code Suggestions (AI)",{"href":1061,"dataGaName":1059,"dataGaLocation":1052},"/solutions/code-suggestions/",{"text":768,"config":1063},{"href":770,"dataGaName":768,"dataGaLocation":1052},{"text":1065,"config":1066},"GitLab on AWS",{"href":1067,"dataGaName":1065,"dataGaLocation":1052},"/partners/technology-partners/aws/",{"text":1069,"config":1070},"GitLab on Google Cloud",{"href":1071,"dataGaName":1069,"dataGaLocation":1052},"/partners/technology-partners/google-cloud-platform/",{"text":1073,"config":1074},"Why GitLab?",{"href":745,"dataGaName":1073,"dataGaLocation":1052},{"freeTrial":1076,"mobileIcon":1081,"desktopIcon":1086,"secondaryButton":1089},{"text":1077,"config":1078},"Start free trial",{"href":1079,"dataGaName":706,"dataGaLocation":1080},"https://gitlab.com/-/trials/new/","nav",{"altText":1082,"config":1083},"Gitlab Icon",{"src":1084,"dataGaName":1085,"dataGaLocation":1080},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1082,"config":1087},{"src":1088,"dataGaName":1085,"dataGaLocation":1080},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1090,"config":1091},"Get Started",{"href":1092,"dataGaName":1093,"dataGaLocation":1080},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":1095,"mobileIcon":1099,"desktopIcon":1101},{"text":1096,"config":1097},"Learn more about GitLab Duo",{"href":737,"dataGaName":1098,"dataGaLocation":1080},"gitlab duo",{"altText":1082,"config":1100},{"src":1084,"dataGaName":1085,"dataGaLocation":1080},{"altText":1082,"config":1102},{"src":1088,"dataGaName":1085,"dataGaLocation":1080},{"button":1104,"mobileIcon":1109,"desktopIcon":1111},{"text":1105,"config":1106},"/switch",{"href":1107,"dataGaName":1108,"dataGaLocation":1080},"#contact","switch",{"altText":1082,"config":1110},{"src":1084,"dataGaName":1085,"dataGaLocation":1080},{"altText":1082,"config":1112},{"src":1113,"dataGaName":1085,"dataGaLocation":1080},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1115,"mobileIcon":1120,"desktopIcon":1122},{"text":1116,"config":1117},"Back to pricing",{"href":850,"dataGaName":1118,"dataGaLocation":1080,"icon":1119},"back to pricing","GoBack",{"altText":1082,"config":1121},{"src":1084,"dataGaName":1085,"dataGaLocation":1080},{"altText":1082,"config":1123},{"src":1088,"dataGaName":1085,"dataGaLocation":1080},{"title":1125,"titleMobile":1126,"button":1127,"config":1132},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":743,"config":1128},{"href":1129,"dataGaName":1130,"dataGaLocation":1131},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":1133,"disabled":684},"release",{"data":1135},{"text":1136,"source":1137,"edit":1143,"contribute":1148,"config":1153,"items":1158,"minimal":1368},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":1138,"config":1139},"View page source",{"href":1140,"dataGaName":1141,"dataGaLocation":1142},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1144,"config":1145},"Edit this page",{"href":1146,"dataGaName":1147,"dataGaLocation":1142},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1149,"config":1150},"Please contribute",{"href":1151,"dataGaName":1152,"dataGaLocation":1142},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1154,"facebook":1155,"youtube":1156,"linkedin":1157},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1159,1206,1260,1304,1336],{"title":848,"links":1160,"subMenu":1175},[1161,1165,1170],{"text":1162,"config":1163},"View plans",{"href":850,"dataGaName":1164,"dataGaLocation":1142},"view plans",{"text":1166,"config":1167},"Why Premium?",{"href":1168,"dataGaName":1169,"dataGaLocation":1142},"/pricing/premium/","why premium",{"text":1171,"config":1172},"Why Ultimate?",{"href":1173,"dataGaName":1174,"dataGaLocation":1142},"/pricing/ultimate/","why ultimate",[1176],{"title":1177,"links":1178},"Contact Us",[1179,1182,1184,1186,1191,1196,1201],{"text":1180,"config":1181},"Contact sales",{"href":1032,"dataGaName":711,"dataGaLocation":1142},{"text":1035,"config":1183},{"href":1037,"dataGaName":1038,"dataGaLocation":1142},{"text":1040,"config":1185},{"href":1042,"dataGaName":1043,"dataGaLocation":1142},{"text":1187,"config":1188},"Status",{"href":1189,"dataGaName":1190,"dataGaLocation":1142},"https://status.gitlab.com/","status",{"text":1192,"config":1193},"Terms of use",{"href":1194,"dataGaName":1195,"dataGaLocation":1142},"/terms/","terms of use",{"text":1197,"config":1198},"Privacy statement",{"href":1199,"dataGaName":1200,"dataGaLocation":1142},"/privacy/","privacy statement",{"text":1202,"config":1203},"Cookie preferences",{"dataGaName":1204,"dataGaLocation":1142,"id":1205,"isOneTrustButton":687},"cookie preferences","ot-sdk-btn",{"title":748,"links":1207,"subMenu":1216},[1208,1212],{"text":1209,"config":1210},"DevSecOps platform",{"href":730,"dataGaName":1211,"dataGaLocation":1142},"devsecops platform",{"text":1213,"config":1214},"AI-Assisted Development",{"href":737,"dataGaName":1215,"dataGaLocation":1142},"ai-assisted development",[1217],{"title":1218,"links":1219},"Topics",[1220,1225,1230,1235,1240,1245,1250,1255],{"text":1221,"config":1222},"CICD",{"href":1223,"dataGaName":1224,"dataGaLocation":1142},"/topics/ci-cd/","cicd",{"text":1226,"config":1227},"GitOps",{"href":1228,"dataGaName":1229,"dataGaLocation":1142},"/topics/gitops/","gitops",{"text":1231,"config":1232},"DevOps",{"href":1233,"dataGaName":1234,"dataGaLocation":1142},"/topics/devops/","devops",{"text":1236,"config":1237},"Version Control",{"href":1238,"dataGaName":1239,"dataGaLocation":1142},"/topics/version-control/","version control",{"text":1241,"config":1242},"DevSecOps",{"href":1243,"dataGaName":1244,"dataGaLocation":1142},"/topics/devsecops/","devsecops",{"text":1246,"config":1247},"Cloud Native",{"href":1248,"dataGaName":1249,"dataGaLocation":1142},"/topics/cloud-native/","cloud native",{"text":1251,"config":1252},"AI for Coding",{"href":1253,"dataGaName":1254,"dataGaLocation":1142},"/topics/devops/ai-for-coding/","ai for coding",{"text":1256,"config":1257},"Agentic AI",{"href":1258,"dataGaName":1259,"dataGaLocation":1142},"/topics/agentic-ai/","agentic ai",{"title":1261,"links":1262},"Solutions",[1263,1265,1267,1272,1276,1279,1283,1286,1288,1291,1294,1299],{"text":792,"config":1264},{"href":787,"dataGaName":792,"dataGaLocation":1142},{"text":781,"config":1266},{"href":764,"dataGaName":765,"dataGaLocation":1142},{"text":1268,"config":1269},"Agile development",{"href":1270,"dataGaName":1271,"dataGaLocation":1142},"/solutions/agile-delivery/","agile delivery",{"text":1273,"config":1274},"SCM",{"href":777,"dataGaName":1275,"dataGaLocation":1142},"source code management",{"text":1221,"config":1277},{"href":770,"dataGaName":1278,"dataGaLocation":1142},"continuous integration & delivery",{"text":1280,"config":1281},"Value stream management",{"href":820,"dataGaName":1282,"dataGaLocation":1142},"value stream management",{"text":1226,"config":1284},{"href":1285,"dataGaName":1229,"dataGaLocation":1142},"/solutions/gitops/",{"text":830,"config":1287},{"href":833,"dataGaName":834,"dataGaLocation":1142},{"text":1289,"config":1290},"Small business",{"href":839,"dataGaName":840,"dataGaLocation":1142},{"text":1292,"config":1293},"Public sector",{"href":845,"dataGaName":846,"dataGaLocation":1142},{"text":1295,"config":1296},"Education",{"href":1297,"dataGaName":1298,"dataGaLocation":1142},"/solutions/education/","education",{"text":1300,"config":1301},"Financial services",{"href":1302,"dataGaName":1303,"dataGaLocation":1142},"/solutions/finance/","financial services",{"title":853,"links":1305},[1306,1308,1310,1312,1315,1317,1320,1322,1324,1326,1328,1330,1332,1334],{"text":866,"config":1307},{"href":868,"dataGaName":869,"dataGaLocation":1142},{"text":871,"config":1309},{"href":873,"dataGaName":874,"dataGaLocation":1142},{"text":876,"config":1311},{"href":878,"dataGaName":879,"dataGaLocation":1142},{"text":881,"config":1313},{"href":883,"dataGaName":1314,"dataGaLocation":1142},"docs",{"text":904,"config":1316},{"href":906,"dataGaName":907,"dataGaLocation":1142},{"text":1318,"config":1319},"What's new",{"href":964,"dataGaName":965,"dataGaLocation":1142},{"text":899,"config":1321},{"href":901,"dataGaName":902,"dataGaLocation":1142},{"text":918,"config":1323},{"href":920,"dataGaName":921,"dataGaLocation":1142},{"text":926,"config":1325},{"href":928,"dataGaName":929,"dataGaLocation":1142},{"text":931,"config":1327},{"href":933,"dataGaName":934,"dataGaLocation":1142},{"text":936,"config":1329},{"href":938,"dataGaName":939,"dataGaLocation":1142},{"text":941,"config":1331},{"href":943,"dataGaName":944,"dataGaLocation":1142},{"text":946,"config":1333},{"href":948,"dataGaName":949,"dataGaLocation":1142},{"text":951,"config":1335},{"href":953,"dataGaName":954,"dataGaLocation":1142},{"title":967,"links":1337},[1338,1340,1342,1344,1346,1348,1352,1357,1359,1361,1363],{"text":975,"config":1339},{"href":977,"dataGaName":969,"dataGaLocation":1142},{"text":980,"config":1341},{"href":982,"dataGaName":983,"dataGaLocation":1142},{"text":988,"config":1343},{"href":990,"dataGaName":991,"dataGaLocation":1142},{"text":993,"config":1345},{"href":995,"dataGaName":996,"dataGaLocation":1142},{"text":998,"config":1347},{"href":1000,"dataGaName":1001,"dataGaLocation":1142},{"text":1349,"config":1350},"Sustainability",{"href":1351,"dataGaName":1349,"dataGaLocation":1142},"/sustainability/",{"text":1353,"config":1354},"Diversity, inclusion and belonging (DIB)",{"href":1355,"dataGaName":1356,"dataGaLocation":1142},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1003,"config":1358},{"href":1005,"dataGaName":1006,"dataGaLocation":1142},{"text":1013,"config":1360},{"href":1015,"dataGaName":1016,"dataGaLocation":1142},{"text":1018,"config":1362},{"href":1020,"dataGaName":1021,"dataGaLocation":1142},{"text":1364,"config":1365},"Modern Slavery Transparency Statement",{"href":1366,"dataGaName":1367,"dataGaLocation":1142},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1369},[1370,1373,1376],{"text":1371,"config":1372},"Terms",{"href":1194,"dataGaName":1195,"dataGaLocation":1142},{"text":1374,"config":1375},"Cookies",{"dataGaName":1204,"dataGaLocation":1142,"id":1205,"isOneTrustButton":687},{"text":1377,"config":1378},"Privacy",{"href":1199,"dataGaName":1200,"dataGaLocation":1142},[1380],{"id":1381,"title":7,"body":683,"config":1382,"content":1385,"description":683,"extension":1388,"meta":1389,"navigation":687,"path":1390,"seo":1391,"stem":1392,"__hash__":1393},"blogAuthors/en-us/blog/authors/denis-afonso.yml",{"template":1383,"gitlabHandle":1384},"BlogAuthor","denisra",{"name":7,"config":1386},{"headshot":1387},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1771934682/pbpsgszx2qmky8hgpee8.png","yml",{},"/en-us/blog/authors/denis-afonso",{},"en-us/blog/authors/denis-afonso","hcF3Tb1lP1UyUwMFAeHdgS0zaa8LnmaBO4MStZX3mso",[1395,1401,1405],{"title":1396,"description":1397,"heroImage":1398,"category":679,"date":1399,"authors":683,"slug":683,"externalUrl":1400},"GitLab Patch Release: 19.2.2, 19.1.4, 19.0.6","Learn about this latest patch release for Community Edition and Enterprise Edition.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661926/Blog/Hero%20Images/security-patch-blog-image-r2-0506-700x400-fy25_2x.jpg","2026-08-12","https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-2-released/",{"title":1402,"description":1397,"heroImage":1398,"category":679,"date":1403,"authors":683,"slug":683,"externalUrl":1404}," GitLab Patch Release: 19.2.1, 19.1.3, 19.0.5","2026-07-29","https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-2-1-released/",{"title":1406,"description":1407,"heroImage":1408,"category":679,"date":1409,"authors":1410,"slug":1412,"externalUrl":683},"Automate work item assignment with a \"Work item created\" trigger","Our step-by-step guide walks through this AI capability, which enables instant, scalable triage without manual intervention.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-07-20",[1411],"Cesar Saavedra","how-to-use-a-work-item-created-trigger",{"promotions":1414},[1415,1429,1440,1452],{"id":1416,"categories":1417,"header":1419,"text":1420,"button":1421,"image":1426},"ai-modernization",[1418],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":1422,"config":1423},"Get your AI maturity score",{"href":1424,"dataGaName":1425,"dataGaLocation":907},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":1427},{"src":1428},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1430,"categories":1431,"header":1432,"text":1420,"button":1433,"image":1437},"devops-modernization",[679,1244],"Are you just managing tools or shipping innovation?",{"text":1434,"config":1435},"Get your DevOps maturity score",{"href":1436,"dataGaName":1425,"dataGaLocation":907},"/assessments/devops-modernization-assessment/",{"config":1438},{"src":1439},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1441,"categories":1442,"header":1444,"text":1420,"button":1445,"image":1449},"security-modernization",[1443],"security","Are you trading speed for security?",{"text":1446,"config":1447},"Get your security maturity score",{"href":1448,"dataGaName":1425,"dataGaLocation":907},"/assessments/security-modernization-assessment/",{"config":1450},{"src":1451},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1453,"paths":1454,"header":1457,"text":1458,"button":1459,"image":1464},"github-azure-migration",[1455,1456],"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":1460,"config":1461},"See how GitLab compares to GitHub",{"href":1462,"dataGaName":1463,"dataGaLocation":907},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1465},{"src":1439},{"header":1467,"blurb":1468,"button":1469,"secondaryButton":1474},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":1470,"config":1471},"Get your free trial",{"href":1472,"dataGaName":706,"dataGaLocation":1473},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":1180,"config":1475},{"href":1032,"dataGaName":711,"dataGaLocation":1473},1786803757960]