From e1a2058b3ef9148afa4efc7ae3ec8ec0665fc31e Mon Sep 17 00:00:00 2001 From: Charlotte Van Petegem Date: Sat, 13 Jan 2024 10:15:56 +0100 Subject: [PATCH] patches: Add gitlab 16.7.2 patch --- patches/274432.patch | 3002 ++++++++++++++++++++++++++++++++++++++++++ patches/280369.patch | 82 ++ 2 files changed, 3084 insertions(+) create mode 100644 patches/274432.patch create mode 100644 patches/280369.patch diff --git a/patches/274432.patch b/patches/274432.patch new file mode 100644 index 00000000..25683b34 --- /dev/null +++ b/patches/274432.patch @@ -0,0 +1,3002 @@ +diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json +index 1cd6c2e31ffd7c..8247763e63ba7d 100644 +--- a/pkgs/applications/version-management/gitlab/data.json ++++ b/pkgs/applications/version-management/gitlab/data.json +@@ -1,15 +1,15 @@ + { +- "version": "16.5.4", +- "repo_hash": "sha256-N+5w42aIMnulItzx7ksK4Olkpr4AwN2ojcYs+xJfjeY=", +- "yarn_hash": "03ryyk7dw7s8yjdx9wdrvllaydb0w5an06agkwf5npgr6x1bz3yv", ++ "version": "16.7.0", ++ "repo_hash": "sha256-l5TkjkVny2zQLUfbscG6adkmkC1KjxMAeFbSyUA1UbI=", ++ "yarn_hash": "1qxz2p969qg7kzyvhwxws5zwdw986gdq9gxllzi58c5c56jz49zf", + "owner": "gitlab-org", + "repo": "gitlab", +- "rev": "v16.5.4-ee", ++ "rev": "v16.7.0-ee", + "passthru": { +- "GITALY_SERVER_VERSION": "16.5.4", +- "GITLAB_PAGES_VERSION": "16.5.4", +- "GITLAB_SHELL_VERSION": "14.29.0", +- "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.4.0", +- "GITLAB_WORKHORSE_VERSION": "16.5.4" ++ "GITALY_SERVER_VERSION": "16.7.0", ++ "GITLAB_PAGES_VERSION": "16.7.0", ++ "GITLAB_SHELL_VERSION": "14.32.0", ++ "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.5.0", ++ "GITLAB_WORKHORSE_VERSION": "16.7.0" + } + } +diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix +index 4330a8f569719f..dbc86c730eea1a 100644 +--- a/pkgs/applications/version-management/gitlab/default.nix ++++ b/pkgs/applications/version-management/gitlab/default.nix +@@ -101,7 +101,7 @@ let + buildPhase = '' + runHook preBuild + +- bundle exec rake gettext:po_to_json RAILS_ENV=production NODE_ENV=production ++ bundle exec rake gettext:compile RAILS_ENV=production NODE_ENV=production + bundle exec rake rake:assets:precompile RAILS_ENV=production NODE_ENV=production + bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production + bundle exec rake gitlab:assets:fix_urls RAILS_ENV=production NODE_ENV=production +diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix +index 1f2b2881c87d48..b56edca8fa9c2b 100644 +--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix +@@ -6,7 +6,7 @@ + }: + + let +- version = "16.5.4"; ++ version = "16.7.0"; + package_version = "v${lib.versions.major version}"; + gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}"; + +@@ -18,10 +18,10 @@ let + owner = "gitlab-org"; + repo = "gitaly"; + rev = "v${version}"; +- hash = "sha256-6XXXTeLw7+ScWUB81Pno8BZkkSFJ12SnZKu8430yQKo="; ++ hash = "sha256-YLynUHE1lb0dfsZsalz91jSSk1Y5r7kqT2AcE27xf04="; + }; + +- vendorHash = "sha256-QLt/12P6OLpLqCINROLmzhoRpLGrB9WzME7FzhIcb0Q="; ++ vendorHash = "sha256-btWHZMy1aBSsUVs30IqrdBCO79XQvTMXxkxYURF2Nqs="; + + ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ]; + +diff --git a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix +index 1e953b9d169be0..ffec1e0057d363 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix +@@ -10,10 +10,10 @@ buildGoModule rec { + owner = "gitlab-org"; + repo = "container-registry"; + inherit rev; +- sha256 = "sha256-egslb+8+RsDjpL5xQpdCU3QwFH59grRCkODQnAkZe/0="; ++ hash = "sha256-vQ5bP2S1McZxD+Mjw0y/+GB8ntv8nQynM1cIWtUK7pU="; + }; + +- vendorHash = "sha256-IFXIr0xYJCKM5VUHQV+4S/+FEAhFEjbMaU+9JWIh8cA="; ++ vendorHash = "sha256-rDmmCwz/+FBzbREKIqwQulcOKwd4Y6/MITyNpB+pfwQ="; + + patches = [ + ./Disable-inmemory-storage-driver-test.patch +diff --git a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix +index 9a513a1590fd3c..d6a35bc96cadc0 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix +@@ -2,17 +2,17 @@ + + buildGoModule rec { + pname = "gitlab-elasticsearch-indexer"; +- version = "4.4.0"; ++ version = "4.5.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-elasticsearch-indexer"; + rev = "v${version}"; +- sha256 = "sha256-Qywf5ACxXqY1iUZCsROTLmWeM8gFcqZvnClRo5DlnjY="; ++ sha256 = "sha256-6Y2ARnFjbz6nFhWGRhzgAY8s0aX24oLMY1016oRD9oo="; + }; + +- vendorHash = "sha256-2dUlztXnr7OH/gQ0Q4jQpuO1MdkOy1O4BNGiY223DAA="; ++ vendorHash = "sha256-jpjfQl2z5yPnlGEYW6KKBfd4quchT+bU/RU6vwaB4gQ="; + + buildInputs = [ icu ]; + nativeBuildInputs = [ pkg-config ]; +diff --git a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix +index 76b328e17eafcc..596e5770edb292 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix +@@ -2,17 +2,17 @@ + + buildGoModule rec { + pname = "gitlab-pages"; +- version = "16.5.4"; ++ version = "16.7.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-pages"; + rev = "v${version}"; +- hash = "sha256-hMd+0WCY59orQa5IYh6Lf5ZMj564Dgo8mEgo7svv6Rs="; ++ hash = "sha256-8jODsK5+o1fEaTuFv6bXfZp4oA87JUQbTdYQn66DKJA="; + }; + +- vendorHash = "sha256-YG+ERETxp0BPh/V4820pMXTXu9YcodRhzme6qZJBC9Q="; ++ vendorHash = "sha256-NMky8v0YmN2pSeKJ7G0+DWAZvUx2JlwFbqPHvciYroM="; + subPackages = [ "." ]; + + meta = with lib; { +diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix +index 882cb5f5384407..568ba88deecaf6 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix +@@ -2,21 +2,21 @@ + + buildGoModule rec { + pname = "gitlab-shell"; +- version = "14.29.0"; ++ version = "14.32.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-shell"; + rev = "v${version}"; +- sha256 = "sha256-MhvFLBH0CLiGNTEjHy7vDhLE3YsvbBL8XRNytPEa6uU="; ++ sha256 = "sha256-fZttdcIdPeiy2ncDyseR1BnR6GBoSRsFkn7Mxc+mTA8="; + }; + + buildInputs = [ ruby libkrb5 ]; + + patches = [ ./remove-hardcoded-locations.patch ]; + +- vendorHash = "sha256-g1ZaRY0A7oREByNicPvnuxakYrNQNXg4Vy94iyNVdDY="; ++ vendorHash = "sha256-tdYBEV/dKnIJ+OWTF3/5bIbWVdE/ulMrMD/LMzj1QZE="; + + postInstall = '' + cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin +diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix +index c74b8106dc2877..c839269a1f9350 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix +@@ -5,7 +5,7 @@ in + buildGoModule rec { + pname = "gitlab-workhorse"; + +- version = "16.5.4"; ++ version = "16.7.0"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { +@@ -17,7 +17,7 @@ buildGoModule rec { + + sourceRoot = "${src.name}/workhorse"; + +- vendorHash = "sha256-m8cDhI6DzFnSEZscZQfFm8l9MTJqTqxhBFJeTX1HWiE="; ++ vendorHash = "sha256-1oeToeqGXSj5CdL5dgWsnN/VpwALlus93P0Ed7G8TIw="; + buildInputs = [ git ]; + ldflags = [ "-X main.Version=${version}" ]; + doCheck = false; +diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile +index 2107186fe15915..0ddaf9afb3a3ad 100644 +--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile ++++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile +@@ -28,9 +28,7 @@ gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory + +-gem 'vite_rails' # rubocop:todo Gemfile/MissingFeatureCategory +- +-gem 'bootsnap', '~> 1.16.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'bootsnap', '~> 1.17.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -42,12 +40,16 @@ group :monorepo do + gem 'gitlab-utils', path: 'gems/gitlab-utils' # rubocop:todo Gemfile/MissingFeatureCategory + end + ++gem 'gitlab-backup-cli', path: 'gems/gitlab-backup-cli', require: 'gitlab/backup/cli', feature_category: :backup_restore ++ ++gem 'gitlab-secret_detection', path: 'gems/gitlab-secret_detection', feature_category: :secret_detection ++ + # Responders respond_to and respond_with + gem 'responders', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'sprockets', '~> 3.7.0' # rubocop:todo Gemfile/MissingFeatureCategory + +-gem 'view_component', '~> 3.6.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'view_component', '~> 3.8.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Supported DBs + gem 'pg', '~> 1.5.4' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -63,7 +65,7 @@ gem 'marginalia', '~> 1.11.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'declarative_policy', '~> 1.1.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Authentication libraries +-gem 'devise', '~> 4.8.1' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'devise', '~> 4.9.3', feature_category: :system_access + gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'bcrypt', '~> 3.1', '>= 3.1.14' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'doorkeeper', '~> 5.6', '>= 5.6.6' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -119,7 +121,7 @@ gem 'acme-client', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'browser', '~> 5.3.1' # rubocop:todo Gemfile/MissingFeatureCategory + + # OS detection for usage ping +-gem 'ohai', '~> 17.9' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'ohai', '~> 18.1' # rubocop:todo Gemfile/MissingFeatureCategory + + # GPG + gem 'gpgme', '~> 2.0.23' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -142,7 +144,7 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/Missing + gem 'graphql', '~> 2.0.27', feature_category: :api + gem 'graphql-docs', '~> 4.0.0', group: [:development, :test], feature_category: :api + gem 'graphiql-rails', '~> 1.8.0', feature_category: :api +-gem 'apollo_upload_server', '~> 2.1.0', feature_category: :api ++gem 'apollo_upload_server', '~> 2.1.5', feature_category: :api + gem 'graphlient', '~> 0.5.0', feature_category: :importers # Used by BulkImport feature (group::import) + + # Generate Fake data +@@ -177,8 +179,13 @@ gem 'fog-aliyun', '~> 0.4' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'gitlab-fog-azure-rm', '~> 1.8.0', require: 'fog/azurerm' # rubocop:todo Gemfile/MissingFeatureCategory + + # for Google storage +-gem 'google-cloud-storage', '~> 1.44.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'google-apis-core', '~> 0.10.0' # rubocop:todo Gemfile/MissingFeatureCategory ++ ++# Need this specific version of google-apis-storage_v1 so that fog-google will utilize the updated list_objects with ++# match_glob support in google-apis-core 0.11.1. Because of this we also have to bump google-cloud-storage to 1.45.0. ++gem 'google-apis-storage_v1', '~> 0.29' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'google-cloud-storage', '~> 1.45.0' # rubocop:todo Gemfile/MissingFeatureCategory ++# We need >= 0.11.1 because that's when match_glob support is added to list_objects ++gem 'google-apis-core', '~> 0.11.0', '>= 0.11.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'google-apis-compute_v1', '~> 0.57.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'google-apis-container_v1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'google-apis-container_v1beta1', '~> 0.43.0' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -196,9 +203,9 @@ gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'elasticsearch-model', '~> 7.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'elasticsearch-api', '7.13.3' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'aws-sdk-core', '~> 3.185.1' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'aws-sdk-core', '~> 3.190.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'aws-sdk-s3', '~> 1.136.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'aws-sdk-s3', '~> 1.141.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'faraday_middleware-aws-sigv4', '~>0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -208,7 +215,7 @@ gem 'deckar01-task_list', '2.3.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'commonmarker', '~> 0.23.10' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'RedCloth', '~> 4.3.2' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'RedCloth', '~> 4.3.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'org-ruby', '~> 0.9.12' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'creole', '~> 0.5.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'wikicloth', '0.8.1' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -216,16 +223,16 @@ gem 'asciidoctor', '~> 2.0.18' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'asciidoctor-include-ext', '~> 0.4.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'asciidoctor-plantuml', '~> 0.0.16' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'rouge', '~> 4.1.3' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'nokogiri', '~> 1.15', '>= 1.15.4' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'nokogiri', '~> 1.15', '>= 1.15.5' # rubocop:todo Gemfile/MissingFeatureCategory + + # Calendar rendering + gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory + + # Diffs + gem 'diffy', '~> 3.4' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'diff_match_patch', '~> 0.1.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'diff_match_patch', '~> 0.1.0', path: 'vendor/gems/diff_match_patch', feature_category: :team_planning + + # Application server + gem 'rack', '~> 2.2.8' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -241,12 +248,11 @@ end + gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # CI domain tags +-gem 'acts-as-taggable-on', '~> 9.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Background jobs +-gem 'sidekiq', '~> 6.5.7' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'sidekiq-cron', '~> 1.8.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'redis-namespace', '~> 1.9.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'sidekiq', '~> 6.5.10' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'sidekiq-cron', '~> 1.12.0', feature_category: :shared + gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # rubocop:todo Gemfile/MissingFeatureCategory + + # Cron Parser +@@ -262,11 +268,11 @@ gem 'rainbow', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'ruby-progressbar', '~> 1.10' # rubocop:todo Gemfile/MissingFeatureCategory + + # Linear-time regex library for untrusted regular expressions +-gem 're2', '2.1.3' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 're2', '2.5.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Misc + +-gem 'semver_dialects', '~> 1.2.1' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'semver_dialects', '~> 1.5', feature_category: :static_application_security_testing + gem 'version_sorter', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'csv_builder', path: 'gems/csv_builder' # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -278,23 +284,24 @@ gem 'device_detector' # rubocop:todo Gemfile/MissingFeatureCategory + + # Redis + gem 'redis', '~> 4.8.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'redis-namespace', '~> 1.10.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory + + # Redis session store + gem 'redis-actionpack', '~> 5.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Discord integration +-gem 'discordrb-webhooks', '~> 3.4', require: false # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'discordrb-webhooks', '~> 3.4', require: false, feature_category: :integrations + + # Jira integration +-gem 'jira-ruby', '~> 2.1.4' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'atlassian-jwt', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'jira-ruby', '~> 2.1.4', feature_category: :integrations ++gem 'atlassian-jwt', '~> 0.2.0', feature_category: :integrations + + # Slack integration +-gem 'slack-messenger', '~> 2.3.4' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'slack-messenger', '~> 2.3.4', feature_category: :integrations + + # FogBugz integration +-gem 'ruby-fogbugz', '~> 0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'ruby-fogbugz', '~> 0.3.0', feature_category: :importers + + # Kubernetes integration + gem 'kubeclient', '~> 4.11.0' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -308,7 +315,7 @@ gem 'sanitize', '~> 6.0.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'babosa', '~> 2.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Sanitizes SVG input +-gem 'loofah', '~> 2.21.4' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'loofah', '~> 2.22.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Used to provide license templates + gem 'licensee', '~> 9.16' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -334,7 +341,7 @@ gem 'terser', '1.0.2' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'click_house-client', path: 'gems/click_house-client', require: 'click_house/client' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'addressable', '~> 2.8' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'tanuki_emoji', '~> 0.7' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'tanuki_emoji', '~> 0.9' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'gon', '~> 6.4.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'request_store', '~> 1.5.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'base32', '~> 0.3.0' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -345,10 +352,10 @@ gem 'gitlab-license', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Sentry integration +-gem 'sentry-raven', '~> 3.1' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'sentry-ruby', '~> 5.8.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'sentry-rails', '~> 5.8.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'sentry-sidekiq', '~> 5.8.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'sentry-raven', '~> 3.1', feature_category: :error_tracking ++gem 'sentry-ruby', '~> 5.10.0', feature_category: :error_tracking ++gem 'sentry-rails', '~> 5.10.0', feature_category: :error_tracking ++gem 'sentry-sidekiq', '~> 5.10.0', feature_category: :error_tracking + + # PostgreSQL query parsing + # +@@ -363,10 +370,9 @@ gem 'gitlab-labkit', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # I18n +-gem 'rails-i18n', '~> 7.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'gettext_i18n_rails', '~> 1.11.0' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'gettext_i18n_rails_js', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'gettext', '~> 3.3', require: false, group: :development # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'rails-i18n', '~> 7.0', feature_category: :internationalization ++gem 'gettext_i18n_rails', '~> 1.11.0', feature_category: :internationalization ++gem 'gettext', '~> 3.3', require: false, group: [:development, :test], feature_category: :internationalization + + gem 'batch-loader', '~> 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -381,17 +387,17 @@ gem 'snowplow-tracker', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Metrics + gem 'webrick', '~> 1.8.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'prometheus-client-mmap', '~> 0.28', '>= 0.28.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'prometheus-client-mmap', '~> 1.0', '>= 1.0.2', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + + group :development do +- gem 'lefthook', '~> 1.5.2', require: false, feature_category: :tooling ++ gem 'lefthook', '~> 1.5.5', require: false, feature_category: :tooling + gem 'rubocop', feature_category: :tooling + gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'letter_opener_web', '~> 2.0.0' # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'lookbook', '~> 2.0', '>= 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'lookbook', '~> 2.2' # rubocop:todo Gemfile/MissingFeatureCategory + + # Better errors handler + gem 'better_errors', '~> 2.10.1' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -399,11 +405,17 @@ group :development do + gem 'sprite-factory', '~> 1.7' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory ++ ++ gem 'ruby-lsp', "~> 0.13.1", require: false, feature_category: :tooling ++ ++ gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling ++ ++ gem 'ruby-lsp-rspec', "~> 0.1.8", require: false, feature_category: :tooling + end + + group :development, :test do + gem 'deprecation_toolkit', '~> 1.5.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'bullet', '~> 7.1.1' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'bullet', '~> 7.1.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'parser', '~> 3.2', '>= 3.2.2.4' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'pry-byebug' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'pry-rails', '~> 0.3.9' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -411,9 +423,9 @@ group :development, :test do + + gem 'awesome_print', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +- gem 'database_cleaner', '~> 1.7.0' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database + gem 'factory_bot_rails', '~> 6.2.0' # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'rspec-rails', '~> 6.0.3' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'rspec-rails', '~> 6.1.0', feature_category: :shared + + # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826) + gem 'minitest', '~> 5.11.0' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -421,9 +433,9 @@ group :development, :test do + gem 'spring', '~> 4.1.0' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'spring-commands-rspec', '~> 1.0.4' # rubocop:todo Gemfile/MissingFeatureCategory + +- gem 'gitlab-styles', '~> 10.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'gitlab-styles', '~> 11.0.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +- gem 'haml_lint', '~> 0.40.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'haml_lint', '~> 0.52', require: false # rubocop:todo Gemfile/MissingFeatureCategory + gem 'bundler-audit', '~> 0.9.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory + + # Benchmarking & profiling +@@ -435,7 +447,7 @@ group :development, :test do + + gem 'knapsack', '~> 1.21.1', feature_category: :tooling + gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling +- gem 'test_file_finder', '~> 0.1.3', feature_category: :tooling ++ gem 'test_file_finder', '~> 0.2.1', feature_category: :tooling + + gem 'simple_po_parser', '~> 1.1.6', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -446,10 +458,17 @@ group :development, :test do + gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'pact', '~> 1.63' # rubocop:todo Gemfile/MissingFeatureCategory ++ ++ # For now we only use vite in development / test, and not for production builds ++ # See: https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/106 ++ gem 'vite_rails', '~> 3.0.17', feature_category: :shared ++ gem 'vite_ruby', '~> 3.5.0', feature_category: :shared ++ ++ gem 'gitlab-housekeeper', path: 'gems/gitlab-housekeeper', feature_category: :tooling + end + + group :development, :test, :danger do +- gem 'gitlab-dangerfiles', '~> 4.3.2', require: false, feature_category: :tooling ++ gem 'gitlab-dangerfiles', '~> 4.6.0', require: false, feature_category: :tooling + end + + group :development, :test, :coverage do +@@ -467,7 +486,7 @@ end + # Gems required in various pipelines + group :development, :test, :monorepo do + gem 'gitlab-rspec', path: 'gems/gitlab-rspec' # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'rspec_flaky', path: 'gems/rspec_flaky' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'gitlab-rspec_flaky', path: 'gems/gitlab-rspec_flaky', feature_category: :tooling + end + + group :test do +@@ -476,10 +495,11 @@ group :test do + gem 'rspec_profiling', '~> 0.0.6', feature_category: :tooling + gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling + gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling ++ gem 'os', '~> 1.1', feature_category: :tooling + + gem 'capybara', '~> 3.39', '>= 3.39.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'selenium-webdriver', '~> 4.14' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'selenium-webdriver', '~> 4.16' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -488,7 +508,7 @@ group :test do + gem 'webmock', '~> 3.19.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rails-controller-testing' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'concurrent-ruby', '~> 1.1' # rubocop:todo Gemfile/MissingFeatureCategory +- gem 'test-prof', '~> 1.2.3' # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'test-prof', '~> 1.3.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'rspec_junit_formatter' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'guard-rspec' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'axe-core-rspec' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -496,12 +516,12 @@ group :test do + # Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527 + gem 'derailed_benchmarks', require: false # rubocop:todo Gemfile/MissingFeatureCategory + +- gem 'gitlab_quality-test_tooling', '~> 1.3.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory ++ gem 'gitlab_quality-test_tooling', '~> 1.9.0', require: false, feature_category: :tooling + end + + gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory + +-gem 'gitlab-mail_room', '~> 0.0.23', require: 'mail_room' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared + + gem 'email_reply_trimmer', '~> 0.1' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'html2text' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -531,14 +551,14 @@ gem 'ssh_data', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'spamcheck', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory + + # Gitaly GRPC protocol definitions +-gem 'gitaly', '~> 16.5.0.pre.rc1' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'gitaly', '~> 16.7.0-rc1', feature_category: :gitaly + + # KAS GRPC protocol definitions +-gem 'kas-grpc', '~> 0.2.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'kas-grpc', '~> 0.3.0', feature_category: :deployment_management + + gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory + +-gem 'google-protobuf', '~> 3.24', '>= 3.24.4' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'google-protobuf', '~> 3.25', '>= 3.25.1' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory + +@@ -547,7 +567,7 @@ gem 'flipper', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'flipper-active_record', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'flipper-active_support_cache_store', '~> 0.26.2' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'unleash', '~> 3.2.2' # rubocop:todo Gemfile/MissingFeatureCategory +-gem 'gitlab-experiment', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'gitlab-experiment', '~> 0.9.1', feature_category: :shared + + # Structured logging + gem 'lograge', '~> 0.5' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -613,7 +633,7 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite' # rubocop:todo Gemfile/Missi + gem 'arr-pm', '~> 0.0.12' # rubocop:todo Gemfile/MissingFeatureCategory + + # Remote Development +-gem 'devfile', '~> 0.0.23.pre.alpha1' # rubocop:todo Gemfile/MissingFeatureCategory ++gem 'devfile', '~> 0.0.24.pre.alpha1', feature_category: :remote_development + + # Apple plist parsing + gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory +@@ -630,3 +650,5 @@ gem 'net-protocol', '~> 0.1.3' # rubocop:todo Gemfile/MissingFeatureCategory + gem 'net-http', '= 0.1.1' # rubocop:todo Gemfile/MissingFeatureCategory + + gem 'duo_api', '~> 1.3' # rubocop:todo Gemfile/MissingFeatureCategory ++ ++gem 'gitlab-sdk', feature_category: :application_instrumentation +diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock +index 052a59d6b7f7f6..e106367ae95167 100644 +--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock ++++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock +@@ -23,21 +23,43 @@ PATH + error_tracking_open_api (1.0.0) + typhoeus (~> 1.0, >= 1.0.1) + ++PATH ++ remote: gems/gitlab-backup-cli ++ specs: ++ gitlab-backup-cli (0.0.1) ++ thor (~> 1.3) ++ ++PATH ++ remote: gems/gitlab-housekeeper ++ specs: ++ gitlab-housekeeper (0.1.0) ++ httparty ++ rubocop ++ + PATH + remote: gems/gitlab-http + specs: + gitlab-http (0.1.0) + activesupport (~> 7) ++ concurrent-ruby (~> 1.2) + httparty (~> 0.21.0) + ipaddress (~> 0.8.3) + nokogiri (~> 1.15.4) + railties (~> 7) + ++PATH ++ remote: gems/gitlab-rspec_flaky ++ specs: ++ gitlab-rspec_flaky (0.1.0) ++ activesupport (>= 6.1, < 8) ++ rspec (~> 3.0) ++ + PATH + remote: gems/gitlab-rspec + specs: + gitlab-rspec (0.1.0) +- activesupport (>= 6.1, < 7.1) ++ activerecord (>= 6.1, < 8) ++ activesupport (>= 6.1, < 8) + rspec (~> 3.0) + + PATH +@@ -53,6 +75,13 @@ PATH + diffy + pg_query + ++PATH ++ remote: gems/gitlab-secret_detection ++ specs: ++ gitlab-secret_detection (0.1.0) ++ re2 (~> 2.4) ++ toml-rb (~> 2.2) ++ + PATH + remote: gems/gitlab-utils + specs: +@@ -70,13 +99,6 @@ PATH + diffy (~> 3.4) + oj (~> 3.13.16) + +-PATH +- remote: gems/rspec_flaky +- specs: +- rspec_flaky (0.1.0) +- activesupport (>= 6.1, < 8) +- rspec (~> 3.0) +- + PATH + remote: vendor/gems/attr_encrypted + specs: +@@ -103,7 +125,12 @@ PATH + specs: + devise-pbkdf2-encryptable (0.0.0) + devise (~> 4.0) +- devise-two-factor (~> 4.0) ++ devise-two-factor (~> 4.1.1) ++ ++PATH ++ remote: vendor/gems/diff_match_patch ++ specs: ++ diff_match_patch (0.1.0) + + PATH + remote: vendor/gems/mail-smtp_pool +@@ -152,7 +179,7 @@ PATH + PATH + remote: vendor/gems/sidekiq-reliable-fetch + specs: +- gitlab-sidekiq-fetcher (0.9.0) ++ gitlab-sidekiq-fetcher (0.10.0) + json (>= 2.5) + sidekiq (~> 6.1) + +@@ -161,7 +188,7 @@ GEM + specs: + CFPropertyList (3.0.5) + rexml +- RedCloth (4.3.2) ++ RedCloth (4.3.3) + acme-client (2.0.11) + faraday (>= 1.0, < 3.0.0) + faraday-retry (~> 1.0) +@@ -233,8 +260,8 @@ GEM + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) +- acts-as-taggable-on (9.0.1) +- activerecord (>= 6.0, < 7.1) ++ acts-as-taggable-on (10.0.0) ++ activerecord (>= 6.1, < 7.2) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) + aes_key_wrap (1.1.0) +@@ -242,9 +269,12 @@ GEM + aliyun-sdk (0.8.0) + nokogiri (~> 1.6) + rest-client (~> 2.0) ++ amatch (0.4.1) ++ mize ++ tins (~> 1.0) + android_key_attestation (0.3.0) +- apollo_upload_server (2.1.0) +- actionpack (>= 4.2) ++ apollo_upload_server (2.1.5) ++ actionpack (>= 6.1.6) + graphql (>= 1.8) + app_store_connect (0.29.0) + activesupport (>= 6.0.0) +@@ -265,24 +295,24 @@ GEM + execjs (> 0) + awesome_print (1.9.2) + awrence (1.2.1) +- aws-eventstream (1.2.0) ++ aws-eventstream (1.3.0) + aws-partitions (1.761.0) + aws-sdk-cloudformation (1.41.0) + aws-sdk-core (~> 3, >= 3.99.0) + aws-sigv4 (~> 1.1) +- aws-sdk-core (3.185.1) +- aws-eventstream (~> 1, >= 1.0.2) ++ aws-sdk-core (3.190.0) ++ aws-eventstream (~> 1, >= 1.3.0) + aws-partitions (~> 1, >= 1.651.0) +- aws-sigv4 (~> 1.5) ++ aws-sigv4 (~> 1.8) + jmespath (~> 1, >= 1.6.1) + aws-sdk-kms (1.64.0) + aws-sdk-core (~> 3, >= 3.165.0) + aws-sigv4 (~> 1.1) +- aws-sdk-s3 (1.136.0) +- aws-sdk-core (~> 3, >= 3.181.0) ++ aws-sdk-s3 (1.141.0) ++ aws-sdk-core (~> 3, >= 3.189.0) + aws-sdk-kms (~> 1) +- aws-sigv4 (~> 1.6) +- aws-sigv4 (1.6.0) ++ aws-sigv4 (~> 1.8) ++ aws-sigv4 (1.8.0) + aws-eventstream (~> 1, >= 1.0.2) + axe-core-api (4.6.0) + dumb_delegator +@@ -322,11 +352,11 @@ GEM + bindata (2.4.11) + binding_of_caller (1.0.0) + debug_inspector (>= 0.0.1) +- bootsnap (1.16.0) ++ bootsnap (1.17.0) + msgpack (~> 1.2) + browser (5.3.1) + builder (3.2.4) +- bullet (7.1.1) ++ bullet (7.1.2) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) + bundler-audit (0.9.1) +@@ -354,14 +384,15 @@ GEM + character_set (1.4.1) + sorted_set (~> 1.0) + charlock_holmes (0.7.7) +- chef-config (16.10.17) ++ chef-config (18.3.0) + addressable +- chef-utils (= 16.10.17) ++ chef-utils (= 18.3.0) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) +- chef-utils (16.10.17) ++ chef-utils (18.3.0) ++ concurrent-ruby + chunky_png (1.4.0) + circuitbox (2.0.0) + citrus (3.0.2) +@@ -411,9 +442,13 @@ GEM + danger + gitlab (~> 4.2, >= 4.2.0) + dartsass (1.49.8) +- database_cleaner (1.7.0) ++ database_cleaner-active_record (2.1.0) ++ activerecord (>= 5.a) ++ database_cleaner-core (~> 2.0.0) ++ database_cleaner-core (2.0.1) + date (3.3.3) + dead_end (3.1.1) ++ deb_version (1.0.2) + debug_inspector (1.1.0) + deckar01-task_list (2.3.3) + html-pipeline +@@ -435,9 +470,9 @@ GEM + thor (>= 0.19, < 2) + descendants_tracker (0.0.4) + thread_safe (~> 0.3, >= 0.3.1) +- devfile (0.0.23.pre.alpha1) ++ devfile (0.0.24.pre.alpha1) + device_detector (1.0.0) +- devise (4.8.1) ++ devise (4.9.3) + bcrypt (~> 3.0) + orm_adapter (~> 0.1) + railties (>= 4.1.0) +@@ -450,9 +485,8 @@ GEM + railties (~> 7.0) + rotp (~> 6.0) + diff-lcs (1.5.0) +- diff_match_patch (0.1.0) + diffy (3.4.2) +- digest-crc (0.6.4) ++ digest-crc (0.6.5) + rake (>= 12.0.0, < 14.0.0) + discordrb-webhooks (3.4.2) + rest-client (>= 2.0.0) +@@ -609,6 +643,7 @@ GEM + fog-core + nokogiri (>= 1.5.11, < 2.0.0) + formatador (0.2.5) ++ forwardable (1.3.3) + fugit (1.8.1) + et-orbi (~> 1, >= 1.2.7) + raabro (~> 1.4) +@@ -627,31 +662,29 @@ GEM + gemoji (3.0.1) + get_process_mem (0.2.7) + ffi (~> 1.0) +- gettext (3.3.6) ++ gettext (3.4.9) ++ erubi + locale (>= 2.0.5) ++ prime ++ racc + text (>= 1.3.0) + gettext_i18n_rails (1.11.0) + fast_gettext (>= 0.9.0) +- gettext_i18n_rails_js (1.3.0) +- gettext (>= 3.0.2) +- gettext_i18n_rails (>= 0.7.1) +- po_to_json (>= 1.0.0) +- rails (>= 3.2.0) + git (1.18.0) + addressable (~> 2.8) + rchardet (~> 1.8) +- gitaly (16.5.0.pre.rc1) ++ gitaly (16.7.0.pre.rc1) + grpc (~> 1.0) + gitlab (4.19.0) + httparty (~> 0.20) + terminal-table (>= 1.5.1) + gitlab-chronic (0.10.5) + numerizer (~> 0.2) +- gitlab-dangerfiles (4.3.2) ++ gitlab-dangerfiles (4.6.0) + danger (>= 9.3.0) + danger-gitlab (>= 8.0.0) + rake (~> 13.0) +- gitlab-experiment (0.8.0) ++ gitlab-experiment (0.9.1) + activesupport (>= 3.0) + request_store (>= 1.0) + gitlab-fog-azure-rm (1.8.0) +@@ -669,14 +702,20 @@ GEM + pg_query (~> 4.2.3) + redis (> 3.0.0, < 6.0.0) + gitlab-license (2.3.0) +- gitlab-mail_room (0.0.23) ++ gitlab-mail_room (0.0.24) + jwt (>= 2.0) + net-imap (>= 0.2.1) + oauth2 (>= 1.4.4, < 3) ++ redis (>= 4, < 6) ++ redis-namespace (>= 1.8.2) + gitlab-markup (1.9.0) + gitlab-net-dns (0.9.2) +- gitlab-styles (10.1.0) +- rubocop (~> 1.50.2) ++ gitlab-sdk (0.2.3) ++ activesupport (>= 5.2.0) ++ rake (~> 13.0) ++ snowplow-tracker (~> 0.8.0) ++ gitlab-styles (11.0.0) ++ rubocop (~> 1.57.1) + rubocop-graphql (~> 0.18) + rubocop-performance (~> 1.15) + rubocop-rails (~> 2.17) +@@ -688,8 +727,9 @@ GEM + omniauth (>= 1.3, < 3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) +- gitlab_quality-test_tooling (1.3.0) ++ gitlab_quality-test_tooling (1.9.0) + activesupport (>= 6.1, < 7.2) ++ amatch (~> 0.4.1) + gitlab (~> 4.19) + http (~> 5.0) + nokogiri (~> 1.10) +@@ -716,7 +756,7 @@ GEM + google-apis-core (>= 0.9.1, < 2.a) + google-apis-container_v1beta1 (0.43.0) + google-apis-core (>= 0.9.1, < 2.a) +- google-apis-core (0.10.0) ++ google-apis-core (0.11.2) + addressable (~> 2.5, >= 2.5.1) + googleauth (>= 0.16.2, < 2.a) + httpclient (>= 2.8.1, < 3.a) +@@ -739,8 +779,8 @@ GEM + google-apis-core (>= 0.9.1, < 2.a) + google-apis-sqladmin_v1beta4 (0.41.0) + google-apis-core (>= 0.9.1, < 2.a) +- google-apis-storage_v1 (0.19.0) +- google-apis-core (>= 0.9.0, < 2.a) ++ google-apis-storage_v1 (0.29.0) ++ google-apis-core (>= 0.11.0, < 2.a) + google-cloud-core (1.6.0) + google-cloud-env (~> 1.0) + google-cloud-errors (~> 1.0) +@@ -750,15 +790,15 @@ GEM + google-cloud-profiler-v2 (0.4.0) + gapic-common (>= 0.18.0, < 2.a) + google-cloud-errors (~> 1.0) +- google-cloud-storage (1.44.0) ++ google-cloud-storage (1.45.0) + addressable (~> 2.8) + digest-crc (~> 0.4) + google-apis-iamcredentials_v1 (~> 0.1) +- google-apis-storage_v1 (~> 0.19.0) ++ google-apis-storage_v1 (~> 0.29.0) + google-cloud-core (~> 1.6) + googleauth (>= 0.16.2, < 2.a) + mini_mime (~> 1.0) +- google-protobuf (3.24.4) ++ google-protobuf (3.25.1) + googleapis-common-protos (1.4.0) + google-protobuf (~> 3.14) + googleapis-common-protos-types (~> 1.2) +@@ -839,11 +879,11 @@ GEM + haml (5.2.2) + temple (>= 0.8.0) + tilt +- haml_lint (0.40.1) +- haml (>= 4.0, < 5.3) ++ haml_lint (0.52.0) ++ haml (>= 4.0) + parallel (~> 1.10) + rainbow +- rubocop (>= 0.50.0) ++ rubocop (>= 1.0) + sysexits (~> 1.1) + hamlit (2.15.0) + temple (>= 0.8.2) +@@ -934,7 +974,7 @@ GEM + activerecord + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) +- kas-grpc (0.2.0) ++ kas-grpc (0.3.0) + grpc (~> 1.0) + knapsack (1.21.1) + rake +@@ -947,9 +987,10 @@ GEM + jsonpath (~> 1.0) + recursive-open-struct (~> 1.1, >= 1.1.1) + rest-client (~> 2.0) ++ language_server-protocol (3.17.0.3) + launchy (2.5.0) + addressable (~> 2.7) +- lefthook (1.5.2) ++ lefthook (1.5.5) + letter_opener (1.7.0) + launchy (~> 2.2) + letter_opener_web (2.0.0) +@@ -957,7 +998,7 @@ GEM + letter_opener (~> 1.7) + railties (>= 5.2) + rexml +- libyajl2 (1.2.0) ++ libyajl2 (2.1.0) + license_finder (7.0.1) + bundler + rubyzip (>= 1, < 3) +@@ -984,10 +1025,10 @@ GEM + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) +- loofah (2.21.4) ++ loofah (2.22.0) + crass (~> 1.0.2) + nokogiri (>= 1.12.0) +- lookbook (2.0.1) ++ lookbook (2.2.0) + activemodel + css_parser + htmlbeautifier (~> 1.3) +@@ -1020,14 +1061,16 @@ GEM + mini_histogram (0.3.1) + mini_magick (4.10.1) + mini_mime (1.1.2) +- mini_portile2 (2.8.4) ++ mini_portile2 (2.8.5) + minitest (5.11.3) + mixlib-cli (2.1.8) +- mixlib-config (3.0.9) ++ mixlib-config (3.0.27) + tomlrb + mixlib-log (3.0.9) +- mixlib-shellout (3.2.5) ++ mixlib-shellout (3.2.7) + chef-utils ++ mize (0.4.1) ++ protocol (~> 2.0) + msgpack (1.5.4) + multi_json (1.14.1) + multi_xml (0.6.0) +@@ -1055,15 +1098,15 @@ GEM + net-protocol + net-protocol (0.1.3) + timeout +- net-scp (3.0.0) +- net-ssh (>= 2.6.5, < 7.0.0) ++ net-scp (4.0.0) ++ net-ssh (>= 2.6.5, < 8.0.0) + net-smtp (0.3.3) + net-protocol +- net-ssh (6.0.0) ++ net-ssh (7.2.0) + netrc (0.11.0) + nio4r (2.5.8) + no_proxy_fix (0.1.2) +- nokogiri (1.15.4) ++ nokogiri (1.15.5) + mini_portile2 (~> 2.8.2) + racc (~> 1.4) + notiffany (0.1.3) +@@ -1081,9 +1124,9 @@ GEM + octokit (6.1.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) +- ohai (17.9.0) +- chef-config (>= 14.12, < 18) +- chef-utils (>= 16.0, < 18) ++ ohai (18.1.3) ++ chef-config (>= 14.12, < 19) ++ chef-utils (>= 16.0, < 19) + ffi (~> 1.9) + ffi-yajl (~> 2.2) + ipaddress +@@ -1198,10 +1241,8 @@ GEM + pg (1.5.4) + pg_query (4.2.3) + google-protobuf (>= 3.22.3) +- plist (3.6.0) ++ plist (3.7.0) + png_quantizator (0.2.1) +- po_to_json (1.0.1) +- json (>= 1.6.0) + premailer (1.16.0) + addressable + css_parser (>= 1.6.0) +@@ -1209,12 +1250,18 @@ GEM + premailer-rails (1.10.3) + actionmailer (>= 3) + premailer (~> 1.7, >= 1.7.9) ++ prime (0.1.2) ++ forwardable ++ singleton ++ prism (0.18.0) + proc_to_ast (0.1.0) + coderay + parser + unparser +- prometheus-client-mmap (0.28.1) ++ prometheus-client-mmap (1.0.2) + rb_sys (~> 0.9) ++ protocol (2.0.0) ++ ruby_parser (~> 3.0) + pry (0.14.2) + coderay (~> 1.1) + method_source (~> 1.0) +@@ -1291,15 +1338,15 @@ GEM + rb-fsevent (0.11.2) + rb-inotify (0.10.1) + ffi (~> 1.0) +- rb_sys (0.9.78) ++ rb_sys (0.9.83) + rbtrace (0.4.14) + ffi (>= 1.0.6) + msgpack (>= 0.4.3) + optimist (>= 3.0.0) + rbtree (0.4.6) + rchardet (1.8.0) +- re2 (2.1.3) +- mini_portile2 (~> 2.8.4) ++ re2 (2.5.0) ++ mini_portile2 (~> 2.8.5) + recaptcha (5.12.3) + json + recursive-open-struct (1.1.3) +@@ -1309,7 +1356,7 @@ GEM + actionpack (>= 5, < 8) + redis-rack (>= 2.1.0, < 3) + redis-store (>= 1.1.0, < 2) +- redis-namespace (1.9.0) ++ redis-namespace (1.10.0) + redis (>= 4) + redis-rack (2.1.4) + rack (>= 2.0.8, < 3) +@@ -1338,7 +1385,7 @@ GEM + rexml (3.2.6) + rinku (2.0.0) + rotp (6.3.0) +- rouge (4.1.3) ++ rouge (4.2.0) + rqrcode (2.2.0) + chunky_png (~> 1.0) + rqrcode_core (~> 1.0) +@@ -1371,7 +1418,7 @@ GEM + rspec-parameterized-table_syntax (1.0.0) + binding_of_caller + rspec-parameterized-core (< 2) +- rspec-rails (6.0.3) ++ rspec-rails (6.1.0) + actionpack (>= 6.1) + activesupport (>= 6.1) + railties (>= 6.1) +@@ -1389,38 +1436,51 @@ GEM + pg + rails + sqlite3 +- rubocop (1.50.2) ++ rubocop (1.57.2) + json (~> 2.3) ++ language_server-protocol (>= 3.17.0) + parallel (~> 1.10) +- parser (>= 3.2.0.0) ++ parser (>= 3.2.2.4) + rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.8, < 3.0) + rexml (>= 3.2.5, < 4.0) +- rubocop-ast (>= 1.28.0, < 2.0) ++ rubocop-ast (>= 1.28.1, < 2.0) + ruby-progressbar (~> 1.7) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.29.0) + parser (>= 3.2.1.0) +- rubocop-capybara (2.18.0) ++ rubocop-capybara (2.19.0) + rubocop (~> 1.41) +- rubocop-factory_bot (2.23.1) ++ rubocop-factory_bot (2.24.0) + rubocop (~> 1.33) + rubocop-graphql (0.19.0) + rubocop (>= 0.87, < 2) +- rubocop-performance (1.18.0) ++ rubocop-performance (1.19.1) + rubocop (>= 1.7.0, < 2.0) + rubocop-ast (>= 0.4.0) +- rubocop-rails (2.20.2) ++ rubocop-rails (2.22.1) + activesupport (>= 4.2.0) + rack (>= 1.1) + rubocop (>= 1.33.0, < 2.0) +- rubocop-rspec (2.22.0) +- rubocop (~> 1.33) ++ rubocop-rspec (2.25.0) ++ rubocop (~> 1.40) + rubocop-capybara (~> 2.17) + rubocop-factory_bot (~> 2.22) + ruby-fogbugz (0.3.0) + crack (~> 0.4) + multipart-post (~> 2.0) ++ ruby-lsp (0.13.1) ++ language_server-protocol (~> 3.17.0) ++ prism (>= 0.18.0, < 0.19) ++ sorbet-runtime (>= 0.5.5685) ++ ruby-lsp-rails (0.2.8) ++ actionpack (>= 6.0) ++ activerecord (>= 6.0) ++ railties (>= 6.0) ++ ruby-lsp (>= 0.13.0, < 0.14.0) ++ sorbet-runtime (>= 0.5.9897) ++ ruby-lsp-rspec (0.1.8) ++ ruby-lsp (~> 0.13.0) + ruby-magic (0.6.0) + mini_portile2 (~> 2.8) + ruby-openai (3.7.0) +@@ -1431,6 +1491,8 @@ GEM + rexml + ruby-statistics (3.0.0) + ruby2_keywords (0.0.5) ++ ruby_parser (3.20.3) ++ sexp_processor (~> 4.16) + rubyntlm (0.6.3) + rubypants (0.2.0) + rubyzip (2.3.2) +@@ -1456,35 +1518,38 @@ GEM + seed-fu (2.3.7) + activerecord (>= 3.1) + activesupport (>= 3.1) +- selenium-webdriver (4.14.0) ++ selenium-webdriver (4.16.0) + rexml (~> 3.2, >= 3.2.5) + rubyzip (>= 1.2.2, < 3.0) + websocket (~> 1.0) +- semver_dialects (1.2.1) ++ semver_dialects (1.5.0) ++ deb_version (~> 1.0.1) + pastel (~> 0.8.0) +- thor (~> 1.2.0) ++ thor (~> 1.3) + tty-command (~> 0.10.1) +- sentry-rails (5.8.0) ++ sentry-rails (5.10.0) + railties (>= 5.0) +- sentry-ruby (~> 5.8.0) ++ sentry-ruby (~> 5.10.0) + sentry-raven (3.1.2) + faraday (>= 1.0) +- sentry-ruby (5.8.0) ++ sentry-ruby (5.10.0) + concurrent-ruby (~> 1.0, >= 1.0.2) +- sentry-sidekiq (5.8.0) +- sentry-ruby (~> 5.8.0) ++ sentry-sidekiq (5.10.0) ++ sentry-ruby (~> 5.10.0) + sidekiq (>= 3.0) + set (1.0.2) ++ sexp_processor (4.17.0) + shellany (0.0.1) + shoulda-matchers (5.1.0) + activesupport (>= 5.2.0) +- sidekiq (6.5.7) +- connection_pool (>= 2.2.5) ++ sidekiq (6.5.12) ++ connection_pool (>= 2.2.5, < 3) + rack (~> 2.0) + redis (>= 4.5.0, < 5) +- sidekiq-cron (1.8.0) +- fugit (~> 1) +- sidekiq (>= 4.2.1) ++ sidekiq-cron (1.12.0) ++ fugit (~> 1.8) ++ globalid (>= 1.0.1) ++ sidekiq (>= 6) + sigdump (0.2.4) + signet (0.17.0) + addressable (~> 2.8) +@@ -1502,6 +1567,7 @@ GEM + simplecov-html (0.12.3) + simplecov-lcov (0.8.0) + simplecov_json_formatter (0.1.4) ++ singleton (0.1.1) + sixarm_ruby_unaccent (1.2.0) + slack-messenger (2.3.4) + snaky_hash (2.0.0) +@@ -1523,6 +1589,7 @@ GEM + thor (~> 1.0) + tilt (~> 2.0) + yard (~> 0.9, >= 0.9.24) ++ sorbet-runtime (0.5.11144) + sorted_set (1.0.3) + rbtree + set (~> 1.0) +@@ -1565,7 +1632,7 @@ GEM + ffi (~> 1.1) + sysexits (1.2.0) + table_print (1.5.7) +- tanuki_emoji (0.7.0) ++ tanuki_emoji (0.9.0) + telesign (2.2.4) + net-http-persistent (>= 3.0.0, < 5.0) + telesignenterprise (2.2.2) +@@ -1577,11 +1644,11 @@ GEM + unicode-display_width (>= 1.1.1, < 3) + terser (1.0.2) + execjs (>= 0.3.0, < 3) +- test-prof (1.2.3) +- test_file_finder (0.1.4) +- faraday (~> 1.0) ++ test-prof (1.3.1) ++ test_file_finder (0.2.1) ++ faraday (>= 1.0, < 3.0, != 2.0.0) + text (1.3.1) +- thor (1.2.2) ++ thor (1.3.0) + thread_safe (0.3.6) + thrift (0.16.0) + tilt (2.0.11) +@@ -1597,13 +1664,13 @@ GEM + openssl (> 2.0) + openssl-signature_algorithm (~> 1.0) + trailblazer-option (0.1.2) +- train-core (3.4.9) ++ train-core (3.10.8) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) +- net-scp (>= 1.2, < 4.0) +- net-ssh (>= 2.9, < 7.0) ++ net-scp (>= 1.2, < 5.0) ++ net-ssh (>= 2.9, < 8.0) + truncato (0.7.12) + htmlentities (~> 4.3.1) + nokogiri (>= 1.7.0, <= 2.0) +@@ -1662,7 +1729,7 @@ GEM + activesupport (>= 3.0) + version_gem (1.1.0) + version_sorter (2.3.0) +- view_component (3.6.0) ++ view_component (3.8.0) + activesupport (>= 5.2.0, < 8.0) + concurrent-ruby (~> 1.0) + method_source (~> 1.0) +@@ -1670,10 +1737,10 @@ GEM + axiom-types (~> 0.1) + coercible (~> 1.0) + descendants_tracker (~> 0.0, >= 0.0.3) +- vite_rails (3.0.15) ++ vite_rails (3.0.17) + railties (>= 5.1, < 8) + vite_ruby (~> 3.0, >= 3.2.2) +- vite_ruby (3.3.4) ++ vite_ruby (3.5.0) + dry-cli (>= 0.7, < 2) + rack-proxy (~> 0.6, >= 0.6.1) + zeitwerk (~> 2.2) +@@ -1708,7 +1775,7 @@ GEM + rinku + wisper (2.0.1) + with_env (1.1.0) +- wmi-lite (1.0.5) ++ wmi-lite (1.0.7) + xml-simple (1.1.9) + rexml + xpath (3.2.0) +@@ -1722,14 +1789,14 @@ PLATFORMS + + DEPENDENCIES + CFPropertyList (~> 3.0.0) +- RedCloth (~> 4.3.2) ++ RedCloth (~> 4.3.3) + acme-client (~> 2.0) + activerecord-explain-analyze (~> 0.1) + activerecord-gitlab! +- acts-as-taggable-on (~> 9.0) ++ acts-as-taggable-on (~> 10.0) + addressable (~> 2.8) + akismet (~> 3.0) +- apollo_upload_server (~> 2.1.0) ++ apollo_upload_server (~> 2.1.5) + app_store_connect + arr-pm (~> 0.0.12) + asciidoctor (~> 2.0.18) +@@ -1741,8 +1808,8 @@ DEPENDENCIES + autoprefixer-rails (= 10.2.5.1) + awesome_print + aws-sdk-cloudformation (~> 1) +- aws-sdk-core (~> 3.185.1) +- aws-sdk-s3 (~> 1.136.0) ++ aws-sdk-core (~> 3.190.0) ++ aws-sdk-s3 (~> 1.141.0) + axe-core-rspec + babosa (~> 2.0) + base32 (~> 0.3.0) +@@ -1751,9 +1818,9 @@ DEPENDENCIES + benchmark-ips (~> 2.11.0) + benchmark-memory (~> 0.1) + better_errors (~> 2.10.1) +- bootsnap (~> 1.16.0) ++ bootsnap (~> 1.17.0) + browser (~> 5.3.1) +- bullet (~> 7.1.1) ++ bullet (~> 7.1.2) + bundler-audit (~> 0.9.1) + bundler-checksum (~> 0.1.0)! + capybara (~> 3.39, >= 3.39.2) +@@ -1771,17 +1838,17 @@ DEPENDENCIES + crystalball (~> 0.7.0) + csv_builder! + cvss-suite (~> 3.0.1) +- database_cleaner (~> 1.7.0) ++ database_cleaner-active_record (~> 2.1.0) + deckar01-task_list (= 2.3.3) + declarative_policy (~> 1.1.0) + deprecation_toolkit (~> 1.5.1) + derailed_benchmarks +- devfile (~> 0.0.23.pre.alpha1) ++ devfile (~> 0.0.24.pre.alpha1) + device_detector +- devise (~> 4.8.1) ++ devise (~> 4.9.3) + devise-pbkdf2-encryptable (~> 0.0.0)! + devise-two-factor (~> 4.1.1) +- diff_match_patch (~> 0.1.0) ++ diff_match_patch (~> 0.1.0)! + diffy (~> 3.4) + discordrb-webhooks (~> 3.4) + doorkeeper (~> 5.6, >= 5.6.6) +@@ -1811,27 +1878,31 @@ DEPENDENCIES + fuubar (~> 2.2.0) + gettext (~> 3.3) + gettext_i18n_rails (~> 1.11.0) +- gettext_i18n_rails_js (~> 1.3) +- gitaly (~> 16.5.0.pre.rc1) ++ gitaly (~> 16.7.0.pre.rc1) ++ gitlab-backup-cli! + gitlab-chronic (~> 0.10.5) +- gitlab-dangerfiles (~> 4.3.2) +- gitlab-experiment (~> 0.8.0) ++ gitlab-dangerfiles (~> 4.6.0) ++ gitlab-experiment (~> 0.9.1) + gitlab-fog-azure-rm (~> 1.8.0) ++ gitlab-housekeeper! + gitlab-http! + gitlab-labkit (~> 0.34.0) + gitlab-license (~> 2.3) +- gitlab-mail_room (~> 0.0.23) ++ gitlab-mail_room (~> 0.0.24) + gitlab-markup (~> 1.9.0) + gitlab-net-dns (~> 0.9.2) + gitlab-rspec! ++ gitlab-rspec_flaky! + gitlab-safe_request_store! + gitlab-schema-validation! ++ gitlab-sdk ++ gitlab-secret_detection! + gitlab-sidekiq-fetcher! +- gitlab-styles (~> 10.1.0) ++ gitlab-styles (~> 11.0.0) + gitlab-utils! + gitlab_chronic_duration (~> 0.12) + gitlab_omniauth-ldap (~> 2.2.0) +- gitlab_quality-test_tooling (~> 1.3.0) ++ gitlab_quality-test_tooling (~> 1.9.0) + gon (~> 6.4.0) + google-apis-androidpublisher_v3 (~> 0.34.0) + google-apis-cloudbilling_v1 (~> 0.21.0) +@@ -1839,12 +1910,13 @@ DEPENDENCIES + google-apis-compute_v1 (~> 0.57.0) + google-apis-container_v1 (~> 0.43.0) + google-apis-container_v1beta1 (~> 0.43.0) +- google-apis-core (~> 0.10.0) ++ google-apis-core (~> 0.11.0, >= 0.11.1) + google-apis-iam_v1 (~> 0.36.0) + google-apis-serviceusage_v1 (~> 0.28.0) + google-apis-sqladmin_v1beta4 (~> 0.41.0) +- google-cloud-storage (~> 1.44.0) +- google-protobuf (~> 3.24, >= 3.24.4) ++ google-apis-storage_v1 (~> 0.29) ++ google-cloud-storage (~> 1.45.0) ++ google-protobuf (~> 3.25, >= 3.25.1) + gpgme (~> 2.0.23) + grape (~> 1.7.1) + grape-entity (~> 0.10.0) +@@ -1860,7 +1932,7 @@ DEPENDENCIES + grpc (~> 1.58.0) + gssapi (~> 1.3.1) + guard-rspec +- haml_lint (~> 0.40.0) ++ haml_lint (~> 0.52) + hamlit (~> 2.15.0) + hashie (~> 5.0.0) + health_check (~> 3.0) +@@ -1880,19 +1952,19 @@ DEPENDENCIES + jsonb_accessor (~> 1.3.10) + jwt (~> 2.5) + kaminari (~> 1.2.2) +- kas-grpc (~> 0.2.0) ++ kas-grpc (~> 0.3.0) + knapsack (~> 1.21.1) + kramdown (~> 2.3.1) + kubeclient (~> 4.11.0) +- lefthook (~> 1.5.2) ++ lefthook (~> 1.5.5) + letter_opener_web (~> 2.0.0) + license_finder (~> 7.0) + licensee (~> 9.16) + listen (~> 3.7) + lockbox (~> 1.3.0) + lograge (~> 0.5) +- loofah (~> 2.21.4) +- lookbook (~> 2.0, >= 2.0.1) ++ loofah (~> 2.22.0) ++ lookbook (~> 2.2) + lru_redux + mail (= 2.8.1) + mail-smtp_pool (~> 0.1.0)! +@@ -1907,10 +1979,10 @@ DEPENDENCIES + net-ldap (~> 0.17.1) + net-ntp + net-protocol (~> 0.1.3) +- nokogiri (~> 1.15, >= 1.15.4) ++ nokogiri (~> 1.15, >= 1.15.5) + oauth2 (~> 2.0) + octokit (~> 6.0) +- ohai (~> 17.9) ++ ohai (~> 18.1) + oj (~> 3.13.21) + oj-introspect (~> 0.7) + omniauth (~> 2.1.0) +@@ -1934,6 +2006,7 @@ DEPENDENCIES + openid_connect (= 1.3.0) + openssl (~> 3.0) + org-ruby (~> 0.9.12) ++ os (~> 1.1) + pact (~> 1.63) + parallel (~> 1.19) + parser (~> 3.2, >= 3.2.2.4) +@@ -1943,7 +2016,7 @@ DEPENDENCIES + pg_query (~> 4.2.3) + png_quantizator (~> 0.2.1) + premailer-rails (~> 1.10.3) +- prometheus-client-mmap (~> 0.28, >= 0.28.1) ++ prometheus-client-mmap (~> 1.0, >= 1.0.2) + pry-byebug + pry-rails (~> 0.3.9) + pry-shell (~> 0.6.4) +@@ -1959,26 +2032,28 @@ DEPENDENCIES + rails-i18n (~> 7.0) + rainbow (~> 3.0) + rbtrace (~> 0.4) +- re2 (= 2.1.3) ++ re2 (= 2.5.0) + recaptcha (~> 5.12) + redis (~> 4.8.0) + redis-actionpack (~> 5.3.0) +- redis-namespace (~> 1.9.0) ++ redis-namespace (~> 1.10.0) + request_store (~> 1.5.1) + responders (~> 3.0) + retriable (~> 3.1.2) + rexml (~> 3.2.6) +- rouge (~> 4.1.3) ++ rouge (~> 4.2.0) + rqrcode (~> 2.0) + rspec-benchmark (~> 0.6.0) + rspec-parameterized (~> 1.0) +- rspec-rails (~> 6.0.3) ++ rspec-rails (~> 6.1.0) + rspec-retry (~> 0.6.2) +- rspec_flaky! + rspec_junit_formatter + rspec_profiling (~> 0.0.6) + rubocop + ruby-fogbugz (~> 0.3.0) ++ ruby-lsp (~> 0.13.1) ++ ruby-lsp-rails (~> 0.2.8) ++ ruby-lsp-rspec (~> 0.1.8) + ruby-magic (~> 0.6) + ruby-openai (~> 3.7) + ruby-progressbar (~> 1.10) +@@ -1989,15 +2064,15 @@ DEPENDENCIES + sassc-rails (~> 2.1.0) + sd_notify (~> 0.1.0) + seed-fu (~> 2.3.7) +- selenium-webdriver (~> 4.14) +- semver_dialects (~> 1.2.1) +- sentry-rails (~> 5.8.0) ++ selenium-webdriver (~> 4.16) ++ semver_dialects (~> 1.5) ++ sentry-rails (~> 5.10.0) + sentry-raven (~> 3.1) +- sentry-ruby (~> 5.8.0) +- sentry-sidekiq (~> 5.8.0) ++ sentry-ruby (~> 5.10.0) ++ sentry-sidekiq (~> 5.10.0) + shoulda-matchers (~> 5.1.0) +- sidekiq (~> 6.5.7) +- sidekiq-cron (~> 1.8.0) ++ sidekiq (~> 6.5.10) ++ sidekiq-cron (~> 1.12.0) + sigdump (~> 0.2.4) + simple_po_parser (~> 1.1.6) + simplecov (~> 0.21) +@@ -2015,11 +2090,11 @@ DEPENDENCIES + stackprof (~> 0.2.25) + state_machines-activerecord (~> 0.8.0) + sys-filesystem (~> 1.4.3) +- tanuki_emoji (~> 0.7) ++ tanuki_emoji (~> 0.9) + telesignenterprise (~> 2.2) + terser (= 1.0.2) +- test-prof (~> 1.2.3) +- test_file_finder (~> 0.1.3) ++ test-prof (~> 1.3.1) ++ test_file_finder (~> 0.2.1) + thrift (>= 0.16.0) + timfel-krb5-auth (~> 0.8) + toml-rb (~> 2.2.0) +@@ -2030,8 +2105,9 @@ DEPENDENCIES + valid_email (~> 0.1) + validates_hostname (~> 1.0.13) + version_sorter (~> 2.3) +- view_component (~> 3.6.0) +- vite_rails ++ view_component (~> 3.8.0) ++ vite_rails (~> 3.0.17) ++ vite_ruby (~> 3.5.0) + vmstat (~> 2.3.0) + warning (~> 1.3.0) + webauthn (~> 3.0) +@@ -2041,4 +2117,4 @@ DEPENDENCIES + yajl-ruby (~> 1.4.3) + + BUNDLED WITH +- 2.4.20 ++ 2.4.22 +diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix +index e239df5e9e9450..b419e76f259b4b 100644 +--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix ++++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix +@@ -159,10 +159,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1nhyvfdiv6mz8z3icwhk01482hq0s6dvf1qysvh27cyi3c4y1n53"; ++ sha256 = "10yvdqrmykjpfjchnbh7q85vm5fgz20g9ip5iwphl0922rpyjq6k"; + type = "gem"; + }; +- version = "9.0.1"; ++ version = "10.0.0"; + }; + addressable = { + dependencies = ["public_suffix"]; +@@ -206,6 +206,17 @@ src: + }; + version = "0.8.0"; + }; ++ amatch = { ++ dependencies = ["mize" "tins"]; ++ groups = ["default" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1xs5j64cbbjc94lx72fgjq6f3r99p2fmg51fh1r7qqifd8i1bzyk"; ++ type = "gem"; ++ }; ++ version = "0.4.1"; ++ }; + android_key_attestation = { + groups = ["default"]; + platforms = []; +@@ -222,10 +233,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0klhppx4vjfdvgz12wb63bcxy5ymk0mp8wkh01fpgjn2l3fwkwz5"; ++ sha256 = "198k6ikkz6wdnl9i4m569s384sx2r2pyn4l74yvyhz6zdflvwrhg"; + type = "gem"; + }; +- version = "2.1.0"; ++ version = "2.1.5"; + }; + app_store_connect = { + dependencies = ["activesupport" "jwt"]; +@@ -368,10 +379,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz"; ++ sha256 = "0gvdg4yx4p9av2glmp7vsxhs0n8fj1ga9kq2xdb8f95j7b04qhzi"; + type = "gem"; + }; +- version = "1.2.0"; ++ version = "1.3.0"; + }; + aws-partitions = { + groups = ["default"]; +@@ -400,10 +411,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0wvrz7d2rw17ihj2fmvaq91cg35pvk1asl4skncsk4w3mx7dlajp"; ++ sha256 = "19nglxz49nlzgsvnivb3bdm17vxjn1ng2br8659xv48nzjrmyid3"; + type = "gem"; + }; +- version = "3.185.1"; ++ version = "3.190.0"; + }; + aws-sdk-kms = { + dependencies = ["aws-sdk-core" "aws-sigv4"]; +@@ -422,10 +433,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0qwdkbwp3f5illkkmivzdr9gcrcg69yv73xlfp6fc7fmhlm30irm"; ++ sha256 = "0bnhpmi0iiaj88rqc5lhhnp2gyrk4fs8xz51lj36wwzng94qinya"; + type = "gem"; + }; +- version = "1.136.0"; ++ version = "1.141.0"; + }; + aws-sigv4 = { + dependencies = ["aws-eventstream"]; +@@ -433,10 +444,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0z889c4c1w7wsjm3szg64ay5j51kjl4pdf94nlr1yks2rlanm7na"; ++ sha256 = "1g3w27wzjy4si6kp49w10as6ml6g6zl3xrfqs5ikpfciidv9kpc4"; + type = "gem"; + }; +- version = "1.6.0"; ++ version = "1.8.0"; + }; + axe-core-api = { + dependencies = ["dumb_delegator" "virtus"]; +@@ -642,10 +653,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1vcg52gwl64xhhal6kwk1pc01y1klzdlnv1awyk89kb91z010x7q"; ++ sha256 = "0iqkzby0fdgi786m873nm0ckmc847wy9a4ydinb29m7hd3fs83kb"; + type = "gem"; + }; +- version = "1.16.0"; ++ version = "1.17.0"; + }; + browser = { + groups = ["default"]; +@@ -673,10 +684,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "172v1vjqqlfk8dw3xh7j4m2wfmp74zwsh2v2jqppgzibmpcqjxxd"; ++ sha256 = "1fxkrdiarjgcyw2ihh79kvjhpf6a4azj15wvx45clx6bfk0jb5s2"; + type = "gem"; + }; +- version = "7.1.1"; ++ version = "7.1.2"; + }; + bundler-audit = { + dependencies = ["thor"]; +@@ -794,20 +805,21 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0z3lashvhqy9v5b3xn8vzzf07gnjw4mgdiiryxsg6kdasvj62j8z"; ++ sha256 = "1pvjf3qbb3apg9vdy4zykamm7801qz4m6256wjqn73fs87zs50y1"; + type = "gem"; + }; +- version = "16.10.17"; ++ version = "18.3.0"; + }; + chef-utils = { ++ dependencies = ["concurrent-ruby"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1cypir7fza7jfqaj1j1jh37d3i6bvrmm6jamjlngk3xbdbd56hm7"; ++ sha256 = "0087jwhqslfm3ygj507dmmdp3k0589j5jl54mkwgbabbwan7lzw2"; + type = "gem"; + }; +- version = "16.10.17"; ++ version = "18.3.0"; + }; + chunky_png = { + groups = ["default"]; +@@ -1082,15 +1094,26 @@ src: + }; + version = "1.49.8"; + }; +- database_cleaner = { ++ database_cleaner-active_record = { ++ dependencies = ["activerecord" "database_cleaner-core"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "05i0nf2aj70m61y3fspypdkc6d1qgibf5kav05a71b5gjz0k7y5x"; ++ sha256 = "12hdsqnws9gyc9sxiyc8pjiwr0xa7136m1qbhmd1pk3vsrrvk13k"; + type = "gem"; + }; +- version = "1.7.0"; ++ version = "2.1.0"; ++ }; ++ database_cleaner-core = { ++ groups = ["default" "development" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "0v44bn386ipjjh4m2kl53dal8g4d41xajn2jggnmjbhn6965fil6"; ++ type = "gem"; ++ }; ++ version = "2.0.1"; + }; + date = { + groups = ["default" "development" "test"]; +@@ -1112,6 +1135,16 @@ src: + }; + version = "3.1.1"; + }; ++ deb_version = { ++ groups = ["default"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "04z75v3wdghqbahgipvz8y75krkqq17jbbna349ddl9ggwfr27y2"; ++ type = "gem"; ++ }; ++ version = "1.0.2"; ++ }; + debug_inspector = { + groups = ["default" "test"]; + platforms = []; +@@ -1191,10 +1224,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "02p4cxz9w9nsghgmwmw32f9g80df8simagzpafhkvc5grdwwd8pv"; ++ sha256 = "0036nfmz7dz5jwagm4k3hshrkmm3w2473q38bhnr06dmxlkgrfvj"; + type = "gem"; + }; +- version = "0.0.23.pre.alpha1"; ++ version = "0.0.24.pre.alpha1"; + }; + device_detector = { + groups = ["default"]; +@@ -1212,10 +1245,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0gl0b4jqf7ysv3rg99sgxa5y9va2k13p0si3a88pr7m8g6z8pm7x"; ++ sha256 = "121ljaaapil79dcsl5mkh5k613hv58z4z3g2lrnzb5qvqpb3h1j8"; + type = "gem"; + }; +- version = "4.8.1"; ++ version = "4.9.3"; + }; + devise-pbkdf2-encryptable = { + dependencies = ["devise" "devise-two-factor"]; +@@ -1252,9 +1285,8 @@ src: + groups = ["default"]; + platforms = []; + source = { +- remotes = ["https://rubygems.org"]; +- sha256 = "03n4g4w2pwiygmqq5lfhqrpbs9g6kv0jhb3vrffz3vgaryzmfq5k"; +- type = "gem"; ++ path = "${src}/vendor/gems/diff_match_patch"; ++ type = "path"; + }; + version = "0.1.0"; + }; +@@ -1274,10 +1306,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1czaak53w8n13y1fr0q23gp0fhklvxjac5n562qj3xk6sh5ad0x2"; ++ sha256 = "09114ndpnnyamc2q07bmpzw7kp3rbbfv7plmxcbzzi9d6prmd92w"; + type = "gem"; + }; +- version = "0.6.4"; ++ version = "0.6.5"; + }; + discordrb-webhooks = { + dependencies = ["rest-client"]; +@@ -2005,6 +2037,16 @@ src: + }; + version = "0.2.5"; + }; ++ forwardable = { ++ groups = ["default" "development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1b5g1i3xdvmxxpq4qp0z4v78ivqnazz26w110fh4cvzsdayz8zgi"; ++ type = "gem"; ++ }; ++ version = "1.3.3"; ++ }; + fugit = { + dependencies = ["et-orbi" "raabro"]; + groups = ["default"]; +@@ -2070,15 +2112,15 @@ src: + version = "0.2.7"; + }; + gettext = { +- dependencies = ["locale" "text"]; ++ dependencies = ["erubi" "locale" "prime" "racc" "text"]; + groups = ["development"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "04xlj00sm4mbgvyq0qkbxim75i7cpyn6iylpfwnyagl35wdvsszf"; ++ sha256 = "16h0kda5z4s4zqygyk0f52xzs9mlz9r4lnhjwk729hhmdbz68a19"; + type = "gem"; + }; +- version = "3.3.6"; ++ version = "3.4.9"; + }; + gettext_i18n_rails = { + dependencies = ["fast_gettext"]; +@@ -2091,17 +2133,6 @@ src: + }; + version = "1.11.0"; + }; +- gettext_i18n_rails_js = { +- dependencies = ["gettext" "gettext_i18n_rails" "po_to_json" "rails"]; +- groups = ["default"]; +- platforms = []; +- source = { +- remotes = ["https://rubygems.org"]; +- sha256 = "11yn5cf92wsmlj5c1065mg6swf8gq9l6g9ahikvvyf9npvjay42x"; +- type = "gem"; +- }; +- version = "1.3.0"; +- }; + git = { + dependencies = ["addressable" "rchardet"]; + groups = ["danger" "default" "development" "test"]; +@@ -2119,10 +2150,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0lw3lfq0wii1jg6112ry2c3g01dphwl8yp61xyh66ijds1d525zd"; ++ sha256 = "1xqi0f0pf7cj110b981nx95wql3i4knzvc6417ym3yvbvsxjyand"; + type = "gem"; + }; +- version = "16.5.0.pre.rc1"; ++ version = "16.7.0.pre.rc1"; + }; + gitlab = { + dependencies = ["httparty" "terminal-table"]; +@@ -2135,6 +2166,16 @@ src: + }; + version = "4.19.0"; + }; ++ gitlab-backup-cli = { ++ dependencies = ["thor"]; ++ groups = ["default"]; ++ platforms = []; ++ source = { ++ path = "${src}/gems/gitlab-backup-cli"; ++ type = "path"; ++ }; ++ version = "0.0.1"; ++ }; + gitlab-chronic = { + dependencies = ["numerizer"]; + groups = ["default"]; +@@ -2152,10 +2193,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "15hax19xpav0i8mhg3y1zf4528hx18r6zg6dy8lwdk7s60gdi2wp"; ++ sha256 = "07kl43xcjfwdlcfvr7ifzggl6zpmm8q0lj8phlk3db8xgnqkf6s4"; + type = "gem"; + }; +- version = "4.3.2"; ++ version = "4.6.0"; + }; + gitlab-experiment = { + dependencies = ["activesupport" "request_store"]; +@@ -2163,10 +2204,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1yfk2w86nzw8mksahs70ai0d860kdj25lpvlka4xv77i18zggqml"; ++ sha256 = "0j0zs29izmhqc1jvgfsvikqdyg6r8kf3j9azbmsmm02l45sfwc7j"; + type = "gem"; + }; +- version = "0.8.0"; ++ version = "0.9.1"; + }; + gitlab-fog-azure-rm = { + dependencies = ["azure-storage-blob" "azure-storage-common" "fog-core" "fog-json" "mime-types"]; +@@ -2179,8 +2220,18 @@ src: + }; + version = "1.8.0"; + }; ++ gitlab-housekeeper = { ++ dependencies = ["httparty" "rubocop"]; ++ groups = ["development" "test"]; ++ platforms = []; ++ source = { ++ path = "${src}/gems/gitlab-housekeeper"; ++ type = "path"; ++ }; ++ version = "0.1.0"; ++ }; + gitlab-http = { +- dependencies = ["activesupport" "httparty" "ipaddress" "nokogiri" "railties"]; ++ dependencies = ["activesupport" "concurrent-ruby" "httparty" "ipaddress" "nokogiri" "railties"]; + groups = ["default"]; + platforms = []; + source = { +@@ -2211,15 +2262,15 @@ src: + version = "2.3.0"; + }; + gitlab-mail_room = { +- dependencies = ["jwt" "net-imap" "oauth2"]; ++ dependencies = ["jwt" "net-imap" "oauth2" "redis" "redis-namespace"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "15wrq4v6xsfql4k6l10gbcfk0a02zh0shr2c3l0wakmjvaj4ymi3"; ++ sha256 = "1crw7k0mdzkrc94xw901dlmzzhhaa8a2bxyvk2y29h5w7pvkvgy7"; + type = "gem"; + }; +- version = "0.0.23"; ++ version = "0.0.24"; + }; + gitlab-markup = { + groups = ["default"]; +@@ -2242,7 +2293,7 @@ src: + version = "0.9.2"; + }; + gitlab-rspec = { +- dependencies = ["activesupport" "rspec"]; ++ dependencies = ["activerecord" "activesupport" "rspec"]; + groups = ["development" "monorepo" "test"]; + platforms = []; + source = { +@@ -2251,6 +2302,16 @@ src: + }; + version = "0.1.0"; + }; ++ gitlab-rspec_flaky = { ++ dependencies = ["activesupport" "rspec"]; ++ groups = ["development" "monorepo" "test"]; ++ platforms = []; ++ source = { ++ path = "${src}/gems/gitlab-rspec_flaky"; ++ type = "path"; ++ }; ++ version = "0.1.0"; ++ }; + gitlab-safe_request_store = { + dependencies = ["request_store"]; + groups = ["default"]; +@@ -2271,6 +2332,27 @@ src: + }; + version = "0.1.0"; + }; ++ gitlab-sdk = { ++ dependencies = ["activesupport" "rake" "snowplow-tracker"]; ++ groups = ["default"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1mnhl888n4zfwhmfy3f1pj0k1rzjwpf16a1ic7wb22l64252g4g8"; ++ type = "gem"; ++ }; ++ version = "0.2.3"; ++ }; ++ gitlab-secret_detection = { ++ dependencies = ["re2" "toml-rb"]; ++ groups = ["default"]; ++ platforms = []; ++ source = { ++ path = "${src}/gems/gitlab-secret_detection"; ++ type = "path"; ++ }; ++ version = "0.1.0"; ++ }; + gitlab-sidekiq-fetcher = { + dependencies = ["json" "sidekiq"]; + groups = ["default"]; +@@ -2279,7 +2361,7 @@ src: + path = "${src}/vendor/gems/sidekiq-reliable-fetch"; + type = "path"; + }; +- version = "0.9.0"; ++ version = "0.10.0"; + }; + gitlab-styles = { + dependencies = ["rubocop" "rubocop-graphql" "rubocop-performance" "rubocop-rails" "rubocop-rspec"]; +@@ -2287,10 +2369,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0jn8zp5a35yi6jw7kyyq8fgpzcwmr5bfpl7j9ki2y13x77sla9zl"; ++ sha256 = "0ss0p7al6vyf5qwzyfbgaaxpa3ykvszwc5in3p2mm5g9dh3frn0d"; + type = "gem"; + }; +- version = "10.1.0"; ++ version = "11.0.0"; + }; + gitlab-utils = { + dependencies = ["actionview" "activesupport" "addressable" "nokogiri" "rake"]; +@@ -2325,15 +2407,15 @@ src: + version = "2.2.0"; + }; + gitlab_quality-test_tooling = { +- dependencies = ["activesupport" "gitlab" "http" "nokogiri" "parallel" "rainbow" "table_print" "zeitwerk"]; ++ dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "table_print" "zeitwerk"]; + groups = ["test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0bk5lhaqfww0swi6xl1wqj6g97xmxlva6b8yyag23743k052x4qc"; ++ sha256 = "18m35p6kizkaw829lwvh6mc7r8q94gmyhkq9qggx7r78h8iafiqd"; + type = "gem"; + }; +- version = "1.3.0"; ++ version = "1.9.0"; + }; + globalid = { + dependencies = ["activesupport"]; +@@ -2429,10 +2511,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "02fqn9505q3d3m6lpa5ic2j3pa81k2x440qyw2fairsidrms5jk8"; ++ sha256 = "1cly6ycryjhk15d60v3nqvhqpjk9f0nznnslbdnin90f5r54sbpd"; + type = "gem"; + }; +- version = "0.10.0"; ++ version = "0.11.2"; + }; + google-apis-dns_v1 = { + dependencies = ["google-apis-core"]; +@@ -2517,10 +2599,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "17qamcjnf22zvw1g169g8a2gkzdsxx4ij3a4ganihyrcf9r62asj"; ++ sha256 = "1k432qgxf41c4m6d68rascm0gyj18r7ypmrnyzmxh7k7nh543awx"; + type = "gem"; + }; +- version = "0.19.0"; ++ version = "0.29.0"; + }; + google-cloud-core = { + dependencies = ["google-cloud-env" "google-cloud-errors"]; +@@ -2571,20 +2653,20 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1skhlpcykxxzw3050cwngdyc3n746wfx443w1w9chxwjbh2ix6i9"; ++ sha256 = "0033bi8qwm0ksxsv5zhz4nzwsiaapq3xk79z8f8rx3v09vdap07j"; + type = "gem"; + }; +- version = "1.44.0"; ++ version = "1.45.0"; + }; + google-protobuf = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1jpjf9p3yf11f1fx74whp4zbxwcaf7jd5y10gknx61fr5z50791q"; ++ sha256 = "18yiqq657lbqbrbdfbxfspdrkiynd0wf49l3cgdw939z36cy0h77"; + type = "gem"; + }; +- version = "3.24.4"; ++ version = "3.25.1"; + }; + googleapis-common-protos = { + dependencies = ["google-protobuf" "googleapis-common-protos-types" "grpc"]; +@@ -2831,10 +2913,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "00j8wdi731wy8qnn5g4laynswxlw0d0s69wsn509wfa5n8p34n5n"; ++ sha256 = "1shlh68vjqyj092ig2b571anbr5npg8kp66a7cq5h9a1387nnckn"; + type = "gem"; + }; +- version = "0.40.1"; ++ version = "0.52.0"; + }; + hamlit = { + dependencies = ["temple" "thor" "tilt"]; +@@ -3284,10 +3366,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "07lsr5gfnl56v8znf780vpa79wx3p5rqsdgc6j88364ixj3zg8xr"; ++ sha256 = "12md9pbh0m2yfx0vy81dyn40ibdnhzm6b7kfwra66pkjwrac9pvq"; + type = "gem"; + }; +- version = "0.2.0"; ++ version = "0.3.0"; + }; + knapsack = { + dependencies = ["rake"]; +@@ -3333,6 +3415,16 @@ src: + }; + version = "4.11.0"; + }; ++ language_server-protocol = { ++ groups = ["default" "development" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x"; ++ type = "gem"; ++ }; ++ version = "3.17.0.3"; ++ }; + launchy = { + dependencies = ["addressable"]; + groups = ["default" "development" "test"]; +@@ -3349,10 +3441,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "02k7gr457gdi4zjgxr9ga44f8lb8q0yyiqmwhaylr70n76zqrmrp"; ++ sha256 = "1ac5r000h6rp7gdwyxr1n8hsg5b88gwbdkq87pbcjzps9li6n6nz"; + type = "gem"; + }; +- version = "1.5.2"; ++ version = "1.5.5"; + }; + letter_opener = { + dependencies = ["launchy"]; +@@ -3381,10 +3473,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0n5j0p8dxf9xzb9n4bkdr8w0a8gg3jzrn9indri3n0fv90gcs5qi"; ++ sha256 = "1vx0mv0bbcy0qh3ik08b42vrq4kw1zg51121r18c0vvp4p3zcpda"; + type = "gem"; + }; +- version = "1.2.0"; ++ version = "2.1.0"; + }; + license_finder = { + dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"]; +@@ -3467,10 +3559,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0d5p9vg2qkqfy60i93mpd3b25kw4bdxfai034y5a94pxp5fws61c"; ++ sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh"; + type = "gem"; + }; +- version = "2.21.4"; ++ version = "2.22.0"; + }; + lookbook = { + dependencies = ["activemodel" "css_parser" "htmlbeautifier" "htmlentities" "marcel" "railties" "redcarpet" "rouge" "view_component" "yard" "zeitwerk"]; +@@ -3478,10 +3570,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0jpwfdf6wk77ri85ksmsbxvfb4jpba3bx84j0zg10a4rijf7450g"; ++ sha256 = "1nd26yk8fwhb7lf7knzl6pf93v2spyf90gz4c6f8xfzq9hv6kj17"; + type = "gem"; + }; +- version = "2.0.1"; ++ version = "2.2.0"; + }; + lru_redux = { + groups = ["default"]; +@@ -3655,10 +3747,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "02mj8mpd6ck5gpcnsimx5brzggw5h5mmmpq2djdypfq16wcw82qq"; ++ sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs"; + type = "gem"; + }; +- version = "2.8.4"; ++ version = "2.8.5"; + }; + minitest = { + groups = ["development" "test"]; +@@ -3686,10 +3778,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1askip583sfnz25gywd508l3vj5wnvx9vp7gm1sfnixm7amssrwq"; ++ sha256 = "0j0122lv2qgccl61njqi0pj6sp6nb85y07gcmw16bwg4k0c8nx6p"; + type = "gem"; + }; +- version = "3.0.9"; ++ version = "3.0.27"; + }; + mixlib-log = { + groups = ["default"]; +@@ -3707,10 +3799,21 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1g99c3s5zvrwvlv3gjw5fvpdimybpfazqyszjim5kdjjbq0586hj"; ++ sha256 = "0zkwg76y96nkh1mv0k92ybq46cr06v1wmic16129ls3yqzwx3xj6"; + type = "gem"; + }; +- version = "3.2.5"; ++ version = "3.2.7"; ++ }; ++ mize = { ++ dependencies = ["protocol"]; ++ groups = ["default" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "09zn7789ifzc13xraqsqxk762l4898n1f63scidgzjq1y06bmg2m"; ++ type = "gem"; ++ }; ++ version = "0.4.1"; + }; + msgpack = { + groups = ["default"]; +@@ -3896,10 +3999,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0b4h3ip8d1gkrc0znnw54hbxillk73mdnaf5pz330lmrcl1wiilg"; ++ sha256 = "1si2nq9l6jy5n2zw1q59a5gaji7v9vhy8qx08h4fg368906ysbdk"; + type = "gem"; + }; +- version = "3.0.0"; ++ version = "4.0.0"; + }; + net-smtp = { + dependencies = ["net-protocol"]; +@@ -3917,10 +4020,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1l0kgd7w08fx2522aw8grlfzwmrgw4jgjakpkgkwm0134g5xv432"; ++ sha256 = "1jyj6j7w9zpj2zhp4dyhdjiwsn9rqwksj7s7fzpnn7rx2xvz2a1a"; + type = "gem"; + }; +- version = "6.0.0"; ++ version = "7.2.0"; + }; + netrc = { + groups = ["default"]; +@@ -3958,10 +4061,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0k9w2z0953mnjrsji74cshqqp08q7m1r6zhadw1w0g34xzjh3a74"; ++ sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12"; + type = "gem"; + }; +- version = "1.15.4"; ++ version = "1.15.5"; + }; + notiffany = { + dependencies = ["nenv" "shellany"]; +@@ -4022,10 +4125,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "01jlkb75ic3aw39q5mxyd8dnb65kqmzfq4shp0gli9n04ihz3765"; ++ sha256 = "15fz0ws8q9635rl5y4jyiwxbibr9ilba4askazhrgy4pcmmgs34q"; + type = "gem"; + }; +- version = "17.9.0"; ++ version = "18.1.3"; + }; + oj = { + groups = ["default"]; +@@ -4469,10 +4572,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1whhr897z6z6av85x2cipyjk46bwh6s4wx6nbrcd3iifnzvbqs7l"; ++ sha256 = "0wzhnbzraz60paxhm48c50fp9xi7cqka4gfhxmiq43mhgh5ajg3h"; + type = "gem"; + }; +- version = "3.6.0"; ++ version = "3.7.0"; + }; + png_quantizator = { + groups = ["development" "test"]; +@@ -4484,17 +4587,6 @@ src: + }; + version = "0.2.1"; + }; +- po_to_json = { +- dependencies = ["json"]; +- groups = ["default"]; +- platforms = []; +- source = { +- remotes = ["https://rubygems.org"]; +- sha256 = "1xvanl437305mry1gd57yvcg7xrfhri91czr32bjr8j2djm8hwba"; +- type = "gem"; +- }; +- version = "1.0.1"; +- }; + premailer = { + dependencies = ["addressable" "css_parser" "htmlentities"]; + groups = ["default"]; +@@ -4517,6 +4609,27 @@ src: + }; + version = "1.10.3"; + }; ++ prime = { ++ dependencies = ["forwardable" "singleton"]; ++ groups = ["default" "development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1973kz8lbck6ga5v42f55jk8b8pnbgwp9p67dl1xw15gvz55dsfl"; ++ type = "gem"; ++ }; ++ version = "0.1.2"; ++ }; ++ prism = { ++ groups = ["default" "development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "172qxf1zyrhxzwbn4c7gz12zdyb1jkdqrqvb2c7863lmxp53rrxs"; ++ type = "gem"; ++ }; ++ version = "0.18.0"; ++ }; + proc_to_ast = { + dependencies = ["coderay" "parser" "unparser"]; + groups = ["default" "development" "test"]; +@@ -4534,10 +4647,21 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0ap52y7lng1cnqmg5bp4hazllppar33fpczwmh6gn9v9l64kkywj"; ++ sha256 = "1xfy4g3bwgqb1hn948aw3zfwxvak3886gxdyf0cnajzjfp9z33pq"; + type = "gem"; + }; +- version = "0.28.1"; ++ version = "1.0.2"; ++ }; ++ protocol = { ++ dependencies = ["ruby_parser"]; ++ groups = ["default" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1f8nvz0621gfsyiwy2nmwaliqafmf4p2wnln9qldd31vwl4wbmyw"; ++ type = "gem"; ++ }; ++ version = "2.0.0"; + }; + pry = { + dependencies = ["coderay" "method_source"]; +@@ -4843,10 +4967,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "09kszvsa9av8yb8pm9nz6p5jgshin3cqvknlvd1m927qfvdpalk3"; ++ sha256 = "0pj5qq4phswviw9vybvz4ql5921ddxkkmn9iywm992x0kbvhvn0f"; + type = "gem"; + }; +- version = "0.9.78"; ++ version = "0.9.83"; + }; + rbtrace = { + dependencies = ["ffi" "msgpack" "optimist"]; +@@ -4885,10 +5009,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "13xfrx1wwq7n2qsw449fq8h611n05v400i9dz9k6pdia019hp8q3"; ++ sha256 = "0ih6igmfcb4b9a8hd46ggn85zfyclz9h828d0xafy2pq5qlz9fs2"; + type = "gem"; + }; +- version = "2.1.3"; ++ version = "2.5.0"; + }; + recaptcha = { + dependencies = ["json"]; +@@ -4926,10 +5050,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0m9dv7ya9q93r8x1pg2gi15rxlbck8m178j1fz7r5v6wr1avrrqy"; ++ sha256 = "0bb3yk2p12f1j4nr0grbadrwnr6gkzd7vn96jcnhswz2jsnbhhfr"; + type = "gem"; + }; +- version = "4.3.2"; ++ version = "4.3.3"; + }; + redis = { + groups = ["default"]; +@@ -4958,10 +5082,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "04l61lpb3s2xkwj36l7b543lhciv19z514kxnmnbh5fg70grc8q9"; ++ sha256 = "154dfnrjpbv7fhwhfrcnp6jn9qv5qaj3mvlvbgkl7qy5qsknw71c"; + type = "gem"; + }; +- version = "1.9.0"; ++ version = "1.10.0"; + }; + redis-rack = { + dependencies = ["rack" "redis-store"]; +@@ -5105,10 +5229,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "19drl3x8fw65v3mpy7fk3cf3dfrywz5alv98n2rm4pp04vdn71lw"; ++ sha256 = "1fkfa0iq3r9b0zzrxpxha17avmyzci3kidzmfbf6fd1279mndpb0"; + type = "gem"; + }; +- version = "4.1.3"; ++ version = "4.2.0"; + }; + rqrcode = { + dependencies = ["chunky_png" "rqrcode_core"]; +@@ -5225,10 +5349,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "086qdyz7c4s5dslm6j06mq7j4jmj958whc3yinhabnqqmz7i463d"; ++ sha256 = "1dpmbq2awsjiwn300cafp9fbvv86dl7zrb760anhmm1qw8yzg1my"; + type = "gem"; + }; +- version = "6.0.3"; ++ version = "6.1.0"; + }; + rspec-retry = { + dependencies = ["rspec-core"]; +@@ -5251,16 +5375,6 @@ src: + }; + version = "3.12.0"; + }; +- rspec_flaky = { +- dependencies = ["activesupport" "rspec"]; +- groups = ["development" "monorepo" "test"]; +- platforms = []; +- source = { +- path = "${src}/gems/rspec_flaky"; +- type = "path"; +- }; +- version = "0.1.0"; +- }; + rspec_junit_formatter = { + dependencies = ["rspec-core"]; + groups = ["test"]; +@@ -5284,15 +5398,15 @@ src: + version = "0.0.6"; + }; + rubocop = { +- dependencies = ["json" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; ++ dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"]; + groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0l46lw5gfj3mcm982wpmx7br4rs466gyislv0hfwcsk8dxhv1zkw"; ++ sha256 = "06qnp5zs233j4f59yyqrg8al6hr9n4a7vcdg3p31v0np8bz9srwg"; + type = "gem"; + }; +- version = "1.50.2"; ++ version = "1.57.2"; + }; + rubocop-ast = { + dependencies = ["parser"]; +@@ -5311,10 +5425,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "01fn05a87g009ch1sh00abdmgjab87i995msap26vxq1a5smdck6"; ++ sha256 = "1jwwi5a05947q9zsk6i599zxn657hdphbmmbbpx17qsv307rwcps"; + type = "gem"; + }; +- version = "2.18.0"; ++ version = "2.19.0"; + }; + rubocop-factory_bot = { + dependencies = ["rubocop"]; +@@ -5322,10 +5436,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0kqchl8f67k2g56sq2h1sm2wb6br5gi47s877hlz94g5086f77n1"; ++ sha256 = "1y79flwjwlaslyhfpg84di9n756ir6bm52n964620xsj658d661h"; + type = "gem"; + }; +- version = "2.23.1"; ++ version = "2.24.0"; + }; + rubocop-graphql = { + dependencies = ["rubocop"]; +@@ -5344,10 +5458,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0bp02784v0qm8qcswi169s0ar6216rwk516v3idzpbxznpqp97ac"; ++ sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj"; + type = "gem"; + }; +- version = "1.18.0"; ++ version = "1.19.1"; + }; + rubocop-rails = { + dependencies = ["activesupport" "rack" "rubocop"]; +@@ -5355,10 +5469,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "05r46ds0dm44fb4p67hbz721zck8mdwblzssz2y25yh075hvs36j"; ++ sha256 = "0imxmki4qc5pji31wn491smaq531ncngnv6d4xvbpn11cgdkqryv"; + type = "gem"; + }; +- version = "2.20.2"; ++ version = "2.22.1"; + }; + rubocop-rspec = { + dependencies = ["rubocop" "rubocop-capybara" "rubocop-factory_bot"]; +@@ -5366,10 +5480,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "00rsflhijcr0q838fgbdmk7knm5kcjpimn6x0k9qmiw15hi96x1d"; ++ sha256 = "1wwrgcigdrrlgg4nwbl18qfyjks519kqbbly5adrdffvh428lgq8"; + type = "gem"; + }; +- version = "2.22.0"; ++ version = "2.25.0"; + }; + ruby-fogbugz = { + dependencies = ["crack" "multipart-post"]; +@@ -5382,6 +5496,39 @@ src: + }; + version = "0.3.0"; + }; ++ ruby-lsp = { ++ dependencies = ["language_server-protocol" "prism" "sorbet-runtime"]; ++ groups = ["development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1zsd9ax4xzk8y1hflzbmfq1l0fpflwqhrggd8x2f4j9ap6z464lg"; ++ type = "gem"; ++ }; ++ version = "0.13.1"; ++ }; ++ ruby-lsp-rails = { ++ dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"]; ++ groups = ["development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "1j2pb9d9frdh6rpz5qcvhmqswqdmmxa392z2nv1rnk60cpxclc0p"; ++ type = "gem"; ++ }; ++ version = "0.2.8"; ++ }; ++ ruby-lsp-rspec = { ++ dependencies = ["ruby-lsp"]; ++ groups = ["development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "18qfm86bafybm93kz1bn2z86gwaax3c57i25g4lzgv6pp9aj5nr1"; ++ type = "gem"; ++ }; ++ version = "0.1.8"; ++ }; + ruby-magic = { + dependencies = ["mini_portile2"]; + groups = ["default"]; +@@ -5445,6 +5592,17 @@ src: + }; + version = "0.0.5"; + }; ++ ruby_parser = { ++ dependencies = ["sexp_processor"]; ++ groups = ["default" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "0j8w4mqhqaw53jd27cfhq1mq02d1r606x9fmrpfzz0fwjnk8j8ld"; ++ type = "gem"; ++ }; ++ version = "3.20.3"; ++ }; + rubyntlm = { + groups = ["default"]; + platforms = []; +@@ -5577,21 +5735,21 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "094x2gzfxpp4wzyy3fcbb5ah3abvdd41ilzwv5g0hgqx0a0nywjm"; ++ sha256 = "1qy3whgdg6q5bi6mzbq5gc94rxnkasdhdx3c73z3a955krj16w13"; + type = "gem"; + }; +- version = "4.14.0"; ++ version = "4.16.0"; + }; + semver_dialects = { +- dependencies = ["pastel" "thor" "tty-command"]; ++ dependencies = ["deb_version" "pastel" "thor" "tty-command"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "08zb8rlr20f1985hyakd9z7f9hc9n34qx1g8cyk5377pb5vgd8b0"; ++ sha256 = "1bj9r98ilpgg0w0h80wydfssr7kv65y0v2afsf1azhf9mymz3000"; + type = "gem"; + }; +- version = "1.2.1"; ++ version = "1.5.0"; + }; + sentry-rails = { + dependencies = ["railties" "sentry-ruby"]; +@@ -5599,10 +5757,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "06vklzpziqryd25k71k8qia4sy7xh10zci9wg7dbzhp2kn82s6y1"; ++ sha256 = "1gby2dx2h487y8ziisy57ba8mj6scpg6az49n4p989kc2fn2zalr"; + type = "gem"; + }; +- version = "5.8.0"; ++ version = "5.10.0"; + }; + sentry-raven = { + dependencies = ["faraday"]; +@@ -5621,10 +5779,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "043isdlj6x9rymj74gh8m6li6yr8b8k4a6lr9swrydxy6ca15sya"; ++ sha256 = "069n32qqhhv91slyvzh92vqw3gp232qqz652yc894c71mv028p0i"; + type = "gem"; + }; +- version = "5.8.0"; ++ version = "5.10.0"; + }; + sentry-sidekiq = { + dependencies = ["sentry-ruby" "sidekiq"]; +@@ -5632,10 +5790,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0yf7fwc4wczi87bdmb9bksprw66xcsvr1ldskpcmzz592qyi5lch"; ++ sha256 = "06pagbphvmwp8yk3rcnhl7mbnc0hnvhcjhanzgiipyrk0y6h30fc"; + type = "gem"; + }; +- version = "5.8.0"; ++ version = "5.10.0"; + }; + set = { + groups = ["default"]; +@@ -5647,6 +5805,16 @@ src: + }; + version = "1.0.2"; + }; ++ sexp_processor = { ++ groups = ["default" "test"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd"; ++ type = "gem"; ++ }; ++ version = "4.17.0"; ++ }; + shellany = { + groups = ["default" "test"]; + platforms = []; +@@ -5674,21 +5842,21 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0p2mj2jj5b9wqmpvkngx87lfr2qgwhqvwx38bmhl5aa29pc6z5kx"; ++ sha256 = "0zqr9is8y7mg5dfs1q8w5jl9spwvqkhbi9r6np8208n40hi3pydl"; + type = "gem"; + }; +- version = "6.5.7"; ++ version = "6.5.12"; + }; + sidekiq-cron = { +- dependencies = ["fugit" "sidekiq"]; ++ dependencies = ["fugit" "globalid" "sidekiq"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1jmh5vc2gdy0a161hgq0vlbwaviqj51pqzmgda4p2nyffg575nj7"; ++ sha256 = "0v09lg8kza19jmigqv5hx2ibhm75j6pa639sfy4bv2208l50hqv6"; + type = "gem"; + }; +- version = "1.8.0"; ++ version = "1.12.0"; + }; + sigdump = { + groups = ["development" "test"]; +@@ -5773,6 +5941,16 @@ src: + }; + version = "0.1.4"; + }; ++ singleton = { ++ groups = ["default" "development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "0m0w97jmwp1ldg8x5jaidqyqf7n9lkdqsirdpkgppcfbgx0v045l"; ++ type = "gem"; ++ }; ++ version = "0.1.1"; ++ }; + sixarm_ruby_unaccent = { + groups = ["default"]; + platforms = []; +@@ -5825,6 +6003,16 @@ src: + }; + version = "0.47.2"; + }; ++ sorbet-runtime = { ++ groups = ["default" "development"]; ++ platforms = []; ++ source = { ++ remotes = ["https://rubygems.org"]; ++ sha256 = "18280l1wgdmr9xhr4mzxr4ycskwbgjzd91vmdzx0dlp6xp2dydnb"; ++ type = "gem"; ++ }; ++ version = "0.5.11144"; ++ }; + sorted_set = { + dependencies = ["rbtree" "set"]; + groups = ["default"]; +@@ -6051,10 +6239,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "11z9m8jcys8q8h8prqdr1frppm0mjdh8if7c1rm2qyq8v19g83fi"; ++ sha256 = "0mj0qyapppbvlr81a4pcivgsbwi5082iyzbxypasxdv17wl0p7q0"; + type = "gem"; + }; +- version = "0.7.0"; ++ version = "0.9.0"; + }; + telesign = { + dependencies = ["net-http-persistent"]; +@@ -6126,10 +6314,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1mhzw33lv7h8d7pyh65lis5svnmm8m6fnszbsfg3j3xk9hcl0an5"; ++ sha256 = "08vm33d51zdan4zj4cccw3lx06p6flc1h40kgdfm9rp4x83csdda"; + type = "gem"; + }; +- version = "1.2.3"; ++ version = "1.3.1"; + }; + test_file_finder = { + dependencies = ["faraday"]; +@@ -6137,10 +6325,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1kgak2xqyp2wf7y1c1q1dpxw56iq9mgpqjji6vfbjkxckqrxhdmw"; ++ sha256 = "1cyd1wpi280w4v6f6panbvrli8493phzbb09nvxswxhcv1lv7sd5"; + type = "gem"; + }; +- version = "0.1.4"; ++ version = "0.2.1"; + }; + text = { + groups = ["default" "development"]; +@@ -6153,14 +6341,14 @@ src: + version = "1.3.1"; + }; + thor = { +- groups = ["default" "development" "omnibus" "test"]; ++ groups = ["default" "development" "monorepo" "omnibus" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg"; ++ sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s"; + type = "gem"; + }; +- version = "1.2.2"; ++ version = "1.3.0"; + }; + thread_safe = { + groups = ["default" "test"]; +@@ -6271,10 +6459,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "1pbfbmi9l5hxr1zly1bc72fk8a6by4d19wdap8q3mi3rlflqzbfp"; ++ sha256 = "0fr2hydxs1rzmi7c1c1wcfi0m2piks3vl8hdhh8rpgjz041dm4w4"; + type = "gem"; + }; +- version = "3.4.9"; ++ version = "3.10.8"; + }; + truncato = { + dependencies = ["htmlentities" "nokogiri"]; +@@ -6567,10 +6755,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "18s2b8g23agnykjjdw74ha0hhzx8n73gn41vsqxmhlgxnh8mr93s"; ++ sha256 = "1xn5q1mbhwalx16mj441pzbm8hkxdmwxwzdjcj86f3bfnpipzh9y"; + type = "gem"; + }; +- version = "3.6.0"; ++ version = "3.8.0"; + }; + virtus = { + dependencies = ["axiom-types" "coercible" "descendants_tracker"]; +@@ -6585,25 +6773,25 @@ src: + }; + vite_rails = { + dependencies = ["railties" "vite_ruby"]; +- groups = ["default"]; ++ groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "0q7qbi3npw47xza8spvd8ni0x0ahjb6lkd12y9a4pqppxn555v5q"; ++ sha256 = "1k4bllg0zpmpkjfmk1gybc2ygca4v40l2fmlplf9h0jqwniqa3mr"; + type = "gem"; + }; +- version = "3.0.15"; ++ version = "3.0.17"; + }; + vite_ruby = { + dependencies = ["dry-cli" "rack-proxy" "zeitwerk"]; +- groups = ["default"]; ++ groups = ["development" "test"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "036qi8w4qzglhqrrrrkc0m7ivfzmagsdyj61r0h27p56hn1l6ph2"; ++ sha256 = "0wza7pnwz8ym92gw0x4zr1icialhlw0l032kn4f86vw1vlzxmrd3"; + type = "gem"; + }; +- version = "3.3.4"; ++ version = "3.5.0"; + }; + vmstat = { + groups = ["default"]; +@@ -6746,10 +6934,10 @@ src: + platforms = []; + source = { + remotes = ["https://rubygems.org"]; +- sha256 = "110dv4arvwyky6f2pq19f20f1xcjpiz3zfbals0y49ijpq8agvql"; ++ sha256 = "1nnx4xz8g40dpi3ccqk5blj1ck06ydx09f9diksn1ghd8yxzavhi"; + type = "gem"; + }; +- version = "1.0.5"; ++ version = "1.0.7"; + }; + xml-simple = { + dependencies = ["rexml"]; +diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix +index 5a3ec1f6846945..97715659be0d73 100644 +--- a/pkgs/development/ruby-modules/gem-config/default.nix ++++ b/pkgs/development/ruby-modules/gem-config/default.nix +@@ -27,6 +27,7 @@ + , bison, flex, pango, python3, patchelf, binutils, freetds, wrapGAppsHook, atk + , bundler, libsass, dart-sass, libexif, libselinux, libsepol, shared-mime-info, libthai, libdatrie + , CoreServices, DarwinTools, cctools, libtool, discount, exiv2, libepoxy, libxkbcommon, libmaxminddb, libyaml ++, cargo, rustc, rustPlatform + , autoSignDarwinBinariesHook, fetchpatch + }@args: + +@@ -296,6 +297,33 @@ in + in '' + substituteInPlace lib/prometheus/client/page_size.rb --replace "getconf" "${lib.getBin getconf}/bin/getconf" + ''; ++ } // lib.optionalAttrs (lib.versionAtLeast attrs.version "1.0") { ++ cargoRoot = "ext/fast_mmaped_file_rs"; ++ cargoDeps = rustPlatform.fetchCargoTarball { ++ src = stdenv.mkDerivation { ++ inherit (buildRubyGem { inherit (attrs) gemName version source; }) ++ name ++ src ++ unpackPhase ++ nativeBuildInputs ++ ; ++ dontBuilt = true; ++ installPhase = '' ++ cp -R ext/fast_mmaped_file_rs $out ++ ''; ++ }; ++ hash = "sha256-XuQZPbFWqPHlrJvllkvLl1FjKeoAUbi8oKDrS2rY1KM="; ++ }; ++ nativeBuildInputs = [ ++ cargo ++ rustc ++ rustPlatform.cargoSetupHook ++ rustPlatform.bindgenHook ++ ]; ++ preBuild = '' ++ cat ../.cargo/config > ext/fast_mmaped_file_rs/.cargo/config.toml ++ sed -i "s|cargo-vendor-dir|$PWD/../cargo-vendor-dir|" ext/fast_mmaped_file_rs/.cargo/config.toml ++ ''; + }; + + glib2 = attrs: { diff --git a/patches/280369.patch b/patches/280369.patch new file mode 100644 index 00000000..49cd9155 --- /dev/null +++ b/patches/280369.patch @@ -0,0 +1,82 @@ +diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json +index 8247763e63ba7d..461c83695d5c72 100644 +--- a/pkgs/applications/version-management/gitlab/data.json ++++ b/pkgs/applications/version-management/gitlab/data.json +@@ -1,15 +1,15 @@ + { +- "version": "16.7.0", +- "repo_hash": "sha256-l5TkjkVny2zQLUfbscG6adkmkC1KjxMAeFbSyUA1UbI=", ++ "version": "16.7.2", ++ "repo_hash": "sha256-YIwZkmTVmxXlZ07lCUco9VEbylMvE92LQdFOeZXWB2M=", + "yarn_hash": "1qxz2p969qg7kzyvhwxws5zwdw986gdq9gxllzi58c5c56jz49zf", + "owner": "gitlab-org", + "repo": "gitlab", +- "rev": "v16.7.0-ee", ++ "rev": "v16.7.2-ee", + "passthru": { +- "GITALY_SERVER_VERSION": "16.7.0", +- "GITLAB_PAGES_VERSION": "16.7.0", ++ "GITALY_SERVER_VERSION": "16.7.2", ++ "GITLAB_PAGES_VERSION": "16.7.2", + "GITLAB_SHELL_VERSION": "14.32.0", + "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.5.0", +- "GITLAB_WORKHORSE_VERSION": "16.7.0" ++ "GITLAB_WORKHORSE_VERSION": "16.7.2" + } + } +diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix +index b56edca8fa9c2b..c2f295b3b589b9 100644 +--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix +@@ -6,7 +6,7 @@ + }: + + let +- version = "16.7.0"; ++ version = "16.7.2"; + package_version = "v${lib.versions.major version}"; + gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}"; + +@@ -18,7 +18,7 @@ let + owner = "gitlab-org"; + repo = "gitaly"; + rev = "v${version}"; +- hash = "sha256-YLynUHE1lb0dfsZsalz91jSSk1Y5r7kqT2AcE27xf04="; ++ hash = "sha256-3R7x8eaUJqJ1mKlQ4kYThKyaSfSaow7lGx5EfNo+GNY="; + }; + + vendorHash = "sha256-btWHZMy1aBSsUVs30IqrdBCO79XQvTMXxkxYURF2Nqs="; +diff --git a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix +index 596e5770edb292..c5a4065d4ccbc8 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-pages/default.nix +@@ -2,14 +2,14 @@ + + buildGoModule rec { + pname = "gitlab-pages"; +- version = "16.7.0"; ++ version = "16.7.2"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab { + owner = "gitlab-org"; + repo = "gitlab-pages"; + rev = "v${version}"; +- hash = "sha256-8jODsK5+o1fEaTuFv6bXfZp4oA87JUQbTdYQn66DKJA="; ++ hash = "sha256-rUSZDsQt6faNES3ibzo7fJqpzEmXRbbTXOkhOn7jggA="; + }; + + vendorHash = "sha256-NMky8v0YmN2pSeKJ7G0+DWAZvUx2JlwFbqPHvciYroM="; +diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix +index c839269a1f9350..b3dec6385c28ef 100644 +--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix ++++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix +@@ -5,7 +5,7 @@ in + buildGoModule rec { + pname = "gitlab-workhorse"; + +- version = "16.7.0"; ++ version = "16.7.2"; + + # nixpkgs-update: no auto update + src = fetchFromGitLab {