about summary refs log tree commit diff
path: root/pkgs/applications/version-management
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/version-management')
-rw-r--r--pkgs/applications/version-management/cgit/common.nix2
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix6
-rw-r--r--pkgs/applications/version-management/delta/default.nix5
-rw-r--r--pkgs/applications/version-management/forgejo/default.nix32
-rw-r--r--pkgs/applications/version-management/forgejo/static-root-path.patch13
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--pkgs/applications/version-management/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/ghq/default.nix6
-rw-r--r--pkgs/applications/version-management/git-absorb/default.nix6
-rw-r--r--pkgs/applications/version-management/git-branchless/default.nix14
-rw-r--r--pkgs/applications/version-management/git-cliff/default.nix6
-rw-r--r--pkgs/applications/version-management/git-credential-oauth/default.nix8
-rw-r--r--pkgs/applications/version-management/git-interactive-rebase-tool/default.nix7
-rw-r--r--pkgs/applications/version-management/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-mit/default.nix6
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-repo/import-ssl-module.patch4
-rw-r--r--pkgs/applications/version-management/git-review/default.nix6
-rw-r--r--pkgs/applications/version-management/git-town/default.nix10
-rw-r--r--pkgs/applications/version-management/git-up/default.nix2
-rw-r--r--pkgs/applications/version-management/git/default.nix34
-rw-r--r--pkgs/applications/version-management/gitea/default.nix4
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix86
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/data.json18
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix14
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-elasticsearch-indexer/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-pages/default.nix6
-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/Gemfile109
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock417
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix495
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix6
-rw-r--r--pkgs/applications/version-management/gitsign/default.nix6
-rw-r--r--pkgs/applications/version-management/gitstatus/default.nix4
-rw-r--r--pkgs/applications/version-management/gitui/default.nix55
-rw-r--r--pkgs/applications/version-management/glitter/default.nix6
-rw-r--r--pkgs/applications/version-management/jujutsu/default.nix6
-rw-r--r--pkgs/applications/version-management/lucky-commit/default.nix6
-rw-r--r--pkgs/applications/version-management/meld/default.nix4
-rw-r--r--pkgs/applications/version-management/p4/default.nix9
-rw-r--r--pkgs/applications/version-management/pijul/default.nix6
-rw-r--r--pkgs/applications/version-management/radicle-upstream/default.nix3
-rw-r--r--pkgs/applications/version-management/redmine/0001-python3.patch275
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile107
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile.lock313
-rw-r--r--pkgs/applications/version-management/redmine/default.nix53
-rw-r--r--pkgs/applications/version-management/redmine/gemset.nix1132
-rwxr-xr-xpkgs/applications/version-management/redmine/update.sh19
-rw-r--r--pkgs/applications/version-management/sapling/default.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/builds.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/core.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix10
-rw-r--r--pkgs/applications/version-management/sourcehut/git.nix16
-rw-r--r--pkgs/applications/version-management/sourcehut/hg.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/hub.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/lists.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/man.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/meta.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/pages.nix12
-rw-r--r--pkgs/applications/version-management/sourcehut/paste.nix8
-rw-r--r--pkgs/applications/version-management/sourcehut/scm.nix4
-rw-r--r--pkgs/applications/version-management/sourcehut/todo.nix8
-rwxr-xr-xpkgs/applications/version-management/sourcehut/update.sh18
-rw-r--r--pkgs/applications/version-management/stgit/default.nix6
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix130
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix13
-rw-r--r--pkgs/applications/version-management/tig/default.nix4
-rw-r--r--pkgs/applications/version-management/ungit/default.nix6
72 files changed, 899 insertions, 2772 deletions
diff --git a/pkgs/applications/version-management/cgit/common.nix b/pkgs/applications/version-management/cgit/common.nix
index 0cbc04b7bcc23..b0ed32eb02227 100644
--- a/pkgs/applications/version-management/cgit/common.nix
+++ b/pkgs/applications/version-management/cgit/common.nix
@@ -12,6 +12,8 @@
 stdenv.mkDerivation {
   inherit pname version src gitSrc;
 
+  separateDebugInfo = true;
+
   nativeBuildInputs = [
     pkg-config asciidoc
   ] ++ (with python3Packages; [ python wrapPython ]);
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index bb1c3243d6dbb..7b573717c003d 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -11,7 +11,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "commitizen";
-  version = "3.18.4";
+  version = "3.22.0";
   format = "pyproject";
 
   disabled = python3.pythonOlder "3.8";
@@ -20,7 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "commitizen-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ODBlNwrvkYnZ+CvKyc5Bic6DK/z8d6/KR3+iarFxduE=";
+    hash = "sha256-wDxhhPYElNPimVa+wX6AnTZrZOhWjuMzNJ6urn0wruk=";
   };
 
   pythonRelaxDeps = [
@@ -55,7 +55,7 @@ python3.pkgs.buildPythonApplication rec {
     pytest-freezer
     pytest-mock
     pytest-regressions
-    pytestCheckHook
+    pytest7CheckHook
   ];
 
   doCheck = true;
diff --git a/pkgs/applications/version-management/delta/default.nix b/pkgs/applications/version-management/delta/default.nix
index 3065d56721939..b343e473e3c8b 100644
--- a/pkgs/applications/version-management/delta/default.nix
+++ b/pkgs/applications/version-management/delta/default.nix
@@ -44,6 +44,11 @@ rustPlatform.buildRustPackage rec {
       etc/completion/completion.{bash,fish,zsh}
   '';
 
+  # test_env_parsing_with_pager_set_to_bat sets environment variables,
+  # which can be flaky with multiple threads:
+  # https://github.com/dandavison/delta/issues/1660
+  dontUseCargoParallelTests = true;
+
   checkFlags = lib.optionals stdenv.isDarwin [
     "--skip=test_diff_same_non_empty_file"
   ];
diff --git a/pkgs/applications/version-management/forgejo/default.nix b/pkgs/applications/version-management/forgejo/default.nix
index c76b6ee984082..65c683ddbe763 100644
--- a/pkgs/applications/version-management/forgejo/default.nix
+++ b/pkgs/applications/version-management/forgejo/default.nix
@@ -24,7 +24,7 @@ let
     pname = "forgejo-frontend";
     inherit (forgejo) src version;
 
-    npmDepsHash = "sha256-I7eq9PB2Od7aaji+VrZj05VVCsGtCiXEMy88xrA8Ktg=";
+    npmDepsHash = "sha256-uMPy4cqMDNZTpF+pk7YibXEJO1zxVfwlCeFzGgJBiU0=";
 
     patches = [
       ./package-json-npm-build-frontend.patch
@@ -39,17 +39,33 @@ let
 in
 buildGoModule rec {
   pname = "forgejo";
-  version = "1.21.7-0";
+  version = "1.21.11-1";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "forgejo";
     repo = "forgejo";
     rev = "v${version}";
-    hash = "sha256-wYwQnZRIJSbwI+kOPedxnIdfhQ/wWxXpOpdfcFono6k=";
+    hash = "sha256-7oYsoZpZcNIUw3iXSi1Q5So2yYgKnT5U7GHQ4NVqVdc=";
+    # Forgejo has multiple different version strings that need to be provided
+    # via ldflags.  main.ForgejoVersion for example is a combination of a
+    # hardcoded gitea compatibility version string (in the Makefile) and
+    # git describe and is easiest to get by invoking the Makefile.
+    # So we do that, store it the src FOD to then extend the ldflags array
+    # in preConfigure.
+    # The `echo -e >> Makefile` is temporary and already part of the next
+    # major release.  Furthermore, the ldflags will change next major release
+    # and need to be updated accordingly.
+    leaveDotGit = true;
+    postFetch = ''
+      cd "$out"
+      echo -e 'show-version-full:\n\t@echo ''${FORGEJO_VERSION}' >> Makefile
+      make show-version-full > FULL_VERSION
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
   };
 
-  vendorHash = "sha256-Mptfd1WoUXNQkw7sa/GxIO7s5V5/9VmVBtvPCjMsa/4=";
+  vendorHash = "sha256-OuWNF+muWM6xqwkFxLIUsn/huqXj2VKg8BN9+JHVw58=";
 
   subPackages = [ "." ];
 
@@ -59,11 +75,11 @@ buildGoModule rec {
   buildInputs = lib.optional pamSupport pam;
 
   patches = [
-    ./../gitea/static-root-path.patch
+    ./static-root-path.patch
   ];
 
   postPatch = ''
-    substituteInPlace modules/setting/setting.go --subst-var data
+    substituteInPlace modules/setting/server.go --subst-var data
   '';
 
   tags = lib.optional pamSupport "pam"
@@ -76,6 +92,10 @@ buildGoModule rec {
     "-X 'main.Tags=${lib.concatStringsSep " " tags}'"
   ];
 
+  preConfigure = ''
+    export ldflags+=" -X code.gitea.io/gitea/routers/api/forgejo/v1.ForgejoVersion=$(cat FULL_VERSION) -X main.ForgejoVersion=$(cat FULL_VERSION)"
+  '';
+
   preBuild = ''
     go run build/merge-forgejo-locales.go
   '';
diff --git a/pkgs/applications/version-management/forgejo/static-root-path.patch b/pkgs/applications/version-management/forgejo/static-root-path.patch
new file mode 100644
index 0000000000000..7f70329c60407
--- /dev/null
+++ b/pkgs/applications/version-management/forgejo/static-root-path.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/setting/server.go b/modules/setting/server.go
+index 183906268..fa02e8915 100644
+--- a/modules/setting/server.go
++++ b/modules/setting/server.go
+@@ -319,7 +319,7 @@ func loadServerFrom(rootCfg ConfigProvider) {
+ 	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
+ 	Log.DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
+ 	if len(StaticRootPath) == 0 {
+-		StaticRootPath = AppWorkPath
++		StaticRootPath = "@data@"
+ 	}
+ 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
+ 	StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index 6883196756270..7a9a01ea255bc 100644
--- a/pkgs/applications/version-management/gerrit/default.nix
+++ b/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.9.1";
+  version = "3.9.2";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    hash = "sha256-WQjzkykKtrXfkNSWcM9GWy8LPMwxJpSbnWjpmslP0HA=";
+    hash = "sha256-KsuuwFKdpXHDVAZZ2JiX781mgqDQyyEILo4lmNn+8YE=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/version-management/gh/default.nix b/pkgs/applications/version-management/gh/default.nix
index 129ae0854bd5f..a5f0fc2cb2ba6 100644
--- a/pkgs/applications/version-management/gh/default.nix
+++ b/pkgs/applications/version-management/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.45.0";
+  version = "2.48.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-jztBWn/1bDTxR/q27RYJM6boFWyduTKAtIn5zIZK2tU=";
+    hash = "sha256-8vQQzLGb1cHeNJC/aUZbROfRoUtuujEKoLWBgLZnhls=";
   };
 
-  vendorHash = "sha256-FprVBvYPGWLcUKlWg9JU7yy2KDa/3rceAEHUIYHN4f8=";
+  vendorHash = "sha256-rQtRBXhG5fF+3cIIv9i5r8Kd9YeIq/aDLAw8Rqxn6ww=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/ghq/default.nix b/pkgs/applications/version-management/ghq/default.nix
index f23fd8b441ac9..da0fe83bf8248 100644
--- a/pkgs/applications/version-management/ghq/default.nix
+++ b/pkgs/applications/version-management/ghq/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ghq";
-  version = "1.5.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "sha256-l+Ycts7PSKR72GsHJ1zWqpyd0BMMib/GTUv+B0x6d8M=";
+    sha256 = "sha256-fp/pqLpuEqvLoB3ioDd1Kx+i1NUI+bUDJzdaT7dQGSg=";
   };
 
-  vendorHash = "sha256-6ZDvU3RQ/1M4DZMFOaQsEuodldB8k+2thXNhvZlVQEg=";
+  vendorHash = "sha256-M9B19rSEMnmT4wfOVnSAK06UPR/xrs0252lX3B9ebF8=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/version-management/git-absorb/default.nix b/pkgs/applications/version-management/git-absorb/default.nix
index 13dcac9fde6d8..a3f8c5430d3ed 100644
--- a/pkgs/applications/version-management/git-absorb/default.nix
+++ b/pkgs/applications/version-management/git-absorb/default.nix
@@ -2,20 +2,20 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-absorb";
-  version = "0.6.12";
+  version = "0.6.13";
 
   src = fetchFromGitHub {
     owner = "tummychow";
     repo = "git-absorb";
     rev = "refs/tags/${version}";
-    hash = "sha256-yHCO1v1d0MUakae16fFVvtKG3rVxU/Cii/G6IKzyebA=";
+    hash = "sha256-k0smjIpy/+y6M5p24Ju4CVJkThzWOgp5kBJuVnCrXiE=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoHash = "sha256-Bx7gH7jSLizG95JyBtziPBby9mF1Nj3CQexIg6gaiM0=";
+  cargoHash = "sha256-bRPdtiC9Dwi21g4WtjawQ2AUdizUEX2zPHAnG08D3ac=";
 
   postInstall = ''
     installManPage Documentation/git-absorb.1
diff --git a/pkgs/applications/version-management/git-branchless/default.nix b/pkgs/applications/version-management/git-branchless/default.nix
index a8041f2698bb9..d214f7b90608a 100644
--- a/pkgs/applications/version-management/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-branchless/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromGitHub
+, fetchpatch
 , git
 , libiconv
 , ncurses
@@ -23,6 +24,19 @@ rustPlatform.buildRustPackage rec {
     hash = "sha256-ev56NzrEF7xm3WmR2a0pHPs69Lvmb4He7+kIBYiJjKY=";
   };
 
+  patches = [
+    # Fix tests with Git 2.44.0+
+    (fetchpatch {
+      url = "https://github.com/arxanas/git-branchless/pull/1245.patch";
+      hash = "sha256-gBm0A478Uhg9IQVLQppvIeTa8s1yHUMddxiUbpHUvGw=";
+    })
+    # Fix tests with Git 2.44.0+
+    (fetchpatch {
+      url = "https://github.com/arxanas/git-branchless/pull/1161.patch";
+      hash = "sha256-KHobEIXhlDar8CvIVUi4I695jcJZXgGRhU86b99x86Y=";
+    })
+  ];
+
   cargoHash = "sha256-Ppw5TN/6zMNxFAx90Q9hQ7RdGxV+TT8UlOm68ldK8oc=";
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/git-cliff/default.nix b/pkgs/applications/version-management/git-cliff/default.nix
index b8b2a28a7795a..817394cdc5708 100644
--- a/pkgs/applications/version-management/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-cliff/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-cliff";
-  version = "2.1.2";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    hash = "sha256-5NWMpdrOWQcA3cxd5WNtnamnSMuZU3BGEMlRZ8NR+NE=";
+    hash = "sha256-FRcreSnSO65m9h9+SUg4qdFELvpVX1+HkWH3dI2RR/M=";
   };
 
-  cargoHash = "sha256-kIO3mD4SdQqlZYty8QWOBVvmaXujcEijeRONGYNZSng=";
+  cargoHash = "sha256-RlcZvyFi7fc8eJYB5X64axAnNp8Z1h0WOV4hM1SLoRk=";
 
   # attempts to run the program on .git in src which is not deterministic
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-credential-oauth/default.nix b/pkgs/applications/version-management/git-credential-oauth/default.nix
index 66d2439a00edd..c818874392af4 100644
--- a/pkgs/applications/version-management/git-credential-oauth/default.nix
+++ b/pkgs/applications/version-management/git-credential-oauth/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "git-credential-oauth";
@@ -11,6 +11,8 @@ buildGoModule rec {
     hash = "sha256-bqyoAAqli0L6Kf+W1sTh2vmmfaIj2OdpQyvQZnYOWWA=";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   ldflags = [
     "-s"
     "-w"
@@ -19,6 +21,10 @@ buildGoModule rec {
 
   vendorHash = "sha256-cCqbEv4kBnF6FWvfaXCOxadPVXR/AxXS3nXHf6WmsSs=";
 
+  postInstall = ''
+    installManPage $src/git-credential-oauth.1
+  '';
+
   meta = {
     description = "Git credential helper that securely authenticates to GitHub, GitLab and BitBucket using OAuth";
     homepage = "https://github.com/hickford/git-credential-oauth";
diff --git a/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
index 176e271475368..f450b17535dd8 100644
--- a/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-interactive-rebase-tool/default.nix
@@ -12,10 +12,9 @@ rustPlatform.buildRustPackage rec {
   };
 
   postPatch = ''
-    # unknown lint: `ffi_unwind_calls`
-    # note: the `ffi_unwind_calls` lint is unstable
-    substituteInPlace src/main.rs src/{config,core,display,input,git,runtime,todo_file,testutils,view}/src/lib.rs \
-      --replace "ffi_unwind_calls," ""
+    # error: lint `unused_tuple_struct_fields` has been renamed to `dead_code`
+    substituteInPlace scripts/data/lints.rs src/main.rs src/{config,core,display,git,input,runtime,testutils,todo_file,view}/src/lib.rs \
+      --replace-fail "unused_tuple_struct_fields," ""
   '';
 
   cargoLock = {
diff --git a/pkgs/applications/version-management/git-machete/default.nix b/pkgs/applications/version-management/git-machete/default.nix
index a038435b8d60e..3c97c1e2024b2 100644
--- a/pkgs/applications/version-management/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.24.2";
+  version = "3.25.0";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-nxfSdgGF/hDFf7KIJ+tqCvxEi1GOjTAbpcJylIqhd/M=";
+    hash = "sha256-tLEuSwM8X0+oQDB9fmj5OQsC7iA906EQZz3yvB6rXfk=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix
index bc59aa6ffda16..ff1f8e98a79d0 100644
--- a/pkgs/applications/version-management/git-mit/default.nix
+++ b/pkgs/applications/version-management/git-mit/default.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  version = "5.12.191";
+  version = "5.12.196";
 in
 rustPlatform.buildRustPackage {
   pname = "git-mit";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "PurpleBooth";
     repo = "git-mit";
     rev = "v${version}";
-    hash = "sha256-aSEoAs0s7zyALf3s77eVlrjkCrn7ihW/4OW5hN8YL8k=";
+    hash = "sha256-vv60+8H6WQes+xVJRsgLppwQ/DkQbfNC6tRx2TB/4HQ=";
   };
 
-  cargoHash = "sha256-pm+XreLGxZJKRcrmU1ooMjN7MTRJqgKOy2J1OqdodxE=";
+  cargoHash = "sha256-jK2GTI+T7Ie5cdQQQHh2aj6Egb/5BxsfJkFrSo+z7Pc=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index e989e03ca1cfb..a7d0f49344a04 100644
--- a/pkgs/applications/version-management/git-repo/default.nix
+++ b/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.39";
+  version = "2.45";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    hash = "sha256-Qw0x/YiXMDrlTy6boembfqVRvEYiMWOALJtaMrr7/WI=";
+    hash = "sha256-f765TcOHL8wdPa9qSmGegofjCXx1tF/K5bRQnYQcYVc=";
   };
 
   # Fix 'NameError: name 'ssl' is not defined'
diff --git a/pkgs/applications/version-management/git-repo/import-ssl-module.patch b/pkgs/applications/version-management/git-repo/import-ssl-module.patch
index efc3d2b1f8a5e..43e879a8ba174 100644
--- a/pkgs/applications/version-management/git-repo/import-ssl-module.patch
+++ b/pkgs/applications/version-management/git-repo/import-ssl-module.patch
@@ -18,11 +18,13 @@ diff --git a/repo b/repo
 index 8b05def..f394b3e 100755
 --- a/repo
 +++ b/repo
-@@ -236,6 +236,7 @@ import optparse
+@@ -236,8 +236,9 @@ import optparse
  import re
  import shutil
  import stat
 +import ssl
+ import urllib.error
+ import urllib.request
  
  if sys.version_info[0] == 3:
    import urllib.request
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index e32d89c042ca2..2f7defa3ee55c 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonApplication rec {
   pname = "git-review";
-  version = "2.3.1";
+  version = "2.4.0";
 
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
@@ -18,9 +18,9 @@ buildPythonApplication rec {
   src = fetchFromGitea {
     domain = "opendev.org";
     owner = "opendev";
-    repo = pname;
+    repo = "git-review";
     rev = version;
-    sha256 = "sha256-C8M4b/paHJB9geizc1eIhXsTuLeeS4dDisCfCQF1RuU=";
+    hash = "sha256-UfYc662NqnQt0+CKc+18jXnNTOcZv8urCNBsWd6x0VQ=";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/version-management/git-town/default.nix b/pkgs/applications/version-management/git-town/default.nix
index ca63fb9b4c1ef..1efcf23600be1 100644
--- a/pkgs/applications/version-management/git-town/default.nix
+++ b/pkgs/applications/version-management/git-town/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "git-town";
-  version = "11.1.0";
+  version = "14.1.0";
 
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    hash = "sha256-QQ+sIZzkzecs+pZBzsmCL048JZpMPvdYi0PRtMN4AhY=";
+    hash = "sha256-BhtKl052P3PGxGXb5lSOIsncJLiNlevzBMEF2kCuFpM=";
   };
 
   vendorHash = null;
@@ -32,8 +32,6 @@ buildGoModule rec {
     let
       skippedTests = [
         "TestGodog"
-        "TestRunner_CreateChildFeatureBranch"
-        "TestShellRunner_RunStringWith_Dir"
         "TestMockingShell_MockCommand"
         "TestShellRunner_RunStringWith_Input"
       ];
@@ -56,14 +54,14 @@ buildGoModule rec {
   passthru.tests.version = testers.testVersion {
     package = git-town;
     command = "git-town --version";
-    version = "v${version}";
+    inherit version;
   };
 
   meta = with lib; {
     description = "Generic, high-level git support for git-flow workflows";
     homepage = "https://www.git-town.com/";
     license = licenses.mit;
-    maintainers = with maintainers; [ allonsy blaggacao ];
+    maintainers = with maintainers; [ allonsy blaggacao gabyx ];
     mainProgram = "git-town";
   };
 }
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index 851cb8464c5b2..5f91aacf63d8a 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -30,7 +30,7 @@ pythonPackages.buildPythonApplication rec {
 
   nativeCheckInputs = [
     git
-    pythonPackages.pytestCheckHook
+    pythonPackages.pytest7CheckHook
   ];
 
   # 1. git fails to run as it cannot detect the email address, so we set it
diff --git a/pkgs/applications/version-management/git/default.nix b/pkgs/applications/version-management/git/default.nix
index 767172787fba7..8f57c97230fbd 100644
--- a/pkgs/applications/version-management/git/default.nix
+++ b/pkgs/applications/version-management/git/default.nix
@@ -29,7 +29,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.43.2";
+  version = "2.44.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
@@ -42,7 +42,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    hash = "sha256-9hLBq8Y1V9UK04SYY/yRCWcBOfyZAeV0Rg7HbgURrbk=";
+    hash = "sha256-41hzjctbXqNAzpAKABXAOuhugE5/9k5HqkYx3e5oHeM=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -318,25 +318,20 @@ stdenv.mkDerivation (finalAttrs: {
     disable_test t0001-init 'shared overrides system'
     disable_test t0001-init 'init honors global core.sharedRepository'
     disable_test t1301-shared-repo
-    # git-completion.bash: line 405: compgen: command not found:
-    disable_test t9902-completion 'option aliases are shown with GIT_COMPLETION_SHOW_ALL'
+    # /build/git-2.44.0/contrib/completion/git-completion.bash: line 452: compgen: command not found
+    disable_test t9902-completion
 
     # Our patched gettext never fallbacks
     disable_test t0201-gettext-fallbacks
-
-    ${lib.optionalString (!sendEmailSupport) ''
-      # Disable sendmail tests
-      disable_test t9001-send-email
-    ''}
-
+  '' + lib.optionalString (!sendEmailSupport) ''
+    # Disable sendmail tests
+    disable_test t9001-send-email
+  '' + ''
     # XXX: I failed to understand why this one fails.
     # Could someone try to re-enable it on the next release ?
     # Tested to fail: 2.18.0 and 2.19.0
     disable_test t1700-split-index "null sha1"
 
-    # Tested to fail: 2.18.0
-    disable_test t9902-completion "sourcing the completion script clears cached --options"
-
     # Flaky tests:
     disable_test t5319-multi-pack-index
     disable_test t6421-merge-partial-clone
@@ -345,12 +340,11 @@ stdenv.mkDerivation (finalAttrs: {
     disable_test t0021-conversion
     disable_test t3910-mac-os-precompose
 
-    ${lib.optionalString (!perlSupport) ''
-      # request-pull is a Bash script that invokes Perl, so it is not available
-      # when NO_PERL=1, and the test should be skipped, but the test suite does
-      # not check for the Perl prerequisite.
-      disable_test t5150-request-pull
-    ''}
+  '' + lib.optionalString (!perlSupport) ''
+    # request-pull is a Bash script that invokes Perl, so it is not available
+    # when NO_PERL=1, and the test should be skipped, but the test suite does
+    # not check for the Perl prerequisite.
+    disable_test t5150-request-pull
   '' + lib.optionalString stdenv.isDarwin ''
     # XXX: Some tests added in 2.24.0 fail.
     # Please try to re-enable on the next release.
@@ -358,8 +352,6 @@ stdenv.mkDerivation (finalAttrs: {
     # fail (as of 2.33.0)
     #===(   18623;1208  8/?  224/?  2/? )= =fatal: Not a valid object name refs/tags/signed-empty
     disable_test t6300-for-each-ref
-    #===(   22665;1651  9/?  1/?  0/?  0/? )= =/private/tmp/nix-build-git-2.33.0.drv-2/git-2.33.0/t/../contrib/completion/git-completion.bash: line 405: compgen: command not found
-    disable_test t9902-completion
     # not ok 1 - populate workdir (with 2.33.1 on x86_64-darwin)
     disable_test t5003-archive-zip
   '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index 4cc1be3bd6427..4b2105fda93c0 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -20,12 +20,12 @@
 
 buildGoModule rec {
   pname = "gitea";
-  version = "1.21.8";
+  version = "1.21.11";
 
   # not fetching directly from the git repo, because that lacks several vendor files for the web UI
   src = fetchurl {
     url = "https://dl.gitea.com/gitea/${version}/gitea-src-${version}.tar.gz";
-    hash = "sha256-nJ357ckglXRcl205Cg4tg9ewmLn2MkKUDU3PpwBVlik=";
+    hash = "sha256-TxysXw3lVdV/hlILztM+D7wIpeqXfglAy7Ak2AxnlEM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
deleted file mode 100644
index b16befcd080d1..0000000000000
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, autoPatchelfHook
-, wrapGAppsHook
-, makeWrapper
-, gnome
-, libsecret
-, git
-, curl
-, nss
-, nspr
-, xorg
-, libdrm
-, alsa-lib
-, cups
-, mesa
-, systemd
-, openssl
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "github-desktop";
-  version = "3.3.6";
-  rcversion = "3";
-  arch = "amd64";
-
-  src = fetchurl {
-    url = "https://github.com/shiftkey/desktop/releases/download/release-${finalAttrs.version}-linux${finalAttrs.rcversion}/GitHubDesktop-linux-${finalAttrs.arch}-${finalAttrs.version}-linux${finalAttrs.rcversion}.deb";
-    hash = "sha256-900JhfHN78CuAXptPX2ToTvT9E+g+xRXqmlm34J9l6k=";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    (wrapGAppsHook.override { inherit makeWrapper; })
-  ];
-
-  buildInputs = [
-    gnome.gnome-keyring
-    xorg.libXdamage
-    xorg.libX11
-    libsecret
-    git
-    curl
-    nss
-    nspr
-    libdrm
-    alsa-lib
-    cups
-    mesa
-    openssl
-  ];
-
-  unpackPhase = ''
-    mkdir -p $TMP/${finalAttrs.pname} $out/{opt,bin}
-    cp $src $TMP/${finalAttrs.pname}.deb
-    ar vx ${finalAttrs.pname}.deb
-    tar --no-overwrite-dir -xvf data.tar.xz -C $TMP/${finalAttrs.pname}/
-  '';
-
-  installPhase = ''
-    cp -R $TMP/${finalAttrs.pname}/usr/share $out/
-    cp -R $TMP/${finalAttrs.pname}/usr/lib/${finalAttrs.pname}/* $out/opt/
-    ln -sf $out/opt/${finalAttrs.pname} $out/bin/${finalAttrs.pname}
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform=wayland}}"
-    )
-  '';
-
-  runtimeDependencies = [
-    (lib.getLib systemd)
-  ];
-
-  meta = {
-    description = "GUI for managing Git and GitHub.";
-    homepage = "https://desktop.github.com/";
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ dan4ik605743 ];
-    platforms = lib.platforms.linux;
-    mainProgram = "github-desktop";
-  };
-})
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index cedf8791fa790..a3160f1ce3a53 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -2,7 +2,7 @@
 , libXfixes, atk, gtk3, libXrender, pango, gnome, cairo, freetype, fontconfig
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
-, makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
+, makeDesktopItem, openssl, wrapGAppsHook, makeShellWrapper, at-spi2-atk, at-spi2-core, libuuid
 , e2fsprogs, krb5, libdrm, mesa, unzip, copyDesktopItems, libxshmfence, libxkbcommon, git
 , libGL, zlib, cacert
 }:
@@ -106,7 +106,7 @@ let
       comment = "Graphical Git client from Axosoft";
     }) ];
 
-    nativeBuildInputs = [ copyDesktopItems makeWrapper wrapGAppsHook ];
+    nativeBuildInputs = [ copyDesktopItems (wrapGAppsHook.override { makeWrapper = makeShellWrapper; }) ];
     buildInputs = [ gtk3 gnome.adwaita-icon-theme ];
 
     # avoid double-wrapping
@@ -124,6 +124,10 @@ let
       runHook postInstall
     '';
 
+    preFixup = ''
+      gappsWrapperArgs+=(--add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}")
+    '';
+
     postFixup = ''
       pushd $out/share/${pname}
       for file in gitkraken chrome-sandbox chrome_crashpad_handler; do
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index dddcdf5812d4e..09ef9a290d7ba 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,15 +1,15 @@
 {
-  "version": "16.8.1",
-  "repo_hash": "sha256-95YdEAUYoFDFX4COI6NnI6tDB+NLnihlJdUDM8NixXA=",
-  "yarn_hash": "1yhl4l2dln9ck4nbjjrlyjx17nxk4h12gb5hqjh4dq3rz3az3jvx",
+  "version": "16.10.3",
+  "repo_hash": "sha256-JeZHnoNMk7NYBeUy25YK+f6K7WOeTQnYV/pG08bmiwA=",
+  "yarn_hash": "0yzywfg4lqxjwm5cqsm4bn97zcrfvpnrs8rjrv9wv3xqvi9h9skd",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v16.8.1-ee",
+  "rev": "v16.10.3-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "16.8.1",
-    "GITLAB_PAGES_VERSION": "16.8.1",
-    "GITLAB_SHELL_VERSION": "14.33.0",
-    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.6.0",
-    "GITLAB_WORKHORSE_VERSION": "16.8.1"
+    "GITALY_SERVER_VERSION": "16.10.3",
+    "GITLAB_PAGES_VERSION": "16.10.3",
+    "GITLAB_SHELL_VERSION": "14.34.0",
+    "GITLAB_ELASTICSEARCH_INDEXER_VERSION": "4.8.0",
+    "GITLAB_WORKHORSE_VERSION": "16.10.3"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index 6c635aafe03ee..2e440e2b9766d 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -2,7 +2,7 @@
 , ruby_3_1, tzdata, git, nettools, nixosTests, nodejs, openssl
 , defaultGemConfig, buildRubyGem
 , gitlabEnterprise ? false, callPackage, yarn
-, prefetch-yarn-deps, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
+, fixup-yarn-lock, replace, file, cacert, fetchYarnDeps, makeWrapper, pkg-config
 , cargo, rustc, rustPlatform
 }:
 
@@ -49,7 +49,7 @@ let
                 cp Cargo.lock $out
               '';
             };
-            hash = "sha256-I5w/roDgnRe5eyXo0wiRcoWPpXEtpL3kOl9eDg99t/w=";
+            hash = "sha256-7q2xWAsFkXHxkYNzIjPwJRy72xMXF278cpVzqGLt/9Y=";
           };
 
           dontBuild = false;
@@ -94,7 +94,7 @@ let
       sha256 = data.yarn_hash;
     };
 
-    nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert prefetch-yarn-deps ];
+    nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert fixup-yarn-lock ];
 
     patches = [
       # Since version 12.6.0, the rake tasks need the location of git,
@@ -112,6 +112,8 @@ let
     GITLAB_LOG_PATH = "log";
     FOSS_ONLY = !gitlabEnterprise;
 
+    SKIP_YARN_INSTALL = 1;
+
     configurePhase = ''
       runHook preConfigure
 
@@ -142,11 +144,7 @@ let
     buildPhase = ''
       runHook preBuild
 
-      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
-      bundle exec rake gitlab:assets:check_page_bundle_mixins_css_for_sideeffects RAILS_ENV=production NODE_ENV=production
+      bundle exec rake gitlab:assets:compile RAILS_ENV=production NODE_ENV=production SKIP_YARN_INSTALL=true
 
       runHook postBuild
     '';
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index e6d9ce605b4c4..b0adadb93efc8 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.8.1";
+  version = "16.10.3";
   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-yR8O9F6THymKKHbnfh67NhEcNNBz7XHja/fpeTmVoe0=";
+      hash = "sha256-WdEYZL3g/aYh2Iy1ZgJhIHgQ4967FOxhiuQEokk1S2A=";
     };
 
-    vendorHash = "sha256-AkL/BbCrqgXyvfiMxzMIXeZwh5aFL2a2+myk/4YXMNc=";
+    vendorHash = "sha256-zaldiRg7fk/HncpfR7k+dDprsOp1ziQHgX8B4l7bwe0=";
 
     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 bc4093e720008..c7f241aa0f426 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-container-registry/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "gitlab-container-registry";
-  version = "3.88.0";
+  version = "3.92.0";
   rev = "v${version}-gitlab";
 
   # nixpkgs-update: no auto update
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "gitlab-org";
     repo = "container-registry";
     inherit rev;
-    hash = "sha256-egslb+8+RsDjpL5xQpdCU3QwFH59grRCkODQnAkZe/0=";
+    hash = "sha256-NHpqfqv3RCbWZilhXLGnQTN+ytzifAix6mcLk5Bw124=";
   };
 
-  vendorHash = "sha256-IFXIr0xYJCKM5VUHQV+4S/+FEAhFEjbMaU+9JWIh8cA=";
+  vendorHash = "sha256-KZWdM8Q8ipsgm7OoLyOuHo+4Vg2Nve+yZtTSUDgjOW4=";
 
   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 e3e607921345b..9b31c3b300a29 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.6.0";
+  version = "4.8.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-elasticsearch-indexer";
     rev = "v${version}";
-    sha256 = "sha256-HlT3Uj/DWbyK4xGq7SjKjZ90sww6oMiMDo05mtv6rTA=";
+    sha256 = "sha256-JHUDZmGlZGyvsB4wgAnNyIEtosZG4ajZ4eBGumH97ZI=";
   };
 
-  vendorHash = "sha256-YUH/agSy/shHmHRXlfDtgumbka6BjX5NTxgvlNJS4hQ=";
+  vendorHash = "sha256-ztRKXoXncY66XJVwlPn4ShLWTD4Cr0yYHoUdquJItDM=";
 
   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 7cc4c1c863734..3d920be8966d6 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.8.1";
+  version = "16.10.3";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-pages";
     rev = "v${version}";
-    hash = "sha256-Wj15GHm+5Xd5wq4C3dH+i94jh7pecHM6KCDugLm5YAA=";
+    hash = "sha256-mQNDnxdrM679ejjXZuqSV8SwLXFcKKKGOQt3DJWOZOo=";
   };
 
-  vendorHash = "sha256-9yogTSdEij/YwWGm3gz7jMn2AZcI+o7aEnjBvJ8E3vA=";
+  vendorHash = "sha256-WrR4eZRAuYkhr7ZqP7OXqJ6uwvxzn+t+3OdBNcNaq0M=";
   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 ab79f9fac00a3..2b99cc36ba7ec 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.33.0";
+  version = "14.34.0";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-0C3ODs2NElJQ+A6x9lZxSParTZc3q4YqWsw7DxwhODo=";
+    sha256 = "sha256-0LzZZn4kS5uRcj/uJgHvLvd6ZOLi1l4yaSqqRhmTYZs=";
   };
 
   buildInputs = [ ruby libkrb5 ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorHash = "sha256-sTAd/AbPx5WzBCzTDLvo/bDZcmz/xVhIhz9nFGBEYx4=";
+  vendorHash = "sha256-RtZ9d3cempY8PxaCPFJ2uEEorem6NDURHZPirr0SUjU=";
 
   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 58361fbfb6315..aa80f354b9854 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.8.1";
+  version = "16.10.3";
 
   # nixpkgs-update: no auto update
   src = fetchFromGitLab {
@@ -17,7 +17,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/workhorse";
 
-  vendorHash = "sha256-OcdfanSlH1ZUmKlhzMOD3oNySx1o92Is7EDf1Z3953A=";
+  vendorHash = "sha256-bbKX22Tb2pM+Wnyl1ojdA1nmT40Z5R99mDP1hLD+lco=";
   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 161dc46f78449..dccd147ca501d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -24,11 +24,11 @@ gem 'bundler-checksum', '~> 0.1.0', path: 'vendor/gems/bundler-checksum', requir
 # https://gitlab.com/gitlab-org/gitlab/-/issues/375713
 #
 # See https://docs.gitlab.com/ee/development/gemfile.html#upgrade-rails for guidelines when upgrading Rails
-gem 'rails', '~> 7.0.8' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'rails', '~> 7.0.8.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'activerecord-gitlab', path: 'gems/activerecord-gitlab' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'bootsnap', '~> 1.17.1', require: false # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'bootsnap', '~> 1.18.3', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'openssl', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'ipaddr', '~> 1.2.5' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -49,10 +49,10 @@ gem 'responders', '~> 3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'sprockets', '~> 3.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'view_component', '~> 3.8.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'view_component', '~> 3.11.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Supported DBs
-gem 'pg', '~> 1.5.4' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'pg', '~> 1.5.6' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'neighbor', '~> 0.2.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -134,21 +134,21 @@ gem 'net-ldap', '~> 0.17.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # API
 gem 'grape', '~> 2.0.0', feature_category: :api
-gem 'grape-entity', '~> 0.10.0', feature_category: :api
+gem 'grape-entity', '~> 0.10.2', feature_category: :api
 gem 'grape-swagger', '~> 2.0.1', group: [:development, :test], feature_category: :api
 gem 'grape-swagger-entity', '~> 0.5.1', group: [:development, :test], feature_category: :api
-gem 'grape-path-helpers', '~> 2.0.0', feature_category: :api
+gem 'grape-path-helpers', '~> 2.0.1', feature_category: :api
 gem 'rack-cors', '~> 2.0.1', require: 'rack/cors' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # GraphQL API
-gem 'graphql', '~> 2.0.27', feature_category: :api
+gem 'graphql', '~> 2.2.5', 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.5', feature_category: :api
-gem 'graphlient', '~> 0.5.0', feature_category: :importers # Used by BulkImport feature (group::import)
+gem 'graphlient', '~> 0.6.0', feature_category: :importers # Used by BulkImport feature (group::import)
 
 # Generate Fake data
-gem 'ffaker', '~> 2.10' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'ffaker', '~> 2.23' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'hashie', '~> 5.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -196,6 +196,10 @@ gem 'google-apis-serviceusage_v1', '~> 0.28.0' # rubocop:todo Gemfile/MissingFea
 gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
+gem 'googleauth', '~> 1.8.1', feature_category: :shared
+gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
+gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
+
 # Seed data
 gem 'seed-fu', '~> 2.3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -203,15 +207,15 @@ 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.190.2' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-core', '~> 3.191.3' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'aws-sdk-cloudformation', '~> 1' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'aws-sdk-s3', '~> 1.142.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'aws-sdk-s3', '~> 1.144.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
 
 # Markdown and HTML processing
 gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning
-gem 'deckar01-task_list', '2.3.3', feature_category: :team_planning
+gem 'deckar01-task_list', '2.3.4', feature_category: :team_planning
 gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning
 gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -226,7 +230,7 @@ gem 'asciidoctor-kroki', '~> 0.8.0', require: false # rubocop:todo Gemfile/Missi
 gem 'rouge', '~> 4.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'truncato', '~> 0.7.12' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'nokogiri', '~> 1.16' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'gitlab-glfm-markdown', '~> 0.0.11', feature_category: :team_planning
+gem 'gitlab-glfm-markdown', '~> 0.0.13', feature_category: :team_planning
 
 # Calendar rendering
 gem 'icalendar' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -236,7 +240,7 @@ gem 'diffy', '~> 3.4' # 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
+gem 'rack', '~> 2.2.8.1' # rubocop:todo Gemfile/MissingFeatureCategory
 # https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually
 gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -252,7 +256,7 @@ gem 'state_machines-activerecord', '~> 0.8.0' # rubocop:todo Gemfile/MissingFeat
 gem 'acts-as-taggable-on', '~> 10.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Background jobs
-gem 'sidekiq', '~> 7.1.6' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'sidekiq', path: 'vendor/gems/sidekiq-7.1.6', require: 'sidekiq' # 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
 
@@ -269,11 +273,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.6.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 're2', '2.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Misc
 
-gem 'semver_dialects', '~> 1.5', feature_category: :static_application_security_testing
+gem 'semver_dialects', '~> 2.0', 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
 
@@ -284,19 +288,20 @@ gem 'js_regex', '~> 3.8' # rubocop:todo Gemfile/MissingFeatureCategory
 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 'redis-namespace', '~> 1.10.0', feature_category: :redis
+gem 'redis', '~> 5.0.0', feature_category: :redis
+gem 'redis-clustering', '~> 5.0.0', feature_category: :redis
 gem 'connection_pool', '~> 2.4' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Redis session store
 gem 'redis-actionpack', '~> 5.4.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # Discord integration
-gem 'discordrb-webhooks', '~> 3.4', require: false, feature_category: :integrations
+gem 'discordrb-webhooks', '~> 3.5', require: false, feature_category: :integrations
 
 # Jira integration
-gem 'jira-ruby', '~> 2.1.4', feature_category: :integrations
-gem 'atlassian-jwt', '~> 0.2.0', feature_category: :integrations
+gem 'jira-ruby', '~> 2.3.0', feature_category: :integrations
+gem 'atlassian-jwt', '~> 0.2.1', feature_category: :integrations
 
 # Slack integration
 gem 'slack-messenger', '~> 2.3.4', feature_category: :integrations
@@ -336,8 +341,7 @@ gem 'gitlab_chronic_duration', '~> 0.12' # rubocop:todo Gemfile/MissingFeatureCa
 
 gem 'rack-proxy', '~> 0.7.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'sassc-rails', '~> 2.1.0' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'autoprefixer-rails', '10.2.5.1' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'cssbundling-rails', '1.4.0', feature_category: :shared
 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
@@ -347,7 +351,7 @@ 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
 
-gem 'gitlab-license', '~> 2.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-license', '~> 2.4', feature_category: :shared
 
 # Protect against bruteforcing
 gem 'rack-attack', '~> 6.7.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -360,20 +364,23 @@ gem 'sentry-sidekiq', '~> 5.10.0', feature_category: :error_tracking
 
 # PostgreSQL query parsing
 #
-gem 'pg_query', '~> 4.2.3' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'pg_query', '~> 5.1.0', feature_category: :database
 
 gem 'gitlab-schema-validation', path: 'gems/gitlab-schema-validation' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'gitlab-http', path: 'gems/gitlab-http' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'premailer-rails', '~> 1.10.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'gitlab-labkit', '~> 0.35.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'gitlab-labkit', '~> 0.35.1' # rubocop:todo Gemfile/MissingFeatureCategory
 gem 'thrift', '>= 0.16.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 # I18n
 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 'gettext', '~> 3.4', '>= 3.4.9',
+  require: false,
+  group: [:development, :test],
+  feature_category: :internationalization
 
 gem 'batch-loader', '~> 2.0.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -388,12 +395,12 @@ 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', '~> 1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'prometheus-client-mmap', '~> 1.1', '>= 1.1.1', require: 'prometheus/client' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'warning', '~> 1.3.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
 group :development do
-  gem 'lefthook', '~> 1.5.5', require: false, feature_category: :tooling
+  gem 'lefthook', '~> 1.5.6', require: false, feature_category: :tooling
   gem 'rubocop', feature_category: :tooling
   gem 'solargraph', '~> 0.47.2', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -407,11 +414,11 @@ group :development do
 
   gem 'listen', '~> 3.7' # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'ruby-lsp', "~> 0.13.2", require: false, feature_category: :tooling
+  gem 'ruby-lsp', "~> 0.14.4", require: false, feature_category: :tooling
 
-  gem 'ruby-lsp-rails', "~> 0.2.8", feature_category: :tooling
+  gem 'ruby-lsp-rails', "~> 0.3.0", feature_category: :tooling
 
-  gem 'ruby-lsp-rspec', "~> 0.1.8", require: false, feature_category: :tooling
+  gem 'ruby-lsp-rspec', "~> 0.1.10", require: false, feature_category: :tooling
 end
 
 group :development, :test do
@@ -426,7 +433,7 @@ group :development, :test do
 
   gem 'database_cleaner-active_record', '~> 2.1.0', feature_category: :database
   gem 'factory_bot_rails', '~> 6.4.3' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'rspec-rails', '~> 6.1.0', feature_category: :shared
+  gem 'rspec-rails', '~> 6.1.1', 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
@@ -446,7 +453,7 @@ group :development, :test do
   # Profiling data from CI/CD pipelines
   gem 'influxdb-client', '~> 2.9', require: false # rubocop:todo Gemfile/MissingFeatureCategory
 
-  gem 'knapsack', '~> 1.21.1', feature_category: :tooling
+  gem 'knapsack', '~> 1.22.0', feature_category: :tooling
   gem 'crystalball', '~> 0.7.0', require: false, feature_category: :tooling
   gem 'test_file_finder', '~> 0.2.1', feature_category: :tooling
 
@@ -469,7 +476,7 @@ group :development, :test do
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 4.6.0', require: false, feature_category: :tooling
+  gem 'gitlab-dangerfiles', '~> 4.7.0', require: false, feature_category: :tooling
 end
 
 group :development, :test, :coverage do
@@ -493,34 +500,34 @@ end
 group :test do
   gem 'fuubar', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'rspec-retry', '~> 0.6.2', feature_category: :tooling
-  gem 'rspec_profiling', '~> 0.0.6', feature_category: :tooling
+  gem 'rspec_profiling', '~> 0.0.8', 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 'os', '~> 1.1', '>= 1.1.4', feature_category: :tooling
 
-  gem 'capybara', '~> 3.39', '>= 3.39.2' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'selenium-webdriver', '~> 4.16' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'selenium-webdriver', '~> 4.18', '>= 4.18.1' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'graphlyte', '~> 1.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
   gem 'shoulda-matchers', '~> 5.1.0', require: false # rubocop:todo Gemfile/MissingFeatureCategory
   gem 'email_spec', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
-  gem 'webmock', '~> 3.19.1' # rubocop:todo Gemfile/MissingFeatureCategory
+  gem 'webmock', '~> 3.22.0' # 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.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', '~> 4.8.0', feature_category: :tooling
+  gem 'axe-core-rspec', '~> 4.8.2', feature_category: :tooling
 
   # 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.11.0', require: false, feature_category: :tooling
+  gem 'gitlab_quality-test_tooling', '~> 1.17.0', require: false, feature_category: :tooling
 end
 
-gem 'octokit', '~> 6.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'octokit', '~> 8.0', feature_category: :importers
 
 gem 'gitlab-mail_room', '~> 0.0.24', require: 'mail_room', feature_category: :shared
 
@@ -552,14 +559,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.7.0-rc1', feature_category: :gitaly
+gem 'gitaly', '~> 16.10.0-rc1', feature_category: :gitaly
 
 # KAS GRPC protocol definitions
-gem 'kas-grpc', '~> 0.3.0', feature_category: :deployment_management
+gem 'kas-grpc', '~> 0.4.0', feature_category: :deployment_management
 
-gem 'grpc', '~> 1.58.0' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'grpc', '~> 1.60.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
-gem 'google-protobuf', '~> 3.25', '>= 3.25.2' # rubocop:todo Gemfile/MissingFeatureCategory
+gem 'google-protobuf', '~> 3.25', '>= 3.25.3' # rubocop:todo Gemfile/MissingFeatureCategory
 
 gem 'toml-rb', '~> 2.2.0' # rubocop:todo Gemfile/MissingFeatureCategory
 
@@ -572,7 +579,7 @@ gem 'gitlab-experiment', '~> 0.9.1', feature_category: :shared
 
 # Structured logging
 gem 'lograge', '~> 0.5' # rubocop:todo Gemfile/MissingFeatureCategory
-gem 'grape_logging', '~> 1.8', feature_category: :api
+gem 'grape_logging', '~> 1.8', '>= 1.8.4', feature_category: :api
 
 # DNS Lookup
 gem 'gitlab-net-dns', '~> 0.9.2' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -634,7 +641,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.24.pre.alpha1', feature_category: :remote_development
+gem 'devfile', '~> 0.0.25.pre.alpha1', feature_category: :remote_development
 
 # Apple plist parsing
 gem 'CFPropertyList', '~> 3.0.0' # rubocop:todo Gemfile/MissingFeatureCategory
@@ -652,4 +659,4 @@ 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
+gem 'gitlab-sdk', '~> 0.3.0', 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 adbd0b47167f1..e00e49f2f69e8 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -34,6 +34,7 @@ PATH
   specs:
     gitlab-housekeeper (0.1.0)
       activesupport
+      awesome_print
       httparty
       rubocop
 
@@ -178,6 +179,15 @@ PATH
       omniauth (~> 2.0)
 
 PATH
+  remote: vendor/gems/sidekiq-7.1.6
+  specs:
+    sidekiq (7.1.6)
+      concurrent-ruby (< 2)
+      connection_pool (>= 2.3.0)
+      rack (>= 2.2.4)
+      redis-client (>= 0.14.0)
+
+PATH
   remote: vendor/gems/sidekiq-reliable-fetch
   specs:
     gitlab-sidekiq-fetcher (0.11.0)
@@ -193,70 +203,70 @@ GEM
     acme-client (2.0.11)
       faraday (>= 1.0, < 3.0.0)
       faraday-retry (~> 1.0)
-    actioncable (7.0.8)
-      actionpack (= 7.0.8)
-      activesupport (= 7.0.8)
+    actioncable (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailbox (7.0.8)
-      actionpack (= 7.0.8)
-      activejob (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionmailbox (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       mail (>= 2.7.1)
       net-imap
       net-pop
       net-smtp
-    actionmailer (7.0.8)
-      actionpack (= 7.0.8)
-      actionview (= 7.0.8)
-      activejob (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionmailer (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      actionview (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       mail (~> 2.5, >= 2.5.4)
       net-imap
       net-pop
       net-smtp
       rails-dom-testing (~> 2.0)
-    actionpack (7.0.8)
-      actionview (= 7.0.8)
-      activesupport (= 7.0.8)
+    actionpack (7.0.8.1)
+      actionview (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       rack (~> 2.0, >= 2.2.4)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actiontext (7.0.8)
-      actionpack (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    actiontext (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       globalid (>= 0.6.0)
       nokogiri (>= 1.8.5)
-    actionview (7.0.8)
-      activesupport (= 7.0.8)
+    actionview (7.0.8.1)
+      activesupport (= 7.0.8.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (7.0.8)
-      activesupport (= 7.0.8)
+    activejob (7.0.8.1)
+      activesupport (= 7.0.8.1)
       globalid (>= 0.3.6)
-    activemodel (7.0.8)
-      activesupport (= 7.0.8)
-    activerecord (7.0.8)
-      activemodel (= 7.0.8)
-      activesupport (= 7.0.8)
+    activemodel (7.0.8.1)
+      activesupport (= 7.0.8.1)
+    activerecord (7.0.8.1)
+      activemodel (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
     activerecord-explain-analyze (0.1.0)
       activerecord (>= 4)
       pg
-    activestorage (7.0.8)
-      actionpack (= 7.0.8)
-      activejob (= 7.0.8)
-      activerecord (= 7.0.8)
-      activesupport (= 7.0.8)
+    activestorage (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       marcel (~> 1.0)
       mini_mime (>= 1.1.0)
-    activesupport (7.0.8)
+    activesupport (7.0.8.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -292,8 +302,6 @@ GEM
     atlassian-jwt (0.2.1)
       jwt (~> 2.1)
     attr_required (1.0.1)
-    autoprefixer-rails (10.2.5.1)
-      execjs (> 0)
     awesome_print (1.9.2)
     awrence (1.2.1)
     aws-eventstream (1.3.0)
@@ -301,7 +309,7 @@ GEM
     aws-sdk-cloudformation (1.41.0)
       aws-sdk-core (~> 3, >= 3.99.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-core (3.190.2)
+    aws-sdk-core (3.191.3)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
@@ -309,8 +317,8 @@ GEM
     aws-sdk-kms (1.76.0)
       aws-sdk-core (~> 3, >= 3.188.0)
       aws-sigv4 (~> 1.1)
-    aws-sdk-s3 (1.142.0)
-      aws-sdk-core (~> 3, >= 3.189.0)
+    aws-sdk-s3 (1.144.0)
+      aws-sdk-core (~> 3, >= 3.191.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.8)
     aws-sigv4 (1.8.0)
@@ -318,7 +326,7 @@ GEM
     axe-core-api (4.8.0)
       dumb_delegator
       virtus
-    axe-core-rspec (4.8.0)
+    axe-core-rspec (4.8.2)
       axe-core-api
       dumb_delegator
       virtus
@@ -337,6 +345,7 @@ GEM
     babosa (2.0.0)
     backport (1.2.0)
     base32 (0.3.2)
+    base64 (0.2.0)
     batch-loader (2.0.1)
     bcrypt (3.1.18)
     benchmark (0.2.0)
@@ -353,7 +362,7 @@ GEM
     bindata (2.4.11)
     binding_of_caller (1.0.0)
       debug_inspector (>= 0.0.1)
-    bootsnap (1.17.1)
+    bootsnap (1.18.3)
       msgpack (~> 1.2)
     browser (5.3.1)
     builder (3.2.4)
@@ -364,11 +373,11 @@ GEM
       bundler (>= 1.2.0, < 3)
       thor (~> 1.0)
     byebug (11.1.3)
-    capybara (3.39.2)
+    capybara (3.40.0)
       addressable
       matrix
       mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
+      nokogiri (~> 1.11)
       rack (>= 1.6.0)
       rack-test (>= 0.6.3)
       regexp_parser (>= 1.5, < 3.0)
@@ -381,9 +390,8 @@ GEM
       activesupport (>= 4.0.0)
       mime-types (>= 1.16)
       ssrf_filter (~> 1.0, < 1.1.0)
-    cbor (0.5.9.6)
-    character_set (1.4.1)
-      sorted_set (~> 1.0)
+    cbor (0.5.9.8)
+    character_set (1.8.0)
     charlock_holmes (0.7.7)
     chef-config (18.3.0)
       addressable
@@ -425,8 +433,10 @@ GEM
       git
     css_parser (1.14.0)
       addressable
+    cssbundling-rails (1.4.0)
+      railties (>= 6.0.0)
     cvss-suite (3.0.1)
-    danger (9.3.1)
+    danger (9.4.2)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -437,7 +447,7 @@ GEM
       kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.0)
       no_proxy_fix
-      octokit (~> 6.0)
+      octokit (>= 4.0)
       terminal-table (>= 1, < 4)
     danger-gitlab (8.0.0)
       danger
@@ -451,8 +461,8 @@ GEM
     dead_end (3.1.1)
     deb_version (1.0.2)
     debug_inspector (1.1.0)
-    deckar01-task_list (2.3.3)
-      html-pipeline
+    deckar01-task_list (2.3.4)
+      html-pipeline (~> 2.0)
     declarative (0.0.20)
     declarative_policy (1.1.0)
     deprecation_toolkit (1.5.1)
@@ -471,7 +481,7 @@ GEM
       thor (>= 0.19, < 2)
     descendants_tracker (0.0.4)
       thread_safe (~> 0.3, >= 0.3.1)
-    devfile (0.0.24.pre.alpha1)
+    devfile (0.0.25.pre.alpha1)
     device_detector (1.0.0)
     devise (4.9.3)
       bcrypt (~> 3.0)
@@ -489,7 +499,7 @@ GEM
     diffy (3.4.2)
     digest-crc (0.6.5)
       rake (>= 12.0.0, < 14.0.0)
-    discordrb-webhooks (3.4.2)
+    discordrb-webhooks (3.5.0)
       rest-client (>= 2.0.0)
     docile (1.4.0)
     domain_name (0.5.20190701)
@@ -590,7 +600,7 @@ GEM
       faraday (>= 0.15)
     fast_blank (1.0.1)
     fast_gettext (2.3.0)
-    ffaker (2.10.0)
+    ffaker (2.23.0)
     ffi (1.15.5)
     ffi-compiler (1.0.1)
       ffi (>= 1.0.0)
@@ -651,7 +661,7 @@ GEM
       rspec-core (~> 3.0)
       ruby-progressbar (~> 1.4)
     fuzzyurl (0.9.0)
-    gapic-common (0.18.0)
+    gapic-common (0.20.0)
       faraday (>= 1.9, < 3.a)
       faraday-retry (>= 1.0, < 3.a)
       google-protobuf (~> 3.14)
@@ -673,14 +683,14 @@ GEM
     git (1.18.0)
       addressable (~> 2.8)
       rchardet (~> 1.8)
-    gitaly (16.7.0.pre.rc1)
+    gitaly (16.10.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.6.0)
+    gitlab-dangerfiles (4.7.0)
       danger (>= 9.3.0)
       danger-gitlab (>= 8.0.0)
       rake (~> 13.0)
@@ -693,9 +703,9 @@ GEM
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
-    gitlab-glfm-markdown (0.0.11)
+    gitlab-glfm-markdown (0.0.13)
       rb_sys (~> 0.9.86)
-    gitlab-labkit (0.35.0)
+    gitlab-labkit (0.35.1)
       actionpack (>= 5.0.0, < 8.0.0)
       activesupport (>= 5.0.0, < 8.0.0)
       grpc (>= 1.37)
@@ -703,7 +713,7 @@ GEM
       opentracing (~> 0.4)
       pg_query (>= 4.2.3, < 6.0)
       redis (> 3.0.0, < 6.0.0)
-    gitlab-license (2.3.0)
+    gitlab-license (2.4.0)
     gitlab-mail_room (0.0.24)
       jwt (>= 2.0)
       net-imap (>= 0.2.1)
@@ -712,7 +722,7 @@ GEM
       redis-namespace (>= 1.8.2)
     gitlab-markup (1.9.0)
     gitlab-net-dns (0.9.2)
-    gitlab-sdk (0.2.3)
+    gitlab-sdk (0.3.0)
       activesupport (>= 5.2.0)
       rake (~> 13.0)
       snowplow-tracker (~> 0.8.0)
@@ -729,14 +739,15 @@ GEM
       omniauth (>= 1.3, < 3)
       pyu-ruby-sasl (>= 0.0.3.3, < 0.1)
       rubyntlm (~> 0.5)
-    gitlab_quality-test_tooling (1.11.0)
-      activesupport (>= 6.1, < 7.2)
+    gitlab_quality-test_tooling (1.17.0)
+      activesupport (>= 6.1, < 7.1)
       amatch (~> 0.4.1)
       gitlab (~> 4.19)
       http (~> 5.0)
       nokogiri (~> 1.10)
       parallel (>= 1, < 2)
       rainbow (>= 3, < 4)
+      rspec-parameterized (~> 1.0.0)
       table_print (= 1.5.7)
       zeitwerk (>= 2, < 3)
     globalid (1.1.0)
@@ -783,12 +794,27 @@ GEM
       google-apis-core (>= 0.9.1, < 2.a)
     google-apis-storage_v1 (0.29.0)
       google-apis-core (>= 0.11.0, < 2.a)
+    google-cloud-artifact_registry-v1 (0.11.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-errors (~> 1.0)
+      google-cloud-location (>= 0.4, < 2.a)
+      grpc-google-iam-v1 (~> 1.1)
+    google-cloud-common (1.1.0)
+      google-protobuf (~> 3.14)
+      googleapis-common-protos-types (~> 1.2)
+    google-cloud-compute-v1 (2.6.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-common (~> 1.0)
+      google-cloud-errors (~> 1.0)
     google-cloud-core (1.6.0)
       google-cloud-env (~> 1.0)
       google-cloud-errors (~> 1.0)
     google-cloud-env (1.6.0)
       faraday (>= 0.17.3, < 3.0)
     google-cloud-errors (1.3.0)
+    google-cloud-location (0.6.0)
+      gapic-common (>= 0.20.0, < 2.a)
+      google-cloud-errors (~> 1.0)
     google-cloud-profiler-v2 (0.4.0)
       gapic-common (>= 0.18.0, < 2.a)
       google-cloud-errors (~> 1.0)
@@ -800,17 +826,16 @@ GEM
       google-cloud-core (~> 1.6)
       googleauth (>= 0.16.2, < 2.a)
       mini_mime (~> 1.0)
-    google-protobuf (3.25.2)
+    google-protobuf (3.25.3)
     googleapis-common-protos (1.4.0)
       google-protobuf (~> 3.14)
       googleapis-common-protos-types (~> 1.2)
       grpc (~> 1.27)
     googleapis-common-protos-types (1.5.0)
       google-protobuf (~> 3.14)
-    googleauth (1.3.0)
+    googleauth (1.8.1)
       faraday (>= 0.17.3, < 3.a)
       jwt (>= 1.4, < 3.0)
-      memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
       signet (>= 0.16, < 2.a)
@@ -823,7 +848,7 @@ GEM
       mustermann-grape (~> 1.0.0)
       rack (>= 1.3.0)
       rack-accept
-    grape-entity (0.10.0)
+    grape-entity (0.10.2)
       activesupport (>= 3.0.0)
       multi_json (>= 1.3.2)
     grape-path-helpers (2.0.1)
@@ -843,13 +868,14 @@ GEM
     graphiql-rails (1.8.0)
       railties
       sprockets-rails
-    graphlient (0.5.0)
+    graphlient (0.6.0)
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
     graphlyte (1.0.0)
-    graphql (2.0.27)
-    graphql-client (0.18.0)
+    graphql (2.2.5)
+      racc (~> 1.4)
+    graphql-client (0.19.0)
       activesupport (>= 3.0)
       graphql
     graphql-docs (4.0.0)
@@ -860,9 +886,13 @@ GEM
       gemoji (~> 3.0)
       graphql (~> 2.0)
       html-pipeline (~> 2.14, >= 2.14.3)
-    grpc (1.58.0)
-      google-protobuf (~> 3.23)
+    grpc (1.60.0)
+      google-protobuf (~> 3.25)
       googleapis-common-protos-types (~> 1.0)
+    grpc-google-iam-v1 (1.5.0)
+      google-protobuf (~> 3.18)
+      googleapis-common-protos (~> 1.4)
+      grpc (~> 1.41)
     gssapi (1.3.1)
       ffi (>= 1.0.1)
     guard (2.16.2)
@@ -936,8 +966,8 @@ GEM
     jaeger-client (1.1.0)
       opentracing (~> 0.3)
       thrift
-    jaro_winkler (1.5.4)
-    jira-ruby (2.1.4)
+    jaro_winkler (1.5.6)
+    jira-ruby (2.3.0)
       activesupport
       atlassian-jwt
       multipart-post
@@ -977,9 +1007,9 @@ GEM
       activerecord
       kaminari-core (= 1.2.2)
     kaminari-core (1.2.2)
-    kas-grpc (0.3.0)
+    kas-grpc (0.4.0)
       grpc (~> 1.0)
-    knapsack (1.21.1)
+    knapsack (1.22.0)
       rake
     kramdown (2.3.2)
       rexml
@@ -993,7 +1023,7 @@ GEM
     language_server-protocol (3.17.0.3)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (1.5.5)
+    lefthook (1.5.6)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -1009,9 +1039,9 @@ GEM
       tomlrb (>= 1.3, < 2.1)
       with_env (= 1.1.0)
       xml-simple (~> 1.1.9)
-    licensee (9.16.0)
+    licensee (9.16.1)
       dotenv (~> 2.0)
-      octokit (>= 4.20, < 7.0)
+      octokit (>= 4.20, < 9.0)
       reverse_markdown (>= 1, < 3)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
@@ -1055,7 +1085,6 @@ GEM
       actionpack (>= 5.2)
       activerecord (>= 5.2)
     matrix (0.4.2)
-    memoist (0.16.2)
     memory_profiler (1.0.1)
     method_source (1.0.0)
     mime-types (3.5.1)
@@ -1124,7 +1153,7 @@ GEM
       rack (>= 1.2, < 4)
       snaky_hash (~> 2.0)
       version_gem (~> 1.1)
-    octokit (6.1.1)
+    octokit (8.0.0)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
     ohai (18.1.3)
@@ -1239,8 +1268,8 @@ GEM
       tty-color (~> 0.5)
     peek (1.1.0)
       railties (>= 4.0.0)
-    pg (1.5.4)
-    pg_query (4.2.3)
+    pg (1.5.6)
+    pg_query (5.1.0)
       google-protobuf (>= 3.22.3)
     plist (3.7.0)
     png_quantizator (0.2.1)
@@ -1254,12 +1283,12 @@ GEM
     prime (0.1.2)
       forwardable
       singleton
-    prism (0.19.0)
+    prism (0.24.0)
     proc_to_ast (0.1.0)
       coderay
       parser
       unparser
-    prometheus-client-mmap (1.1.0)
+    prometheus-client-mmap (1.1.1)
       rb_sys (~> 0.9.86)
     protocol (2.0.0)
       ruby_parser (~> 3.0)
@@ -1281,7 +1310,7 @@ GEM
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.4.0)
     racc (1.6.2)
-    rack (2.2.8)
+    rack (2.2.8.1)
     rack-accept (0.4.5)
       rack (>= 0.4)
     rack-attack (6.7.0)
@@ -1303,20 +1332,20 @@ GEM
     rack-test (2.1.0)
       rack (>= 1.3)
     rack-timeout (0.6.3)
-    rails (7.0.8)
-      actioncable (= 7.0.8)
-      actionmailbox (= 7.0.8)
-      actionmailer (= 7.0.8)
-      actionpack (= 7.0.8)
-      actiontext (= 7.0.8)
-      actionview (= 7.0.8)
-      activejob (= 7.0.8)
-      activemodel (= 7.0.8)
-      activerecord (= 7.0.8)
-      activestorage (= 7.0.8)
-      activesupport (= 7.0.8)
+    rails (7.0.8.1)
+      actioncable (= 7.0.8.1)
+      actionmailbox (= 7.0.8.1)
+      actionmailer (= 7.0.8.1)
+      actionpack (= 7.0.8.1)
+      actiontext (= 7.0.8.1)
+      actionview (= 7.0.8.1)
+      activejob (= 7.0.8.1)
+      activemodel (= 7.0.8.1)
+      activerecord (= 7.0.8.1)
+      activestorage (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       bundler (>= 1.15.0)
-      railties (= 7.0.8)
+      railties (= 7.0.8.1)
     rails-controller-testing (1.0.5)
       actionpack (>= 5.0.1.rc1)
       actionview (>= 5.0.1.rc1)
@@ -1330,9 +1359,9 @@ GEM
     rails-i18n (7.0.3)
       i18n (>= 0.7, < 2)
       railties (>= 6.0.0, < 8)
-    railties (7.0.8)
-      actionpack (= 7.0.8)
-      activesupport (= 7.0.8)
+    railties (7.0.8.1)
+      actionpack (= 7.0.8.1)
+      activesupport (= 7.0.8.1)
       method_source
       rake (>= 12.2)
       thor (~> 1.0)
@@ -1343,25 +1372,30 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rb_sys (0.9.86)
-    rbtrace (0.4.14)
+    rbtrace (0.5.1)
       ffi (>= 1.0.6)
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
-    rbtree (0.4.6)
     rchardet (1.8.0)
-    re2 (2.6.0)
+    re2 (2.7.0)
       mini_portile2 (~> 2.8.5)
     recaptcha (5.12.3)
       json
     recursive-open-struct (1.1.3)
     redcarpet (3.6.0)
-    redis (4.8.0)
+    redis (5.0.8)
+      redis-client (>= 0.17.0)
     redis-actionpack (5.4.0)
       actionpack (>= 5, < 8)
       redis-rack (>= 2.1.0, < 4)
       redis-store (>= 1.1.0, < 2)
-    redis-client (0.19.0)
+    redis-client (0.21.1)
       connection_pool
+    redis-cluster-client (0.7.5)
+      redis-client (~> 0.12)
+    redis-clustering (5.0.8)
+      redis (= 5.0.8)
+      redis-cluster-client (>= 0.7.0)
     redis-namespace (1.10.0)
       redis (>= 4)
     redis-rack (3.0.0)
@@ -1424,7 +1458,7 @@ GEM
     rspec-parameterized-table_syntax (1.0.0)
       binding_of_caller
       rspec-parameterized-core (< 2)
-    rspec-rails (6.1.0)
+    rspec-rails (6.1.1)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       railties (>= 6.1)
@@ -1437,11 +1471,10 @@ GEM
     rspec-support (3.12.0)
     rspec_junit_formatter (0.6.0)
       rspec-core (>= 2, < 4, != 2.12.0)
-    rspec_profiling (0.0.6)
+    rspec_profiling (0.0.8)
       activerecord
-      pg
+      get_process_mem
       rails
-      sqlite3
     rubocop (1.57.2)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
@@ -1475,18 +1508,18 @@ GEM
     ruby-fogbugz (0.3.0)
       crack (~> 0.4)
       multipart-post (~> 2.0)
-    ruby-lsp (0.13.2)
+    ruby-lsp (0.14.4)
       language_server-protocol (~> 3.17.0)
-      prism (>= 0.19.0, < 0.20)
-      sorbet-runtime (>= 0.5.5685)
-    ruby-lsp-rails (0.2.8)
+      prism (>= 0.22.0, < 0.25)
+      sorbet-runtime (>= 0.5.10782)
+    ruby-lsp-rails (0.3.1)
       actionpack (>= 6.0)
       activerecord (>= 6.0)
       railties (>= 6.0)
-      ruby-lsp (>= 0.13.0, < 0.14.0)
+      ruby-lsp (>= 0.14.2, < 0.15.0)
       sorbet-runtime (>= 0.5.9897)
-    ruby-lsp-rspec (0.1.8)
-      ruby-lsp (~> 0.13.0)
+    ruby-lsp-rspec (0.1.10)
+      ruby-lsp (~> 0.14.0)
     ruby-magic (0.6.0)
       mini_portile2 (~> 2.8)
     ruby-openai (3.7.0)
@@ -1497,7 +1530,8 @@ GEM
       rexml
     ruby-statistics (3.0.0)
     ruby2_keywords (0.0.5)
-    ruby_parser (3.20.3)
+    ruby_parser (3.21.0)
+      racc (~> 1.5)
       sexp_processor (~> 4.16)
     rubyntlm (0.6.3)
     rubypants (0.2.0)
@@ -1509,14 +1543,6 @@ GEM
     sanitize (6.0.2)
       crass (~> 1.0.2)
       nokogiri (>= 1.12.0)
-    sassc (2.4.0)
-      ffi (~> 1.9)
-    sassc-rails (2.1.0)
-      railties (>= 4.0.0)
-      sassc (>= 2.0)
-      sprockets (> 3.0)
-      sprockets-rails
-      tilt
     sawyer (0.9.2)
       addressable (>= 2.3.5)
       faraday (>= 0.17.3, < 3)
@@ -1524,11 +1550,12 @@ GEM
     seed-fu (2.3.7)
       activerecord (>= 3.1)
       activesupport (>= 3.1)
-    selenium-webdriver (4.16.0)
+    selenium-webdriver (4.18.1)
+      base64 (~> 0.2)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
-    semver_dialects (1.5.0)
+    semver_dialects (2.0.0)
       deb_version (~> 1.0.1)
       pastel (~> 0.8.0)
       thor (~> 1.3)
@@ -1543,22 +1570,16 @@ GEM
     sentry-sidekiq (5.10.0)
       sentry-ruby (~> 5.10.0)
       sidekiq (>= 3.0)
-    set (1.0.2)
-    sexp_processor (4.17.0)
+    sexp_processor (4.17.1)
     shellany (0.0.1)
     shoulda-matchers (5.1.0)
       activesupport (>= 5.2.0)
-    sidekiq (7.1.6)
-      concurrent-ruby (< 2)
-      connection_pool (>= 2.3.0)
-      rack (>= 2.2.4)
-      redis-client (>= 0.14.0)
     sidekiq-cron (1.12.0)
       fugit (~> 1.8)
       globalid (>= 1.0.1)
       sidekiq (>= 6)
     sigdump (0.2.4)
-    signet (0.17.0)
+    signet (0.18.0)
       addressable (~> 2.8)
       faraday (>= 0.17.5, < 3.a)
       jwt (>= 1.5, < 3.0)
@@ -1596,10 +1617,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)
+    sorbet-runtime (0.5.11266)
     spamcheck (1.3.0)
       grpc (~> 1.0)
     spring (4.1.0)
@@ -1613,8 +1631,6 @@ GEM
       actionpack (>= 5.2)
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
-    sqlite3 (1.6.0)
-      mini_portile2 (~> 2.8.0)
     ssh_data (1.3.0)
     ssrf_filter (1.0.8)
     stackprof (0.2.25)
@@ -1655,7 +1671,7 @@ GEM
     test_file_finder (0.2.1)
       faraday (>= 1.0, < 3.0, != 2.0.0)
     text (1.3.1)
-    thor (1.3.0)
+    thor (1.3.1)
     thread_safe (0.3.6)
     thrift (0.16.0)
     tilt (2.0.11)
@@ -1736,7 +1752,7 @@ GEM
       activesupport (>= 3.0)
     version_gem (1.1.0)
     version_sorter (2.3.0)
-    view_component (3.8.0)
+    view_component (3.11.0)
       activesupport (>= 5.2.0, < 8.0)
       concurrent-ruby (~> 1.0)
       method_source (~> 1.0)
@@ -1767,7 +1783,7 @@ GEM
     webfinger (1.2.0)
       activesupport
       httpclient (>= 2.4)
-    webmock (3.19.1)
+    webmock (3.22.0)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
@@ -1810,14 +1826,13 @@ DEPENDENCIES
   asciidoctor-include-ext (~> 0.4.0)
   asciidoctor-kroki (~> 0.8.0)
   asciidoctor-plantuml (~> 0.0.16)
-  atlassian-jwt (~> 0.2.0)
+  atlassian-jwt (~> 0.2.1)
   attr_encrypted (~> 3.2.4)!
-  autoprefixer-rails (= 10.2.5.1)
   awesome_print
   aws-sdk-cloudformation (~> 1)
-  aws-sdk-core (~> 3.190.2)
-  aws-sdk-s3 (~> 1.142.0)
-  axe-core-rspec (~> 4.8.0)
+  aws-sdk-core (~> 3.191.3)
+  aws-sdk-s3 (~> 1.144.0)
+  axe-core-rspec (~> 4.8.2)
   babosa (~> 2.0)
   base32 (~> 0.3.0)
   batch-loader (~> 2.0.1)
@@ -1825,12 +1840,12 @@ DEPENDENCIES
   benchmark-ips (~> 2.11.0)
   benchmark-memory (~> 0.1)
   better_errors (~> 2.10.1)
-  bootsnap (~> 1.17.1)
+  bootsnap (~> 1.18.3)
   browser (~> 5.3.1)
   bullet (~> 7.1.2)
   bundler-audit (~> 0.9.1)
   bundler-checksum (~> 0.1.0)!
-  capybara (~> 3.39, >= 3.39.2)
+  capybara (~> 3.40)
   capybara-screenshot (~> 1.0.26)
   carrierwave (~> 1.3)
   charlock_holmes (~> 0.7.7)
@@ -1843,21 +1858,22 @@ DEPENDENCIES
   countries (~> 4.0.0)
   creole (~> 0.5.0)
   crystalball (~> 0.7.0)
+  cssbundling-rails (= 1.4.0)
   csv_builder!
   cvss-suite (~> 3.0.1)
   database_cleaner-active_record (~> 2.1.0)
-  deckar01-task_list (= 2.3.3)
+  deckar01-task_list (= 2.3.4)
   declarative_policy (~> 1.1.0)
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
-  devfile (~> 0.0.24.pre.alpha1)
+  devfile (~> 0.0.25.pre.alpha1)
   device_detector
   devise (~> 4.9.3)
   devise-pbkdf2-encryptable (~> 0.0.0)!
   devise-two-factor (~> 4.1.1)
   diff_match_patch (~> 0.1.0)!
   diffy (~> 3.4)
-  discordrb-webhooks (~> 3.4)
+  discordrb-webhooks (~> 3.5)
   doorkeeper (~> 5.6, >= 5.6.6)
   doorkeeper-openid_connect (~> 1.8, >= 1.8.7)
   duo_api (~> 1.3)
@@ -1872,7 +1888,7 @@ DEPENDENCIES
   faraday (~> 1.0)
   faraday_middleware-aws-sigv4 (~> 0.3.0)
   fast_blank (~> 1.0.1)
-  ffaker (~> 2.10)
+  ffaker (~> 2.23)
   flipper (~> 0.26.2)
   flipper-active_record (~> 0.26.2)
   flipper-active_support_cache_store (~> 0.26.2)
@@ -1883,19 +1899,19 @@ DEPENDENCIES
   fog-local (~> 0.8)
   fugit (~> 1.8.1)
   fuubar (~> 2.2.0)
-  gettext (~> 3.3)
+  gettext (~> 3.4, >= 3.4.9)
   gettext_i18n_rails (~> 1.11.0)
-  gitaly (~> 16.7.0.pre.rc1)
+  gitaly (~> 16.10.0.pre.rc1)
   gitlab-backup-cli!
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 4.6.0)
+  gitlab-dangerfiles (~> 4.7.0)
   gitlab-experiment (~> 0.9.1)
   gitlab-fog-azure-rm (~> 1.8.0)
-  gitlab-glfm-markdown (~> 0.0.11)
+  gitlab-glfm-markdown (~> 0.0.13)
   gitlab-housekeeper!
   gitlab-http!
-  gitlab-labkit (~> 0.35.0)
-  gitlab-license (~> 2.3)
+  gitlab-labkit (~> 0.35.1)
+  gitlab-license (~> 2.4)
   gitlab-mail_room (~> 0.0.24)
   gitlab-markup (~> 1.9.0)
   gitlab-net-dns (~> 0.9.2)
@@ -1903,14 +1919,14 @@ DEPENDENCIES
   gitlab-rspec_flaky!
   gitlab-safe_request_store!
   gitlab-schema-validation!
-  gitlab-sdk
+  gitlab-sdk (~> 0.3.0)
   gitlab-secret_detection!
   gitlab-sidekiq-fetcher!
   gitlab-styles (~> 11.0.0)
   gitlab-utils!
   gitlab_chronic_duration (~> 0.12)
   gitlab_omniauth-ldap (~> 2.2.0)
-  gitlab_quality-test_tooling (~> 1.11.0)
+  gitlab_quality-test_tooling (~> 1.17.0)
   gon (~> 6.4.0)
   google-apis-androidpublisher_v3 (~> 0.34.0)
   google-apis-cloudbilling_v1 (~> 0.21.0)
@@ -1923,21 +1939,24 @@ DEPENDENCIES
   google-apis-serviceusage_v1 (~> 0.28.0)
   google-apis-sqladmin_v1beta4 (~> 0.41.0)
   google-apis-storage_v1 (~> 0.29)
+  google-cloud-artifact_registry-v1 (~> 0.11.0)
+  google-cloud-compute-v1 (~> 2.6.0)
   google-cloud-storage (~> 1.45.0)
-  google-protobuf (~> 3.25, >= 3.25.2)
+  google-protobuf (~> 3.25, >= 3.25.3)
+  googleauth (~> 1.8.1)
   gpgme (~> 2.0.23)
   grape (~> 2.0.0)
-  grape-entity (~> 0.10.0)
-  grape-path-helpers (~> 2.0.0)
+  grape-entity (~> 0.10.2)
+  grape-path-helpers (~> 2.0.1)
   grape-swagger (~> 2.0.1)
   grape-swagger-entity (~> 0.5.1)
-  grape_logging (~> 1.8)
+  grape_logging (~> 1.8, >= 1.8.4)
   graphiql-rails (~> 1.8.0)
-  graphlient (~> 0.5.0)
+  graphlient (~> 0.6.0)
   graphlyte (~> 1.0.0)
-  graphql (~> 2.0.27)
+  graphql (~> 2.2.5)
   graphql-docs (~> 4.0.0)
-  grpc (~> 1.58.0)
+  grpc (~> 1.60.0)
   gssapi (~> 1.3.1)
   guard-rspec
   haml_lint (~> 0.53)
@@ -1953,18 +1972,18 @@ DEPENDENCIES
   ipaddr (~> 1.2.5)
   ipaddress (~> 0.8.3)
   ipynbdiff!
-  jira-ruby (~> 2.1.4)
+  jira-ruby (~> 2.3.0)
   js_regex (~> 3.8)
   json (~> 2.6.3)
   json_schemer (~> 0.2.18)
   jsonb_accessor (~> 1.3.10)
   jwt (~> 2.5)
   kaminari (~> 1.2.2)
-  kas-grpc (~> 0.3.0)
-  knapsack (~> 1.21.1)
+  kas-grpc (~> 0.4.0)
+  knapsack (~> 1.22.0)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.11.0)
-  lefthook (~> 1.5.5)
+  lefthook (~> 1.5.6)
   letter_opener_web (~> 2.0.0)
   license_finder (~> 7.0)
   licensee (~> 9.16)
@@ -1989,7 +2008,7 @@ DEPENDENCIES
   net-protocol (~> 0.1.3)
   nokogiri (~> 1.16)
   oauth2 (~> 2.0)
-  octokit (~> 6.0)
+  octokit (~> 8.0)
   ohai (~> 18.1)
   oj (~> 3.13.21)
   oj-introspect (~> 0.7)
@@ -2014,36 +2033,37 @@ DEPENDENCIES
   openid_connect (= 1.3.0)
   openssl (~> 3.0)
   org-ruby (~> 0.9.12)
-  os (~> 1.1)
+  os (~> 1.1, >= 1.1.4)
   pact (~> 1.64)
   parallel (~> 1.19)
   parser (~> 3.3, >= 3.3.0.2)
   parslet (~> 1.8)
   peek (~> 1.1)
-  pg (~> 1.5.4)
-  pg_query (~> 4.2.3)
+  pg (~> 1.5.6)
+  pg_query (~> 5.1.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
-  prometheus-client-mmap (~> 1.1)
+  prometheus-client-mmap (~> 1.1, >= 1.1.1)
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.6.4)
   puma (= 6.4.0)
-  rack (~> 2.2.8)
+  rack (~> 2.2.8.1)
   rack-attack (~> 6.7.0)
   rack-cors (~> 2.0.1)
   rack-oauth2 (~> 1.21.3)
   rack-proxy (~> 0.7.7)
   rack-timeout (~> 0.6.3)
-  rails (~> 7.0.8)
+  rails (~> 7.0.8.1)
   rails-controller-testing
   rails-i18n (~> 7.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
-  re2 (= 2.6.0)
+  re2 (= 2.7.0)
   recaptcha (~> 5.12)
-  redis (~> 4.8.0)
+  redis (~> 5.0.0)
   redis-actionpack (~> 5.4.0)
+  redis-clustering (~> 5.0.0)
   redis-namespace (~> 1.10.0)
   request_store (~> 1.5.1)
   responders (~> 3.0)
@@ -2053,15 +2073,15 @@ DEPENDENCIES
   rqrcode (~> 2.0)
   rspec-benchmark (~> 0.6.0)
   rspec-parameterized (~> 1.0)
-  rspec-rails (~> 6.1.0)
+  rspec-rails (~> 6.1.1)
   rspec-retry (~> 0.6.2)
   rspec_junit_formatter
-  rspec_profiling (~> 0.0.6)
+  rspec_profiling (~> 0.0.8)
   rubocop
   ruby-fogbugz (~> 0.3.0)
-  ruby-lsp (~> 0.13.2)
-  ruby-lsp-rails (~> 0.2.8)
-  ruby-lsp-rspec (~> 0.1.8)
+  ruby-lsp (~> 0.14.4)
+  ruby-lsp-rails (~> 0.3.0)
+  ruby-lsp-rspec (~> 0.1.10)
   ruby-magic (~> 0.6)
   ruby-openai (~> 3.7)
   ruby-progressbar (~> 1.10)
@@ -2069,17 +2089,16 @@ DEPENDENCIES
   rubyzip (~> 2.3.2)
   rugged (~> 1.6)
   sanitize (~> 6.0.2)
-  sassc-rails (~> 2.1.0)
   sd_notify (~> 0.1.0)
   seed-fu (~> 2.3.7)
-  selenium-webdriver (~> 4.16)
-  semver_dialects (~> 1.5)
+  selenium-webdriver (~> 4.18, >= 4.18.1)
+  semver_dialects (~> 2.0)
   sentry-rails (~> 5.10.0)
   sentry-raven (~> 3.1)
   sentry-ruby (~> 5.10.0)
   sentry-sidekiq (~> 5.10.0)
   shoulda-matchers (~> 5.1.0)
-  sidekiq (~> 7.1.6)
+  sidekiq!
   sidekiq-cron (~> 1.12.0)
   sigdump (~> 0.2.4)
   simple_po_parser (~> 1.1.6)
@@ -2113,16 +2132,16 @@ DEPENDENCIES
   valid_email (~> 0.1)
   validates_hostname (~> 1.0.13)
   version_sorter (~> 2.3)
-  view_component (~> 3.8.0)
+  view_component (~> 3.11.0)
   vite_rails (~> 3.0.17)
   vite_ruby (~> 3.5.0)
   vmstat (~> 2.3.0)
   warning (~> 1.3.0)
   webauthn (~> 3.0)
-  webmock (~> 3.19.1)
+  webmock (~> 3.22.0)
   webrick (~> 1.8.1)
   wikicloth (= 0.8.1)
   yajl-ruby (~> 1.4.3)
 
 BUNDLED WITH
-   2.5.4
+   2.5.6
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 4086a43e089d9..2520955593dee 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -17,10 +17,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "117vxic67jnw6q637kmsb3ryj0x485295pz9a9y4z8xn9bdlsl0z";
+      sha256 = "0j86qjs1zw34p0p7d5napa1vvwqlvm9nmv7ckxxhcba1qv4dspmw";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -28,10 +28,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r8ldj2giaz8cn49qkdqn5zc29gbsr5ky4fg6r7ali0yh1xh684l";
+      sha256 = "1f68h8cl6dqbz7mq3x43s0s82291nani3bz1hrxkk2qpgda23mw9";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -39,10 +39,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
+      sha256 = "077j47jsg0wqwx5b13n4h0g3g409b6kfrlazpzgjpa3pal74f7sc";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -50,10 +50,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
+      sha256 = "0jh83rqd6glys1b2wsihzsln8yk6zdwgiyn9xncyiav9rcwjpkax";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -61,10 +61,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i47r3n2m8qm002gx7c0lx1pv15pr2zy57dm8j38x960rsb655pp";
+      sha256 = "044qi3zhzxlfq7slc2pb9ky9mdivp1m1sjyhjvnsi64ggq7cvr22";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -72,10 +72,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
+      sha256 = "1ygpg75f3ffdcbxvf7s14xw3hcjin1nnx1nk3mg9mj2xc1nb60aa";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -83,32 +83,32 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
+      sha256 = "0yql9v4cd1xbqgnzlf3cv4a6sm26v2y4gsgcbbfgvfc0hhlfjklg";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
-    groups = ["default" "development" "test"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
+      sha256 = "0grdpvglh0cj96qhlxjj9bcfqkh13c1pfpcwc9ld3aw0yzvsw5a1";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport"];
-    groups = ["default" "test"];
+    groups = ["default" "development" "monorepo" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
+      sha256 = "0rlky1cr5kcdl0jad3nk5jpim6vjzbgkfhxnk7y492b3j2nznpcf";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activerecord-explain-analyze = {
     dependencies = ["activerecord" "pg"];
@@ -137,10 +137,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d6vm6alsp0g6f3548b615zxbz8l2wrmaikwgsf8kv11wf6swb4c";
+      sha256 = "0f4g3589i5ii4gdfazv6d9rjinr16aarh6g12v8378ck7jll3mhz";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -148,10 +148,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "0ff3x7q400flzhml131ix8zfwmh13h70rs6yzbzf513g781gbbxh";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   acts-as-taggable-on = {
     dependencies = ["activerecord"];
@@ -343,17 +343,6 @@ src:
     };
     version = "1.0.1";
   };
-  autoprefixer-rails = {
-    dependencies = ["execjs"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vlqwy2qkp39ibp7llj7ps53nvxav29c2yl451v1qdhj25zxc49p";
-      type = "gem";
-    };
-    version = "10.2.5.1";
-  };
   awesome_print = {
     groups = ["development" "test"];
     platforms = [];
@@ -411,10 +400,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z9f8ypvpwj3sfqh3nlnhrq7ryhrv7isqzg370fba27zpy7bv5sx";
+      sha256 = "088nq8yz9n4p7pnhjwp9nbxlkj7jwchpkzvnl4nybfb1dkvk4dns";
       type = "gem";
     };
-    version = "3.190.2";
+    version = "3.191.3";
   };
   aws-sdk-kms = {
     dependencies = ["aws-sdk-core" "aws-sigv4"];
@@ -433,10 +422,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sfpipfdmixpc0madfx1yvpwpv52fdhxfx4bmvrjxzb6ra78ikbr";
+      sha256 = "0ypg31pfzbd43n1m20cyf6gyrlv6m0c8hmk2p5hidy1y4pi34f6g";
       type = "gem";
     };
-    version = "1.142.0";
+    version = "1.144.0";
   };
   aws-sigv4 = {
     dependencies = ["aws-eventstream"];
@@ -466,10 +455,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07niarqd2lrbgnw00biyigc48lbdv4vy68p57myliz7k82nizidj";
+      sha256 = "14h4abf5h242a0vn2r05pkr8311qbxgkl63py7vbhx8bfpk1kq3i";
       type = "gem";
     };
-    version = "4.8.0";
+    version = "4.8.2";
   };
   axiom-types = {
     dependencies = ["descendants_tracker" "ice_nine" "thread_safe"];
@@ -534,6 +523,16 @@ src:
     };
     version = "0.3.2";
   };
+  base64 = {
+    groups = ["default" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "01qml0yilb9basf7is2614skjp8384h2pycfx86cr8023arfj98g";
+      type = "gem";
+    };
+    version = "0.2.0";
+  };
   batch-loader = {
     groups = ["default"];
     platforms = [];
@@ -653,10 +652,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "028qif22isxa5sg5gf1322d0qjhir5rr0jpkaiwcic4lspacdcnv";
+      sha256 = "1srlq3gqirzdkhv12ljpnp5cb0f8jfrl3n8xs9iivyz2c7khvdyp";
       type = "gem";
     };
-    version = "1.17.1";
+    version = "1.18.3";
   };
   browser = {
     groups = ["default"];
@@ -730,10 +729,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "114qm5f5vhwaaw9rj1h2lcamh46zl13v1m18jiw68zl961gwmw6n";
+      sha256 = "1vxfah83j6zpw3v5hic0j70h519nvmix2hbszmjwm8cfawhagns2";
       type = "gem";
     };
-    version = "3.39.2";
+    version = "3.40.0";
   };
   capybara-screenshot = {
     dependencies = ["capybara" "launchy"];
@@ -762,10 +761,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0511idr8xps9625nh3kxr68sdy6l3xy2kcz7r57g47fxb1v18jj3";
+      sha256 = "1dsf9gjc2cj79vrnz2vgq573biqjw7ad4b0idm05xg6rb3y9gq4y";
       type = "gem";
     };
-    version = "0.5.9.6";
+    version = "0.5.9.8";
   };
   CFPropertyList = {
     dependencies = ["rexml"];
@@ -779,15 +778,14 @@ src:
     version = "3.0.5";
   };
   character_set = {
-    dependencies = ["sorted_set"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ql0kxnpbblggyn8hx511pghpqf8xv3ng2kbybwwdi11bg1il6zp";
+      sha256 = "0l9z2pihzc11f0jpq2sx789zwpmwf5nyhsjps45zzvfs5931fwrb";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.8.0";
   };
   charlock_holmes = {
     groups = ["default"];
@@ -1043,6 +1041,17 @@ src:
     };
     version = "1.14.0";
   };
+  cssbundling-rails = {
+    dependencies = ["railties"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1nzp4j1ll6llgbrvqk81gkz6fqgk33sx4k1fcvbm7v7h79jk8808";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
   csv_builder = {
     groups = ["default"];
     platforms = [];
@@ -1068,10 +1077,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x8xwn2l7avc6h08vgrkxyb6ga7slip5x8lynswmzd0y32ngnw4h";
+      sha256 = "104x4p9rmk8frf4l858p171vjaif7mqgxspx61d26c0hfg355ra3";
       type = "gem";
     };
-    version = "9.3.1";
+    version = "9.4.2";
   };
   danger-gitlab = {
     dependencies = ["danger" "gitlab"];
@@ -1161,10 +1170,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n67q9rb4gsfs8k2fsd08xcfx13z7mcyyyrb9hi0sv0yz3rvm2li";
+      sha256 = "0rqn9jh45gsw045c6fm05875bpj2xbhnff5m5drmk9wy01zdrav6";
       type = "gem";
     };
-    version = "2.3.3";
+    version = "2.3.4";
   };
   declarative = {
     groups = ["default"];
@@ -1224,10 +1233,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0036nfmz7dz5jwagm4k3hshrkmm3w2473q38bhnr06dmxlkgrfvj";
+      sha256 = "1p11hv0a2s4m29vvyr7z22wjr9f4cfmdjnqidrv62rfcg9r73w0g";
       type = "gem";
     };
-    version = "0.0.24.pre.alpha1";
+    version = "0.0.25.pre.alpha1";
   };
   device_detector = {
     groups = ["default"];
@@ -1317,10 +1326,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0viw73jd9vs9f92a9q2vxcd29755h7w8jwz36jmvcdl2najainyg";
+      sha256 = "1c933kq48sqja1a2fc4ki9w8x5ajl6lp67hslka5k05hwfyaiysj";
       type = "gem";
     };
-    version = "3.4.2";
+    version = "3.5.0";
   };
   docile = {
     groups = ["coverage" "default" "development" "test"];
@@ -1856,14 +1865,14 @@ src:
     version = "2.3.0";
   };
   ffaker = {
-    groups = ["development" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01z5lpssjc0n8lm4xrlja0hh8lv4ngzbybjvd4rdkc5x9ddvh8s3";
+      sha256 = "1644hpjg7k08dsjhljwg4grs49riaw6bxp5xf62jrac4q9fgnbcx";
       type = "gem";
     };
-    version = "2.10.0";
+    version = "2.23.0";
   };
   ffi = {
     groups = ["default" "development" "kerberos" "puma" "test"];
@@ -2075,10 +2084,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1awn2k5b2sji74vr0xhg0v68h1y0msqpkwq5z8k31mp2ii9mmmbg";
+      sha256 = "0rlka373b2iva4dz2diz2zx7jyx617hwqvnfx2hs5xs0nh24fc5g";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.20.0";
   };
   gemoji = {
     groups = ["default" "development" "test"];
@@ -2140,10 +2149,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqi0f0pf7cj110b981nx95wql3i4knzvc6417ym3yvbvsxjyand";
+      sha256 = "1nwc8mlpznq9b7rgcbxwzaj936pn0syjasxdhplpiz3iqbr64ca8";
       type = "gem";
     };
-    version = "16.7.0.pre.rc1";
+    version = "16.10.0.pre.rc1";
   };
   gitlab = {
     dependencies = ["httparty" "terminal-table"];
@@ -2183,10 +2192,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07kl43xcjfwdlcfvr7ifzggl6zpmm8q0lj8phlk3db8xgnqkf6s4";
+      sha256 = "1jj5w7h457cm2q0ds63kp29ybkq1h02gibn37y2r0wnbimm8fxi5";
       type = "gem";
     };
-    version = "4.6.0";
+    version = "4.7.0";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store"];
@@ -2216,13 +2225,13 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0z0h4bvfvlwyfx8ia03lr9dlpy38n75v2wxh424v6fhy4z08ycab";
+      sha256 = "0nk9kp3zb2x1hpqirq7x2qqpmfsqq4izprbicxjb20bqvm4mvvdb";
       type = "gem";
     };
-    version = "0.0.11";
+    version = "0.0.13";
   };
   gitlab-housekeeper = {
-    dependencies = ["activesupport" "httparty" "rubocop"];
+    dependencies = ["activesupport" "awesome_print" "httparty" "rubocop"];
     groups = ["development" "test"];
     platforms = [];
     source = {
@@ -2247,20 +2256,20 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ya6r3ij0fzz6p50h157bn224n7405nwak6lx80ppvil9sm0dzr6";
+      sha256 = "1m41by1hly50yq9vsz5pbrb51yryf46n9pm7wnrinaisccrinl79";
       type = "gem";
     };
-    version = "0.35.0";
+    version = "0.35.1";
   };
   gitlab-license = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ms1kf5nmclsnmd2xa9k273asmb73ivaykwrb3g7sq263j3y7jk0";
+      sha256 = "082ycgvq7j0kyqrbx8shipqk3lgz6i279caf1ljvk9h5wsqqy8zx";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   gitlab-mail_room = {
     dependencies = ["jwt" "net-imap" "oauth2" "redis" "redis-namespace"];
@@ -2339,10 +2348,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mnhl888n4zfwhmfy3f1pj0k1rzjwpf16a1ic7wb22l64252g4g8";
+      sha256 = "00w9p1h3awari07vh33h65y1l1jh7sgym8fzgcp5q5aihha0y9i2";
       type = "gem";
     };
-    version = "0.2.3";
+    version = "0.3.0";
   };
   gitlab-secret_detection = {
     dependencies = ["parallel" "re2" "toml-rb"];
@@ -2408,15 +2417,15 @@ src:
     version = "2.2.0";
   };
   gitlab_quality-test_tooling = {
-    dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "table_print" "zeitwerk"];
+    dependencies = ["activesupport" "amatch" "gitlab" "http" "nokogiri" "parallel" "rainbow" "rspec-parameterized" "table_print" "zeitwerk"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0anhwfn9dnd8zkjwkq3qycjswfxqksfnwvl7dr6azz2zvjnxnii1";
+      sha256 = "1d59k5c0y8vkmz7fjh7x455d4d19fpw4r9agv02vqyvp7glrbm34";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.17.0";
   };
   globalid = {
     dependencies = ["activesupport"];
@@ -2605,6 +2614,39 @@ src:
     };
     version = "0.29.0";
   };
+  google-cloud-artifact_registry-v1 = {
+    dependencies = ["gapic-common" "google-cloud-errors" "google-cloud-location" "grpc-google-iam-v1"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0gkq82lsjz3yw9w819ifdqx9ixcbgydr5myy64wnczknx7fd505s";
+      type = "gem";
+    };
+    version = "0.11.0";
+  };
+  google-cloud-common = {
+    dependencies = ["google-protobuf" "googleapis-common-protos-types"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yxmdxx933q48397jsczsmpshr4b61izv3spnhvzxd24s67v13bk";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  google-cloud-compute-v1 = {
+    dependencies = ["gapic-common" "google-cloud-common" "google-cloud-errors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07hly5qbdy0qddw48biw0ybi2cx13861l5i09mj2abzw7yrmjq5r";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
   google-cloud-core = {
     dependencies = ["google-cloud-env" "google-cloud-errors"];
     groups = ["default"];
@@ -2637,6 +2679,17 @@ src:
     };
     version = "1.3.0";
   };
+  google-cloud-location = {
+    dependencies = ["gapic-common" "google-cloud-errors"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1l6j0i8flfdzl9c7db990632jmn5v7bmbh1i6x0sqp3f2p59jv1q";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
   google-cloud-profiler-v2 = {
     dependencies = ["gapic-common" "google-cloud-errors"];
     groups = ["default"];
@@ -2664,10 +2717,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02sh4rp14wmpfv9r7xrap6xgcakg0lk6zjvq1gsi5y38swhn2blw";
+      sha256 = "1mnxzcq8kmyfb9bkzqnp019d1hx1vprip3yzdkkha6b3qz5rgg9r";
       type = "gem";
     };
-    version = "3.25.2";
+    version = "3.25.3";
   };
   googleapis-common-protos = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types" "grpc"];
@@ -2692,15 +2745,15 @@ src:
     version = "1.5.0";
   };
   googleauth = {
-    dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
+    dependencies = ["faraday" "jwt" "multi_json" "os" "signet"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hpwgwhk0lmnknkw8kbdfxn95qqs6aagpq815l5fkw9w6mi77pai";
+      sha256 = "1ry9v23kndgx2pxq9v31l68k9lnnrcz1w4v75bkxq88jmbddljl1";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.8.1";
   };
   gpgme = {
     dependencies = ["mini_portile2"];
@@ -2726,14 +2779,14 @@ src:
   };
   grape-entity = {
     dependencies = ["activesupport" "multi_json"];
-    groups = ["default"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zic5fx8s0424vdarhslmxdqmfnlfv3k4prfyxrrwvf9pdy1xvcs";
+      sha256 = "0wdm44s7l6jxqszybf58ar7699vlq7vj2zfsi8f9sh9mh5a89dcy";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.10.2";
   };
   grape-path-helpers = {
     dependencies = ["activesupport" "grape" "rake" "ruby2_keywords"];
@@ -2796,10 +2849,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14pjw0hd9rmfc687yj1cfd8jjy8gh7k6zn6w9syvcl1f2hb98b0g";
+      sha256 = "1h652p91zdbdigb155vhdlh0lnq4ia8wlg5y5h0ibhlf9i5ndn5q";
       type = "gem";
     };
-    version = "0.5.0";
+    version = "0.6.0";
   };
   graphlyte = {
     groups = ["test"];
@@ -2812,14 +2865,15 @@ src:
     version = "1.0.0";
   };
   graphql = {
+    dependencies = ["racc"];
     groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dlb8hbgs7yas59pwf4k7qrczbgkvrpcjqd2f5cmjj02fxdbwn8z";
+      sha256 = "0zmw8gslwqaydxvmvan0m2rpbgxplm77kwp64bg051cvnasb9vhm";
       type = "gem";
     };
-    version = "2.0.27";
+    version = "2.2.5";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2827,10 +2881,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02r5qvfr176n051mp1c79xbpjhjqm92kk4118r0fbp131y0xralq";
+      sha256 = "1iv9d6l14h05vnhrzmm5fn2cnjb469an28c9z7c6p4bgjy0rssgy";
       type = "gem";
     };
-    version = "0.18.0";
+    version = "0.19.0";
   };
   graphql-docs = {
     dependencies = ["commonmarker" "dartsass" "escape_utils" "extended-markdown-filter" "gemoji" "graphql" "html-pipeline"];
@@ -2849,10 +2903,21 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00lx7sql179ak7rx5vg76z45y558d5wj0gldql4qjcaxjnzcryqc";
+      sha256 = "1bzkhy5yy4a8nlp89wwfw9bv4h358gsa9rvzn6i2y0z2ha5vmgqn";
+      type = "gem";
+    };
+    version = "1.60.0";
+  };
+  grpc-google-iam-v1 = {
+    dependencies = ["google-protobuf" "googleapis-common-protos" "grpc"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kip34n9604j2cc9rkplv5ljq0n8f4aizix4yr8rginsa38md8yf";
       type = "gem";
     };
-    version = "1.58.0";
+    version = "1.5.0";
   };
   gssapi = {
     dependencies = ["ffi"];
@@ -3217,10 +3282,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
+      sha256 = "10fd3i92897blalxfkgc0jjv0qqx31v7cm7j2b6a3b97an0bfz80";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   jira-ruby = {
     dependencies = ["activesupport" "atlassian-jwt" "multipart-post" "oauth"];
@@ -3228,10 +3293,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17nv98nz3jp7q5hbnniscavqh4xv53mnda1vxyg3ncn8raaw0rs2";
+      sha256 = "0qpbc97sag426h4hgcizqq2njxx5fridzxq6mq5s93jazxmnxwmb";
       type = "gem";
     };
-    version = "2.1.4";
+    version = "2.3.0";
   };
   jmespath = {
     groups = ["default"];
@@ -3367,10 +3432,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12md9pbh0m2yfx0vy81dyn40ibdnhzm6b7kfwra66pkjwrac9pvq";
+      sha256 = "13bkqrdz1rdn23nn0zni7vdvwnm34apgi3xy42djhhxl698888dv";
       type = "gem";
     };
-    version = "0.3.0";
+    version = "0.4.0";
   };
   knapsack = {
     dependencies = ["rake"];
@@ -3378,10 +3443,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "056g86ndhq51303k4g3fhdfwhpr6cpzypxhlnp0wxjpbmli09xw2";
+      sha256 = "1jqs9shqg3nd6j3kzbh8gxv7ix1n877y64kdjzbrwjgz6ksqs9mx";
       type = "gem";
     };
-    version = "1.21.1";
+    version = "1.22.0";
   };
   kramdown = {
     dependencies = ["rexml"];
@@ -3442,10 +3507,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ac5r000h6rp7gdwyxr1n8hsg5b88gwbdkq87pbcjzps9li6n6nz";
+      sha256 = "1rc7fzg4rjchyv7rd6vlz35hg5n8k5625s78hj12zji0xhg1jznc";
       type = "gem";
     };
-    version = "1.5.5";
+    version = "1.5.6";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -3496,10 +3561,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i4hs0vbgp0w3pdddr37zhydm16af122rmr0w39v3nqrj1ir65kv";
+      sha256 = "05g5w9c4jlfhwn0hfz117s1c7hfdm5yn7cywr4mah7xr41yvbh04";
       type = "gem";
     };
-    version = "9.16.0";
+    version = "9.16.1";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -3648,16 +3713,6 @@ src:
     };
     version = "0.4.2";
   };
-  memoist = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0i9wpzix3sjhf6d9zw60dm4371iq8kyz7ckh2qapan2vyaim6b55";
-      type = "gem";
-    };
-    version = "0.16.2";
-  };
   memory_profiler = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4115,10 +4170,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gxh0x910qvah2sm9fbxn8jjy3pgwskyd3gm703zf182hafll3lj";
+      sha256 = "11fhv1a43c51jkgmqf62aypf9yw74lc6ph4qmzsh2bydwwzbwqn3";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "8.0.0";
   };
   ohai = {
     dependencies = ["chef-config" "chef-utils" "ffi" "ffi-yajl" "ipaddress" "mixlib-cli" "mixlib-config" "mixlib-log" "mixlib-shellout" "plist" "train-core" "wmi-lite"];
@@ -4548,14 +4603,14 @@ src:
     version = "1.1.0";
   };
   pg = {
-    groups = ["default" "test"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0pfj771p5a29yyyw58qacks464sl86d5m3jxjl5rlqqw2m3v5xq4";
+      sha256 = "071b55bhsz7mivlnp2kv0a11msnl7xg5awvk8mlflpl270javhsb";
       type = "gem";
     };
-    version = "1.5.4";
+    version = "1.5.6";
   };
   pg_query = {
     dependencies = ["google-protobuf"];
@@ -4563,10 +4618,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15ynrzqsmmbmxib8ri8n9k6z3l6rwd91j7y1mghm33nfgdf9bj8w";
+      sha256 = "0p8ljf694qvrf5875ljg6kp7gvmndy8490kasjzcq22ghryg9xxp";
       type = "gem";
     };
-    version = "4.2.3";
+    version = "5.1.0";
   };
   plist = {
     groups = ["default"];
@@ -4626,10 +4681,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qiv9irrca2la1awqgvzsg7a17z2nydqyq43w4fhapdkq2l7xwa7";
+      sha256 = "0pgxgng905jbhp0pr54w4w2pr4nqcq80ijj48204bj4x4nigj8ji";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.24.0";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -4648,10 +4703,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19mi424kwalrzdm7cvzjx2w0rw778mxqb75y9wn20nc277nxglvb";
+      sha256 = "0vg47xx3wgg24snqc6ychb08mbcyrjmvxym9fg69cpa4xvj133fx";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   protocol = {
     dependencies = ["ruby_parser"];
@@ -4764,10 +4819,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
+      sha256 = "10mpk0hl6hnv324fp1pfimi2nw9acj0z4gyhrph36qg84pk1s4m7";
       type = "gem";
     };
-    version = "2.2.8";
+    version = "2.2.8.1";
   };
   rack-accept = {
     dependencies = ["rack"];
@@ -4873,10 +4928,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rsqin156dawz7gzpy1ijs02afqcr4704vqj56s6yxng3a9ayhwf";
+      sha256 = "1v9dp9sgh8kk32r23mj66zjni7w1dv2h7mbaxgmazsf59a43gsvx";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   rails-controller-testing = {
     dependencies = ["actionpack" "actionview" "activesupport"];
@@ -4928,10 +4983,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
+      sha256 = "08ga56kz6a37dnlmi7y45r19fcc7jzb62mrc3ifavbzggmhy7r62";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.0.8.1";
   };
   rainbow = {
     groups = ["coverage" "default" "development" "test"];
@@ -4990,20 +5045,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8prj0klfgpmpfcpdzbf149qrrsdxgnb6w6kkqc9gyars4vyaqn";
-      type = "gem";
-    };
-    version = "0.4.14";
-  };
-  rbtree = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1z0h1x7fpkzxamnvbw1nry64qd6n0nqkwprfair29z94kd3a9vhl";
+      sha256 = "1p65p6f917al0f07sn5ca9yj92f7mk52xgnp0ahqpyrb8r6sdjz8";
       type = "gem";
     };
-    version = "0.4.6";
+    version = "0.5.1";
   };
   rchardet = {
     groups = ["default" "development"];
@@ -5021,10 +5066,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sj80r3gy4sb27mrgc6pwcf2lra669p8p81axdv2p5pfm6k3mqbq";
+      sha256 = "1p0kxb1gwrsv2r38jwgsg8b5k2xx966qmrc6aajfncpzm398i79i";
       type = "gem";
     };
-    version = "2.6.0";
+    version = "2.7.0";
   };
   recaptcha = {
     dependencies = ["json"];
@@ -5068,14 +5113,15 @@ src:
     version = "4.3.3";
   };
   redis = {
+    dependencies = ["redis-client"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i4a8hxxcxci3n8hhlm9a8wa7a9m58r6sjvh4749v7362i8cy010";
+      sha256 = "1n7k4sgx5vzsigp8c15flz4fclqy4j2a33vim7b2c2w5jyjhwxrv";
       type = "gem";
     };
-    version = "4.8.0";
+    version = "5.0.8";
   };
   redis-actionpack = {
     dependencies = ["actionpack" "redis-rack" "redis-store"];
@@ -5094,10 +5140,32 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k9jaqsdc2s2qm713pdv19dawk1b11vxnfclsps7ra2szwisznbf";
+      sha256 = "0irk5j73aqhyv54q3vs88y5rp9a5fkvbdif7zn5q7m5d51h2375w";
       type = "gem";
     };
-    version = "0.19.0";
+    version = "0.21.1";
+  };
+  redis-cluster-client = {
+    dependencies = ["redis-client"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12p7wi39zaldk8lr484j4j6w49502fxayinfs9f7l58pvag1rz8j";
+      type = "gem";
+    };
+    version = "0.7.5";
+  };
+  redis-clustering = {
+    dependencies = ["redis" "redis-cluster-client"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rp1yrqpvi29ar6mlqsyk36nxgh1drijb4f5xa76c057n7iksbwf";
+      type = "gem";
+    };
+    version = "5.0.8";
   };
   redis-namespace = {
     dependencies = ["redis"];
@@ -5372,10 +5440,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dpmbq2awsjiwn300cafp9fbvv86dl7zrb760anhmm1qw8yzg1my";
+      sha256 = "1clmx6qzdbpm1g8ycg38gjbqsbr8ccqi6hqyx88g8yckz1hrx55x";
       type = "gem";
     };
-    version = "6.1.0";
+    version = "6.1.1";
   };
   rspec-retry = {
     dependencies = ["rspec-core"];
@@ -5410,15 +5478,15 @@ src:
     version = "0.6.0";
   };
   rspec_profiling = {
-    dependencies = ["activerecord" "pg" "rails" "sqlite3"];
+    dependencies = ["activerecord" "get_process_mem" "rails"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vkfizrwxgs029s9imz8g3p55ggncls709hf98brmv6wg5znjibs";
+      sha256 = "0icl94f0mmw7g4h1qnsil0cw6zw7b5wv0ilxda01928vh5bf87mk";
       type = "gem";
     };
-    version = "0.0.6";
+    version = "0.0.8";
   };
   rubocop = {
     dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
@@ -5525,10 +5593,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g1vdas991rv6lrjppjxjbfyzif4jxbncrcg9shgzrmibzilbnwr";
+      sha256 = "1v0dwirw4mq7qkf5a7wvagil4ppvk4dw4ln8hs6rmf2xrf56ga5f";
       type = "gem";
     };
-    version = "0.13.2";
+    version = "0.14.4";
   };
   ruby-lsp-rails = {
     dependencies = ["actionpack" "activerecord" "railties" "ruby-lsp" "sorbet-runtime"];
@@ -5536,10 +5604,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1j2pb9d9frdh6rpz5qcvhmqswqdmmxa392z2nv1rnk60cpxclc0p";
+      sha256 = "033kxj55pywnc4cjqcfb2jvn96nsa93m93qd2p636jf5hkqazq41";
       type = "gem";
     };
-    version = "0.2.8";
+    version = "0.3.1";
   };
   ruby-lsp-rspec = {
     dependencies = ["ruby-lsp"];
@@ -5547,10 +5615,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18qfm86bafybm93kz1bn2z86gwaax3c57i25g4lzgv6pp9aj5nr1";
+      sha256 = "0npxb9146yqfwpyx3bw375q8vx60ph2zgbvpai1dmgq8dfs3idki";
       type = "gem";
     };
-    version = "0.1.8";
+    version = "0.1.10";
   };
   ruby-magic = {
     dependencies = ["mini_portile2"];
@@ -5616,15 +5684,15 @@ src:
     version = "0.0.5";
   };
   ruby_parser = {
-    dependencies = ["sexp_processor"];
+    dependencies = ["racc" "sexp_processor"];
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0j8w4mqhqaw53jd27cfhq1mq02d1r606x9fmrpfzz0fwjnk8j8ld";
+      sha256 = "0sy5y7w89ii5iqym7b21glcwxqg8kizxfy8a7kcxq0j65wyqjhiq";
       type = "gem";
     };
-    version = "3.20.3";
+    version = "3.21.0";
   };
   rubyntlm = {
     groups = ["default"];
@@ -5698,28 +5766,6 @@ src:
     };
     version = "6.0.2";
   };
-  sassc = {
-    dependencies = ["ffi"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
-      type = "gem";
-    };
-    version = "2.4.0";
-  };
-  sassc-rails = {
-    dependencies = ["railties" "sassc" "sprockets" "sprockets-rails" "tilt"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "18mgdjxdzpbw92zrllynxw7jn7yihi85j3dg7i4f6c39w1scqkbn";
-      type = "gem";
-    };
-    version = "2.1.0";
-  };
   sawyer = {
     dependencies = ["addressable" "faraday"];
     groups = ["danger" "default" "development" "test"];
@@ -5753,15 +5799,15 @@ src:
     version = "2.3.7";
   };
   selenium-webdriver = {
-    dependencies = ["rexml" "rubyzip" "websocket"];
+    dependencies = ["base64" "rexml" "rubyzip" "websocket"];
     groups = ["test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qy3whgdg6q5bi6mzbq5gc94rxnkasdhdx3c73z3a955krj16w13";
+      sha256 = "1asysih4l1mv24wqxrbnz0c0454kw3dhqaj6nsa8pyn9fjjdms5b";
       type = "gem";
     };
-    version = "4.16.0";
+    version = "4.18.1";
   };
   semver_dialects = {
     dependencies = ["deb_version" "pastel" "thor" "tty-command"];
@@ -5769,10 +5815,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bj9r98ilpgg0w0h80wydfssr7kv65y0v2afsf1azhf9mymz3000";
+      sha256 = "11s5nr5v81qjlf2glgqjisvnv12vmwsmi9abbzqkb1nqjhw43691";
       type = "gem";
     };
-    version = "1.5.0";
+    version = "2.0.0";
   };
   sentry-rails = {
     dependencies = ["railties" "sentry-ruby"];
@@ -5818,25 +5864,15 @@ src:
     };
     version = "5.10.0";
   };
-  set = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00ick64s6066idlylbxhpjmxf56h1l22c8xp0mg4j8963zga9zq2";
-      type = "gem";
-    };
-    version = "1.0.2";
-  };
   sexp_processor = {
     groups = ["default" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vzz9mhg4kkdqf179pm30i204h7iskanxrk53j0csf0qrrs4iajd";
+      sha256 = "182x05kpdjlckh31qizws50fz7sjk86yjjfmy45z61q3f930j4ci";
       type = "gem";
     };
-    version = "4.17.0";
+    version = "4.17.1";
   };
   shellany = {
     groups = ["default" "test"];
@@ -5864,9 +5900,8 @@ src:
     groups = ["default"];
     platforms = [];
     source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "18j3g31ps6ga9nzza0z0d00qjrn810fhkhx2pqi3rvxwsmkdlnbq";
-      type = "gem";
+      path = "${src}/vendor/gems/sidekiq-7.1.6";
+      type = "path";
     };
     version = "7.1.6";
   };
@@ -5897,10 +5932,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0100rclkhagf032rg3r0gf3f4znrvvvqrimy6hpa73f21n9k2a0x";
+      sha256 = "0fzakk5y7zzii76zlkynpp1c764mzkkfg4mpj18f5pf2xp1aikb6";
       type = "gem";
     };
-    version = "0.17.0";
+    version = "0.18.0";
   };
   simple_po_parser = {
     groups = ["development" "test"];
@@ -6031,21 +6066,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18280l1wgdmr9xhr4mzxr4ycskwbgjzd91vmdzx0dlp6xp2dydnb";
-      type = "gem";
-    };
-    version = "0.5.11144";
-  };
-  sorted_set = {
-    dependencies = ["rbtree" "set"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0brpwv68d7m9qbf5js4bg8bmg4v7h4ghz312jv9cnnccdvp8nasg";
+      sha256 = "1fsq1k58isarg6ycg2ix9sw9a6391y12ss48m3hcryqi902w7cny";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "0.5.11266";
   };
   spamcheck = {
     dependencies = ["grpc"];
@@ -6111,17 +6135,6 @@ src:
     };
     version = "3.4.2";
   };
-  sqlite3 = {
-    dependencies = ["mini_portile2"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0f24qp50mc1qg8yvv7b3x73mh78d6mzd3b7rqib1ixfbsdiayx1x";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
   ssh_data = {
     groups = ["default"];
     platforms = [];
@@ -6364,14 +6377,14 @@ src:
     version = "1.3.1";
   };
   thor = {
-    groups = ["default" "development" "monorepo" "omnibus" "test"];
+    groups = ["default" "development" "omnibus" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
+      sha256 = "1vq1fjp45az9hfp6fxljhdrkv75cvbab1jfrwcw738pnsiqk8zps";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.3.1";
   };
   thread_safe = {
     groups = ["default" "test"];
@@ -6778,10 +6791,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xn5q1mbhwalx16mj441pzbm8hkxdmwxwzdjcj86f3bfnpipzh9y";
+      sha256 = "1zy51z0whkm3fdpsbi8v4j8h5h3ia1zkc2j28amiznpqqvfc7539";
       type = "gem";
     };
-    version = "3.8.0";
+    version = "3.11.0";
   };
   virtus = {
     dependencies = ["axiom-types" "coercible" "descendants_tracker"];
@@ -6875,10 +6888,10 @@ src:
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vfispr7wd2p1fs9ckn1qnby1yyp4i1dl7qz8n482iw977iyxrza";
+      sha256 = "13jb9q0qv9ajw1ajr4cawnqj4h0dws3w5j4v5n6v3xk7a8rnjzr7";
       type = "gem";
     };
-    version = "3.19.1";
+    version = "3.22.0";
   };
   webrick = {
     groups = ["default" "development" "test"];
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index ecadfb5d13cd5..40c744e1aed44 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -18,16 +18,16 @@ let
   gix = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/gix";
 in rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.34.0";
+  version = "0.35.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    hash = "sha256-CHlLValZnO5Jd7boMWnK9bYCSjjM4Dj6xvn6tBlvP8c=";
+    hash = "sha256-Sl7nNYoiCdTZ50tIfJcq5x9KOBkgJsb5bq09chWbyQc=";
   };
 
-  cargoHash = "sha256-7nc6eIuY08nTeHMVwKukOdd0zP6xbUPo7NcZ8EEGUNI=";
+  cargoHash = "sha256-G1NWRkhcmFrcHaIxQ7nzvRejPZUuZQDiNonZykkt4qM=";
 
   nativeBuildInputs = [ cmake pkg-config installShellFiles ];
 
diff --git a/pkgs/applications/version-management/gitsign/default.nix b/pkgs/applications/version-management/gitsign/default.nix
index 2d0878cf0d95e..dffb905a6fd53 100644
--- a/pkgs/applications/version-management/gitsign/default.nix
+++ b/pkgs/applications/version-management/gitsign/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "gitsign";
-  version = "0.8.1";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+oJBpERU2WbfmS7MyBbJKrh4kzY+rgSw4uKAU1y5kR4=";
+    hash = "sha256-WaiGkbjqty/MsTWPvx5DmmaNwWTJAEFKwVqArt2oZZc=";
   };
-  vendorHash = "sha256-Z46eDqUc8Mdq9lEMx1YOuSh5zPIMQrSkbto33AmgANU=";
+  vendorHash = "sha256-p2E010k7uozpLvl9VpfG5/JyQR4mVUBKv2p78UdFlac=";
 
   subPackages = [
     "."
diff --git a/pkgs/applications/version-management/gitstatus/default.nix b/pkgs/applications/version-management/gitstatus/default.nix
index ccb1f07edeca4..2e2fc5af2c4c3 100644
--- a/pkgs/applications/version-management/gitstatus/default.nix
+++ b/pkgs/applications/version-management/gitstatus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "sha256-mVfB3HWjvk4X8bmLEC/U8SKBRytTh/gjjuReqzN5qTk=";
+    sha256 = "sha256-b+9bwJ87VV6rbOPobkwMkDXGH34STjYPlt8wCRR5tEc=";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix { }) ];
diff --git a/pkgs/applications/version-management/gitui/default.nix b/pkgs/applications/version-management/gitui/default.nix
deleted file mode 100644
index d626585b97c5c..0000000000000
--- a/pkgs/applications/version-management/gitui/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ lib
-, stdenv
-, rustPlatform
-, fetchFromGitHub
-, libiconv
-, openssl
-, pkg-config
-, xclip
-, AppKit
-, Security
-}:
-
-rustPlatform.buildRustPackage rec {
-  pname = "gitui";
-  version = "0.25.1";
-
-  src = fetchFromGitHub {
-    owner = "extrawurst";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-+u0XvZb42RRlQnQUZHrMXRJU+31CDy/oLYQ55tLlmUg=";
-  };
-
-  cargoHash = "sha256-3FBrJvLSuDehCy+o7valkf5LSuMkD2loD2JPQO4+3sY=";
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ openssl ]
-    ++ lib.optional stdenv.isLinux xclip
-    ++ lib.optionals stdenv.isDarwin [ libiconv Security AppKit ];
-
-  # Needed to get openssl-sys to use pkg-config.
-  OPENSSL_NO_VENDOR = 1;
-
-  # The cargo config overrides linkers for some targets, breaking the build
-  # on e.g. `aarch64-linux`. These overrides are not required in the Nix
-  # environment: delete them.
-  postPatch = "rm .cargo/config";
-
-
-  # Getting app_config_path fails with a permission denied
-  checkFlags = [
-    "--skip=keys::key_config::tests::test_symbolic_links"
-  ];
-
-
-  meta = with lib; {
-    description = "Blazing fast terminal-ui for Git written in Rust";
-    homepage = "https://github.com/extrawurst/gitui";
-    changelog = "https://github.com/extrawurst/gitui/blob/v${version}/CHANGELOG.md";
-    mainProgram = "gitui";
-    license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne yanganto mfrw ];
-  };
-}
diff --git a/pkgs/applications/version-management/glitter/default.nix b/pkgs/applications/version-management/glitter/default.nix
index ddd56fdfb11c7..a6a81fb08782a 100644
--- a/pkgs/applications/version-management/glitter/default.nix
+++ b/pkgs/applications/version-management/glitter/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "glitter";
-  version = "1.6.5";
+  version = "1.6.6";
 
   src = fetchFromGitHub {
     owner = "milo123459";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-sMAHVXpgAhZYUpl75JRtKhTqt/sQkSkoEzk7aGV1vcQ=";
+    hash = "sha256-dImQLC7owPf2EB5COO5vjN3a6k7gJ88D2hMSUW2/wn4=";
   };
 
-  cargoSha256 = "sha256-CaWpGNP7Jsv/3dks0LVbZXoD/9HqJmOzaD0ejT5xSqA=";
+  cargoHash = "sha256-7JQcY3HCG3UQ0Mfz/+ZZ0axGEpQoH410FT72tjHW7EE=";
 
   nativeCheckInputs = [
     git
diff --git a/pkgs/applications/version-management/jujutsu/default.nix b/pkgs/applications/version-management/jujutsu/default.nix
index b6b4bd8e8e411..8b5580650b32c 100644
--- a/pkgs/applications/version-management/jujutsu/default.nix
+++ b/pkgs/applications/version-management/jujutsu/default.nix
@@ -19,16 +19,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jujutsu";
-  version = "0.15.1";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "martinvonz";
     repo = "jj";
     rev = "v${version}";
-    hash = "sha256-yppQIffjpyQ2nqhiZbV2pSMQJx8srmHjAk+UClCQfRw=";
+    hash = "sha256-7bMyboF1JG/roFgo3cusYTi7qd2a6W+u1RJHgoBXNL0=";
   };
 
-  cargoHash = "sha256-2BmKC8DaOdD/THchImmGqplhDrHQHEMyWORWnE2ygSM=";
+  cargoHash = "sha256-nPBHIUBm4bQLuj93kE8CUfzA34uUyapVjswz9FFCiTk=";
 
   cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
   useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping
diff --git a/pkgs/applications/version-management/lucky-commit/default.nix b/pkgs/applications/version-management/lucky-commit/default.nix
index 4e8db1fef606f..dcaca33f09522 100644
--- a/pkgs/applications/version-management/lucky-commit/default.nix
+++ b/pkgs/applications/version-management/lucky-commit/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lucky-commit";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "not-an-aardvark";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DrgZBzcJmqSP7iCHZyy623iRZYfTE/z/zzx7I+BAOBo=";
+    sha256 = "sha256-jxcsTtQcSuL+2vwdxIVxqTpKh8Bfvna+hkGt+Rx21FE=";
   };
 
-  cargoHash = "sha256-5P0CiLCf86Jul4EaIDqHGkp4XNifLKnWJZXtrLkpLMY=";
+  cargoHash = "sha256-8JkodGtMdYP/IIBqRcJFD5syiZi+VakDyX7VcvR0HLo=";
 
   buildInputs = lib.optional withOpenCL (if stdenv.isDarwin then OpenCL else ocl-icd);
 
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 563e7362d51d1..3b2f52f007741 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -18,13 +18,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meld";
-  version = "3.22.1";
+  version = "3.22.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-bdO9MtvUNBq6djD7lTd393x3aB7qIjazZB1iKo+QaDY=";
+    sha256 = "sha256-RqCnE/vNGxU7N3oeB1fIziVcmCJGdljqz72JsekjFu8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index 188c5bbe2206c..695e596e8c850 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -4,10 +4,7 @@
 , lib
 , emptyDirectory
 , linkFarm
-, symlinkJoin
 , jam
-, libcxx
-, libcxxabi
 , openssl
 , xcbuild
 , CoreServices
@@ -33,10 +30,6 @@ let
       # cone-based Git sparse checkout, either.)
       { name = "contrib"; path = "${src}/contrib"; }
     ];
-  libcxxUnified = symlinkJoin {
-    inherit (libcxx) name;
-    paths = [ libcxx libcxxabi ];
-  };
 in
 stdenv.mkDerivation rec {
   pname = "p4";
@@ -70,7 +63,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isDarwin [
       "-sOSVER=1013"
       "-sMACOSX_SDK=${emptyDirectory}"
-      "-sLIBC++DIR=${libcxxUnified}/lib"
+      "-sLIBC++DIR=${lib.getLib stdenv.cc.libcxx}/lib"
     ];
 
   CCFLAGS =
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index d8be3e9023cc8..bb6e7aeb91147 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -13,14 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pijul";
-  version = "1.0.0-beta.8";
+  version = "1.0.0-beta.9";
 
   src = fetchCrate {
     inherit version pname;
-    hash = "sha256-BQic+E+SOfZYHJcYMaUmfjlIfop0YcVcASSjtnRtwD4=";
+    hash = "sha256-jy0mzgLw9iWuoWe2ictMTL3cHnjJ5kzs6TAK+pdm28g=";
   };
 
-  cargoHash = "sha256-D5P9pizerJiZK4UhCKEY1DXvaBMiWBXGu6Azlv6AjQA=";
+  cargoHash = "sha256-iXGvb4qmZK7Sjbf/Jkyzj+nhpZFV3ngjtJfz6x/8z2s=";
 
   doCheck = false;
   nativeBuildInputs = [ installShellFiles pkg-config ];
diff --git a/pkgs/applications/version-management/radicle-upstream/default.nix b/pkgs/applications/version-management/radicle-upstream/default.nix
index 51365d0c4a31b..69c960ed78e86 100644
--- a/pkgs/applications/version-management/radicle-upstream/default.nix
+++ b/pkgs/applications/version-management/radicle-upstream/default.nix
@@ -15,7 +15,7 @@ let
       sha256 = "sha256-EuWGbn6qggi8/9Rci8iaXfuVKE+QXb1BHEYDvotR/q4=";
     };
   };
-  src = srcs.${stdenv.hostPlatform.system};
+  src = srcs.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
 
   contents = appimageTools.extract { inherit name src; };
 
@@ -77,6 +77,7 @@ let
     maintainers = with maintainers; [ d-xo ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
+    broken = stdenv.isLinux; # last successful build 2023-04-11
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/redmine/0001-python3.patch b/pkgs/applications/version-management/redmine/0001-python3.patch
deleted file mode 100644
index c88645b85a281..0000000000000
--- a/pkgs/applications/version-management/redmine/0001-python3.patch
+++ /dev/null
@@ -1,275 +0,0 @@
---- a/lib/redmine/scm/adapters/mercurial/redminehelper.py
-+++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py
-@@ -45,17 +45,20 @@ Output example of rhmanifest::
-       </repository>
-     </rhmanifest>
- """
--import re, time, cgi, urllib
-+import re, time, html, urllib
- from mercurial import cmdutil, commands, node, error, hg, registrar
- 
- cmdtable = {}
- command = registrar.command(cmdtable) if hasattr(registrar, 'command') else cmdutil.command(cmdtable)
- 
--_x = cgi.escape
--_u = lambda s: cgi.escape(urllib.quote(s))
-+_x = lambda s: html.escape(s.decode('utf-8')).encode('utf-8')
-+_u = lambda s: html.escape(urllib.parse.quote(s)).encode('utf-8')
-+
-+def unquoteplus(*args, **kwargs):
-+    return urllib.parse.unquote_to_bytes(*args, **kwargs).replace(b'+', b' ')
- 
- def _changectx(repo, rev):
--    if isinstance(rev, str):
-+    if isinstance(rev, bytes):
-        rev = repo.lookup(rev)
-     if hasattr(repo, 'changectx'):
-         return repo.changectx(rev)
-@@ -70,10 +73,10 @@ def _tip(ui, repo):
-         except TypeError:  # Mercurial < 1.1
-             return repo.changelog.count() - 1
-     tipctx = _changectx(repo, tiprev())
--    ui.write('<tip revision="%d" node="%s"/>\n'
-+    ui.write(b'<tip revision="%d" node="%s"/>\n'
-              % (tipctx.rev(), _x(node.hex(tipctx.node()))))
- 
--_SPECIAL_TAGS = ('tip',)
-+_SPECIAL_TAGS = (b'tip',)
- 
- def _tags(ui, repo):
-     # see mercurial/commands.py:tags
-@@ -84,7 +87,7 @@ def _tags(ui, repo):
-             r = repo.changelog.rev(n)
-         except error.LookupError:
-             continue
--        ui.write('<tag revision="%d" node="%s" name="%s"/>\n'
-+        ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n'
-                  % (r, _x(node.hex(n)), _u(t)))
- 
- def _branches(ui, repo):
-@@ -104,136 +107,148 @@ def _branches(ui, repo):
-             return repo.branchheads(branch)
-     def lookup(rev, n):
-         try:
--            return repo.lookup(rev)
-+            return repo.lookup(str(rev).encode('utf-8'))
-         except RuntimeError:
-             return n
-     for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
-         if lookup(r, n) in branchheads(t):
--            ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
-+            ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n'
-                      % (r, _x(node.hex(n)), _u(t)))
- 
- def _manifest(ui, repo, path, rev):
-     ctx = _changectx(repo, rev)
--    ui.write('<manifest revision="%d" path="%s">\n'
-+    ui.write(b'<manifest revision="%d" path="%s">\n'
-              % (ctx.rev(), _u(path)))
- 
-     known = set()
--    pathprefix = (path.rstrip('/') + '/').lstrip('/')
-+    pathprefix = (path.decode('utf-8').rstrip('/') + '/').lstrip('/')
-     for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
--        if not f.startswith(pathprefix):
-+        fstr = f.decode('utf-8')
-+        if not fstr.startswith(pathprefix):
-             continue
--        name = re.sub(r'/.*', '/', f[len(pathprefix):])
-+        name = re.sub(r'/.*', '/', fstr[len(pathprefix):])
-         if name in known:
-             continue
-         known.add(name)
- 
-         if name.endswith('/'):
--            ui.write('<dir name="%s"/>\n'
-+            ui.write(b'<dir name="%s"/>\n'
-                      % _x(urllib.quote(name[:-1])))
-         else:
-             fctx = repo.filectx(f, fileid=n)
-             tm, tzoffset = fctx.date()
--            ui.write('<file name="%s" revision="%d" node="%s" '
--                     'time="%d" size="%d"/>\n'
-+            ui.write(b'<file name="%s" revision="%d" node="%s" '
-+                     b'time="%d" size="%d"/>\n'
-                      % (_u(name), fctx.rev(), _x(node.hex(fctx.node())),
-                         tm, fctx.size(), ))
- 
--    ui.write('</manifest>\n')
-+    ui.write(b'</manifest>\n')
- 
--@command('rhannotate',
--         [('r', 'rev', '', 'revision'),
--          ('u', 'user', None, 'list the author (long with -v)'),
--          ('n', 'number', None, 'list the revision number (default)'),
--          ('c', 'changeset', None, 'list the changeset'),
-+@command(b'rhannotate',
-+         [(b'r', b'rev', b'', b'revision'),
-+          (b'u', b'user', None, b'list the author (long with -v)'),
-+          (b'n', b'number', None, b'list the revision number (default)'),
-+          (b'c', b'changeset', None, b'list the changeset'),
-          ],
--         'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
-+         b'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
- def rhannotate(ui, repo, *pats, **opts):
--    rev = urllib.unquote_plus(opts.pop('rev', None))
-+    rev = unquoteplus(opts.pop('rev', b''))
-     opts['rev'] = rev
--    return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
-+    return commands.annotate(ui, repo, *map(unquoteplus, pats), **opts)
- 
--@command('rhcat',
--               [('r', 'rev', '', 'revision')],
--               'hg rhcat ([-r REV] ...) FILE...')
-+@command(b'rhcat',
-+               [(b'r', b'rev', b'', b'revision')],
-+               b'hg rhcat ([-r REV] ...) FILE...')
- def rhcat(ui, repo, file1, *pats, **opts):
--    rev = urllib.unquote_plus(opts.pop('rev', None))
-+    rev = unquoteplus(opts.pop('rev', b''))
-     opts['rev'] = rev
--    return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
-+    return commands.cat(ui, repo, unquoteplus(file1), *map(unquoteplus, pats), **opts)
- 
--@command('rhdiff',
--               [('r', 'rev', [], 'revision'),
--                ('c', 'change', '', 'change made by revision')],
--               'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
-+@command(b'rhdiff',
-+               [(b'r', b'rev', [], b'revision'),
-+                (b'c', b'change', b'', b'change made by revision')],
-+               b'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
- def rhdiff(ui, repo, *pats, **opts):
-     """diff repository (or selected files)"""
-     change = opts.pop('change', None)
-     if change:  # add -c option for Mercurial<1.1
-         base = _changectx(repo, change).parents()[0].rev()
--        opts['rev'] = [str(base), change]
-+        opts['rev'] = [base, change]
-     opts['nodates'] = True
--    return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
--
--@command('rhlog',
--                   [
--                    ('r', 'rev', [], 'show the specified revision'),
--                    ('b', 'branch', [],
--                       'show changesets within the given named branch'),
--                    ('l', 'limit', '',
--                         'limit number of changes displayed'),
--                    ('d', 'date', '',
--                         'show revisions matching date spec'),
--                    ('u', 'user', [],
--                      'revisions committed by user'),
--                    ('', 'from', '',
--                      ''),
--                    ('', 'to', '',
--                      ''),
--                    ('', 'rhbranch', '',
--                      ''),
--                    ('', 'template', '',
--                       'display with template')],
--                   'hg rhlog [OPTION]... [FILE]')
-+    return commands.diff(ui, repo, *map(unquoteplus, pats), **opts)
-+
-+@command(b'rhlog',
-+                  [
-+                    (b'r', b'rev', [], b'show the specified revision'),
-+                    (b'b', b'branch', [],
-+                       b'show changesets within the given named branch'),
-+                    (b'l', b'limit', b'',
-+                         b'limit number of changes displayed'),
-+                    (b'd', b'date', b'',
-+                         b'show revisions matching date spec'),
-+                    (b'u', b'user', [],
-+                      b'revisions committed by user'),
-+                    (b'', b'from', b'',
-+                      b''),
-+                    (b'', b'to', b'',
-+                      b''),
-+                    (b'', b'rhbranch', b'',
-+                      b''),
-+                    (b'', b'template', b'',
-+                       b'display with template')],
-+                   b'hg rhlog [OPTION]... [FILE]')
-+
- def rhlog(ui, repo, *pats, **opts):
-     rev      = opts.pop('rev')
-     bra0     = opts.pop('branch')
--    from_rev = urllib.unquote_plus(opts.pop('from', None))
--    to_rev   = urllib.unquote_plus(opts.pop('to'  , None))
--    bra      = urllib.unquote_plus(opts.pop('rhbranch', None))
--    from_rev = from_rev.replace('"', '\\"')
--    to_rev   = to_rev.replace('"', '\\"')
--    if hg.util.version() >= '1.6':
--      opts['rev'] = ['"%s":"%s"' % (from_rev, to_rev)]
-+    from_rev = unquoteplus(opts.pop('from', b''))
-+    to_rev   = unquoteplus(opts.pop('to'  , b''))
-+    bra      = unquoteplus(opts.pop('rhbranch', b''))
-+    from_rev = from_rev.replace(b'"', b'\\"')
-+    to_rev   = to_rev.replace(b'"', b'\\"')
-+    if (from_rev != b'') or (to_rev != b''):
-+        if from_rev != b'':
-+            quotefrom = b'"%s"' % (from_rev)
-+        else:
-+            quotefrom = from_rev
-+        if to_rev != b'':
-+            quoteto = b'"%s"' % (to_rev)
-+        else:
-+            quoteto = to_rev
-+        opts['rev'] = [b'%s:%s' % (quotefrom, quoteto)]
-     else:
--      opts['rev'] = ['%s:%s' % (from_rev, to_rev)]
--    opts['branch'] = [bra]
--    return commands.log(ui, repo, *map(urllib.unquote_plus, pats), **opts)
--
--@command('rhmanifest',
--                   [('r', 'rev', '', 'show the specified revision')],
--                   'hg rhmanifest [-r REV] [PATH]')
--def rhmanifest(ui, repo, path='', **opts):
-+        opts['rev'] = rev
-+    if (bra != b''):
-+        opts['branch'] = [bra]
-+    return commands.log(ui, repo, *map(unquoteplus, pats), **opts)
-+
-+
-+@command(b'rhmanifest',
-+                   [(b'r', b'rev', b'', b'show the specified revision')],
-+                   b'hg rhmanifest -r REV [PATH]')
-+def rhmanifest(ui, repo, path=b'', **opts):
-     """output the sub-manifest of the specified directory"""
--    ui.write('<?xml version="1.0"?>\n')
--    ui.write('<rhmanifest>\n')
--    ui.write('<repository root="%s">\n' % _u(repo.root))
-+    ui.write(b'<?xml version="1.0"?>\n')
-+    ui.write(b'<rhmanifest>\n')
-+    ui.write(b'<repository root="%s">\n' % _u(repo.root))
-     try:
--        _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
-+        _manifest(ui, repo, unquoteplus(path), unquoteplus(opts.get('rev')))
-     finally:
--        ui.write('</repository>\n')
--        ui.write('</rhmanifest>\n')
-+        ui.write(b'</repository>\n')
-+        ui.write(b'</rhmanifest>\n')
- 
--@command('rhsummary',[], 'hg rhsummary')
-+@command(b'rhsummary',[], b'hg rhsummary')
- def rhsummary(ui, repo, **opts):
-     """output the summary of the repository"""
--    ui.write('<?xml version="1.0"?>\n')
--    ui.write('<rhsummary>\n')
--    ui.write('<repository root="%s">\n' % _u(repo.root))
-+    ui.write(b'<?xml version="1.0"?>\n')
-+    ui.write(b'<rhsummary>\n')
-+    ui.write(b'<repository root="%s">\n' % _u(repo.root))
-     try:
-         _tip(ui, repo)
-         _tags(ui, repo)
-         _branches(ui, repo)
-         # TODO: bookmarks in core (Mercurial>=1.8)
-     finally:
--        ui.write('</repository>\n')
--        ui.write('</rhsummary>\n')
-+        ui.write(b'</repository>\n')
-+        ui.write(b'</rhsummary>\n')
- 
diff --git a/pkgs/applications/version-management/redmine/Gemfile b/pkgs/applications/version-management/redmine/Gemfile
deleted file mode 100644
index 326f0e0bab0b3..0000000000000
--- a/pkgs/applications/version-management/redmine/Gemfile
+++ /dev/null
@@ -1,107 +0,0 @@
-source 'https://rubygems.org'
-
-ruby '>= 2.5.0', '< 3.2.0'
-gem 'bundler', '>= 1.12.0'
-
-gem 'rails', '6.1.7.6'
-gem 'globalid', '~> 0.4.2' if Gem.ruby_version < Gem::Version.new('2.6.0')
-gem 'rouge', '~> 3.28.0'
-gem 'request_store', '~> 1.5.0'
-gem 'mini_mime', '~> 1.1.0'
-gem "actionpack-xml_parser"
-gem 'roadie-rails', (Gem.ruby_version < Gem::Version.new('2.6.0') ? '~> 2.2.0' : '~> 3.0.0')
-gem 'marcel'
-gem "mail", "~> 2.7.1"
-gem 'csv', '~> 3.2.0'
-gem 'nokogiri', (if Gem.ruby_version < Gem::Version.new('2.6.0')
-                   '~> 1.12.5'
-                 elsif Gem.ruby_version < Gem::Version.new('2.7.0')
-                   '~> 1.13.10'
-                 else
-                   '~> 1.15.2'
-                 end)
-gem "rexml", require: false if Gem.ruby_version >= Gem::Version.new('3.0')
-gem 'i18n', '~> 1.10.0'
-gem 'rbpdf', '~> 1.21.3'
-gem 'addressable'
-gem 'rubyzip', '~> 2.3.0'
-gem 'net-smtp', '~> 0.3.0'
-gem 'net-imap', '~> 0.2.2'
-gem 'net-pop', '~> 0.1.1'
-# Rails 6.1.6.1 does not work with Pysch 3.0.2, which is installed by default with Ruby 2.5. See https://github.com/rails/rails/issues/45590
-gem 'psych', '>= 3.1.0' if Gem.ruby_version < Gem::Version.new('2.6.0')
-
-# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
-gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
-
-# TOTP-based 2-factor authentication
-gem 'rotp', '>= 5.0.0'
-gem 'rqrcode'
-
-# Optional gem for LDAP authentication
-group :ldap do
-  gem 'net-ldap', '~> 0.17.0'
-end
-
-# Optional gem for exporting the gantt to a PNG file
-group :minimagick do
-  gem 'mini_magick', '~> 4.11.0'
-end
-
-# Optional Markdown support, not for JRuby
-# ToDo: Remove common_mark group when common_mark is decoupled from markdown. See defect (#36892) for more details.
-gem 'redcarpet', '~> 3.5.1', groups: [:markdown, :common_mark]
-
-# Optional CommonMark support, not for JRuby
-group :common_mark do
-  gem "html-pipeline", "~> 2.13.2"
-  gem "commonmarker", (Gem.ruby_version < Gem::Version.new('2.6.0') ? '0.21.0' : '~> 0.23.8')
-  gem "sanitize", "~> 6.0"
-  gem 'deckar01-task_list', '2.3.2'
-end
-
-# webrick
-gem 'webrick'
-
-# Include database gems for the database adapters NixOS supports
-require 'erb'
-require 'yaml'
-gem "mysql2", "~> 0.5.0", :platforms => [:mri, :mingw, :x64_mingw]
-gem "pg", "~> 1.4.2", :platforms => [:mri, :mingw, :x64_mingw]
-
-group :development do
-  gem 'listen', '~> 3.3'
-  gem "yard"
-end
-
-group :test do
-  gem "rails-dom-testing"
-  gem 'mocha', '>= 2.0.1'
-  gem 'simplecov', '~> 0.21.2', :require => false
-  gem "ffi", platforms: [:mri, :mingw, :x64_mingw, :mswin]
-  # For running system tests
-  gem 'puma', (Gem.ruby_version < Gem::Version.new('2.7') ? '< 6.0.0' : '>= 0')
-  gem 'capybara', (if Gem.ruby_version < Gem::Version.new('2.6')
-                     '~> 3.35.3'
-                   elsif Gem.ruby_version < Gem::Version.new('2.7')
-                     '~> 3.36.0'
-                   else
-                     '~> 3.38.0'
-                   end)
-  gem "selenium-webdriver", "~> 3.142.7"
-  gem 'webdrivers', '4.6.1', require: false
-  # RuboCop
-  gem 'rubocop', '~> 1.26.0'
-  gem 'rubocop-performance', '~> 1.13.0'
-  gem 'rubocop-rails', '~> 2.14.0'
-end
-
-local_gemfile = File.join(File.dirname(__FILE__), "Gemfile.local")
-if File.exist?(local_gemfile)
-  eval_gemfile local_gemfile
-end
-
-# Load plugins' Gemfiles
-Dir.glob File.expand_path("../plugins/*/{Gemfile,PluginGemfile}", __FILE__) do |file|
-  eval_gemfile file
-end
diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock
deleted file mode 100644
index f9efc5ecede6a..0000000000000
--- a/pkgs/applications/version-management/redmine/Gemfile.lock
+++ /dev/null
@@ -1,313 +0,0 @@
-GEM
-  remote: https://rubygems.org/
-  specs:
-    actioncable (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      nio4r (~> 2.0)
-      websocket-driver (>= 0.6.1)
-    actionmailbox (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      activejob (= 6.1.7.6)
-      activerecord (= 6.1.7.6)
-      activestorage (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      mail (>= 2.7.1)
-    actionmailer (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      actionview (= 6.1.7.6)
-      activejob (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      mail (~> 2.5, >= 2.5.4)
-      rails-dom-testing (~> 2.0)
-    actionpack (6.1.7.6)
-      actionview (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      rack (~> 2.0, >= 2.0.9)
-      rack-test (>= 0.6.3)
-      rails-dom-testing (~> 2.0)
-      rails-html-sanitizer (~> 1.0, >= 1.2.0)
-    actionpack-xml_parser (2.0.1)
-      actionpack (>= 5.0)
-      railties (>= 5.0)
-    actiontext (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      activerecord (= 6.1.7.6)
-      activestorage (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      nokogiri (>= 1.8.5)
-    actionview (6.1.7.6)
-      activesupport (= 6.1.7.6)
-      builder (~> 3.1)
-      erubi (~> 1.4)
-      rails-dom-testing (~> 2.0)
-      rails-html-sanitizer (~> 1.1, >= 1.2.0)
-    activejob (6.1.7.6)
-      activesupport (= 6.1.7.6)
-      globalid (>= 0.3.6)
-    activemodel (6.1.7.6)
-      activesupport (= 6.1.7.6)
-    activerecord (6.1.7.6)
-      activemodel (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-    activestorage (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      activejob (= 6.1.7.6)
-      activerecord (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      marcel (~> 1.0)
-      mini_mime (>= 1.1.0)
-    activesupport (6.1.7.6)
-      concurrent-ruby (~> 1.0, >= 1.0.2)
-      i18n (>= 1.6, < 2)
-      minitest (>= 5.1)
-      tzinfo (~> 2.0)
-      zeitwerk (~> 2.3)
-    addressable (2.8.5)
-      public_suffix (>= 2.0.2, < 6.0)
-    ast (2.4.2)
-    builder (3.2.4)
-    capybara (3.38.0)
-      addressable
-      matrix
-      mini_mime (>= 0.1.3)
-      nokogiri (~> 1.8)
-      rack (>= 1.6.0)
-      rack-test (>= 0.6.3)
-      regexp_parser (>= 1.5, < 3.0)
-      xpath (~> 3.2)
-    childprocess (3.0.0)
-    chunky_png (1.4.0)
-    commonmarker (0.23.10)
-    concurrent-ruby (1.2.2)
-    crass (1.0.6)
-    css_parser (1.16.0)
-      addressable
-    csv (3.2.8)
-    deckar01-task_list (2.3.2)
-      html-pipeline
-    digest (3.1.1)
-    docile (1.4.0)
-    erubi (1.12.0)
-    ffi (1.16.3)
-    globalid (1.2.1)
-      activesupport (>= 6.1)
-    html-pipeline (2.13.2)
-      activesupport (>= 2)
-      nokogiri (>= 1.4)
-    htmlentities (4.3.4)
-    i18n (1.10.0)
-      concurrent-ruby (~> 1.0)
-    listen (3.8.0)
-      rb-fsevent (~> 0.10, >= 0.10.3)
-      rb-inotify (~> 0.9, >= 0.9.10)
-    loofah (2.22.0)
-      crass (~> 1.0.2)
-      nokogiri (>= 1.12.0)
-    mail (2.7.1)
-      mini_mime (>= 0.1.1)
-    marcel (1.0.2)
-    matrix (0.4.2)
-    method_source (1.0.0)
-    mini_magick (4.11.0)
-    mini_mime (1.1.5)
-    mini_portile2 (2.8.5)
-    minitest (5.20.0)
-    mocha (2.1.0)
-      ruby2_keywords (>= 0.0.5)
-    mysql2 (0.5.5)
-    net-imap (0.2.3)
-      digest
-      net-protocol
-      strscan
-    net-ldap (0.17.1)
-    net-pop (0.1.2)
-      net-protocol
-    net-protocol (0.2.2)
-      timeout
-    net-smtp (0.3.3)
-      net-protocol
-    nio4r (2.6.1)
-    nokogiri (1.15.5)
-      mini_portile2 (~> 2.8.2)
-      racc (~> 1.4)
-    parallel (1.23.0)
-    parser (3.2.2.4)
-      ast (~> 2.4.1)
-      racc
-    pg (1.4.6)
-    public_suffix (5.0.4)
-    puma (6.4.0)
-      nio4r (~> 2.0)
-    racc (1.7.3)
-    rack (2.2.8)
-    rack-test (2.1.0)
-      rack (>= 1.3)
-    rails (6.1.7.6)
-      actioncable (= 6.1.7.6)
-      actionmailbox (= 6.1.7.6)
-      actionmailer (= 6.1.7.6)
-      actionpack (= 6.1.7.6)
-      actiontext (= 6.1.7.6)
-      actionview (= 6.1.7.6)
-      activejob (= 6.1.7.6)
-      activemodel (= 6.1.7.6)
-      activerecord (= 6.1.7.6)
-      activestorage (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      bundler (>= 1.15.0)
-      railties (= 6.1.7.6)
-      sprockets-rails (>= 2.0.0)
-    rails-dom-testing (2.2.0)
-      activesupport (>= 5.0.0)
-      minitest
-      nokogiri (>= 1.6)
-    rails-html-sanitizer (1.6.0)
-      loofah (~> 2.21)
-      nokogiri (~> 1.14)
-    railties (6.1.7.6)
-      actionpack (= 6.1.7.6)
-      activesupport (= 6.1.7.6)
-      method_source
-      rake (>= 12.2)
-      thor (~> 1.0)
-    rainbow (3.1.1)
-    rake (13.1.0)
-    rb-fsevent (0.11.2)
-    rb-inotify (0.10.1)
-      ffi (~> 1.0)
-    rbpdf (1.21.3)
-      htmlentities
-      rbpdf-font (~> 1.19.0)
-    rbpdf-font (1.19.1)
-    redcarpet (3.5.1)
-    regexp_parser (2.8.2)
-    request_store (1.5.1)
-      rack (>= 1.4)
-    rexml (3.2.6)
-    roadie (5.2.0)
-      css_parser (~> 1.4)
-      nokogiri (~> 1.15)
-    roadie-rails (3.0.0)
-      railties (>= 5.1, < 7.1)
-      roadie (~> 5.0)
-    rotp (6.3.0)
-    rouge (3.28.0)
-    rqrcode (2.2.0)
-      chunky_png (~> 1.0)
-      rqrcode_core (~> 1.0)
-    rqrcode_core (1.2.0)
-    rubocop (1.26.1)
-      parallel (~> 1.10)
-      parser (>= 3.1.0.0)
-      rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.8, < 3.0)
-      rexml
-      rubocop-ast (>= 1.16.0, < 2.0)
-      ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.30.0)
-      parser (>= 3.2.1.0)
-    rubocop-performance (1.13.3)
-      rubocop (>= 1.7.0, < 2.0)
-      rubocop-ast (>= 0.4.0)
-    rubocop-rails (2.14.2)
-      activesupport (>= 4.2.0)
-      rack (>= 1.1)
-      rubocop (>= 1.7.0, < 2.0)
-    ruby-progressbar (1.13.0)
-    ruby2_keywords (0.0.5)
-    rubyzip (2.3.2)
-    sanitize (6.1.0)
-      crass (~> 1.0.2)
-      nokogiri (>= 1.12.0)
-    selenium-webdriver (3.142.7)
-      childprocess (>= 0.5, < 4.0)
-      rubyzip (>= 1.2.2)
-    simplecov (0.21.2)
-      docile (~> 1.1)
-      simplecov-html (~> 0.11)
-      simplecov_json_formatter (~> 0.1)
-    simplecov-html (0.12.3)
-    simplecov_json_formatter (0.1.4)
-    sprockets (4.2.1)
-      concurrent-ruby (~> 1.0)
-      rack (>= 2.2.4, < 4)
-    sprockets-rails (3.4.2)
-      actionpack (>= 5.2)
-      activesupport (>= 5.2)
-      sprockets (>= 3.0.0)
-    strscan (3.0.7)
-    thor (1.3.0)
-    timeout (0.4.1)
-    tzinfo (2.0.6)
-      concurrent-ruby (~> 1.0)
-    unicode-display_width (2.5.0)
-    webdrivers (4.6.1)
-      nokogiri (~> 1.6)
-      rubyzip (>= 1.3.0)
-      selenium-webdriver (>= 3.0, < 4.0)
-    webrick (1.8.1)
-    websocket-driver (0.7.6)
-      websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.5)
-    xpath (3.2.0)
-      nokogiri (~> 1.8)
-    yard (0.9.34)
-    zeitwerk (2.6.12)
-
-PLATFORMS
-  ruby
-
-DEPENDENCIES
-  actionpack-xml_parser
-  addressable
-  bundler (>= 1.12.0)
-  capybara (~> 3.38.0)
-  commonmarker (~> 0.23.8)
-  csv (~> 3.2.0)
-  deckar01-task_list (= 2.3.2)
-  ffi
-  html-pipeline (~> 2.13.2)
-  i18n (~> 1.10.0)
-  listen (~> 3.3)
-  mail (~> 2.7.1)
-  marcel
-  mini_magick (~> 4.11.0)
-  mini_mime (~> 1.1.0)
-  mocha (>= 2.0.1)
-  mysql2 (~> 0.5.0)
-  net-imap (~> 0.2.2)
-  net-ldap (~> 0.17.0)
-  net-pop (~> 0.1.1)
-  net-smtp (~> 0.3.0)
-  nokogiri (~> 1.15.2)
-  pg (~> 1.4.2)
-  puma
-  rails (= 6.1.7.6)
-  rails-dom-testing
-  rbpdf (~> 1.21.3)
-  redcarpet (~> 3.5.1)
-  request_store (~> 1.5.0)
-  rexml
-  roadie-rails (~> 3.0.0)
-  rotp (>= 5.0.0)
-  rouge (~> 3.28.0)
-  rqrcode
-  rubocop (~> 1.26.0)
-  rubocop-performance (~> 1.13.0)
-  rubocop-rails (~> 2.14.0)
-  rubyzip (~> 2.3.0)
-  sanitize (~> 6.0)
-  selenium-webdriver (~> 3.142.7)
-  simplecov (~> 0.21.2)
-  tzinfo-data
-  webdrivers (= 4.6.1)
-  webrick
-  yard
-
-RUBY VERSION
-   ruby 3.1.4p223
-
-BUNDLED WITH
-   2.4.12
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
deleted file mode 100644
index 1235df9f67207..0000000000000
--- a/pkgs/applications/version-management/redmine/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib, stdenv, fetchurl, bundlerEnv, ruby, defaultGemConfig, makeWrapper, nixosTests }:
-
-let
-  version = "5.0.6";
-  rubyEnv = bundlerEnv {
-    name = "redmine-env-${version}";
-
-    inherit ruby;
-    gemdir = ./.;
-    groups = [ "development" "ldap" "markdown" "common_mark" "minimagick" "test" ];
-  };
-in
-  stdenv.mkDerivation rec {
-    pname = "redmine";
-    inherit version;
-
-    src = fetchurl {
-      url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      hash = "sha256-SI/gjzeo6xARQVkiqOp0O3842Kel+IIpUKNKN13PCO4=";
-    };
-
-    nativeBuildInputs = [ makeWrapper ];
-    buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
-
-    # taken from https://www.redmine.org/issues/33784
-    # can be dropped when the upstream bug is closed and the fix is present in the upstream release
-    patches = [ ./0001-python3.patch ];
-
-    buildPhase = ''
-      mv config config.dist
-      mv public/themes public/themes.dist
-    '';
-
-    installPhase = ''
-      mkdir -p $out/bin $out/share
-      cp -r . $out/share/redmine
-      for i in config files log plugins public/plugin_assets public/themes tmp; do
-        rm -rf $out/share/redmine/$i
-        ln -fs /run/redmine/$i $out/share/redmine/$i
-      done
-
-      makeWrapper ${rubyEnv.wrappedRuby}/bin/ruby $out/bin/rdm-mailhandler.rb --add-flags $out/share/redmine/extra/mail_handler/rdm-mailhandler.rb
-    '';
-
-    passthru.tests.redmine = nixosTests.redmine;
-
-    meta = with lib; {
-      homepage = "https://www.redmine.org/";
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ aanderse felixsinger megheaiulian ];
-      license = licenses.gpl2;
-    };
-  }
diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix
deleted file mode 100644
index bfd433274b05e..0000000000000
--- a/pkgs/applications/version-management/redmine/gemset.nix
+++ /dev/null
@@ -1,1132 +0,0 @@
-{
-  actioncable = {
-    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1fdbks9byqqlkd6glj6lkz5f1z6948hh8fhv9x5pzqciralmz142";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  actionmailbox = {
-    dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rfya6qgsl14cm9l2w7h7lg4znsyg3gqiskhqr8wn76sh0x2hln0";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  actionmailer = {
-    dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "rails-dom-testing"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0jr9jpf542svzqz8x68s08jnf30shxrrh7rq1a0s7jia5a5zx3qd";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  actionpack = {
-    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0vf6ncs647psa9p23d2108zgmlf0pr7gcjr080yg5yf68gyhs53k";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  actionpack-xml_parser = {
-    dependencies = ["actionpack" "railties"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rnm6jrw3mzcf2g3q498igmhsn0kfkxq79w0nm532iclx4g4djs0";
-      type = "gem";
-    };
-    version = "2.0.1";
-  };
-  actiontext = {
-    dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "nokogiri"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1i8s3v6m8q3y17c40l6d3k2vs1mdqr0y1lfm7i6dfbj2y673lk9r";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  actionview = {
-    dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1s4c1n5lv31sc7w4w74xz8gzyq3sann00bm4l7lxgy3vgi2wqkid";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  activejob = {
-    dependencies = ["activesupport" "globalid"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1641003plszig5ybhrqy90fv43l1vcai5h35qmhh9j12byk5hp26";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  activemodel = {
-    dependencies = ["activesupport"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "148szdj5jlnfpv3nmy8cby8rxgpdvs43f3rzqby1f7a0l2knd3va";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  activerecord = {
-    dependencies = ["activemodel" "activesupport"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0n7hg582ajdncilfk1kkw8qfdchymp2gqgkad1znlhlmclihsafr";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  activestorage = {
-    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "16pylwnqsbvq2wxhl7k1rnravbr3dgpjmnj0psz5gijgkydd52yc";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nhrdih0rk46i0s6x7nqhbypmj1hf23zl5gfl9xasb6k4r2a1dxk";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  addressable = {
-    dependencies = ["public_suffix"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05r1fwy487klqkya7vzia8hnklcxy4vr92m9dmni3prfwk6zpw33";
-      type = "gem";
-    };
-    version = "2.8.5";
-  };
-  ast = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
-      type = "gem";
-    };
-    version = "2.4.2";
-  };
-  builder = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "045wzckxpwcqzrjr353cxnyaxgf0qg22jh00dcx7z38cys5g1jlr";
-      type = "gem";
-    };
-    version = "3.2.4";
-  };
-  capybara = {
-    dependencies = ["addressable" "matrix" "mini_mime" "nokogiri" "rack" "rack-test" "regexp_parser" "xpath"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "123198zk2ak8mziwa5jc3ckgpmsg08zn064n3aywnqm9s1bwjv3v";
-      type = "gem";
-    };
-    version = "3.38.0";
-  };
-  childprocess = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
-      type = "gem";
-    };
-    version = "3.0.0";
-  };
-  chunky_png = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1znw5x86hmm9vfhidwdsijz8m38pqgmv98l9ryilvky0aldv7mc9";
-      type = "gem";
-    };
-    version = "1.4.0";
-  };
-  commonmarker = {
-    groups = ["common_mark"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lb5slzbqrca49h0gaifg82xky5r7i9xgm4560pin1xl5fp15lzx";
-      type = "gem";
-    };
-    version = "0.23.10";
-  };
-  concurrent-ruby = {
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0krcwb6mn0iklajwngwsg850nk8k9b35dhmc2qkbdqvmifdi2y9q";
-      type = "gem";
-    };
-    version = "1.2.2";
-  };
-  crass = {
-    groups = ["common_mark" "default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0pfl5c0pyqaparxaqxi6s4gfl21bdldwiawrc0aknyvflli60lfw";
-      type = "gem";
-    };
-    version = "1.0.6";
-  };
-  css_parser = {
-    dependencies = ["addressable"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "18mii41bbl106rn940ah8v3xclj4yrxxa0bwlwp546244n9b83zp";
-      type = "gem";
-    };
-    version = "1.16.0";
-  };
-  csv = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zmrgngggg4yvdbggdx9p3z4wcav4vxfigramxxvjh3hi7l12pig";
-      type = "gem";
-    };
-    version = "3.2.8";
-  };
-  deckar01-task_list = {
-    dependencies = ["html-pipeline"];
-    groups = ["common_mark"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "01c8vv0xwbhlyhiagj93b1hlm2n0rmj4sw62nbc0jhyj90jhj6as";
-      type = "gem";
-    };
-    version = "2.3.2";
-  };
-  digest = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "01qkpbkxq83ip3iysfh2kjrg9sh2n2q91prhyxh3vq10lcfzv9l1";
-      type = "gem";
-    };
-    version = "3.1.1";
-  };
-  docile = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1lxqxgq71rqwj1lpl9q1mbhhhhhhdkkj7my341f2889pwayk85sz";
-      type = "gem";
-    };
-    version = "1.4.0";
-  };
-  erubi = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "08s75vs9cxlc4r1q2bjg4br8g9wc5lc5x5vl0vv4zq5ivxsdpgi7";
-      type = "gem";
-    };
-    version = "1.12.0";
-  };
-  ffi = {
-    groups = ["default" "development" "test"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "mingw";
-    } {
-      engine = "mingw";
-    } {
-      engine = "mswin";
-    } {
-      engine = "ruby";
-    }];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
-      type = "gem";
-    };
-    version = "1.16.3";
-  };
-  globalid = {
-    dependencies = ["activesupport"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1sbw6b66r7cwdx3jhs46s4lr991969hvigkjpbdl7y3i31qpdgvh";
-      type = "gem";
-    };
-    version = "1.2.1";
-  };
-  html-pipeline = {
-    dependencies = ["activesupport" "nokogiri"];
-    groups = ["common_mark"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00xqmlny1b4ixff8sk0rkl4wcgwqc6v93qv8l3rn8d1dppvq7pm1";
-      type = "gem";
-    };
-    version = "2.13.2";
-  };
-  htmlentities = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nkklqsn8ir8wizzlakncfv42i32wc0w9hxp00hvdlgjr7376nhj";
-      type = "gem";
-    };
-    version = "4.3.4";
-  };
-  i18n = {
-    dependencies = ["concurrent-ruby"];
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
-      type = "gem";
-    };
-    version = "1.10.0";
-  };
-  listen = {
-    dependencies = ["rb-fsevent" "rb-inotify"];
-    groups = ["development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "13rgkfar8pp31z1aamxf5y7cfq88wv6rxxcwy7cmm177qq508ycn";
-      type = "gem";
-    };
-    version = "3.8.0";
-  };
-  loofah = {
-    dependencies = ["crass" "nokogiri"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zkjqf37v2d7s11176cb35cl83wls5gm3adnfkn2zcc61h3nxmqh";
-      type = "gem";
-    };
-    version = "2.22.0";
-  };
-  mail = {
-    dependencies = ["mini_mime"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
-      type = "gem";
-    };
-    version = "2.7.1";
-  };
-  marcel = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0kky3yiwagsk8gfbzn3mvl2fxlh3b39v6nawzm4wpjs6xxvvc4x0";
-      type = "gem";
-    };
-    version = "1.0.2";
-  };
-  matrix = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1h2cgkpzkh3dd0flnnwfq6f3nl2b1zff9lvqz8xs853ssv5kq23i";
-      type = "gem";
-    };
-    version = "0.4.2";
-  };
-  method_source = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pnyh44qycnf9mzi1j6fywd5fkskv3x7nmsqrrws0rjn5dd4ayfp";
-      type = "gem";
-    };
-    version = "1.0.0";
-  };
-  mini_magick = {
-    groups = ["minimagick"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1aj604x11d9pksbljh0l38f70b558rhdgji1s9i763hiagvvx2hs";
-      type = "gem";
-    };
-    version = "4.11.0";
-  };
-  mini_mime = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vycif7pjzkr29mfk4dlqv3disc5dn0va04lkwajlpr1wkibg0c6";
-      type = "gem";
-    };
-    version = "1.1.5";
-  };
-  mini_portile2 = {
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1kl9c3kdchjabrihdqfmcplk3lq4cw1rr9f378y6q22qwy5dndvs";
-      type = "gem";
-    };
-    version = "2.8.5";
-  };
-  minitest = {
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bkmfi9mb49m0fkdhl2g38i3xxa02d411gg0m8x0gvbwfmmg5ym3";
-      type = "gem";
-    };
-    version = "5.20.0";
-  };
-  mocha = {
-    dependencies = ["ruby2_keywords"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0lsll8iba8612dypk718l9kx73m9syiscb2rhciljys1krc5g1zr";
-      type = "gem";
-    };
-    version = "2.1.0";
-  };
-  mysql2 = {
-    groups = ["default"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "mingw";
-    } {
-      engine = "mingw";
-    } {
-      engine = "ruby";
-    }];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1gjvj215qdhwk3292sc7xsn6fmwnnaq2xs35hh5hc8d8j22izlbn";
-      type = "gem";
-    };
-    version = "0.5.5";
-  };
-  net-imap = {
-    dependencies = ["digest" "net-protocol" "strscan"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1rl79ykmxa2k4dlk6ykrb9l0a4h101q1gd8c4qv3cl0p9h68zmbn";
-      type = "gem";
-    };
-    version = "0.2.3";
-  };
-  net-ldap = {
-    groups = ["ldap"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1ycw0qsw3hap8svakl0i30jkj0ffd4lpyrn17a1j0w8mz5ainmsj";
-      type = "gem";
-    };
-    version = "0.17.1";
-  };
-  net-pop = {
-    dependencies = ["net-protocol"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1wyz41jd4zpjn0v1xsf9j778qx1vfrl24yc20cpmph8k42c4x2w4";
-      type = "gem";
-    };
-    version = "0.1.2";
-  };
-  net-protocol = {
-    dependencies = ["timeout"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1a32l4x73hz200cm587bc29q8q9az278syw3x6fkc9d1lv5y0wxa";
-      type = "gem";
-    };
-    version = "0.2.2";
-  };
-  net-smtp = {
-    dependencies = ["net-protocol"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
-      type = "gem";
-    };
-    version = "0.3.3";
-  };
-  nio4r = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y99dfzlb3kgzh7pfk8km0p5zjiblxyh5rm8yal9h523vi5awji8";
-      type = "gem";
-    };
-    version = "2.6.1";
-  };
-  nokogiri = {
-    dependencies = ["mini_portile2" "racc"];
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "004ip9x9281fxhpipwi8di1sb1dnabscq9dy1p3cxgdwbniqqi12";
-      type = "gem";
-    };
-    version = "1.15.5";
-  };
-  parallel = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0jcc512l38c0c163ni3jgskvq1vc3mr8ly5pvjijzwvfml9lf597";
-      type = "gem";
-    };
-    version = "1.23.0";
-  };
-  parser = {
-    dependencies = ["ast" "racc"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
-      type = "gem";
-    };
-    version = "3.2.2.4";
-  };
-  pg = {
-    groups = ["default"];
-    platforms = [{
-      engine = "maglev";
-    } {
-      engine = "mingw";
-    } {
-      engine = "mingw";
-    } {
-      engine = "ruby";
-    }];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "07m6lxljabw9kyww5k5lgsxsznsm1v5l14r1la09gqka9b5kv3yr";
-      type = "gem";
-    };
-    version = "1.4.6";
-  };
-  public_suffix = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1bni4qjrsh2q49pnmmd6if4iv3ak36bd2cckrs6npl111n769k9m";
-      type = "gem";
-    };
-    version = "5.0.4";
-  };
-  puma = {
-    dependencies = ["nio4r"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm";
-      type = "gem";
-    };
-    version = "6.4.0";
-  };
-  racc = {
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
-      type = "gem";
-    };
-    version = "1.7.3";
-  };
-  rack = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "15rdwbyk71c9nxvd527bvb8jxkcys8r3dj3vqra5b3sa63qs30vv";
-      type = "gem";
-    };
-    version = "2.2.8";
-  };
-  rack-test = {
-    dependencies = ["rack"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1ysx29gk9k14a14zsp5a8czys140wacvp91fja8xcja0j1hzqq8c";
-      type = "gem";
-    };
-    version = "2.1.0";
-  };
-  rails = {
-    dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0gf5dqabzd0mf0q39a07kf0smdm2cv2z5swl3zr4cz50yb85zz3l";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  rails-dom-testing = {
-    dependencies = ["activesupport" "minitest" "nokogiri"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0fx9dx1ag0s1lr6lfr34lbx5i1bvn3bhyf3w3mx6h7yz90p725g5";
-      type = "gem";
-    };
-    version = "2.2.0";
-  };
-  rails-html-sanitizer = {
-    dependencies = ["loofah" "nokogiri"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1pm4z853nyz1bhhqr7fzl44alnx4bjachcr6rh6qjj375sfz3sc6";
-      type = "gem";
-    };
-    version = "1.6.0";
-  };
-  railties = {
-    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vq4ahyg9hraixxmmwwypdnpcylpvznvdxhj4xa23xk45wzbl3h7";
-      type = "gem";
-    };
-    version = "6.1.7.6";
-  };
-  rainbow = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
-      type = "gem";
-    };
-    version = "3.1.1";
-  };
-  rake = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1ilr853hawi09626axx0mps4rkkmxcs54mapz9jnqvpnlwd3wsmy";
-      type = "gem";
-    };
-    version = "13.1.0";
-  };
-  rb-fsevent = {
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423";
-      type = "gem";
-    };
-    version = "0.11.2";
-  };
-  rb-inotify = {
-    dependencies = ["ffi"];
-    groups = ["default" "development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1jm76h8f8hji38z3ggf4bzi8vps6p7sagxn3ab57qc0xyga64005";
-      type = "gem";
-    };
-    version = "0.10.1";
-  };
-  rbpdf = {
-    dependencies = ["htmlentities" "rbpdf-font"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0rb6zqx79fzi0gqdq8xbhp87yp1ldfmzh0kng6fph84qhmzs990n";
-      type = "gem";
-    };
-    version = "1.21.3";
-  };
-  rbpdf-font = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0pxlr0l4vf785qpy55m439dyii63a26l0sd0yyhbwwcy9zm9hd1v";
-      type = "gem";
-    };
-    version = "1.19.1";
-  };
-  redcarpet = {
-    groups = ["common_mark" "markdown"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bvk8yyns5s1ls437z719y5sdv9fr8kfs8dmr6g8s761dv5n8zvi";
-      type = "gem";
-    };
-    version = "3.5.1";
-  };
-  regexp_parser = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1d9a5s3qrjdy50ll2s32gg3qmf10ryp3v2nr5k718kvfadp50ray";
-      type = "gem";
-    };
-    version = "2.8.2";
-  };
-  request_store = {
-    dependencies = ["rack"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "13ppgmsbrqah08j06bybd3cddv6dml79yzyjn7r8j1src78h98h7";
-      type = "gem";
-    };
-    version = "1.5.1";
-  };
-  rexml = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
-      type = "gem";
-    };
-    version = "3.2.6";
-  };
-  roadie = {
-    dependencies = ["css_parser" "nokogiri"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1qs594ybaz0lh2sakh95syzvhva4jms8xyiwhgjfncf3ri0qxp7l";
-      type = "gem";
-    };
-    version = "5.2.0";
-  };
-  roadie-rails = {
-    dependencies = ["railties" "roadie"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "16j1cjhq8xqr77vyf7m7ip2132619wdnpvlbig4cnn96yyi0cnan";
-      type = "gem";
-    };
-    version = "3.0.0";
-  };
-  rotp = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0m48hv6wpmmm6cjr6q92q78h1i610riml19k5h1dil2yws3h1m3m";
-      type = "gem";
-    };
-    version = "6.3.0";
-  };
-  rouge = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "080fswzii68wnbsg7pgq55ba7p289sqjlxwp4vch0h32qy1f8v8d";
-      type = "gem";
-    };
-    version = "3.28.0";
-  };
-  rqrcode = {
-    dependencies = ["chunky_png" "rqrcode_core"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1hggzz8i1l62pkkiybhiqv6ypxw7q844sddrrbbfczjcnj5sivi3";
-      type = "gem";
-    };
-    version = "2.2.0";
-  };
-  rqrcode_core = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "06ld6386hbdhy5h0k09axmgn424kavpc8f27k1vjhknjhbf8jjfg";
-      type = "gem";
-    };
-    version = "1.2.0";
-  };
-  rubocop = {
-    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "06105yrqajpm5l07fng1nbk55y9490hny542zclnan8hg841pjgl";
-      type = "gem";
-    };
-    version = "1.26.1";
-  };
-  rubocop-ast = {
-    dependencies = ["parser"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1cs9cc5p9q70valk4na3lki4xs88b52486p2v46yx3q1n5969bgs";
-      type = "gem";
-    };
-    version = "1.30.0";
-  };
-  rubocop-performance = {
-    dependencies = ["rubocop" "rubocop-ast"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "17ny81dy5gjrvris8mni7la8yjg57snphyg9nmvnc3al7yhwr74x";
-      type = "gem";
-    };
-    version = "1.13.3";
-  };
-  rubocop-rails = {
-    dependencies = ["activesupport" "rack" "rubocop"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "14xagb3jbms5mlcf932kx1djn2q4k952d4xia75ll36vh7xf2fpp";
-      type = "gem";
-    };
-    version = "2.14.2";
-  };
-  ruby-progressbar = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
-      type = "gem";
-    };
-    version = "1.13.0";
-  };
-  ruby2_keywords = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
-      type = "gem";
-    };
-    version = "0.0.5";
-  };
-  rubyzip = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0grps9197qyxakbpw02pda59v45lfgbgiyw48i0mq9f2bn9y6mrz";
-      type = "gem";
-    };
-    version = "2.3.2";
-  };
-  sanitize = {
-    dependencies = ["crass" "nokogiri"];
-    groups = ["common_mark"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0wsw05y0h1ln3x2kvcw26fs9ivryb4xbjrb4hsk2pishkhydkz4j";
-      type = "gem";
-    };
-    version = "6.1.0";
-  };
-  selenium-webdriver = {
-    dependencies = ["childprocess" "rubyzip"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0adcvp86dinaqq3nhf8p3m0rl2g6q0a4h52k0i7kdnsg1qz9k86y";
-      type = "gem";
-    };
-    version = "3.142.7";
-  };
-  simplecov = {
-    dependencies = ["docile" "simplecov-html" "simplecov_json_formatter"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1hrv046jll6ad1s964gsmcq4hvkr3zzr6jc7z1mns22mvfpbc3cr";
-      type = "gem";
-    };
-    version = "0.21.2";
-  };
-  simplecov-html = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0yx01bxa8pbf9ip4hagqkp5m0mqfnwnw2xk8kjraiywz4lrss6jb";
-      type = "gem";
-    };
-    version = "0.12.3";
-  };
-  simplecov_json_formatter = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0a5l0733hj7sk51j81ykfmlk2vd5vaijlq9d5fn165yyx3xii52j";
-      type = "gem";
-    };
-    version = "0.1.4";
-  };
-  sprockets = {
-    dependencies = ["concurrent-ruby" "rack"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "15rzfzd9dca4v0mr0bbhsbwhygl0k9l24iqqlx0fijig5zfi66wm";
-      type = "gem";
-    };
-    version = "4.2.1";
-  };
-  sprockets-rails = {
-    dependencies = ["actionpack" "activesupport" "sprockets"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1b9i14qb27zs56hlcc2hf139l0ghbqnjpmfi0054dxycaxvk5min";
-      type = "gem";
-    };
-    version = "3.4.2";
-  };
-  strscan = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0w2lc1mqia13x43ajzhih419r40ppddg936ydhawz57f63ab6fll";
-      type = "gem";
-    };
-    version = "3.0.7";
-  };
-  thor = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1hx77jxkrwi66yvs10wfxqa8s25ds25ywgrrf66acm9nbfg7zp0s";
-      type = "gem";
-    };
-    version = "1.3.0";
-  };
-  timeout = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "16mvvsmx90023wrhf8dxc1lpqh0m8alk65shb7xcya6a9gflw7vg";
-      type = "gem";
-    };
-    version = "0.4.1";
-  };
-  tzinfo = {
-    dependencies = ["concurrent-ruby"];
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "16w2g84dzaf3z13gxyzlzbf748kylk5bdgg3n1ipvkvvqy685bwd";
-      type = "gem";
-    };
-    version = "2.0.6";
-  };
-  unicode-display_width = {
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
-      type = "gem";
-    };
-    version = "2.5.0";
-  };
-  webdrivers = {
-    dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
-    groups = ["test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1naymcfmm9pkf0f67xd99d9f6dpv477ggyvc1c04gxifirynfydp";
-      type = "gem";
-    };
-    version = "4.6.1";
-  };
-  webrick = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
-      type = "gem";
-    };
-    version = "1.8.1";
-  };
-  websocket-driver = {
-    dependencies = ["websocket-extensions"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1nyh873w4lvahcl8kzbjfca26656d5c6z3md4sbqg5y1gfz0157n";
-      type = "gem";
-    };
-    version = "0.7.6";
-  };
-  websocket-extensions = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0hc2g9qps8lmhibl5baa91b4qx8wqw872rgwagml78ydj8qacsqw";
-      type = "gem";
-    };
-    version = "0.1.5";
-  };
-  xpath = {
-    dependencies = ["nokogiri"];
-    groups = ["default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "0bh8lk9hvlpn7vmi6h4hkcwjzvs2y0cmkk3yjjdr8fxvj6fsgzbd";
-      type = "gem";
-    };
-    version = "3.2.0";
-  };
-  yard = {
-    groups = ["development"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "013yrnwx1zhzhn1fnc19zck22a1qgimsaglp2iwgf5bz9l8h93js";
-      type = "gem";
-    };
-    version = "0.9.34";
-  };
-  zeitwerk = {
-    groups = ["common_mark" "default" "test"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
-      type = "gem";
-    };
-    version = "2.6.12";
-  };
-}
diff --git a/pkgs/applications/version-management/redmine/update.sh b/pkgs/applications/version-management/redmine/update.sh
deleted file mode 100755
index 3c4d842735cfd..0000000000000
--- a/pkgs/applications/version-management/redmine/update.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell --pure -i bash -p cacert bundix bundler
-
-# Do these steps before running this script:
-#   1. Copy Gemfile from new Redmine version to this folder
-#   2. Manually modify the database lines in Gemfile (diff the two files, it's obvious)
-
-pkg_dir="$(dirname "$0")"
-cd ${pkg_dir}
-
-for file in "gemset.nix" "Gemfile.lock"; do
-  if [ -f ${file} ]; then
-    rm ${file}
-  fi
-done
-
-bundle lock --add-platform ruby
-bundle lock --remove-platform x86_64-linux
-bundix -l
diff --git a/pkgs/applications/version-management/sapling/default.nix b/pkgs/applications/version-management/sapling/default.nix
index 0d99b350c0b82..c5f2adf153f56 100644
--- a/pkgs/applications/version-management/sapling/default.nix
+++ b/pkgs/applications/version-management/sapling/default.nix
@@ -13,7 +13,7 @@
 , fetchYarnDeps
 , yarn
 , nodejs
