summary refs log tree commit diff
diff options
context:
space:
mode:
authorWinter <winter@winter.cafe>2022-07-28 17:52:20 -0400
committerWinter <winter@winter.cafe>2022-08-11 13:28:00 -0400
commit58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94 (patch)
treedc1c8e361ae3710a0526fdb05835f76a99222498
parent8fb9c2cdd7c3b3145cd8fe1f299b9c6c74bf0416 (diff)
downloadnixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar.gz
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar.bz2
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar.lz
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar.xz
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.tar.zst
nixpkgs-58bb8ab012e4ca5edf90b8e00a262eb0bd7ffb94.zip
gitlab: 15.1.4 -> 15.2.2
-rw-r--r--pkgs/applications/version-management/gitlab/data.json26
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix2
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile4
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock18
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix52
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix18
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile43
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock172
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix148
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py29
12 files changed, 300 insertions, 222 deletions
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 8f61560bca5..e507401a564 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,22 @@
 {
-  "version": "15.1.4",
-  "repo_hash": "sha256-Ca3rhUJV7OVr3Uv6YmQxHspgwCKp1CZ4phUL1reREy8=",
-  "yarn_hash": "19df16gk0vpvdi1idqaakaglf11cic93i5njw0x4m2cnsznhpvz4",
+  "version": "15.2.2",
+  "repo_hash": "sha256-Rb6u47Ehx1Kee3FFsoFa6ZqpU7c00ToEelvfjyG3aiI=",
+  "yarn_hash": "154akdngdagwfn8s90aw6sajw058i507shv5wzdn8l0vy3badgkv",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v15.1.4-ee",
+  "rev": "v15.2.2-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "15.1.4",
-    "GITLAB_PAGES_VERSION": "1.59.1",
-    "GITLAB_SHELL_VERSION": "14.7.4",
-    "GITLAB_WORKHORSE_VERSION": "15.1.4"
-  }
+    "GITALY_SERVER_VERSION": "15.2.2",
+    "GITLAB_PAGES_VERSION": "1.61.1",
+    "GITLAB_SHELL_VERSION": "14.9.0",
+    "GITLAB_WORKHORSE_VERSION": "15.2.2"
+  },
+  "vendored_gems": [
+    "devise-pbkdf2-encryptable",
+    "omniauth-gitlab",
+    "omniauth_crowd",
+    "mail-smtp_pool",
+    "ipynbdiff",
+    "error_tracking_open_api"
+  ]
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 73a02673471..1df534dd442 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -46,6 +46,8 @@ let
     # N.B. omniauth_oauth2_generic and apollo_upload_server both provide a
     # `console` executable.
     ignoreCollisions = true;
+
+    extraConfigPaths = lib.forEach data.vendored_gems (gem: "${src}/vendor/gems/${gem}");
   };
 
   yarnOfflineCache = fetchYarnDeps {
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 787e705f945..cbb9321fd7e 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -1,7 +1,7 @@
 source 'https://rubygems.org'
 
 gem 'rugged', '~> 1.2'
-gem 'github-linguist', '~> 7.12', require: 'linguist'
+gem 'github-linguist', '~> 7.20.0', require: 'linguist'
 gem 'gitlab-markup', '~> 1.7.1'
 gem 'activesupport', '~> 6.1.4.7'
 gem 'rdoc', '~> 6.0'
@@ -13,7 +13,7 @@ gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.21.1'
+gem 'gitlab-labkit', '~> 0.23'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index 3616864ad7e..65faf2b721f 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -40,7 +40,7 @@ GEM
     dotenv (2.7.6)
     equalizer (0.0.11)
     erubi (1.10.0)
-    escape_utils (1.2.1)
+    escape_utils (1.2.2)
     factory_bot (5.0.2)
       activesupport (>= 4.2.0)
     faraday (1.0.1)
@@ -48,11 +48,11 @@ GEM
     ffi (1.15.3)
     gemojione (3.3.0)
       json
-    github-linguist (7.12.1)
+    github-linguist (7.20.0)
       charlock_holmes (~> 0.7.7)
       escape_utils (~> 1.2.0)
       mini_mime (~> 1.0)
-      rugged (>= 0.25.1)
+      rugged (~> 1.0)
     github-markup (1.7.0)
     gitlab-gollum-lib (4.2.7.10.gitlab.2)
       gemojione (~> 3.2)
@@ -65,11 +65,11 @@ GEM
     gitlab-gollum-rugged_adapter (0.4.4.4.gitlab.1)
       mime-types (>= 1.15)
       rugged (~> 1.0)
-    gitlab-labkit (0.21.2)
+    gitlab-labkit (0.23.0)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
-      grpc (~> 1.30)
-      jaeger-client (~> 1.1)
+      grpc (>= 1.37)
+      jaeger-client (~> 1.1.0)
       opentracing (~> 0.4)
       pg_query (~> 2.1)
       redis (> 3.0.0, < 5.0.0)
@@ -110,7 +110,7 @@ GEM
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
     mime-types-data (3.2020.1104)
-    mini_mime (1.0.2)
+    mini_mime (1.1.2)
     mini_portile2 (2.8.0)
     minitest (5.15.0)
     msgpack (1.3.3)
@@ -228,10 +228,10 @@ DEPENDENCIES
   activesupport (~> 6.1.4.7)
   factory_bot
   faraday (~> 1.0)
-  github-linguist (~> 7.12)
+  github-linguist (~> 7.20.0)
   gitlab-gollum-lib (~> 4.2.7.10.gitlab.2)
   gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
-  gitlab-labkit (~> 0.21.1)
+  gitlab-labkit (~> 0.23)
   gitlab-license_finder
   gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.19.0)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index d3390fa419a..55874b15e18 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -11,39 +11,55 @@ let
     gemdir = ./.;
   };
 
-  version = "15.1.4";
+  version = "15.2.2";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
-in
 
