From c5de95a6c65e26222ccf1cf1abe307971c3f4222 Mon Sep 17 00:00:00 2001 From: Heinrich Lee Yu Date: Mon, 17 Nov 2025 10:55:58 +0800 Subject: [PATCH 1/2] Upgrade Rails to 7.2.3 Update the Rails version in Gemfile to match the Gemfile.next version --- Gemfile | 7 +-- Gemfile.checksum | 27 +++++----- Gemfile.lock | 129 +++++++++++++++++++++++------------------------ package.json | 2 +- yarn.lock | 15 ++---- 5 files changed, 83 insertions(+), 97 deletions(-) diff --git a/Gemfile b/Gemfile index 7b9618680a0cdd..e4d0b09b50fff2 100644 --- a/Gemfile +++ b/Gemfile @@ -24,12 +24,7 @@ extend ignore_feature_category gem 'bundler-checksum', '~> 0.1.0', path: 'gems/bundler-checksum', require: false, feature_category: :shared # See https://docs.gitlab.com/ee/development/gemfile.html#upgrade-rails for guidelines when upgrading Rails - -if next? - gem 'rails', '~> 7.2.3', feature_category: :shared -else - gem 'rails', '~> 7.1.6', feature_category: :shared -end +gem 'rails', '~> 7.2.3', feature_category: :shared # Pin Zeitwerk until https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/9408 is fixed gem 'zeitwerk', '= 2.6.18', feature_category: :shared diff --git a/Gemfile.checksum b/Gemfile.checksum index f22988af5dd186..3db8866bcdb62d 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -2,17 +2,17 @@ {"name":"CFPropertyList","version":"3.0.7","platform":"ruby","checksum":"c45721614aca8d5eb6fa216f2ec28ec38de1a94505e9766a20e98745492c3c4c"}, {"name":"RedCloth","version":"4.3.4","platform":"ruby","checksum":"5231b2fdd91a933915cba330e5fd1a74025e77b56f57b7404c7191ebf2812297"}, {"name":"acme-client","version":"2.0.26","platform":"ruby","checksum":"060e5ea5dd2f66b1b2be3f710ac0884dd469ce3a8b3125c8a5c08e09fb6523bd"}, -{"name":"actioncable","version":"7.1.6","platform":"ruby","checksum":"ad428d5f0a810452160820ae3cf3d9d68d8f59e7c76de3bd1f1de2a5ad03c3da"}, -{"name":"actionmailbox","version":"7.1.6","platform":"ruby","checksum":"ded958ad8ec147a5f14555833541f07063af188777b09b50cfeeaa623bc2f731"}, -{"name":"actionmailer","version":"7.1.6","platform":"ruby","checksum":"b07f6420ec66bd299a9da5a35c075849fbd5504e82793301b0c275fa4211d273"}, -{"name":"actionpack","version":"7.1.6","platform":"ruby","checksum":"3fa42da36fdcfc3690a711ed35ac5d527b87d3d676f8d111238aa399151203eb"}, -{"name":"actiontext","version":"7.1.6","platform":"ruby","checksum":"79d657422dd67cc8cb46866a7bec9d89ec8699f7fa5647c0eab3472dc0297e66"}, -{"name":"actionview","version":"7.1.6","platform":"ruby","checksum":"11147d81f90465ae062b2a77805c6f8f446e044e309c51bd9449bdbd43edf566"}, -{"name":"activejob","version":"7.1.6","platform":"ruby","checksum":"0dd9cd051d494608349dd9223a3e61c3933250db77e35ab6617c26c1d52dccbb"}, -{"name":"activemodel","version":"7.1.6","platform":"ruby","checksum":"f72f510018a560b5969e3ffc88214441ff09eed60b310feba678a597b2a2e721"}, -{"name":"activerecord","version":"7.1.6","platform":"ruby","checksum":"1aa298cd7fc97ed8639ebb05a46bd17243a1218d89945bdc2bac1e61e673f079"}, -{"name":"activestorage","version":"7.1.6","platform":"ruby","checksum":"2f1acb8e6592ba783d9cbc3da93ac4477d441dffc5d533ceccbbfab39f4bf398"}, -{"name":"activesupport","version":"7.1.6","platform":"ruby","checksum":"7f12140a813b1c4922a322663e547129aef1840fc512fa262378f6d7e7fd3a7c"}, +{"name":"actioncable","version":"7.2.3","platform":"ruby","checksum":"e15d17b245f1dfe7cafdda4a0c6f7ba8ebaab1af33884415e09cfef4e93ad4f9"}, +{"name":"actionmailbox","version":"7.2.3","platform":"ruby","checksum":"16bbf0a7c330f2d08d52d5e3c1b03813a8ef60bfb0a48e89c0bf92b069cb4d5e"}, +{"name":"actionmailer","version":"7.2.3","platform":"ruby","checksum":"68d646b852a6d2b25d8834fc796c3dc10f76a4c7fd77b3251c3f4dd832ec8ab8"}, +{"name":"actionpack","version":"7.2.3","platform":"ruby","checksum":"2a14e4c64695777041ea7aaf498462284cadd561f009654393daf9b2de7207cf"}, +{"name":"actiontext","version":"7.2.3","platform":"ruby","checksum":"a6ffd9efb7b7b4e26029e5c88e8a2ea9aae8d6cefdfed960be139772f1a94037"}, +{"name":"actionview","version":"7.2.3","platform":"ruby","checksum":"1f427d7a41b43804d7250911535740451b9c32b6416239d87e6dab9d5948ecb2"}, +{"name":"activejob","version":"7.2.3","platform":"ruby","checksum":"e44964472de267b69e93752f088193c8ad2e56d2ef451d059dd7a53761e5ffb0"}, +{"name":"activemodel","version":"7.2.3","platform":"ruby","checksum":"bbaf66aeb93212e98ebf6ab900f8290f9a831645f0b235427f5acf0e074739db"}, +{"name":"activerecord","version":"7.2.3","platform":"ruby","checksum":"6facb7478ceb5f6baa9f0647daa50b4a3a43934997900f0011e6c667ff41a0d7"}, +{"name":"activestorage","version":"7.2.3","platform":"ruby","checksum":"4c1422bbfaa60c89e7b43cc38ade7bd3b8dc81024c48a21c1ac56814cf34ca2f"}, +{"name":"activesupport","version":"7.2.3","platform":"ruby","checksum":"5675c9770dac93e371412684249f9dc3c8cec104efd0624362a520ae685c7b10"}, {"name":"addressable","version":"2.8.7","platform":"ruby","checksum":"462986537cf3735ab5f3c0f557f14155d778f4b43ea4f485a9deb9c8f7c58232"}, {"name":"aes_key_wrap","version":"1.1.0","platform":"ruby","checksum":"b935f4756b37375895db45669e79dfcdc0f7901e12d4e08974d5540c8e0776a5"}, {"name":"akismet","version":"3.0.0","platform":"ruby","checksum":"74991b8e3d3257eeea996b47069abb8da2006c84a144255123e8dffd1c86b230"}, @@ -577,12 +577,12 @@ {"name":"rack-test","version":"2.1.0","platform":"ruby","checksum":"0c61fc61904049d691922ea4bb99e28004ed3f43aa5cfd495024cc345f125dfb"}, {"name":"rack-timeout","version":"0.7.0","platform":"ruby","checksum":"757337e9793cca999bb73a61fe2a7d4280aa9eefbaf787ce3b98d860749c87d9"}, {"name":"rackup","version":"1.0.1","platform":"ruby","checksum":"ba86604a28989fe1043bff20d819b360944ca08156406812dca6742b24b3c249"}, -{"name":"rails","version":"7.1.6","platform":"ruby","checksum":"9a0a335e510de3daad7542cd791af3d8ff710c644e1da17ed12e96d2f28a7470"}, +{"name":"rails","version":"7.2.3","platform":"ruby","checksum":"9a9812eb131189676e64665f6883fc9c4051f412cc87ef9e3fa242a09c609bff"}, {"name":"rails-controller-testing","version":"1.0.5","platform":"ruby","checksum":"741448db59366073e86fc965ba403f881c636b79a2c39a48d0486f2607182e94"}, {"name":"rails-dom-testing","version":"2.2.0","platform":"ruby","checksum":"e515712e48df1f687a1d7c380fd7b07b8558faa26464474da64183a7426fa93b"}, {"name":"rails-html-sanitizer","version":"1.6.1","platform":"ruby","checksum":"e3d2fb10339f03b802e39c7f6cac28c54fd404d3f65ae39c31cca9d150c5cbf0"}, {"name":"rails-i18n","version":"7.0.10","platform":"ruby","checksum":"efae16e0ac28c0f42e98555c8db1327d69ab02058c8b535e0933cb106dd931ca"}, -{"name":"railties","version":"7.1.6","platform":"ruby","checksum":"2a10e97f2eaca66d11f0fef4b1f4d826e6ee28d4cf01ff16624420dd45e7de1c"}, +{"name":"railties","version":"7.2.3","platform":"ruby","checksum":"6eb010a6bfe6f223e783f739ddfcbdb5b88b1f3a87f7739f0a0685e466250422"}, {"name":"rainbow","version":"3.1.1","platform":"ruby","checksum":"039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a"}, {"name":"rake","version":"13.0.6","platform":"ruby","checksum":"5ce4bf5037b4196c24ac62834d8db1ce175470391026bd9e557d669beeb19097"}, {"name":"rake-compiler-dock","version":"1.9.1","platform":"ruby","checksum":"e73720a29aba9c114728ce39cc0d8eef69ba61d88e7978c57bac171724cd4d53"}, @@ -798,6 +798,7 @@ {"name":"unleash","version":"3.2.2","platform":"ruby","checksum":"0f6e56498de920de66a01bceffb93933693ade646bb853fc70eb16bd1026b93b"}, {"name":"unparser","version":"0.6.7","platform":"ruby","checksum":"ae42e73edfa273766e66c166368fb75ca5972cd8ec50c536253e0f6299a9dec8"}, {"name":"uri","version":"0.13.3","platform":"ruby","checksum":"ed4565c15b73602437a45d6dccb326fefcad0cc8c83794473af0b0439b2e1ea7"}, +{"name":"useragent","version":"0.16.11","platform":"ruby","checksum":"700e6413ad4bb954bb63547fa098dddf7b0ebe75b40cc6f93b8d54255b173844"}, {"name":"valid_email","version":"0.1.3","platform":"ruby","checksum":"b81452b51b64c4beb67913f68db52c20ecb4d73d45512f5b282ab4a3f4416570"}, {"name":"validate_url","version":"1.0.15","platform":"ruby","checksum":"72fe164c0713d63a9970bd6700bea948babbfbdcec392f2342b6704042f57451"}, {"name":"validates_hostname","version":"1.0.13","platform":"ruby","checksum":"eac40178cc0b4f727df9cc6a5cb5bc2550718ad8d9bb3728df9aba6354bdda19"}, diff --git a/Gemfile.lock b/Gemfile.lock index 1597b79752f457..c3ecdf56bf7229 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -223,85 +223,79 @@ GEM base64 (~> 0.2) faraday (>= 1.0, < 3.0.0) faraday-retry (>= 1.0, < 3.0.0) - actioncable (7.1.6) - actionpack (= 7.1.6) - activesupport (= 7.1.6) + actioncable (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) zeitwerk (~> 2.6) - actionmailbox (7.1.6) - actionpack (= 7.1.6) - activejob (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.1.6) - actionpack (= 7.1.6) - actionview (= 7.1.6) - activejob (= 7.1.6) - activesupport (= 7.1.6) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp + actionmailbox (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) + mail (>= 2.8.0) + actionmailer (7.2.3) + actionpack (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activesupport (= 7.2.3) + mail (>= 2.8.0) rails-dom-testing (~> 2.2) - actionpack (7.1.6) - actionview (= 7.1.6) - activesupport (= 7.1.6) + actionpack (7.2.3) + actionview (= 7.2.3) + activesupport (= 7.2.3) cgi nokogiri (>= 1.8.5) racc - rack (>= 2.2.4) + rack (>= 2.2.4, < 3.3) rack-session (>= 1.0.1) rack-test (>= 0.6.3) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - actiontext (7.1.6) - actionpack (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) + useragent (~> 0.16) + actiontext (7.2.3) + actionpack (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.1.6) - activesupport (= 7.1.6) + actionview (7.2.3) + activesupport (= 7.2.3) builder (~> 3.1) cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activejob (7.1.6) - activesupport (= 7.1.6) + activejob (7.2.3) + activesupport (= 7.2.3) globalid (>= 0.3.6) - activemodel (7.1.6) - activesupport (= 7.1.6) - activerecord (7.1.6) - activemodel (= 7.1.6) - activesupport (= 7.1.6) + activemodel (7.2.3) + activesupport (= 7.2.3) + activerecord (7.2.3) + activemodel (= 7.2.3) + activesupport (= 7.2.3) timeout (>= 0.4.0) - activestorage (7.1.6) - actionpack (= 7.1.6) - activejob (= 7.1.6) - activerecord (= 7.1.6) - activesupport (= 7.1.6) + activestorage (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activesupport (= 7.2.3) marcel (~> 1.0) - activesupport (7.1.6) + activesupport (7.2.3) base64 benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) logger (>= 1.4.2) minitest (>= 5.1) - mutex_m securerandom (>= 0.3) - tzinfo (~> 2.0) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) aes_key_wrap (1.1.0) @@ -1578,20 +1572,20 @@ GEM rackup (1.0.1) rack (< 3) webrick - rails (7.1.6) - actioncable (= 7.1.6) - actionmailbox (= 7.1.6) - actionmailer (= 7.1.6) - actionpack (= 7.1.6) - actiontext (= 7.1.6) - actionview (= 7.1.6) - activejob (= 7.1.6) - activemodel (= 7.1.6) - activerecord (= 7.1.6) - activestorage (= 7.1.6) - activesupport (= 7.1.6) + rails (7.2.3) + actioncable (= 7.2.3) + actionmailbox (= 7.2.3) + actionmailer (= 7.2.3) + actionpack (= 7.2.3) + actiontext (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activemodel (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) bundler (>= 1.15.0) - railties (= 7.1.6) + railties (= 7.2.3) rails-controller-testing (1.0.5) actionpack (>= 5.0.1.rc1) actionview (>= 5.0.1.rc1) @@ -1606,11 +1600,11 @@ GEM rails-i18n (7.0.10) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - railties (7.1.6) - actionpack (= 7.1.6) - activesupport (= 7.1.6) + railties (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) cgi - irb + irb (~> 1.13) rackup (>= 1.0.0) rake (>= 12.2) thor (~> 1.0, >= 1.2.2) @@ -2012,6 +2006,7 @@ GEM diff-lcs (~> 1.3) parser (>= 3.2.0) uri (0.13.3) + useragent (0.16.11) valid_email (0.1.3) activemodel mail (>= 2.6.1) @@ -2367,7 +2362,7 @@ DEPENDENCIES rack-oauth2 (~> 2.2.1) rack-proxy (~> 0.7.7) rack-timeout (~> 0.7.0) - rails (~> 7.1.6) + rails (~> 7.2.3) rails-controller-testing rails-i18n (~> 7.0, >= 7.0.9) rainbow (~> 3.0) diff --git a/package.json b/package.json index 83708ffaa48b3f..46c82200823c12 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "@gitlab/web-ide": "^0.0.1-dev-20251030144717", "@gleam-lang/highlight.js-gleam": "^1.5.0", "@mattiasbuelens/web-streams-adapter": "^0.1.0", - "@rails/actioncable": "7.1.600", + "@rails/actioncable": "7.2.300", "@rails/ujs": "7.1.600", "@rollup/plugin-graphql": "^2.0.5", "@sentry/browser": "10.22.0", diff --git a/yarn.lock b/yarn.lock index 8b082f6b85e930..60c1b61df35de8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1433,7 +1433,7 @@ resolved "https://registry.yarnpkg.com/@gitlab/fonts/-/fonts-1.3.1.tgz#dd335ed25cb33927abc1d80dfbfa31fc93e9bd15" integrity sha512-/7Q5Sy9Q3pmutV/1EgURm3iDZtV0HcE4nTwFpHLCrGDdxQ3pNv6SdujzeJExnfiI5Y+1FGfOvKwOlmiVuyDtzA== -"@gitlab/noop@^1.0.1": +"@gitlab/noop@^1.0.1", jackspeak@^3.1.2, "jackspeak@npm:@gitlab/noop@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@gitlab/noop/-/noop-1.0.1.tgz#71a831146ee02732b4a61d2d3c11204564753454" integrity sha512-s++4wjMYeDvBp9IO59DBrWjy8SE/gFkjTDO5ck2W0S6Vv7OlqgErwL7pHngAnrSmTJAzyUG8wHGqo0ViS4jn5Q== @@ -2448,10 +2448,10 @@ resolved "https://registry.yarnpkg.com/@radix-ui/rect/-/rect-1.1.0.tgz#f817d1d3265ac5415dadc67edab30ae196696438" integrity sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg== -"@rails/actioncable@7.1.600": - version "7.1.600" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.1.600.tgz#f6f10bc7321a469ba6666502d3bb6e110074576b" - integrity sha512-BZMLShJhaqMZcl5hHXN2w5cOvXVbV+Vj7kcQBM8GGXITofBMyeVS4F0ZWZYJm2ZezfC5WAZuZitLLtP9piRfNA== +"@rails/actioncable@7.2.300": + version "7.2.300" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.2.300.tgz#5bf24ffded6dd659d8b42cc67fb68fb51767b989" + integrity sha512-bmrp+HgCPd2BlhDfJ81hJ6Nvd6yh0B2hIW8ThOmUdOr3L+sFjU1glpBmn+MoQF2K0HLvnWCGqF3TxT/S0jj3QA== "@rails/ujs@7.1.600": version "7.1.600" @@ -9543,11 +9543,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^3.1.2, "jackspeak@npm:@gitlab/noop@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@gitlab/noop/-/noop-1.0.1.tgz#71a831146ee02732b4a61d2d3c11204564753454" - integrity sha512-s++4wjMYeDvBp9IO59DBrWjy8SE/gFkjTDO5ck2W0S6Vv7OlqgErwL7pHngAnrSmTJAzyUG8wHGqo0ViS4jn5Q== - jed@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/jed/-/jed-1.1.1.tgz#7a549bbd9ffe1585b0cd0a191e203055bee574b4" -- GitLab From be74c412b62743bfa522e6819907e41dc951b3d6 Mon Sep 17 00:00:00 2001 From: Heinrich Lee Yu Date: Tue, 18 Nov 2025 15:07:03 +0800 Subject: [PATCH 2/2] Upgrade ActiveSupport in QA Match the version used in Rails --- qa/Gemfile | 2 +- qa/Gemfile.lock | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/qa/Gemfile b/qa/Gemfile index 7ecb75d9cebd62..e15ed30e3dfabd 100644 --- a/qa/Gemfile +++ b/qa/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' gem 'gitlab-qa', '~> 15', '>= 15.6.0', require: 'gitlab/qa' gem 'gitlab_quality-test_tooling', '~> 2.27.0', require: false gem 'gitlab-utils', path: '../gems/gitlab-utils' -gem 'activesupport', '~> 7.1.6' # This should stay in sync with the root's Gemfile +gem 'activesupport', '~> 7.2.3' # This should stay in sync with the root's Gemfile gem 'allure-rspec', '~> 2.27.0' gem 'capybara', '~> 3.40.0' gem 'capybara-screenshot', '~> 1.0.26' diff --git a/qa/Gemfile.lock b/qa/Gemfile.lock index b05148ff11b3da..b507a54cb65f90 100644 --- a/qa/Gemfile.lock +++ b/qa/Gemfile.lock @@ -22,26 +22,25 @@ PATH GEM remote: https://rubygems.org/ specs: - actionview (7.1.6) - activesupport (= 7.1.6) + actionview (7.2.3) + activesupport (= 7.2.3) builder (~> 3.1) cgi erubi (~> 1.11) rails-dom-testing (~> 2.2) rails-html-sanitizer (~> 1.6) - activesupport (7.1.6) + activesupport (7.2.3) base64 benchmark (>= 0.3) bigdecimal - concurrent-ruby (~> 1.0, >= 1.0.2) + concurrent-ruby (~> 1.0, >= 1.3.1) connection_pool (>= 2.2.5) drb i18n (>= 1.6, < 2) logger (>= 1.4.2) minitest (>= 5.1) - mutex_m securerandom (>= 0.3) - tzinfo (~> 2.0) + tzinfo (~> 2.0, >= 2.0.5) addressable (2.8.7) public_suffix (>= 2.0.2, < 7.0) allure-rspec (2.27.0) @@ -76,7 +75,7 @@ GEM launchy cgi (0.5.0) coderay (1.1.2) - concurrent-ruby (1.2.3) + concurrent-ruby (1.3.5) connection_pool (2.5.0) crass (1.0.6) csv (3.3.0) @@ -132,8 +131,8 @@ GEM gitlab (4.19.0) httparty (~> 0.20) terminal-table (>= 1.5.1) - gitlab-qa (15.6.0) - activesupport (>= 6.1, < 7.2) + gitlab-qa (15.7.0) + activesupport (>= 6.1, < 8) ffi (~> 1.17) gitlab (~> 4.19) http (~> 5.0) @@ -233,7 +232,6 @@ GEM mize (0.6.1) multi_json (1.15.0) multi_xml (0.6.0) - mutex_m (0.3.0) net-http (0.4.1) uri netrc (0.11.0) @@ -381,7 +379,7 @@ PLATFORMS ruby DEPENDENCIES - activesupport (~> 7.1.6) + activesupport (~> 7.2.3) allure-rspec (~> 2.27.0) capybara (~> 3.40.0) capybara-screenshot (~> 1.0.26) -- GitLab