-, prefetch-yarn-deps
+, fixup-yarn-lock
 , glibcLocales
 , libiconv
 , Cocoa
@@ -66,7 +66,7 @@ let
     inherit version;
 
     nativeBuildInputs = [
-      prefetch-yarn-deps
+      fixup-yarn-lock
       nodejs
       yarn
     ];
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index d44193ea4c96b..72d69678fb75c 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -16,28 +16,28 @@
 , setuptools
 }:
 let
-  version = "0.89.13";
+  version = "0.89.15";
   gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.39"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "builds.sr.ht";
     rev = version;
-    hash = "sha256-JpRVRzuHB6cgk/qW1j4zF8/K1xwz3J4nZhijmz5kVWU=";
+    hash = "sha256-rmNaBnTPDDQO/ImkGkMwW8fyjQyBUBchTEnbtAK24pw=";
   };
 
   buildsrht-api = buildGoModule ({
     inherit src version;
     pname = "buildsrht-api";
     modRoot = "api";
-    vendorHash = "sha256-kTqoUfFEoNdDDzVNJ7XIbH7tbsl5MdBL+/UDHFv7D+A=";
+    vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q=";
   } // gqlgen);
 
   buildsrht-worker = buildGoModule ({
     inherit src version;
     pname = "buildsrht-worker";
     modRoot = "worker";
-    vendorHash = "sha256-kTqoUfFEoNdDDzVNJ7XIbH7tbsl5MdBL+/UDHFv7D+A=";
+    vendorHash = "sha256-dwpuB+aYqzhGSdGVq/F9FTdHWMBkGMtVuZ7I3hB3b+Q=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/core.nix b/pkgs/applications/version-management/sourcehut/core.nix
index 33c5d4eab0c59..c0180cf805fac 100644
--- a/pkgs/applications/version-management/sourcehut/core.nix
+++ b/pkgs/applications/version-management/sourcehut/core.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "srht";
-  version = "0.71.5";
+  version = "0.71.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "~sircmpwn";
     repo = "core.sr.ht";
     rev = version;
-    hash = "sha256-YIoKOiTi/9X4bSiG+GvnwzvKYhbfywrv/dTjxaJOOTQ=";
+    hash = "sha256-rDpm2HJOWScvIxOmHcat6y4CWdBE9T2gE/jZskYAFB0=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix
index ee598c5ed9144..42ec1589a643c 100644
--- a/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix
+++ b/pkgs/applications/version-management/sourcehut/fix-gqlgen-trimpath.nix
@@ -1,13 +1,13 @@
 { unzip
-, gqlgenVersion ? "0.17.42"
+, gqlgenVersion
 }:
 {
   overrideModAttrs = (_: {
     # No need to workaround -trimpath: it's not used in goModules,
     # but do download `go generate`'s dependencies nonetheless.
     preBuild = ''
-      go generate ./loaders
-      go generate ./graph
+      if [ -d ./loaders ]; then go generate ./loaders; fi
+      if [ -d ./graph ]; then go generate ./graph; fi
     '';
   });
 
@@ -25,8 +25,8 @@
   # If it fails, the gqlgenVersion may have to be updated.
   preBuild = ''
     unzip ''${GOPROXY#"file://"}/github.com/99designs/gqlgen/@v/v${gqlgenVersion}.zip
-    go generate ./loaders
-    go generate ./graph
+    if [ -d ./loaders ]; then go generate ./loaders; fi
+    if [ -d ./graph ]; then go generate ./graph; fi
     rm -rf github.com
   '';
 }
diff --git a/pkgs/applications/version-management/sourcehut/git.nix b/pkgs/applications/version-management/sourcehut/git.nix
index aeda66fc51e97..d7ffc0e2cf83d 100644
--- a/pkgs/applications/version-management/sourcehut/git.nix
+++ b/pkgs/applications/version-management/sourcehut/git.nix
@@ -13,28 +13,28 @@
 , setuptools
 }:
 let
-  version = "0.85.7";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; };
+  version = "0.85.9";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.42"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "git.sr.ht";
     rev = version;
-    hash = "sha256-jkESrrVE+0O2g64zzPOpqhl8DpvmosQvuF0s6Xd+lbM=";
+    hash = "sha256-tmbBw6x3nqN9nRIR3xOXQ+L5EACXLQYLXQYK3lsOsAI=";
   };
 
   gitApi = buildGoModule ({
     inherit src version;
     pname = "gitsrht-api";
     modRoot = "api";
-    vendorHash = "sha256-yWVpldqwpEZmeI18tvdIgof8GgSFEP70c8T5XDkryn0=";
+    vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
   } // gqlgen);
 
   gitDispatch = buildGoModule ({
     inherit src version;
     pname = "gitsrht-dispatch";
     modRoot = "gitsrht-dispatch";
-    vendorHash = "sha256-yWVpldqwpEZmeI18tvdIgof8GgSFEP70c8T5XDkryn0=";
+    vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
 
     postPatch = ''
       substituteInPlace gitsrht-dispatch/main.go \
@@ -46,7 +46,7 @@ let
     inherit src version;
     pname = "gitsrht-keys";
     modRoot = "gitsrht-keys";
-    vendorHash = "sha256-yWVpldqwpEZmeI18tvdIgof8GgSFEP70c8T5XDkryn0=";
+    vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
 
     postPatch = ''
       substituteInPlace gitsrht-keys/main.go \
@@ -58,7 +58,7 @@ let
     inherit src version;
     pname = "gitsrht-shell";
     modRoot = "gitsrht-shell";
-    vendorHash = "sha256-yWVpldqwpEZmeI18tvdIgof8GgSFEP70c8T5XDkryn0=";
+    vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
 
     postPatch = ''
       substituteInPlace gitsrht-shell/main.go \
@@ -70,7 +70,7 @@ let
     inherit src version;
     pname = "gitsrht-update-hook";
     modRoot = "gitsrht-update-hook";
-    vendorHash = "sha256-yWVpldqwpEZmeI18tvdIgof8GgSFEP70c8T5XDkryn0=";
+    vendorHash = "sha256-4KwnUi6ILUagMDXzuBG9CRT2N8uyjvRM74TwJqIzicc=";
 
     postPatch = ''
       substituteInPlace gitsrht-update-hook/main.go \
diff --git a/pkgs/applications/version-management/sourcehut/hg.nix b/pkgs/applications/version-management/sourcehut/hg.nix
index b4219b0a8396d..3e7e1f55c65a9 100644
--- a/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/pkgs/applications/version-management/sourcehut/hg.nix
@@ -14,8 +14,8 @@
 }:
 
 let
-  version = "0.32.4";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.20"; };
+  version = "0.33.0";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; };
 
   pyproject = true;
 
@@ -25,7 +25,7 @@ let
     owner = "~sircmpwn";
     repo = "hg.sr.ht";
     rev = version;
-    hash = "sha256-mYkA44c9wy/Iy1h1lXkVpc9gN7rQXFm4T3YBlQ1Dj60=";
+    hash = "sha256-+BYeE+8dXY/MLLYyBBLD+eKqmrPiKyyCGIZLkCPzNYM=";
     vc = "hg";
   };
 
@@ -33,7 +33,7 @@ let
     inherit src version;
     pname = "hgsrht-api";
     modRoot = "api";
-    vendorHash = "sha256-vuOYpnF3WjA6kOe9MVSuVMhJBQqCmIex+QUBJrP+VDs=";
+    vendorHash = "sha256-K+KMhcvkG/qeQTnlHS4xhLCcvBQNNp2DcScJPm8Dbic=";
   } // gqlgen);
 
   hgsrht-keys = buildGoModule {
diff --git a/pkgs/applications/version-management/sourcehut/hub.nix b/pkgs/applications/version-management/sourcehut/hub.nix
index b46e1c3508d7a..4a0d2cda89312 100644
--- a/pkgs/applications/version-management/sourcehut/hub.nix
+++ b/pkgs/applications/version-management/sourcehut/hub.nix
@@ -12,21 +12,21 @@
 }:
 
 let