-buildGoModule {
-  pname = "gitaly";
-  inherit version;
+  commonOpts = {
+    inherit version;
+
+    src = fetchFromGitLab {
+      owner = "gitlab-org";
+      repo = "gitaly";
+      rev = "v${version}";
+      sha256 = "sha256-ZePtqpe5zwbslgisIQ+BFM9vtnWknB75gtgoOlkbuyo=";
+    };
+
+    vendorSha256 = "sha256-aKF7iupg3XNopi0asasSu5ug+2M9p2nwxk/0g5how6U=";
+
+    ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
+
+    tags = [ "static,system_libgit2" ];
 
-  src = fetchFromGitLab {
-    owner = "gitlab-org";
-    repo = "gitaly";
-    rev = "v${version}";
-    sha256 = "sha256-7bsbmC+a+Qk0MevAJvbQoRfvd3G7+q2zY6Gsb5yP44U=";
+    nativeBuildInputs = [ pkg-config ];
+    buildInputs = [ rubyEnv.wrappedRuby libgit2_1_3_0 openssl zlib pcre http-parser ];
+
+    doCheck = false;
   };
 
-  vendorSha256 = "sha256-0JWJ2mpf79gJdnNRdlQLi0oDvnj6VmibkW2XcPnaCww=";
+  auxBins = buildGoModule ({
+    pname = "gitaly-aux";
+
+    subPackages = [ "cmd/gitaly-hooks" "cmd/gitaly-ssh" "cmd/gitaly-git2go-v15" "cmd/gitaly-lfs-smudge" ];
+  } // commonOpts);
+in
+buildGoModule ({
+  pname = "gitaly";
 
   passthru = {
     inherit rubyEnv;
   };
 
-  ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
+  subPackages = [ "cmd/gitaly" "cmd/gitaly-backup" ];
 
-  tags = [ "static,system_libgit2" ];
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ rubyEnv.wrappedRuby libgit2_1_3_0 openssl zlib pcre http-parser ];
-  doCheck = false;
+  preConfigure = ''
+    mkdir -p _build/bin
+    cp -r ${auxBins}/bin/* _build/bin
+  '';
 
   postInstall = ''
     mkdir -p $ruby
     cp -rv $src/ruby/{bin,lib,proto} $ruby
-    mv $out/bin/gitaly-git2go-${package_version} $out/bin/gitaly-git2go-${version}
   '';
 
   outputs = [ "out" "ruby" ];
@@ -55,4 +71,4 @@ buildGoModule {
     maintainers = with maintainers; [ roblabla globin fpletz talyz yayayayaka ];
     license = licenses.mit;
   };
-}
+} // commonOpts)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 1697a9f9020..692a3614db5 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -174,12 +174,14 @@
     version = "1.10.0";
   };
   escape_utils = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qminivnyzwmqjhrh3b92halwbk0zcl9xn828p5rnap1szl2yag5";
+      sha256 = "182ha3nmsc6ny4384233pav58a5x2spjn838w9nciwb29lxah1x3";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.2";
   };
   factory_bot = {
     dependencies = ["activesupport"];
@@ -228,10 +230,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08lnb04qmlz4arls3nr3ia0k8r1kcyn010fr5qvc2qddidckqk88";
+      sha256 = "10biwhh50fdssqs3ai651qgv079bn6h06g5cv00jc5s73iszfns9";
       type = "gem";
     };
-    version = "7.12.1";
+    version = "7.20.0";
   };
   github-markup = {
     source = {
@@ -269,10 +271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xkzm6kri1dzjrmicm3wgbnxi9gk0byanr6ibfrflv7spd98fz19";
+      sha256 = "0kiz2m3dw6ld2z6dsl8jh2ycw061wv8wiy34flymb5zqjiyyzw8l";
       type = "gem";
     };
-    version = "0.21.2";
+    version = "0.23.0";
   };
   gitlab-license_finder = {
     dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"];
@@ -442,10 +444,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1axm0rxyx3ss93wbmfkm78a6x03l8y4qy60rhkkiq0aza0vwq3ha";
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
       type = "gem";
     };
-    version = "1.0.2";
+    version = "1.1.2";
   };
   mini_portile2 = {
     groups = ["default"];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 37d66c3a7f6..de4ef3eeb17 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "14.7.4";
+  version = "14.9.0";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-kLIjlMwoK1AlhvP38OspXnIWbdOcaLl4r05PiUmqnWw=";
+    sha256 = "sha256-TO0ZO7Hd/9J+801zPrelnAnJa/X0W9yR0Wphjh3TpaE=";
   };
 
   buildInputs = [ ruby ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorSha256 = "sha256-f2IkdkTZhve/cYKSH+N2Y5bXFSHuQ8t4hjfReyKTPUU=";
+  vendorSha256 = "sha256-urS0FED636APQe5uNvhDvWsnZtHCW60VtRE1B7IzGZQ=";
 
   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 639240c6493..66a90a9785b 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 = "15.1.4";
+  version = "15.2.2";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-cF2wVii/uBqlUQvrbDyPlv4tnfKA45deb/sE0c9U7Tk=";
+  vendorSha256 = "sha256-kZs0va/lVAxSYJ8W2bwLij6HjGg5ppE+eQY9lCsljCE=";
   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 9f5c0e4cbfd..eab90519e64 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -30,6 +30,7 @@ gem 'declarative_policy', '~> 1.1.0'
 
 # Authentication libraries
 gem 'devise', '~> 4.7.2'
+gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'devise-pbkdf2-encryptable'
 gem 'bcrypt', '~> 3.1', '>= 3.1.14'
 gem 'doorkeeper', '~> 5.5.0.rc2'
 gem 'doorkeeper-openid_connect', '~> 1.7.5'
@@ -44,13 +45,13 @@ gem 'omniauth-dingtalk-oauth2', '~> 1.0'
 gem 'omniauth-alicloud', '~> 1.0.1'
 gem 'omniauth-facebook', '~> 4.0.0'
 gem 'omniauth-github', '~> 1.4'
-gem 'omniauth-gitlab', '~> 1.0.2'
+gem 'omniauth-gitlab', '~> 4.0.0', path: 'omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md
 gem 'omniauth-google-oauth2', '~> 0.6.0'
 gem 'omniauth-oauth2-generic', '~> 0.2.2'
 gem 'omniauth-saml', '~> 1.10'
 gem 'omniauth-shibboleth', '~> 1.3.0'
 gem 'omniauth-twitter', '~> 1.4'
-gem 'omniauth_crowd', '~> 2.4.0'
+gem 'omniauth_crowd', '~> 2.4.0', path: 'omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md
 gem 'omniauth-authentiq', '~> 0.3.3'
 gem 'gitlab-omniauth-openid-connect', '~> 0.9.0', require: 'omniauth_openid_connect'
 gem 'omniauth-salesforce', '~> 1.0.5'
@@ -91,7 +92,7 @@ gem 'gpgme', '~> 2.0.19'
 # LDAP Auth
 # GitLab fork with several improvements to original library. For full list of changes
 # see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
-gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap'
+gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap'
 gem 'net-ldap', '~> 0.16.3'
 
 # API
@@ -103,7 +104,7 @@ gem 'rack-cors', '~> 1.1.0', require: 'rack/cors'
 gem 'graphql', '~> 1.13.12'
 gem 'graphiql-rails', '~> 1.8'
 gem 'apollo_upload_server', '~> 2.1.0'
-gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
+gem 'graphql-docs', '~> 2.1.0', group: [:development, :test]
 gem 'graphlient', '~> 0.5.0' # Used by BulkImport feature (group::import)
 
 gem 'hashie'
@@ -145,9 +146,9 @@ gem 'seed-fu', '~> 2.3.7'
 gem 'elasticsearch-model', '~> 7.2'
 gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation'
 gem 'elasticsearch-api',   '7.13.3'
-gem 'aws-sdk-core', '~> 3'
+gem 'aws-sdk-core', '~> 3.131.0'
 gem 'aws-sdk-cloudformation', '~> 1'
-gem 'aws-sdk-s3', '~> 1'
+gem 'aws-sdk-s3', '~> 1.114.0'
 gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
 gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections
 
@@ -181,7 +182,7 @@ gem 'diffy', '~> 3.3'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
-gem 'rack', '~> 2.2.3.0'
+gem 'rack', '~> 2.2.4'
 # https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually
 gem 'rack-timeout', '~> 0.6.0', require: 'rack/timeout/base'
 
@@ -255,7 +256,7 @@ gem 'slack-messenger', '~> 2.3.4'
 gem 'hangouts-chat', '~> 0.0.5', require: 'hangouts_chat'
 
 # Asana integration
-gem 'asana', '~> 0.10.3'
+gem 'asana', '~> 0.10.13'
 
 # FogBugz integration
 gem 'ruby-fogbugz', '~> 0.2.1'
@@ -268,7 +269,7 @@ gem 'sanitize', '~> 6.0'
 gem 'babosa', '~> 1.0.4'
 
 # Sanitizes SVG input
-gem 'loofah', '~> 2.2'
+gem 'loofah', '~> 2.18.0'
 
 # Working with license
 gem 'licensee', '~> 9.14.1'
@@ -323,7 +324,7 @@ gem 'thrift', '>= 0.14.0'
 
 # I18n
 gem 'ruby_parser', '~> 3.15', require: false
-gem 'rails-i18n', '~> 6.0'
+gem 'rails-i18n', '~> 7.0'
 gem 'gettext_i18n_rails', '~> 1.8.0'
 gem 'gettext_i18n_rails_js', '~> 1.3'
 gem 'gettext', '~> 3.3', require: false, group: :development
@@ -339,12 +340,12 @@ gem 'snowplow-tracker', '~> 0.6.1'
 # Metrics
 gem 'method_source', '~> 1.0', require: false
 gem 'webrick', '~> 1.6.1', require: false
-gem 'prometheus-client-mmap', '~> 0.15.0', require: 'prometheus/client'
+gem 'prometheus-client-mmap', '~> 0.16', require: 'prometheus/client'
 
-gem 'warning', '~> 1.2.0'
+gem 'warning', '~> 1.3.0'
 
 group :development do
-  gem 'lefthook', '~> 0.8.0', require: false
+  gem 'lefthook', '~> 1.0.0', require: false
   gem 'rubocop'
   gem 'solargraph', '~> 0.44.3', require: false
 
@@ -407,7 +408,7 @@ group :development, :test do
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 3.4.0', require: false
+  gem 'gitlab-dangerfiles', '~> 3.4.3', require: false
 end
 
 group :development, :test, :coverage do
@@ -436,7 +437,7 @@ group :test do
   gem 'capybara-screenshot', '~> 1.0.22'
   gem 'selenium-webdriver', '~> 3.142'
 
-  gem 'shoulda-matchers', '~> 4.0.1', require: false
+  gem 'shoulda-matchers', '~> 5.1.0', require: false
   gem 'email_spec', '~> 2.2.0'
   gem 'webmock', '~> 3.9.1'
   gem 'rails-controller-testing'
@@ -466,7 +467,7 @@ gem 'benchmark-memory', '~> 0.1', require: false
 gem 'activerecord-explain-analyze', '~> 0.1', require: false
 
 # OAuth
-gem 'oauth2', '~> 1.4'
+gem 'oauth2', '~> 2.0'
 
 # Health check
 gem 'health_check', '~> 3.0'
@@ -524,7 +525,7 @@ gem 'erubi', '~> 1.9.0'
 # Monkey-patched in `config/initializers/mail_encoding_patch.rb`
 # See https://gitlab.com/gitlab-org/gitlab/issues/197386
 gem 'mail', '= 2.7.1'
-
+gem 'mail-smtp_pool', '~> 0.1.0', path: 'mail-smtp_pool', require: false
 
 # File encryption
 gem 'lockbox', '~> 0.6.2'
@@ -535,7 +536,7 @@ gem 'valid_email', '~> 0.1'
 # JSON
 gem 'json', '~> 2.5.1'
 gem 'json_schemer', '~> 0.2.18'
-gem 'oj', '~> 3.10.6'
+gem 'oj', '~> 3.13.19'
 gem 'multi_json', '~> 1.14.1'
 gem 'yajl-ruby', '~> 1.4.1', require: 'yajl'
 
@@ -546,6 +547,10 @@ gem 'ipaddress', '~> 0.8.3'
 
 gem 'parslet', '~> 1.8'
 
-gem 'ipynbdiff', '0.4.7'
+gem 'ipynbdiff', path: 'ipynbdiff'
 
 gem 'ed25519', '~> 1.3.0'
+
+# Error Tracking OpenAPI client
+# See https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/rake_tasks.md#update-openapi-client-for-error-tracking-feature
+gem 'error_tracking_open_api', path: 'error_tracking_open_api'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 535e470372c..7bdffef8140 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -1,3 +1,44 @@
+PATH
+  remote: devise-pbkdf2-encryptable
+  specs:
+    devise-pbkdf2-encryptable (0.0.0)
+      devise (~> 4.0)
+
+PATH
+  remote: error_tracking_open_api
+  specs:
+    error_tracking_open_api (1.0.0)
+      typhoeus (~> 1.0, >= 1.0.1)
+
+PATH
+  remote: ipynbdiff
+  specs:
+    ipynbdiff (0.4.7)
+      diffy (~> 3.3)
+      oj (~> 3.13.16)
+
+PATH
+  remote: mail-smtp_pool
+  specs:
+    mail-smtp_pool (0.1.0)
+      connection_pool (~> 2.0)
+      mail (~> 2.7)
+
+PATH
+  remote: omniauth-gitlab
+  specs:
+    omniauth-gitlab (4.0.0)
+      omniauth (~> 1.0)
+      omniauth-oauth2 (~> 1.7.1)
+
+PATH
+  remote: omniauth_crowd
+  specs:
+    omniauth_crowd (2.4.0)
+      activesupport
+      nokogiri (>= 1.4.4)
+      omniauth (~> 1.0, < 3)
+
 GEM
   remote: https://rubygems.org/
   specs:
@@ -76,11 +117,11 @@ GEM
     apollo_upload_server (2.1.0)
       actionpack (>= 4.2)
       graphql (>= 1.8)
-    asana (0.10.3)
+    asana (0.10.13)
       faraday (~> 1.0)
       faraday_middleware (~> 1.0)
       faraday_middleware-multi_json (~> 0.0)
-      oauth2 (~> 1.4)
+      oauth2 (>= 1.4, < 3)
     asciidoctor (2.0.15)
     asciidoctor-include-ext (0.4.0)
       asciidoctor (>= 1.5.6, < 3.0.0)
@@ -98,24 +139,24 @@ GEM
       execjs (> 0)
     awesome_print (1.9.2)
     awrence (1.1.1)
-    aws-eventstream (1.1.0)
-    aws-partitions (1.345.0)
+    aws-eventstream (1.2.0)
+    aws-partitions (1.600.0)
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.104.3)
+    aws-sdk-core (3.131.1)
       aws-eventstream (~> 1, >= 1.0.2)
-      aws-partitions (~> 1, >= 1.239.0)
+      aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
-      jmespath (~> 1.0)
-    aws-sdk-kms (1.36.0)
-      aws-sdk-core (~> 3, >= 3.99.0)
+      jmespath (~> 1, >= 1.6.1)
+    aws-sdk-kms (1.57.0)
+      aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.75.0)
-      aws-sdk-core (~> 3, >= 3.104.1)
+    aws-sdk-s3 (1.114.0)
+      aws-sdk-core (~> 3, >= 3.127.0)
       aws-sdk-kms (~> 1)
-      aws-sigv4 (~> 1.1)
-    aws-sigv4 (1.2.1)
+      aws-sigv4 (~> 1.4)
+    aws-sigv4 (1.5.0)
       aws-eventstream (~> 1, >= 1.0.2)
     azure-storage-blob (2.0.3)
       azure-storage-common (~> 2.0)
@@ -468,7 +509,7 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (3.4.0)
+    gitlab-dangerfiles (3.4.3)
       danger (>= 8.4.5)
       danger-gitlab (>= 8.0.0)
       rake
@@ -516,9 +557,9 @@ GEM
       rubocop-rspec (~> 1.44)
     gitlab_chronic_duration (0.10.6.2)
       numerizer (~> 0.2)
-    gitlab_omniauth-ldap (2.1.1)
+    gitlab_omniauth-ldap (2.2.0)
       net-ldap (~> 0.16)
-      omniauth (~> 1.3)
+      omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
     globalid (1.0.0)
@@ -580,13 +621,13 @@ GEM
     graphql-client (0.17.0)
       activesupport (>= 3.0)
       graphql (~> 1.10)
-    graphql-docs (1.6.0)
+    graphql-docs (2.1.0)
       commonmarker (~> 0.16)
       escape_utils (~> 1.2)
       extended-markdown-filter (~> 0.4)
       gemoji (~> 3.0)
-      graphql (~> 1.6)
-      html-pipeline (~> 2.8)
+      graphql (~> 1.12)
+      html-pipeline (~> 2.9)
       sass (~> 3.4)
     grpc (1.42.0)
       google-protobuf (~> 3.18)
@@ -660,9 +701,6 @@ GEM
     invisible_captcha (1.1.0)
       rails (>= 4.2)
     ipaddress (0.8.3)
-    ipynbdiff (0.4.7)
-      diffy (~> 3.3)
-      json (~> 2.5, >= 2.5.1)
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
@@ -672,7 +710,7 @@ GEM
       atlassian-jwt
       multipart-post
       oauth (~> 0.5, >= 0.5.0)
-    jmespath (1.4.0)
+    jmespath (1.6.1)
     js_regex (3.7.0)
       character_set (~> 1.4)
       regexp_parser (~> 2.1)
@@ -717,7 +755,7 @@ GEM
       rest-client (~> 2.0)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (0.8.0)
+    lefthook (1.0.2)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -742,7 +780,7 @@ GEM
       activesupport (>= 4)
       railties (>= 4)
       request_store (~> 1.0)
-    loofah (2.16.0)
+    loofah (2.18.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     lru_redux (1.1.0)
@@ -808,12 +846,13 @@ GEM
       shellany (~> 0.0)
     numerizer (0.2.0)
     oauth (0.5.6)
-    oauth2 (1.4.7)
-      faraday (>= 0.8, < 2.0)
+    oauth2 (2.0.3)
+      faraday (>= 0.17.3, < 3.0)
       jwt (>= 1.0, < 3.0)
-      multi_json (~> 1.3)
       multi_xml (~> 0.5)
       rack (>= 1.2, < 3)
+      rash_alt (>= 0.4, < 1)
+      version_gem (~> 1.0)
     octokit (4.20.0)
       faraday (>= 0.9)
       sawyer (~> 0.8.0, >= 0.5.3)
@@ -830,7 +869,7 @@ GEM
       plist (~> 3.1)
       train-core
       wmi-lite (~> 1.0)
-    oj (3.10.6)
+    oj (3.13.19)
     omniauth (1.9.1)
       hashie (>= 3.4.6)
       rack (>= 1.6.2, < 3)
@@ -861,18 +900,15 @@ GEM
     omniauth-github (1.4.0)
       omniauth (~> 1.5)
       omniauth-oauth2 (>= 1.4.0, < 2.0)
-    omniauth-gitlab (1.0.3)
-      omniauth (~> 1.0)
-      omniauth-oauth2 (~> 1.0)
     omniauth-google-oauth2 (0.6.0)
       jwt (>= 2.0)
       omniauth (>= 1.1.1)
       omniauth-oauth2 (>= 1.5)
-    omniauth-oauth (1.1.0)
+    omniauth-oauth (1.2.0)
       oauth
-      omniauth (~> 1.0)
-    omniauth-oauth2 (1.7.2)
-      oauth2 (~> 1.4)
+      omniauth (>= 1.0, < 3)
+    omniauth-oauth2 (1.7.3)
+      oauth2 (>= 1.4, < 3)
       omniauth (>= 1.9, < 3)
     omniauth-oauth2-generic (0.2.2)
       omniauth-oauth2 (~> 1.0)
@@ -887,10 +923,6 @@ GEM
     omniauth-twitter (1.4.0)
       omniauth-oauth (~> 1.1)
       rack
-    omniauth_crowd (2.4.0)
-      activesupport
-      nokogiri (>= 1.4.4)
-      omniauth (~> 1.0)
     open4 (1.3.4)
     openid_connect (1.3.0)
       activemodel
@@ -959,7 +991,7 @@ GEM
       coderay
       parser
       unparser
-    prometheus-client-mmap (0.15.0)
+    prometheus-client-mmap (0.16.2)
     pry (0.13.1)
       coderay (~> 1.1)
       method_source (~> 1.0)
@@ -981,7 +1013,7 @@ GEM
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
     racc (1.6.0)
-    rack (2.2.3.1)
+    rack (2.2.4)
     rack-accept (0.4.5)
       rack (>= 0.4)
     rack-attack (6.6.1)
@@ -1023,9 +1055,9 @@ GEM
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.2)
       loofah (~> 2.3)
-    rails-i18n (6.0.0)
+    rails-i18n (7.0.3)
       i18n (>= 0.7, < 2)
-      railties (>= 6.0.0, < 7)
+      railties (>= 6.0.0, < 8)
     railties (6.1.4.7)
       actionpack (= 6.1.4.7)
       activesupport (= 6.1.4.7)
@@ -1035,6 +1067,8 @@ GEM
     rainbow (3.1.1)
     rake (13.0.6)
     randexp (0.1.7)
+    rash_alt (0.4.12)
+      hashie (>= 3.4)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -1167,7 +1201,7 @@ GEM
     ruby2_keywords (0.0.5)
     ruby_parser (3.15.0)
       sexp_processor (~> 4.9)
-    rubyntlm (0.6.2)
+    rubyntlm (0.6.3)
     rubypants (0.2.0)
     rubyzip (2.3.2)
     rugged (1.2.0)
@@ -1218,8 +1252,8 @@ GEM
     settingslogic (2.0.9)
     sexp_processor (4.15.1)
     shellany (0.0.1)
-    shoulda-matchers (4.0.1)
-      activesupport (>= 4.2.0)
+    shoulda-matchers (5.1.0)
+      activesupport (>= 5.2.0)
     sidekiq (6.4.0)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
@@ -1393,6 +1427,7 @@ GEM
     validates_hostname (1.0.11)
       activerecord (>= 3.0)
       activesupport (>= 3.0)
+    version_gem (1.0.0)
     version_sorter (2.2.4)
     view_component (2.50.0)
       activesupport (>= 5.0.0, < 8.0)
@@ -1400,7 +1435,7 @@ GEM
     vmstat (2.3.0)
     warden (1.2.8)
       rack (>= 2.0.6)
-    warning (1.2.0)
+    warning (1.3.0)
     webauthn (2.3.0)
       android_key_attestation (~> 0.3.0)
       awrence (~> 1.1)
@@ -1447,7 +1482,7 @@ DEPENDENCIES
   addressable (~> 2.8)
   akismet (~> 3.0)
   apollo_upload_server (~> 2.1.0)
-  asana (~> 0.10.3)
+  asana (~> 0.10.13)
   asciidoctor (~> 2.0.10)
   asciidoctor-include-ext (~> 0.4.0)
   asciidoctor-kroki (~> 0.5.0)
@@ -1457,8 +1492,8 @@ DEPENDENCIES
   autoprefixer-rails (= 10.2.5.1)
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3)
-  aws-sdk-s3 (~> 1)
+  aws-sdk-core (~> 3.131.0)
+  aws-sdk-s3 (~> 1.114.0)
   babosa (~> 1.0.4)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
@@ -1489,6 +1524,7 @@ DEPENDENCIES
   derailed_benchmarks
   device_detector
   devise (~> 4.7.2)
+  devise-pbkdf2-encryptable (~> 0.0.0)!
   devise-two-factor (~> 4.0.2)
   diff_match_patch (~> 0.1.0)
   diffy (~> 3.3)
@@ -1501,6 +1537,7 @@ DEPENDENCIES
   elasticsearch-rails (~> 7.2)
   email_reply_trimmer (~> 0.1)
   email_spec (~> 2.2.0)
+  error_tracking_open_api!
   erubi (~> 1.9.0)
   escape_utils (~> 1.1)
   factory_bot_rails (~> 6.2.0)
@@ -1527,7 +1564,7 @@ DEPENDENCIES
   gitaly (~> 15.1.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 3.4.0)
+  gitlab-dangerfiles (~> 3.4.3)
   gitlab-experiment (~> 0.7.1)
   gitlab-fog-azure-rm (~> 1.3.0)
   gitlab-labkit (~> 0.23.0)
@@ -1540,7 +1577,7 @@ DEPENDENCIES
   gitlab-sidekiq-fetcher (= 0.8.0)
   gitlab-styles (~> 7.1.0)
   gitlab_chronic_duration (~> 0.10.6.2)
-  gitlab_omniauth-ldap (~> 2.1.1)
+  gitlab_omniauth-ldap (~> 2.2.0)
   gon (~> 6.4.0)
   google-api-client (~> 0.33)
   google-protobuf (~> 3.19.0)
@@ -1552,7 +1589,7 @@ DEPENDENCIES
   graphiql-rails (~> 1.8)
   graphlient (~> 0.5.0)
   graphql (~> 1.13.12)
-  graphql-docs (~> 1.6.0)
+  graphql-docs (~> 2.1.0)
   grpc (~> 1.42.0)
   gssapi
   guard-rspec
@@ -1568,7 +1605,7 @@ DEPENDENCIES
   icalendar
   invisible_captcha (~> 1.1.0)
   ipaddress (~> 0.8.3)
-  ipynbdiff (= 0.4.7)
+  ipynbdiff!
   jira-ruby (~> 2.1.4)
   js_regex (~> 3.7)
   json (~> 2.5.1)
@@ -1579,14 +1616,15 @@ DEPENDENCIES
   knapsack (~> 1.21.1)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.9.2)
-  lefthook (~> 0.8.0)
+  lefthook (~> 1.0.0)
   letter_opener_web (~> 2.0.0)
   licensee (~> 9.14.1)
   lockbox (~> 0.6.2)
   lograge (~> 0.5)
-  loofah (~> 2.2)
+  loofah (~> 2.18.0)
   lru_redux
   mail (= 2.7.1)
+  mail-smtp_pool (~> 0.1.0)!
   marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
   method_source (~> 1.0)
@@ -1596,10 +1634,10 @@ DEPENDENCIES
   net-ldap (~> 0.16.3)
   net-ntp
   nokogiri (~> 1.13.6)
-  oauth2 (~> 1.4)
+  oauth2 (~> 2.0)
   octokit (~> 4.15)
   ohai (~> 16.10)
-  oj (~> 3.10.6)
+  oj (~> 3.13.19)
   omniauth (~> 1.8)
   omniauth-alicloud (~> 1.0.1)
   omniauth-atlassian-oauth2 (~> 0.2.0)
@@ -1611,14 +1649,14 @@ DEPENDENCIES
   omniauth-dingtalk-oauth2 (~> 1.0)
   omniauth-facebook (~> 4.0.0)
   omniauth-github (~> 1.4)
-  omniauth-gitlab (~> 1.0.2)
+  omniauth-gitlab (~> 4.0.0)!
   omniauth-google-oauth2 (~> 0.6.0)
   omniauth-oauth2-generic (~> 0.2.2)
   omniauth-salesforce (~> 1.0.5)
   omniauth-saml (~> 1.10)
   omniauth-shibboleth (~> 1.3.0)
   omniauth-twitter (~> 1.4)
-  omniauth_crowd (~> 2.4.0)
+  omniauth_crowd (~> 2.4.0)!
   org-ruby (~> 0.9.12)
   pact (~> 1.12)
   parallel (~> 1.19)
@@ -1628,13 +1666,13 @@ DEPENDENCIES
   pg_query (~> 2.1.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
-  prometheus-client-mmap (~> 0.15.0)
+  prometheus-client-mmap (~> 0.16)
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.5.0)
   puma (~> 5.6.2)
   puma_worker_killer (~> 0.3.1)
-  rack (~> 2.2.3.0)
+  rack (~> 2.2.4)
   rack-attack (~> 6.6.0)
   rack-cors (~> 1.1.0)
   rack-oauth2 (~> 1.19.0)
@@ -1642,7 +1680,7 @@ DEPENDENCIES
   rack-timeout (~> 0.6.0)
   rails (~> 6.1.4.7)
   rails-controller-testing
-  rails-i18n (~> 6.0)
+  rails-i18n (~> 7.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
   rdoc (~> 6.3.2)
@@ -1682,7 +1720,7 @@ DEPENDENCIES
   sentry-ruby (~> 5.1.1)
   sentry-sidekiq (~> 5.1.1)
   settingslogic (~> 2.0.9)
-  shoulda-matchers (~> 4.0.1)
+  shoulda-matchers (~> 5.1.0)
   sidekiq (~> 6.4)
   sidekiq-cron (~> 1.2)
   sigdump (~> 0.2.4)
@@ -1722,7 +1760,7 @@ DEPENDENCIES
   version_sorter (~> 2.2.4)
   view_component (~> 2.50.0)
   vmstat (~> 2.3.0)
-  warning (~> 1.2.0)
+  warning (~> 1.3.0)
   webauthn (~> 2.3)
   webmock (~> 3.9.1)
   webrick (~> 1.6.1)
@@ -1730,4 +1768,4 @@ DEPENDENCIES
   yajl-ruby (~> 1.4.1)
 
 BUNDLED WITH
-   2.3.9
+   2.3.15
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 5f11d609878..7adf6fb2b8e 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -211,10 +211,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14cs2k802hlvlmn0nwnx4k3g44944x0a8dsj3k14mjnbvcw1fkxh";
+      sha256 = "1b6pqazhi9922y79763m0alvdmvm90i806qgb1a8l4fnimzx7l1n";
       type = "gem";
     };
-    version = "0.10.3";
+    version = "0.10.13";
   };
   asciidoctor = {
     groups = ["default"];
@@ -337,20 +337,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r0pn66yqrdkrfdin7qdim0yj2x75miyg4wp6mijckhzhrjb7cv5";
+      sha256 = "1pyis1nvnbjxk12a43xvgj2gv0mvp4cnkc1gzw0v1018r61399gz";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   aws-partitions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12q3swh4f44iqlq2md9lphg8csi0hd35jhgmkkkji9n0mgay4ggh";
+      sha256 = "0cx73zazv4jsh51b08jgf7pzn62wmfqlwwg2z8w4rcqbvn326n93";
       type = "gem";
     };
-    version = "1.345.0";
+    version = "1.600.0";
   };
   aws-sdk-cloudformation = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -369,10 +369,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xfv8nfz8n700z29di51mcyyrnmbpq7flff4hx9mm92avnly1ysy";
+      sha256 = "0yiz3aaik62rxhxipwznb2bv8ywha13vdxg9nk6anq9bd0nn0728";
       type = "gem";
     };
-    version = "3.104.3";
+    version = "3.131.1";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -380,10 +380,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rpwpj4f4q9wdrbgiqngzwfdaaqyz0iif8sv16z6z0mm6y3cb06q";
+      sha256 = "1m8vwm4cakfv3i4f723a6id07myx18fpdbq8ypa2j7r5njwxpmzz";
       type = "gem";
     };
-    version = "1.36.0";
+    version = "1.57.0";
   };
   aws-sdk-s3 = {
     dependencies = ["aws-sdk-core" "aws-sdk-kms" "aws-sigv4"];
@@ -391,10 +391,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "068xx6wp86wkmikdzg4wqxmg570hc3ydp8211j02g13djjr3k28n";
+      sha256 = "1r6dxz3llgxbbm66jq5mkzk0i6qsxwv0d9s0ipwb23vv3bgp23yf";
       type = "gem";
     };
-    version = "1.75.0";
+    version = "1.114.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -402,10 +402,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0aknh3q37rq3ixxa84x2p26g8a15zmiig2rm1pmailsb9vqhfh3j";
+      sha256 = "0xp7diwq7nv4vvxrl9x3lis2l4x6bissrfzbfyy6rv5bmj5w109z";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.5.0";
   };
   azure-storage-blob = {
     dependencies = ["azure-storage-common" "nokogiri"];
@@ -2040,10 +2040,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13c7k36xq042fbf7d9jwgfc30zq9dfziwvqfi88h2199v9dkylix";
+      sha256 = "06jfkak5z7jj1g8vy8ljnxradk111phg41f8p6ays4ckfrimkvm4";
       type = "gem";
     };
-    version = "3.4.0";
+    version = "3.4.3";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store"];
@@ -2179,10 +2179,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f8cjbzlhckarmm59l380jjy33a3hlljg69b3zkh8rhy1xd3xr90";
+      sha256 = "1343sax19jidp7nr4s8bxpkyqwy6zb9lfslg99jys8xinfn20kdv";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2364,10 +2364,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12wzsikbn54b2hcv100hz7isq5gdjm5w5b8xya64ra5sw6sabq8d";
+      sha256 = "0xmmifirvm4hay8qy6hjsdwms56sk973cq1b9c85b97xz0129f3y";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "2.1.0";
   };
   grpc = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types"];
@@ -2698,17 +2698,6 @@
     };
     version = "0.8.3";
   };
-  ipynbdiff = {
-    dependencies = ["diffy" "json"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bm7k1lga4jmbi7fx373npbi0smm7jkhhpvnh7jrjawnjmfii1bz";
-      type = "gem";
-    };
-    version = "0.4.7";
-  };
   jaeger-client = {
     dependencies = ["opentracing" "thrift"];
     groups = ["default"];
@@ -2746,10 +2735,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d4wac0dcd1jf6kc57891glih9w57552zgqswgy74d1xhgnk0ngf";
+      sha256 = "1mnvb80cdg7fzdcs3xscv21p28w4igk5sj5m7m81xp8v2ks87jj0";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "1.6.1";
   };
   js_regex = {
     dependencies = ["character_set" "regexp_parser" "regexp_property_values"];
@@ -2929,10 +2918,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05ykgpj6cka9vprvrk37ixyhj2pdw7a9m6bq645yai6ihghahlf0";
+      sha256 = "0zmg1kl5fh38gs4nj6mbj1rg61jg1iwplciq7n0qml5jckm75fpd";
       type = "gem";
     };
-    version = "0.8.0";
+    version = "1.0.2";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -3025,10 +3014,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s6z5bvhdhnqv4wg8zcz3mhbc7i4dbqskv5jvhprz33ak7682km";
+      sha256 = "18ymp6l3bv7abz07k6qbbi9c9vsiahq30d2smh4qzsvag8j5m5v1";
       type = "gem";
     };
-    version = "2.16.0";
+    version = "2.18.0";
   };
   lru_redux = {
     groups = ["default"];
@@ -3468,15 +3457,15 @@
     version = "0.5.6";
   };
   oauth2 = {
-    dependencies = ["faraday" "jwt" "multi_json" "multi_xml" "rack"];
+    dependencies = ["faraday" "jwt" "multi_xml" "rack" "rash_alt" "version_gem"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1q6q2kgpxmygk8kmxqn54zkw8cs57a34zzz5cxpsh1bj3ag06rk3";
+      sha256 = "06y4wnsc1flbgv8vhh650x7f2k0k8238zcrmncil4swkb9kdhhxk";
       type = "gem";
     };
-    version = "1.4.7";
+    version = "2.0.3";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -3505,10 +3494,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zik71a9dj2c0cnbqxjfzgrg6r2l3f7584813z6asl50nfdbf7jw";
+      sha256 = "1b10apyzm1qyph42438z9nx2ln5v9sg0686ws9gdrv5wh482fnmf";
       type = "gem";
     };
-    version = "3.10.6";
+    version = "3.13.19";
   };
   omniauth = {
     dependencies = ["hashie" "rack"];
@@ -3631,17 +3620,6 @@
     };
     version = "1.4.0";
   };
-  omniauth-gitlab = {
-    dependencies = ["omniauth" "omniauth-oauth2"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "19ydk2zd2mz8zi80z3l03pajpm9357sg3lrankrcb3pirkkdb9fp";
-      type = "gem";
-    };
-    version = "1.0.3";
-  };
   omniauth-google-oauth2 = {
     dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
     groups = ["default"];
@@ -3659,10 +3637,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n5vk4by7hkyc09d9blrw2argry5awpw4gbw1l4n2s9b3j4qz037";
+      sha256 = "0yw2vzx633p9wpdkd4jxsih6mw604mj7f6myyfikmj4d95c8d9z7";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.2.0";
   };
   omniauth-oauth2 = {
     dependencies = ["oauth2" "omniauth"];
@@ -3670,10 +3648,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ry65f309rnzhgdjvqybkd5i4qp9rpk1gbp4dz02h4l6bkk6ya10";
+      sha256 = "0ia73zcbmhf02krlkq2rxmksx93jp777ax5x58fzkq3jzacqyniz";
       type = "gem";
     };
-    version = "1.7.2";
+    version = "1.7.3";
   };
   omniauth-oauth2-generic = {
     dependencies = ["omniauth-oauth2"];
@@ -3730,17 +3708,6 @@
     };
     version = "1.4.0";
   };
-  omniauth_crowd = {
-    dependencies = ["activesupport" "nokogiri" "omniauth"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1wiq1vnwjddzw2qzkpr3nqzx6glmcz5pfylw10pc7vkzdcmkpy37";
-      type = "gem";
-    };
-    version = "2.4.0";
-  };
   open4 = {
     groups = ["default" "development"];
     platforms = [];
@@ -4009,10 +3976,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vn736898qyyw29kjyjifx2bg18r6gfaw3q8xzjgmr0jk4jz29c3";
+      sha256 = "0r8iaviqw0bjp83364k04n5kyzvr0hawf3h5xlgjsg30vmpykrrn";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.2";
   };
   pry = {
     dependencies = ["coderay" "method_source"];
@@ -4129,10 +4096,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b1qsg0yfargdhmpapp2d3mlxj82wyygs9nj74w0r03diyi8swlc";
+      sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa";
       type = "gem";
     };
-    version = "2.2.3.1";
+    version = "2.2.4";
   };
   rack-accept = {
     dependencies = ["rack"];
@@ -4260,10 +4227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05mcgv748vppnm3fnml37wjy3dw61wj8vfw14ldaj1yx1bmkhb07";
+      sha256 = "1lrbrx88ic42adcj36wip3dk1svmqld1f7qksngi4b9kqnc8w5g3";
       type = "gem";
     };
-    version = "6.0.0";
+    version = "7.0.3";
   };
   railties = {
     dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
@@ -4306,6 +4273,17 @@
     };
     version = "0.1.7";
   };
+  rash_alt = {
+    dependencies = ["hashie"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qn9qrbi79mr4nyf1fqv3fjbh9ipx6r42vwfxmwrkpxp3ansjhx";
+      type = "gem";
+    };
+    version = "0.4.12";
+  };
   rb-fsevent = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4896,10 +4874,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy";
+      sha256 = "0b8hczk8hysv53ncsqzx4q6kma5gy5lqc7s5yx8h64x3vdb18cjv";
       type = "gem";
     };
-    version = "0.6.2";
+    version = "0.6.3";
   };
   rubypants = {
     groups = ["default"];
@@ -5161,10 +5139,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s6a2i39lsqq8rrkk2pddqcb10bsihxy3v5gpnc2gk8xakj1brdq";
+      sha256 = "01svmyma958sbqfz0v29lbqbr0ibvgcng352nhx6bsc9k5c207d0";
       type = "gem";
     };
-    version = "4.0.1";
+    version = "5.1.0";
   };
   sidekiq = {
     dependencies = ["connection_pool" "rack" "redis"];
@@ -5986,6 +5964,16 @@
     };
     version = "1.0.11";
   };
+  version_gem = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bwgbw56z2mhh2j044lgahrsiddibxx0r62r0cxvp0k4sjj9774j";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
   version_sorter = {
     groups = ["default"];
     platforms = [];
@@ -6033,10 +6021,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qhniramhgrcqhb905rkc82k29kgd6535jqf0aii5w3v6m2kn8qd";
+      sha256 = "17h6x3fh0y46gpkzpknbh94qxcp0pqlvacc90r35rgahirfmls93";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   webauthn = {
     dependencies = ["android_key_attestation" "awrence" "bindata" "cbor" "cose" "openssl" "safety_net_attestation" "securecompare" "tpm-key_attestation"];
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index bee10e49f4b..0dd8109a5df 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -15,6 +15,9 @@ from typing import Iterable
 
 import requests
 
+# Always keep this in sync with the GitLaab version you're updating to.
+# If you see any errors about vendored dependencies during an update, check the Gemfile.
+VENDORED_GEMS = ['devise-pbkdf2-encryptable', 'omniauth-gitlab', 'omniauth_crowd', 'mail-smtp_pool', 'ipynbdiff', 'error_tracking_open_api']
 logger = logging.getLogger(__name__)
 
 
@@ -85,7 +88,8 @@ class GitLabRepo:
                     owner=self.owner,
                     repo=self.repo,
                     rev=rev,
-                    passthru=passthru)
+                    passthru=passthru,
+                    vendored_gems=VENDORED_GEMS)
 
 
 def _get_data_json():
@@ -139,15 +143,30 @@ def update_rubyenv():
     data = _get_data_json()
     rev = data['rev']
 
-    with open(rubyenv_dir / 'Gemfile.lock', 'w') as f:
-        f.write(repo.get_file('Gemfile.lock', rev))
+    gemfile = repo.get_file('Gemfile', rev)
+    gemfile_lock = repo.get_file('Gemfile.lock', rev)
+
     with open(rubyenv_dir / 'Gemfile', 'w') as f:
-        original = repo.get_file('Gemfile', rev)
-        f.write(re.sub(r".*mail-smtp_pool.*", "", original))
+        f.write(re.sub(f'.*({"|".join(VENDORED_GEMS)}).*', "", gemfile))
+
+    with open(rubyenv_dir / 'Gemfile.lock', 'w') as f:
+        f.write(gemfile_lock)
 
     subprocess.check_output(['bundle', 'lock'], cwd=rubyenv_dir)
     subprocess.check_output(['bundix'], cwd=rubyenv_dir)
 
+    with open(rubyenv_dir / 'Gemfile', 'w') as f:
+        for gem in VENDORED_GEMS:
+            gemfile = gemfile.replace(f'path: \'vendor/gems/{gem}\'', f'path: \'{gem}\'')
+
+        f.write(gemfile)
+
+    with open(rubyenv_dir / 'Gemfile.lock', 'w') as f:
+        for gem in VENDORED_GEMS:
+            gemfile_lock = gemfile_lock.replace(f'remote: vendor/gems/{gem}', f'remote: {gem}')
+
+        f.write(gemfile_lock)
+
 
 @cli.command('update-gitaly')
 def update_gitaly():