-  version = "0.17.5";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.41"; };
+  version = "0.17.7";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "hub.sr.ht";
     rev = version;
-    hash = "sha256-GbBxK3XE+Y6Jiap0Nxa8vk4Kv6IbcdSi4NN59AeKwjA=";
+    hash = "sha256-IyY7Niy/vZSAXjYZMlxY6uuQ8nH/4yT4+MaRjHtl6G4=";
   };
 
   hubsrht-api = buildGoModule ({
     inherit src version;
     pname = "hubsrht-api";
     modRoot = "api";
-    vendorHash = "sha256-wmuM0SxQbohTDaU8zmkw1TQTmqhOy1yAl1jRWk6TKL8=";
+    vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/lists.nix b/pkgs/applications/version-management/sourcehut/lists.nix
index 09431389ccc18..77d499f695e46 100644
--- a/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/pkgs/applications/version-management/sourcehut/lists.nix
@@ -15,21 +15,21 @@
 }:
 
 let
-  version = "0.57.14";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.36"; };
+  version = "0.57.18";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "lists.sr.ht";
     rev = version;
-    hash = "sha256-rzOxlat7Lbgt0Wl6vvnAC+fS3MynFVKFvVdIdxgA5e0=";
+    hash = "sha256-l+QPocnwHTjrU+M0wnm4tBrbz8KmSb6DovC+skuAnLc=";
   };
 
   listssrht-api = buildGoModule ({
     inherit src version;
     pname = "listssrht-api";
     modRoot = "api";
-    vendorHash = "sha256-OWgrPvXVlvJPcoABP0ZxKzoYFhU44j/I44sBBRbd6KY=";
+    vendorHash = "sha256-UeVs/+uZNtv296bzXIBio2wcg3Uzu3fBM4APzF9O0hY=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/man.nix b/pkgs/applications/version-management/sourcehut/man.nix
index e6d208ab04676..f5cd6be139acd 100644
--- a/pkgs/applications/version-management/sourcehut/man.nix
+++ b/pkgs/applications/version-management/sourcehut/man.nix
@@ -12,21 +12,21 @@
 }:
 
 let
-  version = "0.16.3";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.36"; };
+  version = "0.16.5";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "man.sr.ht";
     rev = version;
-    hash = "sha256-o1A3LmwH6WgpFqjKyL3UTru9q7TgKdOdbKZfJHR6fCA=";
+    hash = "sha256-JFMtif2kIE/fs5PNcQtkJikAFNszgZTU7BG/8fTncTI=";
   };
 
   mansrht-api = buildGoModule ({
     inherit src version;
     pname = "mansrht-api";
     modRoot = "api";
-    vendorHash = "sha256-6AzKWytdyuofCFaDEdeO24mv1mtpnQEJydrjVWGY2eU=";
+    vendorHash = "sha256-GVN11nEJqIHh8MtKvIXe4zcUwJph9eTSkJ2R+ufD+ic=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/meta.nix b/pkgs/applications/version-management/sourcehut/meta.nix
index c2b835c2d53d5..8ae078bea5f1e 100644
--- a/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/pkgs/applications/version-management/sourcehut/meta.nix
@@ -18,21 +18,21 @@
 , setuptools
 }:
 let
-  version = "0.68.5";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.36"; };
+  version = "0.69.8";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.43"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "meta.sr.ht";
     rev = version;
-    hash = "sha256-mwUqBzi7nMTZL7uwv7hBjGkO8U3krXXpvfUCaYHgHBU=";
+    hash = "sha256-K7p6cytkPYgUuYr7BVfU/+sVbSr2YEmreIDnTatUMyk=";
   };
 
   metasrht-api = buildGoModule ({
     inherit src version;
     pname = "metasrht-api";
     modRoot = "api";
-    vendorHash = "sha256-4T1xnHDjxsIyddA51exNwwz6ZWeuT7N8LBsCJ7c8sRI=";
+    vendorHash = "sha256-vIkUK1pigVU8vZL5xpHLeinOga5eXXHTuDkHxwUz6uM=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/pages.nix b/pkgs/applications/version-management/sourcehut/pages.nix
index 54b2027563092..5fc140548dc7a 100644
--- a/pkgs/applications/version-management/sourcehut/pages.nix
+++ b/pkgs/applications/version-management/sourcehut/pages.nix
@@ -6,21 +6,25 @@
 
 buildGoModule (rec {
   pname = "pagessrht";
-  version = "0.15.4";
+  version = "0.15.7";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "pages.sr.ht";
     rev = version;
-    hash = "sha256-3kdQVIL7xaIPu2elxj1k+4/y75bd+OKP5+VPSniF7w8=";
+    hash = "sha256-Lobuf12ybSO7Y4ztOLMFW0dmPFaBSEPCy4Nmh89tylI=";
   };
 
   postPatch = ''
     substituteInPlace Makefile \
       --replace "all: server" ""
+
+    # fix build failure due to unused import
+    substituteInPlace server.go \
+      --replace-warn '	"fmt"' ""
   '';
 
-  vendorHash = "sha256-DP+6rxjiXzs0RbSuMD20XwO/+v7QXCNgXj2LxZ96lWE=";
+  vendorHash = "sha256-9hpOkP6AYSZe7MW1mrwFEKq7TvVt6OcF6eHWY4jARuU=";
 
   postInstall = ''
     mkdir -p $out/share/sql/
@@ -36,4 +40,4 @@ buildGoModule (rec {
   };
   # There is no ./loaders but this does not cause troubles
   # to go generate
-} // import ./fix-gqlgen-trimpath.nix { inherit unzip; })
+} // import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.42"; })
diff --git a/pkgs/applications/version-management/sourcehut/paste.nix b/pkgs/applications/version-management/sourcehut/paste.nix
index f8d4f27a7ddcc..b7e6624928966 100644
--- a/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/pkgs/applications/version-management/sourcehut/paste.nix
@@ -12,21 +12,21 @@
 }:
 
 let
-  version = "0.15.2";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.20"; };
+  version = "0.15.4";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "paste.sr.ht";
     rev = version;
-    hash = "sha256-ZZzcd14Jbo1MfET7B56X/fl9xWXpCJ8TuKrGVgJwZfQ=";
+    hash = "sha256-M38hAMRdMzcqxJv7j7foOIYEImr/ZYz/lbYOF9R9g2M=";
   };
 
   pastesrht-api = buildGoModule ({
     inherit src version;
     pname = "pastesrht-api";
     modRoot = "api";
-    vendorHash = "sha256-jiE73PUPSHxtWp7XBdH4mJw95pXmZjCl4tk2wQUf2M4=";
+    vendorHash = "sha256-vt5nSPcx+Y/SaWcqjV38DTL3ZtzmdjbkJYMv5Fhhnq4=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/scm.nix b/pkgs/applications/version-management/sourcehut/scm.nix
index a5bbc43b3f45c..a60eb4b747885 100644
--- a/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/pkgs/applications/version-management/sourcehut/scm.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "scmsrht";
-  version = "0.22.23";
+  version = "0.22.24";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "~sircmpwn";
     repo = "scm.sr.ht";
     rev = version;
-    hash = "sha256-058dOEYJDY3jtxH1VkV1CFq5CZTkauSnTWg57DCnNtw=";
+    hash = "sha256-9IgMmYzInfrten7z8bznlSFJlUjHf3k3z76lkP6tP50=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/sourcehut/todo.nix b/pkgs/applications/version-management/sourcehut/todo.nix
index 11c762592bb77..1f81727283911 100644
--- a/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/pkgs/applications/version-management/sourcehut/todo.nix
@@ -13,21 +13,21 @@
 }:
 
 let
-  version = "0.75.6";
-  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.36"; };
+  version = "0.75.10";
+  gqlgen = import ./fix-gqlgen-trimpath.nix { inherit unzip; gqlgenVersion = "0.17.45"; };
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "todo.sr.ht";
     rev = version;
-    hash = "sha256-BPJ1M9dX+xNIw++VZ0Si/rjnfI9BY95TE2o+u7JRVAU=";
+    hash = "sha256-3dVZdupsygM7/6T1Mn7yRc776aa9pKgwF0hgZX6uVQ0=";
   };
 
   todosrht-api = buildGoModule ({
     inherit src version;
     pname = "todosrht-api";
     modRoot = "api";
-    vendorHash = "sha256-vTKIJFE8AFR2eZFwG9ba6FWPW02og3ZVcrsqUnOkJIQ=";
+    vendorHash = "sha256-fImOQLnQLHTrg5ikuYRZ+u+78exAiYA19DGQoUjQBOM=";
   } // gqlgen);
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/update.sh b/pkgs/applications/version-management/sourcehut/update.sh
index e9efc0816eb13..e5dd0b5baed04 100755
--- a/pkgs/applications/version-management/sourcehut/update.sh
+++ b/pkgs/applications/version-management/sourcehut/update.sh
@@ -1,5 +1,5 @@
 #! /usr/bin/env nix-shell
-#! nix-shell -i bash -p git mercurial common-updater-scripts
+#! nix-shell -i bash -p gnused git mercurial common-updater-scripts
 set -eux -o pipefail
 
 cd "$(dirname "${BASH_SOURCE[0]}")" || exit 1
@@ -34,21 +34,29 @@ get_latest_version() {
   rm -rf "$tmp"
   if [ "$1" = "hgsrht" ]; then
     hg clone "$src" "$tmp" >/dev/null
-    printf "%s" "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')"
+    printf "%s %s\n" \
+        "$(cd "$tmp" && hg log --limit 1 --template '{latesttag}')" \
+        "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)"
   else
     git clone "$src" "$tmp" >/dev/null
-    printf "%s" "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")"
+    printf "%s %s\n" \
+        "$(cd "$tmp" && git describe "$(git rev-list --tags --max-count=1)")" \
+        "$(cd "$tmp" && sed -ne 's/^\s*github\.com\/99designs\/gqlgen v\(.*\)$/\1/p' go.mod)"
   fi
 }
 
 update_version() {
   default_nix="$(default "$1")"
   oldVersion="$(version "$1")"
-  version="$(get_latest_version "$1")"
+  read -r version gqlgen_ver < <(get_latest_version "$1")
   local p="$(attr_path "$1")"
 
   (cd "$root" && update-source-version "$p" "$version")
 
+  # update `gqlgenVersion` if necessary
+  old_gqlgen_ver="$(sed -ne 's/^.*gqlgenVersion = "\(.*\)".*$/\1/p' "$default_nix")"
+  sed -ri "s|gqlgenVersion = \"$old_gqlgen_ver\";|gqlgenVersion = \"$gqlgen_ver\";|w /dev/stdout" "$default_nix"
+
   # Update vendorHash of Go modules
   retry=true
   while "$retry"; do
@@ -63,7 +71,7 @@ update_version() {
     done
   done
 
-  if [ "$oldVersion" != "$version" ]; then
+  if [ "$oldVersion" != "$version" ] || [ "$old_gqlgen_ver" != "$gqlgen_ver" ]; then
     git add "$default_nix"
     git commit -m "sourcehut.$1: $oldVersion -> $version"
   fi
diff --git a/pkgs/applications/version-management/stgit/default.nix b/pkgs/applications/version-management/stgit/default.nix
index 06de22c65b194..94583ba93bc8d 100644
--- a/pkgs/applications/version-management/stgit/default.nix
+++ b/pkgs/applications/version-management/stgit/default.nix
@@ -18,15 +18,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "stgit";
-  version = "2.4.5";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "stacked-git";
     repo = "stgit";
     rev = "v${version}";
-    hash = "sha256-zESuJJ68CCTGSDwGBeguAV78KETp+FUKnNNJx+4zorw=";
+    hash = "sha256-ZQU9AkemAMpMb2GhdfHaF6r6r6MbMXnmA0pq6Zq9Sek=";
   };
-  cargoHash = "sha256-ITR6RREx55q3hxYrHj+fOv0C8fAzphR4q/A5tTd9CDg=";
+  cargoHash = "sha256-DHTo0jRZlLmw/B042uqzpMLUhBwm+sbFj9pze5l1Kpk=";
 
   nativeBuildInputs = [
     pkg-config installShellFiles makeWrapper asciidoc xmlto docbook_xsl
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index c3c7964b52a35..39157edf809ba 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -1,18 +1,49 @@
-{ buildVersion, aarch64sha256, x64sha256, dev ? false }:
+{
+  buildVersion,
+  dev ? false,
+  aarch64sha256,
+  x64sha256,
+}:
 
-{ fetchurl, lib, stdenv, xorg, glib, libGL, glibcLocales, gtk3, cairo, pango, libredirect, makeWrapper, wrapGAppsHook
-, pkexecPath ? "/run/wrappers/bin/pkexec"
-, writeShellScript, common-updater-scripts, curl, gnugrep, coreutils
+{
+  fetchurl,
+  lib,
+  stdenv,
+  xorg,
+  glib,
+  libGL,
+  glibcLocales,
+  gtk3,
+  cairo,
+  pango,
+  libredirect,
+  makeWrapper,
+  wrapGAppsHook,
+  pkexecPath ? "/run/wrappers/bin/pkexec",
+  writeShellScript,
+  common-updater-scripts,
+  curl,
+  gnugrep,
+  coreutils,
 }:
 
 let
   pnameBase = "sublime-merge";
   packageAttribute = "sublime-merge${lib.optionalString dev "-dev"}";
-  binaries = [ "sublime_merge" crashHandlerBinary "git-credential-sublime" "ssh-askpass-sublime" ];
+  binaries = [
+    "sublime_merge"
+    crashHandlerBinary
+    "git-credential-sublime"
+    "ssh-askpass-sublime"
+  ];
   primaryBinary = "sublime_merge";
-  primaryBinaryAliases = [ "smerge" ];
-  crashHandlerBinary = if lib.versionAtLeast buildVersion "2086" then "crash_handler" else "crash_reporter";
-  downloadUrl = arch: "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz";
+  primaryBinaryAliases = [
+    "smerge"
+  ];
+  crashHandlerBinary =
+    if lib.versionAtLeast buildVersion "2086" then "crash_handler" else "crash_reporter";
+  downloadUrl =
+    arch: "https://download.sublimetext.com/sublime_merge_build_${buildVersion}_${arch}.tar.xz";
   versionUrl = "https://www.sublimemerge.com/${if dev then "dev" else "download"}";
   versionFile = builtins.toString ./default.nix;
 
@@ -25,8 +56,12 @@ let
     curl
   ];
 
-  redirects = [ "/usr/bin/pkexec=${pkexecPath}" "/bin/true=${coreutils}/bin/true" ];
-in let
+  redirects = [
+    "/usr/bin/pkexec=${pkexecPath}"
+    "/bin/true=${coreutils}/bin/true"
+  ];
+in
+let
   binaryPackage = stdenv.mkDerivation rec {
     pname = "${pnameBase}-bin";
     version = buildVersion;
@@ -35,13 +70,20 @@ in let
 
     dontStrip = true;
     dontPatchELF = true;
-    buildInputs = [ glib gtk3 ]; # for GSETTINGS_SCHEMAS_PATH
-    nativeBuildInputs = [ makeWrapper wrapGAppsHook ];
+    buildInputs = [
+      glib
+      # for GSETTINGS_SCHEMAS_PATH
+      gtk3
+    ];
+    nativeBuildInputs = [
+      makeWrapper
+      wrapGAppsHook
+    ];
 
     buildPhase = ''
       runHook preBuild
 
-      for binary in ${ builtins.concatStringsSep " " binaries }; do
+      for binary in ${builtins.concatStringsSep " " binaries}; do
         patchelf \
           --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
           --set-rpath ${lib.makeLibraryPath neededLibraries}:${libGL}/lib:${stdenv.cc.cc.lib}/lib${lib.optionalString stdenv.is64bit "64"} \
@@ -96,7 +138,8 @@ in let
       };
     };
   };
-in stdenv.mkDerivation (rec {
+in
+stdenv.mkDerivation (rec {
   pname = pnameBase;
   version = buildVersion;
 
@@ -104,27 +147,45 @@ in stdenv.mkDerivation (rec {
 
   ${primaryBinary} = binaryPackage;
 
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    mkdir -p "$out/bin"
-    makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
-  '' + builtins.concatStringsSep "" (map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases) + ''
-    mkdir -p "$out/share/applications"
-    substitute "''$${primaryBinary}/${primaryBinary}.desktop" "$out/share/applications/${primaryBinary}.desktop" --replace "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}"
-    for directory in ''$${primaryBinary}/Icon/*; do
-      size=$(basename $directory)
-      mkdir -p "$out/share/icons/hicolor/$size/apps"
-      ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps
-    done
-  '';
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+  installPhase =
+    ''
+      mkdir -p "$out/bin"
+      makeWrapper "''$${primaryBinary}/${primaryBinary}" "$out/bin/${primaryBinary}"
+    ''
+    + builtins.concatStringsSep "" (
+      map (binaryAlias: "ln -s $out/bin/${primaryBinary} $out/bin/${binaryAlias}\n") primaryBinaryAliases
+    )
+    + ''
+      mkdir -p "$out/share/applications"
+
+      substitute \
+        "''$${primaryBinary}/${primaryBinary}.desktop" \
+        "$out/share/applications/${primaryBinary}.desktop" \
+        --replace-fail "/opt/${primaryBinary}/${primaryBinary}" "${primaryBinary}"
+
+      for directory in ''$${primaryBinary}/Icon/*; do
+        size=$(basename $directory)
+        mkdir -p "$out/share/icons/hicolor/$size/apps"
+        ln -s ''$${primaryBinary}/Icon/$size/* $out/share/icons/hicolor/$size/apps
+      done
+    '';
 
   passthru = {
     updateScript =
       let
         script = writeShellScript "${packageAttribute}-update-script" ''
           set -o errexit
-          PATH=${lib.makeBinPath [ common-updater-scripts curl gnugrep ]}
+          PATH=${
+            lib.makeBinPath [
+              common-updater-scripts
+              curl
+              gnugrep
+            ]
+          }
 
           versionFile=$1
           latestVersion=$(curl -s ${versionUrl} | grep -Po '(?<=<p class="latest"><i>Version:</i> Build )([0-9]+)')
@@ -141,7 +202,11 @@ in stdenv.mkDerivation (rec {
               update-source-version "${packageAttribute}.${primaryBinary}" "$latestVersion" --file="$versionFile" --version-key=buildVersion --source-key="sources.$platform"
           done
         '';
-      in [ script versionFile ];
+      in
+      [
+        script
+        versionFile
+      ];
   };
 
   meta = with lib; {
@@ -150,6 +215,9 @@ in stdenv.mkDerivation (rec {
     maintainers = with maintainers; [ zookatron ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
-    platforms = [ "aarch64-linux" "x86_64-linux" ];
+    platforms = [
+      "aarch64-linux"
+      "x86_64-linux"
+    ];
   };
 })
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 068e9cca20aa6..07da8f64a6f75 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -2,17 +2,18 @@
 
 let
   common = opts: callPackage (import ./common.nix opts);
-in {
+in
+{
   sublime-merge = common {
     buildVersion = "2091";
     aarch64sha256 = "dkPKuuzQQtL3eZlaAPeL7e2p5PCxroFRSp6Rw5wHODc=";
     x64sha256 = "T5g6gHgl9xGytEOsh3VuB08IrbDvMu24o/1edCGmfd4=";
-  } {};
+  } { };
 
   sublime-merge-dev = common {
-    buildVersion = "2092";
-    aarch64sha256 = "3QMDynXMVB4QVtM8EPbZ8I4m+5sEjzs8XN+jEoMaktM=";
-    x64sha256 = "S9E+wRvO41Eq+PLA/J+sjBIAn6yz715Wg9bKRW2Eobg=";
+    buildVersion = "2094";
     dev = true;
-  } {};
+    aarch64sha256 = "ZJgq971EPzq+BWxTQAoX6TgUmTfpf9sI4CHPcvgPTfI=";
+    x64sha256 = "6FLfszhP+BGHX5FrycMlznREmGDLyDyo6rgmqxhtCak=";
+  } { };
 }
diff --git a/pkgs/applications/version-management/tig/default.nix b/pkgs/applications/version-management/tig/default.nix
index 1cce34df66adb..d7bd912b44d5a 100644
--- a/pkgs/applications/version-management/tig/default.nix
+++ b/pkgs/applications/version-management/tig/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tig";
-  version = "2.5.8";
+  version = "2.5.9";
 
   src = fetchFromGitHub {
     owner = "jonas";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "sha256-VuuqR5fj0YvqIfVPH7N3rpAfIbcTwOx9W3H60saCToQ=";
+    sha256 = "sha256-RASZgQUlt/5ivImowM+sNw8Oe8aVkuUNErfgddmFjic=";
   };
 
   nativeBuildInputs = [ makeWrapper autoreconfHook asciidoc xmlto docbook_xsl docbook_xml_dtd_45 findXMLCatalogs pkg-config ];
diff --git a/pkgs/applications/version-management/ungit/default.nix b/pkgs/applications/version-management/ungit/default.nix
index e9bc311c7ab21..5d5c8336987b8 100644
--- a/pkgs/applications/version-management/ungit/default.nix
+++ b/pkgs/applications/version-management/ungit/default.nix
@@ -5,16 +5,16 @@
 
 buildNpmPackage rec {
   pname = "ungit";
-  version = "1.5.25";
+  version = "1.5.26";
 
   src = fetchFromGitHub {
     owner = "FredrikNoren";
     repo = "ungit";
     rev = "v${version}";
-    hash = "sha256-mVBE8HW5dhi00BbVX00rgvc4JtyrTsbina18EzSUcuM=";
+    hash = "sha256-HTo0z/y7thUrDm6ofHiUtv1UDuqGN+kpMFLuIvxyxZQ=";
   };
 
-  npmDepsHash = "sha256-DftAovQPKi4hLeqAGCVN8u/9eC4mkTxTJ2WxxOHbkgM=";
+  npmDepsHash = "sha256-f/CtNYoy5ZOgdVTG2ZdBpXOSNUKSG5wCy0eIl4ov80U=";
 
   env = {
     ELECTRON_SKIP_BINARY_DOWNLOAD = true;