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/bcompare/default.nix2
-rw-r--r--pkgs/applications/version-management/commitizen/default.nix92
-rw-r--r--pkgs/applications/version-management/dvc/default.nix3
-rw-r--r--pkgs/applications/version-management/gerrit/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/fast-export/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghr/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-branchless/default.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cliff/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-cola/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-extras/default.nix12
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-gone/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-nomad/default.nix22
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-publish/default.nix32
-rw-r--r--pkgs/applications/version-management/git-and-tools/git/default.nix10
-rw-r--r--pkgs/applications/version-management/git-and-tools/gitstatus/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/lefthook/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/stgit/default.nix2
-rw-r--r--pkgs/applications/version-management/git-and-tools/thicket/default.nix7
-rw-r--r--pkgs/applications/version-management/git-and-tools/thicket/shards.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/tig/default.nix2
-rw-r--r--pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--pkgs/applications/version-management/git-review/default.nix2
-rw-r--r--pkgs/applications/version-management/git-up/default.nix2
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/data.json17
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix12
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile4
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock48
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix68
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile71
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock221
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix197
-rw-r--r--pkgs/applications/version-management/gitlab/update-pg.patch6
-rwxr-xr-xpkgs/applications/version-management/gitlab/update.py15
-rw-r--r--pkgs/applications/version-management/gitoxide/default.nix6
-rw-r--r--pkgs/applications/version-management/gitqlient/default.nix1
-rw-r--r--pkgs/applications/version-management/got/default.nix6
-rw-r--r--pkgs/applications/version-management/meld/default.nix10
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix8
-rw-r--r--pkgs/applications/version-management/monotone/default.nix2
-rw-r--r--pkgs/applications/version-management/p4/default.nix114
-rw-r--r--pkgs/applications/version-management/p4d/default.nix2
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile3
-rw-r--r--pkgs/applications/version-management/redmine/Gemfile.lock88
-rw-r--r--pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--pkgs/applications/version-management/redmine/gemset.nix64
-rw-r--r--pkgs/applications/version-management/reposurgeon/default.nix3
-rw-r--r--pkgs/applications/version-management/sourcehut/builds.nix18
-rw-r--r--pkgs/applications/version-management/sourcehut/default.nix1
-rw-r--r--pkgs/applications/version-management/srvc/default.nix22
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix2
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix4
-rw-r--r--pkgs/applications/version-management/tortoisehg/default.nix6
-rw-r--r--pkgs/applications/version-management/yadm/default.nix4
60 files changed, 738 insertions, 587 deletions
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index bed85a37f544d..fab2780d96440 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -1,4 +1,4 @@
-{ lib, autoPatchelfHook, bzip2, cairo, coreutils, fetchurl, gdk-pixbuf, glibc, pango, gtk2, kcoreaddons, ki18n, kio, kservice
+{ lib, autoPatchelfHook, bzip2, cairo, fetchurl, gdk-pixbuf, glibc, pango, gtk2, kcoreaddons, ki18n, kio, kservice
 , stdenv, runtimeShell, unzip
 }:
 
diff --git a/pkgs/applications/version-management/commitizen/default.nix b/pkgs/applications/version-management/commitizen/default.nix
index 017b48367267c..bd5e22dc3c6f0 100644
--- a/pkgs/applications/version-management/commitizen/default.nix
+++ b/pkgs/applications/version-management/commitizen/default.nix
@@ -16,32 +16,18 @@
 , termcolor
 , tomlkit
 , typing-extensions
-, chardet
-
-, argcomplete, fetchPypi
+, argcomplete
 }:
 
-let
-  # NOTE: Upstream requires argcomplete <2, so we make it here.
-  argcomplete_1 = argcomplete.overrideAttrs (old: rec {
-    version = "1.12.3";
-    src = fetchPypi {
-      inherit (old) pname;
-      inherit version;
-      sha256 = "sha256-LH2//YwEXqU0kh5jsL5v5l6IWZmQ2NxAisjFQrcqVEU=";
-    };
-  });
-in
-
 buildPythonApplication rec {
   pname = "commitizen";
-  version = "2.29.2";
+  version = "2.35.0";
 
   src = fetchFromGitHub {
     owner = "commitizen-tools";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-4mK+GA1rfctJkMv4ZMfXE/qih/9fF0kwT6bIcLVB/Bk=";
+    hash = "sha256-9ek6m5k01sGVHwqWXjWYDsPmIeAgK+H23D9sF5hjrf0=";
     deepClone = true;
   };
 
@@ -50,7 +36,6 @@ buildPythonApplication rec {
   nativeBuildInputs = [ poetry ];
 
   propagatedBuildInputs = [
-    chardet
     termcolor
     questionary
     colorama
@@ -58,82 +43,47 @@ buildPythonApplication rec {
     tomlkit
     jinja2
     pyyaml
-    argcomplete_1
+    argcomplete
     typing-extensions
     packaging
   ];
 
   doCheck = true;
+
   checkInputs = [
     pytestCheckHook
     pytest-freezegun
     pytest-mock
     pytest-regressions
-    argcomplete_1
+    argcomplete
     git
   ];
 
-  # NB: These require full git history
+  # the tests require a functional git installation
+  # which requires a valid HOME directory.
+  preCheck = ''
+    export HOME="$(mktemp -d)"
+
+    git config --global user.name "Nix Builder"
+    git config --global user.email "nix-builder@nixos.org"
+    git init .
+  '';
+
+  # NB: These tests require complex GnuPG setup
   disabledTests = [
-    "test_breaking_change_content_v1"
-    "test_breaking_change_content_v1_beta"
-    "test_breaking_change_content_v1_multiline"
-    "test_bump_command_increment_option"
-    "test_bump_command_prelease"
-    "test_bump_dry_run"
-    "test_bump_files_only"
-    "test_bump_local_version"
-    "test_bump_major_increment"
-    "test_bump_minor_increment"
-    "test_bump_on_git_with_hooks_no_verify_disabled"
+    "test_bump_minor_increment_signed"
+    "test_bump_minor_increment_signed_config_file"
     "test_bump_on_git_with_hooks_no_verify_enabled"
-    "test_bump_patch_increment"
+    "test_bump_on_git_with_hooks_no_verify_disabled"
     "test_bump_pre_commit_changelog"
     "test_bump_pre_commit_changelog_fails_always"
-    "test_bump_tag_exists_raises_exception"
-    "test_bump_when_bumpping_is_not_support"
-    "test_bump_when_version_inconsistent_in_version_files"
-    "test_bump_with_changelog_arg"
-    "test_bump_with_changelog_config"
-    "test_bump_with_changelog_to_stdout_arg"
-    "test_bump_with_changelog_to_stdout_dry_run_arg"
-    "test_changelog_config_flag_increment"
-    "test_changelog_config_start_rev_option"
-    "test_changelog_from_rev_first_version_from_arg"
-    "test_changelog_from_rev_latest_version_dry_run"
-    "test_changelog_from_rev_latest_version_from_arg"
-    "test_changelog_from_rev_range_version_not_found"
-    "test_changelog_from_rev_single_version_not_found"
-    "test_changelog_from_rev_version_range_from_arg"
-    "test_changelog_from_rev_version_range_including_first_tag"
-    "test_changelog_from_rev_version_with_big_range_from_arg"
-    "test_changelog_from_start"
-    "test_changelog_from_version_zero_point_two"
-    "test_changelog_hook"
-    "test_changelog_incremental_angular_sample"
-    "test_changelog_incremental_keep_a_changelog_sample"
-    "test_changelog_incremental_keep_a_changelog_sample_with_annotated_tag"
-    "test_changelog_incremental_newline_separates_new_content_from_old"
-    "test_changelog_incremental_with_release_candidate_version"
-    "test_changelog_is_persisted_using_incremental"
-    "test_changelog_multiple_incremental_do_not_add_new_lines"
-    "test_changelog_replacing_unreleased_using_incremental"
-    "test_changelog_with_different_cz"
-    "test_changelog_with_filename_as_empty_string"
-    "test_get_commits"
-    "test_get_commits_author_and_email"
     "test_get_commits_with_signature"
-    "test_get_latest_tag_name"
-    "test_invalid_subject_is_skipped"
-    "test_is_staging_clean_when_updating_file"
-    "test_none_increment_should_not_call_git_tag_and_error_code_is_not_zero"
-    "test_prevent_prerelease_when_no_increment_detected"
   ];
 
   meta = with lib; {
     description = "Tool to create committing rules for projects, auto bump versions, and generate changelogs";
     homepage = "https://github.com/commitizen-tools/commitizen";
     license = licenses.mit;
-    maintainers = with maintainers; [ lovesegfault ];
+    maintainers = with maintainers; [ lovesegfault anthonyroussel ];
   };
 }
diff --git a/pkgs/applications/version-management/dvc/default.nix b/pkgs/applications/version-management/dvc/default.nix
index b8361d8bd7035..6f1c4fe185773 100644
--- a/pkgs/applications/version-management/dvc/default.nix
+++ b/pkgs/applications/version-management/dvc/default.nix
@@ -23,7 +23,8 @@ python3.pkgs.buildPythonApplication rec {
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "grandalf==0.6" "grandalf" \
-      --replace "scmrepo==0.0.25" "scmrepo"
+      --replace "scmrepo==0.0.25" "scmrepo" \
+      --replace "pathspec>=0.9.0,<0.10.0" "pathspec"
     substituteInPlace dvc/daemon.py \
       --subst-var-by dvc "$out/bin/dcv"
   '';
diff --git a/pkgs/applications/version-management/gerrit/default.nix b/pkgs/applications/version-management/gerrit/default.nix
index e1e1fe17547f2..335a899b4da10 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.5.1";
+  version = "3.6.2";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "3fb5de878b6470dc8ef65ce22f2709cb8baecb5f16d89497dfaa33a0f33f7920";
+    sha256 = "sha256-/OckQD6r9WSMx9Vt44eFpzsacH6VMa6NJX6sj2HBQSs=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index b3613c8ff4811..29f52ce9fa4b3 100644
--- a/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fast-export";
-  version = "210917";
+  version = "220921";
 
   src = fetchFromGitHub {
     owner = "frej";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xg8r9rbqv7mriraqxdks2mgj7j4c9gap3kc05y1kxi3nniywyd3";
+    sha256 = "sha256-8tAh17Cp1L0kyV5+HoFnh9mINCBNCNBv1gqsMd6U3FQ=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index d963e995cb76a..4a4367bfdf7e5 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.15.0";
+  version = "2.17.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-+RHKrCW/5qCHO1KxjGdpbvqZxZe8hd+EWpUAfMr5FFI=";
+    sha256 = "sha256-2GDhDmk7AVb2DGxibIQM0b7hj2iGvjeLJ4+vAZggxtk=";
   };
 
-  vendorSha256 = "sha256-Q8XnXa5zTo6YbM5DEau2AsChd8kZrpFNRLhTZzogL9U=";
+  vendorSha256 = "sha256-TVMFOit2pi+ZVcppzs0iKNXluDW9ZQDH2d7cPSzg+ak=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index af2bff403572b..a9bf9229e0247 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.8.7";
+  version = "1.8.8";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = "v${version}";
-    sha256 = "sha256-3NlGS6DTTE0FCsvNPBNaxxbYcKKwE3gd1jsfdxlTl38=";
+    sha256 = "sha256-xB/TdeXC0V8dZs6N6Uq1+gzG84j9uhSrwkSbIMwUWSk=";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/ghr/default.nix b/pkgs/applications/version-management/git-and-tools/ghr/default.nix
index b5188c97f07c4..fd433bbfc581e 100644
--- a/pkgs/applications/version-management/git-and-tools/ghr/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghr/default.nix
@@ -7,24 +7,24 @@
 
 buildGoModule rec {
   pname = "ghr";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "tcnksm";
     repo = "ghr";
     rev = "v${version}";
-    sha256 = "sha256-947hTRfx3GM6qKDYvlKEmofqPdcmwx9V/zISkcSKALM=";
+    sha256 = "sha256-aD1HEdoAPFFpJL++fLZIk+pIs+qDNYbTGDMlcRjV6M4=";
   };
 
-  vendorSha256 = "sha256-OpWp3v1nxHJpEh2jW8MYnbaq66wx9b3DlaKzeti5N3w=";
+  vendorSha256 = "sha256-pqwJPo3ZhsXU1RF4BKPOWQS71+9EitSSTE1+sKlc9+s=";
 
   # Tests require a Github API token, and networking
   doCheck = false;
   doInstallCheck = true;
 
-  passthru.tests.testVersion = testers.testVersion {
+  passthru.tests.version = testers.testVersion {
     package = ghr;
-    version = "ghr version v${version}";
+    version = "v${version}";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
index 902211ef3d7fe..640be8547c02a 100644
--- a/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-branchless/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchpatch
 , git
 , libiconv
 , ncurses
@@ -15,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-branchless";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "arxanas";
     repo = "git-branchless";
     rev = "v${version}";
-    sha256 = "sha256-WFrN5TRFr9xHBUawTfvri0qlTiWCfAeC5SL+T6mwlU0=";
+    sha256 = "sha256-xh+G9bKEL2ho1YrNVTLbCTxSWZtjEuEWutvYEFr2G/g=";
   };
 
-  cargoSha256 = "sha256-AGW1jUKPc5iiuDlgIDHG1sOn1flAB3UdxJJNKPH5+f8=";
+  cargoSha256 = "sha256-Zz1RQ/mhdIbPiw2StGtTiORXiJ2nVLyZakt1072ha6U=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
index 086281a1d15cf..8e765824b2230 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cliff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-cliff";
-  version = "0.9.0";
+  version = "0.9.2";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    sha256 = "sha256-xmpT4xzajarc/1Iu0GqLthQlh0N9tJ1LdqJXrB4EN9Q=";
+    sha256 = "sha256-6OxYIr2ElyB4QHiPV/KAELmKC+qFGpgerhlDPjLvsio=";
   };
 
-  cargoSha256 = "sha256-f4tB37WiHompXjXqdVy+dNEIn5rhNqda8JTSVUOOlcE=";
+  cargoSha256 = "sha256-+C7MXmn3FrhD9UVdRmRZbH/rzleATBT0bdlQUSOae5Y=";
 
   # attempts to run the program on .git in src which is not deterministic
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
index 5defb54a631b9..19171c5804612 100644
--- a/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-cola/default.nix
@@ -5,13 +5,13 @@ let
 
 in buildPythonApplication rec {
   pname = "git-cola";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "git-cola";
     repo = "git-cola";
-    rev = "v${version}";
-    hash = "sha256-xCGXPGZa4K9f37kZRerfUY+Y7atRdqld5rxj0VYdziU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-5PE2Ey9IwNzxl4mk7tzaSWXiTmRFlxDO5MhoIYAwEag=";
   };
 
   buildInputs = [ git gettext ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index 6e2377bbec4bb..937a771b1e42e 100644
--- a/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -1,29 +1,21 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , unixtools
 , which
 }:
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "6.4.0";
+  version = "6.5.0";
 
   src = fetchFromGitHub {
     owner = "tj";
     repo = "git-extras";
     rev = version;
-    sha256 = "sha256-Cn7IXMzgg0QIsNIHz+X14Gkmop0UbsSBlGlGkmg71ek=";
+    sha256 = "sha256-7VNkIFjz4stRT48a9uXks84W7/tP3p7esMJKnIe1O+8=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/tj/git-extras/commit/66961ad4911cd0f1a908530f2b725bacc7d198e1.patch";
-      sha256 = "sha256-iC1lUf/NmuAPADxDWZ2JScHIMgYjIaR0edlGpq0qCOc=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs check_dependencies.sh
   '';
diff --git a/pkgs/applications/version-management/git-and-tools/git-gone/default.nix b/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
index 449634ae69924..5bdab4b081ee8 100644
--- a/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-gone/default.nix
@@ -1,29 +1,27 @@
 { lib
 , stdenv
-, fetchFromGitea
+, fetchFromGitHub
 , rustPlatform
-, libiconv
 , Security
 , installShellFiles
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "git-gone";
-  version = "0.3.8";
+  version = "0.4.2";
 
-  src = fetchFromGitea {
-    domain = "codeberg.org";
-    owner = "flausch";
-    repo = pname;
+  src = fetchFromGitHub {
+    owner = "lunaryorn";
+    repo = "git-gone";
     rev = "v${version}";
-    sha256 = "sha256-hKbq2rJwEZI3391RsZXsQSjjp7rSqglUckRDYAu42KE=";
+    sha256 = "sha256-aKBNi797aMPawxD+BLpk0sazXz2g0XTzmDpR/mk07no=";
   };
 
-  cargoSha256 = "sha256-gBQ4V8Bwx6Di8aVnOYwx0UZZIIOFxZAXT7Tl1Yli0Fk=";
+  cargoSha256 = "sha256-vO1ePqDIy5HEBauO3OkMCovrgtIVB9biJExw/q89ivE=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   postInstall = ''
     installManPage git-gone.1
@@ -31,8 +29,8 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Cleanup stale Git branches of merge requests";
-    homepage = "https://codeberg.org/flausch/git-gone";
-    changelog = "https://codeberg.org/flausch/git-gone/raw/tag/v${version}/CHANGELOG.md";
+    homepage = "https://github.com/lunaryorn/git-gone";
+    changelog = "https://github.com/lunaryorn/git-gone/raw/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
index b85f6d973cf22..97e2cf0537ac9 100644
--- a/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-interactive-rebase-tool";
-  version = "2.2.0";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "MitMaro";
     repo = pname;
     rev = version;
-    sha256 = "sha256-++KTMzTt84dowoZP+Bc9E/jUS21YN5ybKrlpQUKCir0=";
+    sha256 = "sha256-KqItunxh24jAkvsAMnByS+dhm+wyUqmdF96qEDs/5mI=";
   };
 
-  cargoSha256 = "sha256-OUaP/nDs589FYaGYcleRMTQNu3/q/2wBjHSv2q8OyjA=";
+  cargoSha256 = "sha256-510kNtcSsuXADMmSqu2t0HsnPUS/Jedsfvjnh2k+vDs=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index b5c251f247af3..9dc5143790aa8 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.12.0";
+  version = "3.12.4";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-o4OVA9cv+/JLiTUnDEAI/yj+YmOulFrX5XmlRZAb2vw=";
+    sha256 = "sha256-HRf6e6Qs1zghU01JmZQsR9CHyslUD1T+pCY8eq1JTmo=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-nomad/default.nix b/pkgs/applications/version-management/git-and-tools/git-nomad/default.nix
new file mode 100644
index 0000000000000..f11e978ceafbd
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-nomad/default.nix
@@ -0,0 +1,22 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "git-nomad";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "rraval";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-1PXAdXafkPOIVzaWjW/RlWHwYhMqPoj0Hj5JmOMUj8A=";
+  };
+
+  cargoHash = "sha256-ULcdJRla1JwI0y6ngW9xQXjNw2wO48HuAczsNIsJJK0=";
+
+  meta = with lib; {
+    description = "Synchronize work-in-progress git branches in a light weight fashion";
+    homepage = "https://github.com/rraval/git-nomad";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rraval ];
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git-publish/default.nix b/pkgs/applications/version-management/git-and-tools/git-publish/default.nix
new file mode 100644
index 0000000000000..0f0eeff156b06
--- /dev/null
+++ b/pkgs/applications/version-management/git-and-tools/git-publish/default.nix
@@ -0,0 +1,32 @@
+{ lib, stdenv, python, perl, fetchFromGitHub, installShellFiles }:
+stdenv.mkDerivation rec {
+  pname = "git-publish";
+  version = "1.8.1";
+
+  src = fetchFromGitHub {
+    owner = "stefanha";
+    repo = "git-publish";
+    rev = "v${version}";
+    sha256 = "14rz5kli6sz171cvdc46z3z0nnpd57rliwr6nn6vjjc49yyfwgl4";
+  };
+
+  nativeBuildInputs = [ perl installShellFiles ];
+  buildInputs = [ python ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm0755 git-publish $out/bin/git-publish
+    pod2man git-publish.pod > git-publish.1
+    installManPage git-publish.1
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Prepare and store patch revisions as git tags";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.lheckemann ];
+    homepage = "https://github.com/stefanha/git-publish";
+  };
+}
diff --git a/pkgs/applications/version-management/git-and-tools/git/default.nix b/pkgs/applications/version-management/git-and-tools/git/default.nix
index 20cc283af9891..9b2c755b1091a 100644
--- a/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -28,7 +28,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.37.2";
+  version = "2.37.3";
   svn = subversionClient.override { perlBindings = perlSupport; };
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
 in
@@ -41,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "sha256-HD2cghxFOOem2sMKSvi9jc/k9lH5VHTFJrUvg0BtsAM=";
+    sha256 = "sha256-gUZB1/YWWc+8F4JdBGJJnKFAPjn/U9dqhRIFDmSD6Ho=";
   };
 
   outputs = [ "out" ] ++ lib.optional withManual "doc";
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
     done
   '';
 
-  nativeBuildInputs = [ gettext perlPackages.perl makeWrapper ]
+  nativeBuildInputs = [ gettext perlPackages.perl makeWrapper pkg-config ]
     ++ lib.optionals withManual [ asciidoc texinfo xmlto docbook2x
          docbook_xsl docbook_xml_dtd_45 libxslt ];
   buildInputs = [ curl openssl zlib expat cpio libiconv bash ]
@@ -82,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals guiSupport [tcl tk]
     ++ lib.optionals withpcre2 [ pcre2 ]
     ++ lib.optionals stdenv.isDarwin [ Security CoreServices ]
-    ++ lib.optionals withLibsecret [ pkg-config glib libsecret ];
+    ++ lib.optionals withLibsecret [ glib libsecret ];
 
   # required to support pthread_cancel()
   NIX_LDFLAGS = lib.optionalString (stdenv.cc.isGNU && stdenv.hostPlatform.libc == "glibc") "-lgcc_s"
@@ -252,7 +252,7 @@ stdenv.mkDerivation (finalAttrs: {
       '')
 
    + lib.optionalString withManual ''# Install man pages
-       make -j $NIX_BUILD_CORES -l $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
+       make -j $NIX_BUILD_CORES PERL_PATH="${buildPackages.perl}/bin/perl" cmd-list.made install install-html \
          -C Documentation ''
 
    + (if guiSupport then ''
diff --git a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 7e56f28a81ea2..4b669c27252e2 100644
--- a/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -86,5 +86,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/romkatv/gitstatus";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ mmlb hexa SuperSandro2000 ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index 0359ed7ac6098..c06172aa216d4 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "lefthook";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "evilmartians";
     repo = "lefthook";
-    sha256 = "sha256-Ic2AsPFdRk3XdTVGbPBByxcHRAGGQfYoQm9GlgmSvA4=";
+    sha256 = "sha256-YgW0Q1s3V9WvhYQJlAszD7DdEbfggV5w1uMKXhDrn0s=";
   };
 
   vendorSha256 = "sha256-NTZz0EDIjGdh8dD9jxbNVdWb7NFJsdtnMp7H6Ni0EbQ=";
diff --git a/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 1ed773bd65b49..b5bdecd85ad16 100644
--- a/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "sha256-TsJr2Riygz/DZrn6UZMPvq1tTfvl3dFEZZNq2wVj1Nw=";
   };
 
-  nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl docbook_xml_dtd_45 ];
+  nativeBuildInputs = [ installShellFiles asciidoc xmlto docbook_xsl docbook_xml_dtd_45 python3Packages.setuptools ];
 
   format = "other";
 
diff --git a/pkgs/applications/version-management/git-and-tools/thicket/default.nix b/pkgs/applications/version-management/git-and-tools/thicket/default.nix
index 6aa639be86c96..1f331ffd49623 100644
--- a/pkgs/applications/version-management/git-and-tools/thicket/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/thicket/default.nix
@@ -1,22 +1,21 @@
 { lib
-, fetchFromGitHub
 , crystal
+, fetchFromGitHub
 }:
 
 crystal.buildCrystalPackage rec {
   pname = "thicket";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "taylorthurlow";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7X1RKj/FWgJdgA7P746hU0ndUM49fH79ZNRSkvNZYFg=";
+    sha256 = "sha256-sF+fNKEZEfjpW3buh6kFUpL1P0yO9g4SrTb0rhx1uNc=";
   };
 
   format = "shards";
 
-  shardsFile = ./shards.nix;
   crystalBinaries.thicket.src = "src/thicket.cr";
 
   # there is one test that tries to clone a repo
diff --git a/pkgs/applications/version-management/git-and-tools/thicket/shards.nix b/pkgs/applications/version-management/git-and-tools/thicket/shards.nix
deleted file mode 100644
index 1c035d332e53b..0000000000000
--- a/pkgs/applications/version-management/git-and-tools/thicket/shards.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  ameba = {
-    owner = "veelenga";
-    repo = "ameba";
-    rev = "v0.14.3";
-    sha256 = "1cfr95xi6hsyxw1wlrh571hc775xhwmssk3k14i8b7dgbwfmm5x1";
-  };
-}
diff --git a/pkgs/applications/version-management/git-and-tools/tig/default.nix b/pkgs/applications/version-management/git-and-tools/tig/default.nix
index f4416dcc13408..344a10cf2ec56 100644
--- a/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jonas.github.io/tig/";
     description = "Text-mode interface for git";
-    maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 ];
+    maintainers = with maintainers; [ bjornfor domenkozar qknight globin ma27 srapenne ];
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/applications/version-management/git-repo/default.nix b/pkgs/applications/version-management/git-repo/default.nix
index d4131f64c52aa..3c576f6a26ef5 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.29.2";
+  version = "2.29.3";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "sha256-995+6AYhSkMkOSm/ZjlInS5zb1od5nbEChvUyS/8RHM=";
+    sha256 = "sha256-hZoiljARTEhsuaM7QEFl+XqLq4RksLfxDpht5V1aC2M=";
   };
 
   # Fix 'NameError: name 'ssl' is not defined'
diff --git a/pkgs/applications/version-management/git-review/default.nix b/pkgs/applications/version-management/git-review/default.nix
index 1eaedf218cda4..2650f330c0a99 100644
--- a/pkgs/applications/version-management/git-review/default.nix
+++ b/pkgs/applications/version-management/git-review/default.nix
@@ -41,7 +41,7 @@ buildPythonApplication rec {
 
   pythonImportsCheck = [ "git_review" ];
 
-  passthru.updateScript = gitUpdater { inherit pname version; };
+  passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
     description = "Tool to submit code to Gerrit";
diff --git a/pkgs/applications/version-management/git-up/default.nix b/pkgs/applications/version-management/git-up/default.nix
index 06a2bb48989ca..0a366827e40d5 100644
--- a/pkgs/applications/version-management/git-up/default.nix
+++ b/pkgs/applications/version-management/git-up/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, pythonPackages, git }:
+{ lib, pythonPackages, git }:
 
 pythonPackages.buildPythonApplication rec {
   pname = "git-up";
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index a834a3357064a..5ed726e2bf60f 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "github-desktop";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchurl {
     url = "https://github.com/shiftkey/desktop/releases/download/release-${version}-linux1/GitHubDesktop-linux-${version}-linux1.deb";
-    sha256 = "sha256-7Sk2jDNZtOA04hkl/J+Up2yMGT8+FcXGPiUMcHhb7iY=";
+    hash = "sha256-UQsMT4/D571xgrU8C4HBoRO+qf08GCGerA4Y5gHcjRc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index 73a55554d618b..36fa987b84636 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,22 +1,27 @@
 {
-  "version": "15.3.3",
-  "repo_hash": "sha256-cgFy119/ZAUc/mBVAwZ5t5H2Z2+i5EJI9Q1KYtB2MJo=",
-  "yarn_hash": "1s2xai0q16xhp3q68hf9mxh1v429h4n5qy1iizdi7a5cmg3p3ldq",
+  "version": "15.4.1",
+  "repo_hash": "sha256-z4J0ia9WxL+tJnoYNBtb6ZMuqGHiyhQ0tc0L8kzj26w=",
+  "yarn_hash": "1r33qrvwf2wmq5c1d2awk9qhk9nzvafqn3drdvnczfv43sda4lg8",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v15.3.3-ee",
+  "rev": "v15.4.1-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "15.3.3",
+    "GITALY_SERVER_VERSION": "15.4.1",
     "GITLAB_PAGES_VERSION": "1.62.0",
     "GITLAB_SHELL_VERSION": "14.10.0",
-    "GITLAB_WORKHORSE_VERSION": "15.3.3"
+    "GITLAB_WORKHORSE_VERSION": "15.4.1"
   },
   "vendored_gems": [
+    "bundler-checksum",
     "devise-pbkdf2-encryptable",
+    "omniauth-azure-oauth2",
     "omniauth-cas3",
     "omniauth-gitlab",
+    "omniauth-google-oauth2",
     "omniauth_crowd",
+    "omniauth-salesforce",
     "mail-smtp_pool",
+    "microsoft_graph_mailer",
     "ipynbdiff",
     "error_tracking_open_api"
   ]
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index aee4ee3df1b62..47ca0f4f48d3c 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -50,15 +50,15 @@ let
     extraConfigPaths = lib.forEach data.vendored_gems (gem: "${src}/vendor/gems/${gem}");
   };
 
-  yarnOfflineCache = fetchYarnDeps {
-    yarnLock = src + "/yarn.lock";
-    sha256 = data.yarn_hash;
-  };
-
   assets = stdenv.mkDerivation {
     pname = "gitlab-assets";
     inherit version src;
 
+    yarnOfflineCache = fetchYarnDeps {
+      yarnLock = src + "/yarn.lock";
+      sha256 = data.yarn_hash;
+    };
+
     nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert ];
 
     patches = [
@@ -91,7 +91,7 @@ let
       export HOME=$NIX_BUILD_TOP/fake_home
 
       # Make yarn install packages from our offline cache, not the registry
-      yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
+      yarn config --offline set yarn-offline-mirror $yarnOfflineCache
 
       # Fixup "resolved"-entries in yarn.lock to match our offline cache
       ${fixup_yarn_lock}/bin/fixup_yarn_lock yarn.lock
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
index 855c28efc2f6f..7fa9b5b307bb7 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile
@@ -13,11 +13,11 @@ gem 'faraday', '~> 1.0'
 gem 'rbtrace', require: false
 
 # Labkit provides observability functionality
-gem 'gitlab-labkit', '~> 0.23'
+gem 'gitlab-labkit', '~> 0.24'
 
 # Detects the open source license the repository includes
 # This version needs to be in sync with GitLab CE/EE
-gem 'licensee', '~> 9.14.1'
+gem 'licensee', '~> 9.15'
 
 gem 'google-protobuf', '~> 3.21.0'
 
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index ac977a7a65a52..616dabbe088a5 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -24,7 +24,7 @@ GEM
     adamantium (0.2.0)
       ice_nine (~> 0.11.0)
       memoizable (~> 0.4.0)
-    addressable (2.7.0)
+    addressable (2.8.0)
       public_suffix (>= 2.0.2, < 5.0)
     ast (2.4.2)
     binding_ninja (0.2.3)
@@ -39,13 +39,13 @@ GEM
     diff-lcs (1.3)
     dotenv (2.7.6)
     equalizer (0.0.11)
-    erubi (1.10.0)
+    erubi (1.11.0)
     escape_utils (1.2.2)
     factory_bot (5.0.2)
       activesupport (>= 4.2.0)
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
-    ffi (1.15.3)
+    ffi (1.15.5)
     gemojione (3.3.0)
       json
     github-linguist (7.20.0)
@@ -65,9 +65,9 @@ GEM
     gitlab-gollum-rugged_adapter (0.4.4.4.gitlab.1)
       mime-types (>= 1.15)
       rugged (~> 1.0)
-    gitlab-labkit (0.23.0)
-      actionpack (>= 5.0.0, < 7.0.0)
-      activesupport (>= 5.0.0, < 7.0.0)
+    gitlab-labkit (0.24.0)
+      actionpack (>= 5.0.0, < 8.0.0)
+      activesupport (>= 5.0.0, < 8.0.0)
       grpc (>= 1.37)
       jaeger-client (~> 1.1.0)
       opentracing (~> 0.4)
@@ -81,8 +81,8 @@ GEM
       with_env (= 1.1.0)
       xml-simple (~> 1.1.5)
     gitlab-markup (1.7.1)
-    google-protobuf (3.21.3)
-    googleapis-common-protos-types (1.3.0)
+    google-protobuf (3.21.5)
+    googleapis-common-protos-types (1.4.0)
       google-protobuf (~> 3.14)
     grpc (1.42.0)
       google-protobuf (~> 3.18)
@@ -95,13 +95,13 @@ GEM
       opentracing (~> 0.3)
       thrift
     json (2.5.1)
-    licensee (9.14.1)
+    licensee (9.15.2)
       dotenv (~> 2.0)
-      octokit (~> 4.17)
+      octokit (~> 4.20)
       reverse_markdown (~> 1.0)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
-    loofah (2.16.0)
+    loofah (2.18.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     memoizable (0.4.2)
@@ -112,7 +112,7 @@ GEM
     mime-types-data (3.2020.1104)
     mini_mime (1.1.2)
     mini_portile2 (2.8.0)
-    minitest (5.16.2)
+    minitest (5.16.3)
     msgpack (1.3.3)
     multipart-post (2.1.1)
     nokogiri (1.13.8)
@@ -126,8 +126,8 @@ GEM
     parallel (1.19.2)
     parser (3.0.3.2)
       ast (~> 2.4.1)
-    pg_query (2.1.1)
-      google-protobuf (>= 3.17.1)
+    pg_query (2.1.3)
+      google-protobuf (>= 3.19.2)
     proc_to_ast (0.1.0)
       coderay
       parser
@@ -136,15 +136,15 @@ GEM
     pry (0.12.2)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     racc (1.6.0)
-    rack (2.2.3)
-    rack-test (1.1.0)
-      rack (>= 1.0, < 3)
+    rack (2.2.4)
+    rack-test (2.0.2)
+      rack (>= 1.3)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
-    rails-html-sanitizer (1.4.2)
+    rails-html-sanitizer (1.4.3)
       loofah (~> 2.3)
     rainbow (3.0.0)
     rbtrace (0.4.14)
@@ -152,12 +152,12 @@ GEM
       msgpack (>= 0.4.3)
       optimist (>= 3.0.0)
     rdoc (6.3.2)
-    redis (4.4.0)
+    redis (4.8.0)
     regexp_parser (1.8.1)
     reverse_markdown (1.4.0)
       nokogiri
     rexml (3.2.5)
-    rouge (3.27.0)
+    rouge (3.30.0)
     rspec (3.8.0)
       rspec-core (~> 3.8.0)
       rspec-expectations (~> 3.8.0)
@@ -202,7 +202,7 @@ GEM
     stringex (2.8.5)
     thor (1.1.0)
     thread_safe (0.3.6)
-    thrift (0.15.0)
+    thrift (0.16.0)
     timecop (0.9.1)
     tomlrb (2.0.1)
     tzinfo (2.0.5)
@@ -231,13 +231,13 @@ DEPENDENCIES
   github-linguist (~> 7.20.0)
   gitlab-gollum-lib (~> 4.2.7.10.gitlab.2)
   gitlab-gollum-rugged_adapter (~> 0.4.4.4.gitlab.1)
-  gitlab-labkit (~> 0.23)
+  gitlab-labkit (~> 0.24)
   gitlab-license_finder
   gitlab-markup (~> 1.7.1)
   google-protobuf (~> 3.21.0)
   grpc (~> 1.42.0)
   grpc-tools (~> 1.42.0)
-  licensee (~> 9.14.1)
+  licensee (~> 9.15)
   pry (~> 0.12.2)
   rbtrace
   rdoc (~> 6.0)
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index bf3fcb28394d2..390581fe44727 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -11,7 +11,7 @@ let
     gemdir = ./.;
   };
 
-  version = "15.3.3";
+  version = "15.4.1";
   package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 
@@ -22,10 +22,10 @@ let
       owner = "gitlab-org";
       repo = "gitaly";
       rev = "v${version}";
-      sha256 = "sha256-JapesdZbEjGsiR9o1J/exkqlV6Y9a69PVVPS22AaJG0=";
+      sha256 = "sha256-7f4TxCI/k2yirQxYI8i/6PXGVDs4x4ncIou1qH0TKAc=";
     };
 
-    vendorSha256 = "sha256-aPCcTS5zflpjzb2L/oDOQotdL8cFsgKPa8b+lhCpbag=";
+    vendorSha256 = "sha256-CUFYHjmOfosM3mfw0qEY+AQcR8U3J/1lU2Ml6wSZ/QM=";
 
     ldflags = [ "-X ${gitaly_package}/internal/version.version=${version}" "-X ${gitaly_package}/internal/version.moduleVersion=${version}" ];
 
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index 9952dcccb37b4..9051ad74bf1d7 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -55,10 +55,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
       type = "gem";
     };
-    version = "2.7.0";
+    version = "2.8.0";
   };
   ast = {
     groups = ["default" "development" "test"];
@@ -168,10 +168,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09l8lz3j00m898li0yfsnb6ihc63rdvhw3k5xczna5zrjk104f2l";
+      sha256 = "11bz1v1cxabm8672gabrw542zyg51dizlcvdck6vvwzagxbjv9zx";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "1.11.0";
   };
   escape_utils = {
     groups = ["default"];
@@ -210,10 +210,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1wgvaclp4h9y8zkrgz8p2hqkrgr4j7kz0366mik0970w532cbmcq";
+      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
       type = "gem";
     };
-    version = "1.15.3";
+    version = "1.15.5";
   };
   gemojione = {
     dependencies = ["json"];
@@ -271,10 +271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kiz2m3dw6ld2z6dsl8jh2ycw061wv8wiy34flymb5zqjiyyzw8l";
+      sha256 = "0j0598m9445msa0rksl1l1cvd11wsnyq1s4gjmcbw18a9smfa5lg";
       type = "gem";
     };
-    version = "0.23.0";
+    version = "0.24.0";
   };
   gitlab-license_finder = {
     dependencies = ["rubyzip" "thor" "tomlrb" "with_env" "xml-simple"];
@@ -302,10 +302,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0825yplkfp8xf0vpl25ff58xrlah98x9yv3hj9pgl82b0gqali6p";
+      sha256 = "1ysvm5mxx1knjp3sbhi18nswaml625vbgm3gbh7is14h4d8fwjy9";
       type = "gem";
     };
-    version = "3.21.3";
+    version = "3.21.5";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -313,10 +313,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w860lqs5j6n58a8qn4wr16hp0qz7cq5h67dgma04gncjwqiyhf5";
+      sha256 = "04sy3c91nlw2sv53xf2h2yf0cc09bdcvj2qbjsxwzxpbqgfrf255";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   grpc = {
     dependencies = ["google-protobuf" "googleapis-common-protos-types"];
@@ -385,10 +385,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
+      sha256 = "1v9x94h19b20wc551vs9a0yvk44w2y3g9ng07fflk26s8jsmjsab";
       type = "gem";
     };
-    version = "9.14.1";
+    version = "9.15.2";
   };
   loofah = {
     dependencies = ["crass" "nokogiri"];
@@ -396,10 +396,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15s6z5bvhdhnqv4wg8zcz3mhbc7i4dbqskv5jvhprz33ak7682km";
+      sha256 = "18ymp6l3bv7abz07k6qbbi9c9vsiahq30d2smh4qzsvag8j5m5v1";
       type = "gem";
     };
-    version = "2.16.0";
+    version = "2.18.0";
   };
   memoizable = {
     dependencies = ["thread_safe"];
@@ -464,10 +464,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14a9ign0hj3z3j4cpfplj2djaskx3skzyx4fl3x53d7saxmhrgn1";
+      sha256 = "0516ypqlx0mlcfn5xh7qppxqc3xndn1fnadxawa8wld5dkcimy30";
       type = "gem";
     };
-    version = "5.16.2";
+    version = "5.16.3";
   };
   msgpack = {
     groups = ["default"];
@@ -558,10 +558,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cf1b97nznl6adkx25j2x96sq8xx2b4fpic230fx65k3vqqn8a4r";
+      sha256 = "00bhwkhjy6bkp04313m5il7vd165i3fz0x4jissflf66i164ppgk";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.1.3";
   };
   proc_to_ast = {
     dependencies = ["coderay" "parser" "unparser"];
@@ -594,10 +594,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   racc = {
     groups = ["default"];
@@ -614,10 +614,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      sha256 = "0axc6w0rs4yj0pksfll1hjgw1k6a5q0xi2lckh91knfb72v348pa";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.4";
   };
   rack-test = {
     dependencies = ["rack"];
@@ -625,10 +625,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+      sha256 = "0rjl709krgf499dhjdapg580l2qaj9d91pwzk8ck8fpnazlx1bdd";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "2.0.2";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -647,10 +647,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09qrfi3pgllxb08r024lln9k0qzxs57v0slsj8616xf9c0cwnwbk";
+      sha256 = "1mj0b7ay10a2fgwj70kjw7mlyrp7a5la8lx8zmwhy40bkansdfrf";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.3";
   };
   rainbow = {
     source = {
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ig832dp0xmpp6a934nifzaj7wm9lzjxzasw911fagycs8p6m720";
+      sha256 = "0i4a8hxxcxci3n8hhlm9a8wa7a9m58r6sjvh4749v7362i8cy010";
       type = "gem";
     };
-    version = "4.4.0";
+    version = "4.8.0";
   };
   regexp_parser = {
     groups = ["default" "development" "test"];
@@ -727,10 +727,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0530ri0p60km0bg0ib6swkhfnas427cva7vcdmnwl8df52a10y1k";
+      sha256 = "1dnfkrk8xx2m8r3r9m2p5xcq57viznyc09k7r3i4jbm758i57lx3";
       type = "gem";
     };
-    version = "3.27.0";
+    version = "3.30.0";
   };
   rspec = {
     dependencies = ["rspec-core" "rspec-expectations" "rspec-mocks"];
@@ -915,10 +915,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rb9nax4k72zbriq7k98shfcj4lf54sqjpin2xm6ma7bb48ra8mc";
+      sha256 = "1knw2xa3pkfql4np9qazz2mdi1vz21vdsa0wkx648c4ym1p2h8yh";
       type = "gem";
     };
-    version = "0.15.0";
+    version = "0.16.0";
   };
   timecop = {
     source = {
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index f17937e4cdffa..cf58ee92860a6 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
@@ -5,7 +5,7 @@ in
 buildGoModule rec {
   pname = "gitlab-workhorse";
 
-  version = "15.3.3";
+  version = "15.4.1";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-fOAHv+/FiR/R0ohhluDig5zKH9ZkBABrr0aeFsT3U8M=";
+  vendorSha256 = "sha256-dN3DfkAJkqkmGyahsBDsPQBog52RGECV+SESSR6W3fg=";
   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 8812e80aad234..0426bd840201c 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -2,6 +2,8 @@
 
 source 'https://rubygems.org'
 
+gem 'bundler-checksum', '~> 0.1.0', path: 'bundler-checksum', require: false
+
 gem 'rails', '~> 6.1.6.1'
 
 gem 'bootsnap', '~> 1.13.0', require: false
@@ -11,7 +13,7 @@ gem 'responders', '~> 3.0'
 
 gem 'sprockets', '~> 3.7.0'
 
-gem 'view_component', '~> 2.61'
+gem 'view_component', '~> 2.71.0'
 
 # Default values for AR models
 gem 'default_value_for', '~> 3.4.0'
@@ -29,32 +31,33 @@ gem 'marginalia', '~> 1.10.0'
 gem 'declarative_policy', '~> 1.1.0'
 
 # Authentication libraries
-gem 'devise', '~> 4.7.2'
+gem 'devise', '~> 4.8.1'
 gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'devise-pbkdf2-encryptable'
 gem 'bcrypt', '~> 3.1', '>= 3.1.14'
 gem 'doorkeeper', '~> 5.5.0.rc2'
 gem 'doorkeeper-openid_connect', '~> 1.7.5'
 gem 'rexml', '~> 3.2.5'
 gem 'ruby-saml', '~> 1.13.0'
-gem 'omniauth', '~> 1.8'
+gem 'omniauth-rails_csrf_protection'
+gem 'omniauth', '~> 2.1.0'
 gem 'omniauth-auth0', '~> 2.0.0'
 gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
-gem 'omniauth-azure-oauth2', '~> 0.0.9' # See vendor/gems/omniauth-azure-oauth2/README.md
+gem 'omniauth-azure-oauth2', '~> 0.0.9', path: 'omniauth-azure-oauth2' # See gem README.md
 gem 'omniauth-cas3', '~> 1.1.4', path: 'omniauth-cas3' # See vendor/gems/omniauth-cas3/README.md
 gem 'omniauth-dingtalk-oauth2', '~> 1.0'
 gem 'omniauth-alicloud', '~> 1.0.1'
 gem 'omniauth-facebook', '~> 4.0.0'
-gem 'omniauth-github', '~> 1.4'
+gem 'omniauth-github', '2.0.0'
 gem 'omniauth-gitlab', '~> 4.0.0', path: 'omniauth-gitlab' # See vendor/gems/omniauth-gitlab/README.md
-gem 'omniauth-google-oauth2', '~> 0.6.0'
+gem 'omniauth-google-oauth2', '~> 1.0.1', path: 'omniauth-google-oauth2' # See gem README.md
 gem 'omniauth-oauth2-generic', '~> 0.2.2'
-gem 'omniauth-saml', '~> 1.10'
+gem 'omniauth-saml', '~> 2.0.0'
 gem 'omniauth-shibboleth', '~> 1.3.0'
 gem 'omniauth-twitter', '~> 1.4'
 gem 'omniauth_crowd', '~> 2.4.0', path: 'omniauth_crowd' # See vendor/gems/omniauth_crowd/README.md
 gem 'omniauth-authentiq', '~> 0.3.3'
-gem 'gitlab-omniauth-openid-connect', '~> 0.9.0', require: 'omniauth_openid_connect'
-gem 'omniauth-salesforce', '~> 1.0.5'
+gem 'gitlab-omniauth-openid-connect', '~> 0.10.0', require: 'omniauth_openid_connect'
+gem 'omniauth-salesforce', '~> 1.0.5', path: 'omniauth-salesforce' # See gem README.md
 gem 'omniauth-atlassian-oauth2', '~> 0.2.0'
 gem 'rack-oauth2', '~> 1.21.2'
 gem 'jwt', '~> 2.1.0'
@@ -164,21 +167,21 @@ gem 'rdoc', '~> 6.3.2'
 gem 'org-ruby', '~> 0.9.12'
 gem 'creole', '~> 0.5.0'
 gem 'wikicloth', '0.8.1'
-gem 'asciidoctor', '~> 2.0.10'
+gem 'asciidoctor', '~> 2.0.17'
 gem 'asciidoctor-include-ext', '~> 0.4.0', require: false
-gem 'asciidoctor-plantuml', '~> 0.0.12'
+gem 'asciidoctor-plantuml', '~> 0.0.16'
 gem 'asciidoctor-kroki', '~> 0.5.0', require: false
 gem 'rouge', '~> 3.30.0'
 gem 'truncato', '~> 0.7.12'
 gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.13.0'
+gem 'nokogiri', '~> 1.13.8'
 gem 'escape_utils', '~> 1.1'
 
 # Calendar rendering
 gem 'icalendar'
 
 # Diffs
-gem 'diffy', '~> 3.3'
+gem 'diffy', '~> 3.4'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
@@ -187,7 +190,7 @@ gem 'rack', '~> 2.2.4'
 gem 'rack-timeout', '~> 0.6.0', require: 'rack/timeout/base'
 
 group :puma do
-  gem 'puma', '~> 5.6.4', require: false
+  gem 'puma', '~> 5.6.5', require: false
   gem 'puma_worker_killer', '~> 0.3.1', require: false
   gem 'sd_notify', '~> 0.1.0', require: false
 end
@@ -199,8 +202,8 @@ gem 'state_machines-activerecord', '~> 0.8.0'
 gem 'acts-as-taggable-on', '~> 9.0'
 
 # Background jobs
-gem 'sidekiq', '~> 6.4'
-gem 'sidekiq-cron', '~> 1.2'
+gem 'sidekiq', '~> 6.4.0'
+gem 'sidekiq-cron', '~> 1.4.0'
 gem 'redis-namespace', '~> 1.8.1'
 gem 'gitlab-sidekiq-fetcher', '0.8.0', require: 'sidekiq-reliable-fetch'
 
@@ -233,7 +236,7 @@ gem 'js_regex', '~> 3.7'
 gem 'device_detector'
 
 # Redis
-gem 'redis', '~> 4.4.0'
+gem 'redis', '~> 4.7.0'
 gem 'connection_pool', '~> 2.0'
 
 # Redis session store
@@ -272,7 +275,9 @@ gem 'babosa', '~> 1.0.4'
 gem 'loofah', '~> 2.18.0'
 
 # Working with license
-gem 'licensee', '~> 9.14.1'
+# Detects the open source license the repository includes
+# This version needs to be in sync with gitlab-org/gitaly
+gem 'licensee', '~> 9.15'
 
 # Detect and convert string character encoding
 gem 'charlock_holmes', '~> 0.7.7'
@@ -318,9 +323,7 @@ gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
 gem 'gitlab-labkit', '~> 0.24.0'
-# Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
-# because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
-gem 'thrift', '>= 0.14.0'
+gem 'thrift', '>= 0.16.0'
 
 # I18n
 gem 'ruby_parser', '~> 3.15', require: false
@@ -338,22 +341,21 @@ gem 'peek', '~> 1.1'
 gem 'snowplow-tracker', '~> 0.6.1'
 
 # Metrics
-gem 'method_source', '~> 1.0', require: false
 gem 'webrick', '~> 1.6.1', require: false
 gem 'prometheus-client-mmap', '~> 0.16', require: 'prometheus/client'
 
 gem 'warning', '~> 1.3.0'
 
 group :development do
-  gem 'lefthook', '~> 1.1.0', require: false
+  gem 'lefthook', '~> 1.1.1', require: false
   gem 'rubocop'
-  gem 'solargraph', '~> 0.45.0', require: false
+  gem 'solargraph', '~> 0.46.0', require: false
 
   gem 'letter_opener_web', '~> 2.0.0'
-  gem 'lookbook'
+  gem 'lookbook', '~> 1.0'
 
   # Better errors handler
-  gem 'better_errors', '~> 2.9.0'
+  gem 'better_errors', '~> 2.9.1'
 
   gem 'sprite-factory', '~> 1.7'
 end
@@ -380,12 +382,14 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 7.1.0', require: false
+  gem 'gitlab-styles', '~> 8.0.0', require: false
 
-  gem 'haml_lint', '~> 0.36.0', require: false
+  gem 'haml_lint', '~> 0.40.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
 
+  # Benchmarking & profiling
   gem 'benchmark-ips', '~> 2.3.0', require: false
+  gem 'benchmark-memory', '~> 0.1', require: false
 
   gem 'knapsack', '~> 1.21.1'
   gem 'crystalball', '~> 0.7.0', require: false
@@ -406,7 +410,7 @@ group :development, :test do
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 3.5.0', require: false
+  gem 'gitlab-dangerfiles', '~> 3.5.2', require: false
 end
 
 group :development, :test, :coverage do
@@ -457,10 +461,9 @@ gem 'email_reply_trimmer', '~> 0.1'
 gem 'html2text'
 
 gem 'ruby-prof', '~> 1.3.0'
-gem 'stackprof', '~> 0.2.15', require: false
+gem 'stackprof', '~> 0.2.21', require: false
 gem 'rbtrace', '~> 0.4', require: false
 gem 'memory_profiler', '~> 0.9', require: false
-gem 'benchmark-memory', '~> 0.1', require: false
 gem 'activerecord-explain-analyze', '~> 0.1', require: false
 
 # OAuth
@@ -480,10 +483,10 @@ gem 'net-ntp'
 gem 'ssh_data', '~> 1.3'
 
 # Spamcheck GRPC protocol definitions
-gem 'spamcheck', '~> 0.1.0'
+gem 'spamcheck', '~> 1.0.0'
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 15.3.0-rc3'
+gem 'gitaly', '~> 15.4.0-rc2'
 
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.0.2'
@@ -524,6 +527,8 @@ gem 'erubi', '~> 1.9.0'
 gem 'mail', '= 2.7.1'
 gem 'mail-smtp_pool', '~> 0.1.0', path: 'mail-smtp_pool', require: false
 
+gem 'microsoft_graph_mailer', '~> 0.1.0', path: 'microsoft_graph_mailer'
+
 # File encryption
 gem 'lockbox', '~> 0.6.2'
 
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index a9e8052ddb472..f1b1f615a0942 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -1,4 +1,10 @@
 PATH
+  remote: bundler-checksum
+  specs:
+    bundler-checksum (0.1.0)
+      bundler
+
+PATH
   remote: devise-pbkdf2-encryptable
   specs:
     devise-pbkdf2-encryptable (0.0.0)
@@ -14,7 +20,7 @@ PATH
   remote: ipynbdiff
   specs:
     ipynbdiff (0.4.7)
-      diffy (~> 3.3)
+      diffy (~> 3.4)
       oj (~> 3.13.16)
 
 PATH
@@ -25,27 +31,58 @@ PATH
       mail (~> 2.7)
 
 PATH
+  remote: microsoft_graph_mailer
+  specs:
+    microsoft_graph_mailer (0.1.0)
+      mail (~> 2.7)
+      oauth2 (>= 1.4.4, < 3)
+
+PATH
+  remote: omniauth-azure-oauth2
+  specs:
+    omniauth-azure-oauth2 (0.0.10)
+      jwt (>= 1.0, < 3.0)
+      omniauth (~> 2.0)
+      omniauth-oauth2 (~> 1.4)
+
+PATH
   remote: omniauth-cas3
   specs:
     omniauth-cas3 (1.1.4)
       addressable (~> 2.3)
       nokogiri (~> 1.7, >= 1.7.1)
-      omniauth (~> 1.2, < 3)
+      omniauth (~> 2.0)
 
 PATH
   remote: omniauth-gitlab
   specs:
     omniauth-gitlab (4.0.0)
-      omniauth (~> 1.0)
+      omniauth (~> 2.0)
+      omniauth-oauth2 (~> 1.7.1)
+
+PATH
+  remote: omniauth-google-oauth2
+  specs:
+    omniauth-google-oauth2 (1.0.1)
+      jwt (>= 2.0)
+      oauth2 (~> 2.0)
+      omniauth (~> 2.0)
       omniauth-oauth2 (~> 1.7.1)
 
 PATH
+  remote: omniauth-salesforce
+  specs:
+    omniauth-salesforce (1.0.5)
+      omniauth (~> 2.0)
+      omniauth-oauth2 (~> 1.0)
+
+PATH
   remote: omniauth_crowd
   specs:
     omniauth_crowd (2.4.0)
       activesupport
       nokogiri (>= 1.4.4)
-      omniauth (~> 1.0, < 3)
+      omniauth (~> 2.0)
 
 GEM
   remote: https://rubygems.org/
@@ -131,13 +168,13 @@ GEM
       faraday_middleware (~> 1.0)
       faraday_middleware-multi_json (~> 0.0)
       oauth2 (>= 1.4, < 3)
-    asciidoctor (2.0.15)
+    asciidoctor (2.0.17)
     asciidoctor-include-ext (0.4.0)
       asciidoctor (>= 1.5.6, < 3.0.0)
     asciidoctor-kroki (0.5.0)
       asciidoctor (~> 2.0)
-    asciidoctor-plantuml (0.0.12)
-      asciidoctor (>= 1.5.6, < 3.0.0)
+    asciidoctor-plantuml (0.0.16)
+      asciidoctor (>= 2.0.17, < 3.0.0)
     ast (2.4.2)
     atlassian-jwt (0.2.0)
       jwt (~> 2.1.0)
@@ -306,7 +343,7 @@ GEM
       ruby-statistics (>= 2.1)
       thor (>= 0.19, < 2)
     device_detector (1.0.0)
-    devise (4.7.3)
+    devise (4.8.1)
       bcrypt (~> 3.0)
       orm_adapter (~> 0.1)
       railties (>= 4.1.0)
@@ -320,7 +357,7 @@ GEM
       rotp (~> 6.0)
     diff-lcs (1.5.0)
     diff_match_patch (0.1.0)
-    diffy (3.3.0)
+    diffy (3.4.2)
     discordrb-webhooks (3.4.2)
       rest-client (>= 2.0.0)
     docile (1.4.0)
@@ -377,7 +414,7 @@ GEM
     encryptor (3.0.0)
     erubi (1.9.0)
     escape_utils (1.2.1)
-    et-orbi (1.2.1)
+    et-orbi (1.2.7)
       tzinfo
     ethon (0.15.0)
       ffi (>= 1.15.0)
@@ -486,7 +523,7 @@ GEM
       fog-core
       nokogiri (>= 1.5.11, < 2.0.0)
     formatador (0.2.5)
-    fugit (1.2.1)
+    fugit (1.2.3)
       et-orbi (~> 1.1, >= 1.1.8)
       raabro (~> 1.1)
     fuubar (2.2.0)
@@ -508,7 +545,7 @@ GEM
       rails (>= 3.2.0)
     git (1.11.0)
       rchardet (~> 1.8)
-    gitaly (15.3.0.pre.rc3)
+    gitaly (15.4.0.pre.rc2)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab (4.16.1)
@@ -516,7 +553,7 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (3.5.0)
+    gitlab-dangerfiles (3.5.2)
       danger (>= 8.4.5)
       danger-gitlab (>= 8.0.0)
       rake
@@ -540,15 +577,15 @@ GEM
       redis (> 3.0.0, < 5.0.0)
     gitlab-license (2.2.1)
     gitlab-mail_room (0.0.9)
-    gitlab-markup (1.8.0)
+    gitlab-markup (1.8.1)
     gitlab-net-dns (0.9.1)
-    gitlab-omniauth-openid-connect (0.9.1)
+    gitlab-omniauth-openid-connect (0.10.0)
       addressable (~> 2.7)
-      omniauth (~> 1.9)
+      omniauth (>= 1.9, < 3)
       openid_connect (~> 1.2)
     gitlab-sidekiq-fetcher (0.8.0)
       sidekiq (~> 6.1)
-    gitlab-styles (7.1.0)
+    gitlab-styles (8.0.0)
       rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
       rubocop-graphql (~> 0.10)
@@ -580,7 +617,7 @@ GEM
       signet (~> 0.12)
     google-cloud-env (1.6.0)
       faraday (>= 0.17.3, < 3.0)
-    google-protobuf (3.21.3)
+    google-protobuf (3.21.5)
     googleapis-common-protos-types (1.3.0)
       google-protobuf (~> 3.14)
     googleauth (0.14.0)
@@ -649,10 +686,10 @@ GEM
       guard (~> 2.1)
       guard-compat (~> 1.1)
       rspec (>= 2.99.0, < 4.0)
-    haml (5.1.2)
+    haml (5.2.2)
       temple (>= 0.8.0)
       tilt
-    haml_lint (0.36.0)
+    haml_lint (0.40.1)
       haml (>= 4.0, < 5.3)
       parallel (~> 1.10)
       rainbow
@@ -757,7 +794,7 @@ GEM
       rest-client (~> 2.0)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (1.1.0)
+    lefthook (1.1.1)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -773,9 +810,9 @@ GEM
       tomlrb (>= 1.3, < 2.1)
       with_env (= 1.1.0)
       xml-simple (~> 1.1.9)
-    licensee (9.14.1)
+    licensee (9.15.2)
       dotenv (~> 2.0)
-      octokit (~> 4.17)
+      octokit (~> 4.20)
       reverse_markdown (~> 1.0)
       rugged (>= 0.24, < 2.0)
       thor (>= 0.19, < 2.0)
@@ -792,9 +829,11 @@ GEM
     loofah (2.18.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
-    lookbook (0.9.3)
+    lookbook (1.0.3)
       actioncable
+      css_parser
       htmlbeautifier (~> 1.3)
+      htmlentities (~> 4.3.4)
       listen (~> 3.0)
       railties (>= 5.0)
       redcarpet (~> 3.5)
@@ -888,9 +927,10 @@ GEM
       train-core
       wmi-lite (~> 1.0)
     oj (3.13.21)
-    omniauth (1.9.1)
+    omniauth (2.1.0)
       hashie (>= 3.4.6)
-      rack (>= 1.6.2, < 3)
+      rack (>= 2.2.3)
+      rack-protection
     omniauth-alicloud (1.0.1)
       omniauth-oauth2 (~> 1.7.1)
     omniauth-atlassian-oauth2 (0.2.0)
@@ -903,21 +943,13 @@ GEM
       omniauth-oauth2 (>= 1.5)
     omniauth-azure-activedirectory-v2 (1.0.0)
       omniauth-oauth2 (~> 1.7)
-    omniauth-azure-oauth2 (0.0.10)
-      jwt (>= 1.0, < 3.0)
-      omniauth (~> 1.0)
-      omniauth-oauth2 (~> 1.4)
     omniauth-dingtalk-oauth2 (1.0.1)
       omniauth-oauth2 (~> 1.7)
     omniauth-facebook (4.0.0)
       omniauth-oauth2 (~> 1.2)
-    omniauth-github (1.4.0)
-      omniauth (~> 1.5)
-      omniauth-oauth2 (>= 1.4.0, < 2.0)
-    omniauth-google-oauth2 (0.6.0)
-      jwt (>= 2.0)
-      omniauth (>= 1.1.1)
-      omniauth-oauth2 (>= 1.5)
+    omniauth-github (2.0.0)
+      omniauth (~> 2.0)
+      omniauth-oauth2 (~> 1.7.1)
     omniauth-oauth (1.2.0)
       oauth
       omniauth (>= 1.0, < 3)
@@ -926,12 +958,12 @@ GEM
       omniauth (>= 1.9, < 3)
     omniauth-oauth2-generic (0.2.2)
       omniauth-oauth2 (~> 1.0)
-    omniauth-salesforce (1.0.5)
-      omniauth (~> 1.0)
-      omniauth-oauth2 (~> 1.0)
-    omniauth-saml (1.10.0)
-      omniauth (~> 1.3, >= 1.3.2)
-      ruby-saml (~> 1.7)
+    omniauth-rails_csrf_protection (1.0.1)
+      actionpack (>= 4.2)
+      omniauth (~> 2.0)
+    omniauth-saml (2.0.0)
+      omniauth (~> 2.0)
+      ruby-saml (~> 1.9)
     omniauth-shibboleth (1.3.0)
       omniauth (>= 1.0.0)
     omniauth-twitter (1.4.0)
@@ -980,7 +1012,7 @@ GEM
       rspec (>= 2.14)
       term-ansicolor (~> 1.0)
     parallel (1.22.1)
-    parser (3.1.2.0)
+    parser (3.1.2.1)
       ast (~> 2.4.1)
     parslet (1.8.2)
     pastel (0.8.0)
@@ -988,7 +1020,7 @@ GEM
     peek (1.1.0)
       railties (>= 4.0.0)
     pg (1.4.3)
-    pg_query (2.1.3)
+    pg_query (2.1.4)
       google-protobuf (>= 3.19.2)
     plist (3.6.0)
     png_quantizator (0.2.1)
@@ -1019,13 +1051,13 @@ GEM
       tty-markdown
       tty-prompt
     public_suffix (4.0.7)
-    puma (5.6.4)
+    puma (5.6.5)
       nio4r (~> 2.0)
     puma_worker_killer (0.3.1)
       get_process_mem (~> 0.2)
       puma (>= 2.7)
     pyu-ruby-sasl (0.0.3.3)
-    raabro (1.1.6)
+    raabro (1.4.0)
     racc (1.6.0)
     rack (2.2.4)
     rack-accept (0.4.5)
@@ -1040,6 +1072,8 @@ GEM
       httpclient
       json-jwt (>= 1.11.0)
       rack (>= 2.1.0)
+    rack-protection (2.2.2)
+      rack
     rack-proxy (0.7.2)
       rack
     rack-test (1.1.0)
@@ -1083,7 +1117,7 @@ GEM
     randexp (0.1.7)
     rash_alt (0.4.12)
       hashie (>= 3.4)
-    rb-fsevent (0.11.1)
+    rb-fsevent (0.11.2)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rbtrace (0.4.14)
@@ -1098,7 +1132,7 @@ GEM
       json
     recursive-open-struct (1.1.3)
     redcarpet (3.5.1)
-    redis (4.4.0)
+    redis (4.7.1)
     redis-actionpack (5.3.0)
       actionpack (>= 5, < 8)
       redis-rack (>= 2.1.0, < 3)
@@ -1187,11 +1221,11 @@ GEM
       rubocop-ast (>= 0.6.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 2.0)
-    rubocop-ast (1.19.1)
+    rubocop-ast (1.21.0)
       parser (>= 3.1.1.0)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
-    rubocop-graphql (0.14.3)
+    rubocop-graphql (0.14.6)
       rubocop (>= 0.87, < 2)
     rubocop-performance (1.9.2)
       rubocop (>= 0.90.0, < 2.0)
@@ -1269,12 +1303,12 @@ GEM
     shellany (0.0.1)
     shoulda-matchers (5.1.0)
       activesupport (>= 5.2.0)
-    sidekiq (6.4.0)
+    sidekiq (6.4.2)
       connection_pool (>= 2.2.2)
       rack (~> 2.0)
       redis (>= 4.2.0)
-    sidekiq-cron (1.2.0)
-      fugit (~> 1.1)
+    sidekiq-cron (1.4.0)
+      fugit (~> 1)
       sidekiq (>= 4.2.1)
     sigdump (0.2.4)
     signet (0.17.0)
@@ -1296,7 +1330,7 @@ GEM
     slack-messenger (2.3.4)
     snowplow-tracker (0.6.1)
       contracts (~> 0.7, <= 0.11)
-    solargraph (0.45.0)
+    solargraph (0.46.0)
       backport (~> 1.2)
       benchmark
       bundler (>= 1.17.2)
@@ -1314,7 +1348,7 @@ GEM
     sorted_set (1.0.3)
       rbtree
       set (~> 1.0)
-    spamcheck (0.1.0)
+    spamcheck (1.0.0)
       grpc (~> 1.0)
     spring (2.1.1)
     spring-commands-rspec (1.0.4)
@@ -1330,7 +1364,7 @@ GEM
     sqlite3 (1.4.2)
     ssh_data (1.3.0)
     ssrf_filter (1.0.7)
-    stackprof (0.2.15)
+    stackprof (0.2.21)
     state_machines (0.5.0)
     state_machines-activemodel (0.8.0)
       activemodel (>= 5.1)
@@ -1364,7 +1398,7 @@ GEM
       faraday (~> 1.0)
     text (1.3.1)
     thor (1.2.1)
-    thrift (0.14.0)
+    thrift (0.16.0)
     tilt (2.0.10)
     timecop (0.9.1)
     timeliness (0.3.10)
@@ -1432,7 +1466,7 @@ GEM
     validate_email (0.1.6)
       activemodel (>= 3.0)
       mail (>= 2.2.5)
-    validate_url (1.0.13)
+    validate_url (1.0.15)
       activemodel (>= 3.0.0)
       public_suffix
     validates_hostname (1.0.11)
@@ -1440,12 +1474,13 @@ GEM
       activesupport (>= 3.0)
     version_gem (1.0.0)
     version_sorter (2.2.4)
-    view_component (2.61.0)
+    view_component (2.71.0)
       activesupport (>= 5.0.0, < 8.0)
+      concurrent-ruby (~> 1.0)
       method_source (~> 1.0)
     vmstat (2.3.0)
-    warden (1.2.8)
-      rack (>= 2.0.6)
+    warden (1.2.9)
+      rack (>= 2.0.9)
     warning (1.3.0)
     webauthn (2.3.0)
       android_key_attestation (~> 0.3.0)
@@ -1495,10 +1530,10 @@ DEPENDENCIES
   akismet (~> 3.0)
   apollo_upload_server (~> 2.1.0)
   asana (~> 0.10.13)
-  asciidoctor (~> 2.0.10)
+  asciidoctor (~> 2.0.17)
   asciidoctor-include-ext (~> 0.4.0)
   asciidoctor-kroki (~> 0.5.0)
-  asciidoctor-plantuml (~> 0.0.12)
+  asciidoctor-plantuml (~> 0.0.16)
   atlassian-jwt (~> 0.2.0)
   attr_encrypted (~> 3.1.0)
   autoprefixer-rails (= 10.2.5.1)
@@ -1512,12 +1547,13 @@ DEPENDENCIES
   bcrypt (~> 3.1, >= 3.1.14)
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
-  better_errors (~> 2.9.0)
+  better_errors (~> 2.9.1)
   bootsnap (~> 1.13.0)
   bootstrap_form (~> 4.2.0)
   browser (~> 4.2)
   bullet (~> 7.0.2)
   bundler-audit (~> 0.7.0.1)
+  bundler-checksum (~> 0.1.0)!
   capybara (~> 3.35.3)
   capybara-screenshot (~> 1.0.22)
   carrierwave (~> 1.3)
@@ -1535,11 +1571,11 @@ DEPENDENCIES
   deprecation_toolkit (~> 1.5.1)
   derailed_benchmarks
   device_detector
-  devise (~> 4.7.2)
+  devise (~> 4.8.1)
   devise-pbkdf2-encryptable (~> 0.0.0)!
   devise-two-factor (~> 4.0.2)
   diff_match_patch (~> 0.1.0)
-  diffy (~> 3.3)
+  diffy (~> 3.4)
   discordrb-webhooks (~> 3.4)
   doorkeeper (~> 5.5.0.rc2)
   doorkeeper-openid_connect (~> 1.7.5)
@@ -1573,10 +1609,10 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 15.3.0.pre.rc3)
+  gitaly (~> 15.4.0.pre.rc2)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 3.5.0)
+  gitlab-dangerfiles (~> 3.5.2)
   gitlab-experiment (~> 0.7.1)
   gitlab-fog-azure-rm (~> 1.3.0)
   gitlab-labkit (~> 0.24.0)
@@ -1584,9 +1620,9 @@ DEPENDENCIES
   gitlab-mail_room (~> 0.0.9)
   gitlab-markup (~> 1.8.0)
   gitlab-net-dns (~> 0.9.1)
-  gitlab-omniauth-openid-connect (~> 0.9.0)
+  gitlab-omniauth-openid-connect (~> 0.10.0)
   gitlab-sidekiq-fetcher (= 0.8.0)
-  gitlab-styles (~> 7.1.0)
+  gitlab-styles (~> 8.0.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.2.0)
   gon (~> 6.4.0)
@@ -1605,7 +1641,7 @@ DEPENDENCIES
   grpc (~> 1.42.0)
   gssapi
   guard-rspec
-  haml_lint (~> 0.36.0)
+  haml_lint (~> 0.40.0)
   hamlit (~> 2.15.0)
   hangouts-chat (~> 0.0.5)
   hashie
@@ -1628,46 +1664,47 @@ DEPENDENCIES
   knapsack (~> 1.21.1)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.9.3)
-  lefthook (~> 1.1.0)
+  lefthook (~> 1.1.1)
   letter_opener_web (~> 2.0.0)
   license_finder (~> 7.0)
-  licensee (~> 9.14.1)
+  licensee (~> 9.15)
   lockbox (~> 0.6.2)
   lograge (~> 0.5)
   loofah (~> 2.18.0)
-  lookbook
+  lookbook (~> 1.0)
   lru_redux
   mail (= 2.7.1)
   mail-smtp_pool (~> 0.1.0)!
   marginalia (~> 1.10.0)
   memory_profiler (~> 0.9)
-  method_source (~> 1.0)
+  microsoft_graph_mailer (~> 0.1.0)!
   mini_magick (~> 4.10.1)
   minitest (~> 5.11.0)
   multi_json (~> 1.14.1)
   net-ldap (~> 0.16.3)
   net-ntp
-  nokogiri (~> 1.13.0)
+  nokogiri (~> 1.13.8)
   oauth2 (~> 2.0)
   octokit (~> 4.15)
   ohai (~> 16.10)
   oj (~> 3.13.21)
-  omniauth (~> 1.8)
+  omniauth (~> 2.1.0)
   omniauth-alicloud (~> 1.0.1)
   omniauth-atlassian-oauth2 (~> 0.2.0)
   omniauth-auth0 (~> 2.0.0)
   omniauth-authentiq (~> 0.3.3)
   omniauth-azure-activedirectory-v2 (~> 1.0)
-  omniauth-azure-oauth2 (~> 0.0.9)
+  omniauth-azure-oauth2 (~> 0.0.9)!
   omniauth-cas3 (~> 1.1.4)!
   omniauth-dingtalk-oauth2 (~> 1.0)
   omniauth-facebook (~> 4.0.0)
-  omniauth-github (~> 1.4)
+  omniauth-github (= 2.0.0)
   omniauth-gitlab (~> 4.0.0)!
-  omniauth-google-oauth2 (~> 0.6.0)
+  omniauth-google-oauth2 (~> 1.0.1)!
   omniauth-oauth2-generic (~> 0.2.2)
-  omniauth-salesforce (~> 1.0.5)
-  omniauth-saml (~> 1.10)
+  omniauth-rails_csrf_protection
+  omniauth-salesforce (~> 1.0.5)!
+  omniauth-saml (~> 2.0.0)
   omniauth-shibboleth (~> 1.3.0)
   omniauth-twitter (~> 1.4)
   omniauth_crowd (~> 2.4.0)!
@@ -1684,7 +1721,7 @@ DEPENDENCIES
   pry-byebug
   pry-rails (~> 0.3.9)
   pry-shell (~> 0.5.1)
-  puma (~> 5.6.4)
+  puma (~> 5.6.5)
   puma_worker_killer (~> 0.3.1)
   rack (~> 2.2.4)
   rack-attack (~> 6.6.0)
@@ -1700,7 +1737,7 @@ DEPENDENCIES
   rdoc (~> 6.3.2)
   re2 (~> 1.4.0)
   recaptcha (~> 4.11)
-  redis (~> 4.4.0)
+  redis (~> 4.7.0)
   redis-actionpack (~> 5.3.0)
   redis-namespace (~> 1.8.1)
   request_store (~> 1.5)
@@ -1735,8 +1772,8 @@ DEPENDENCIES
   sentry-sidekiq (~> 5.1.1)
   settingslogic (~> 2.0.9)
   shoulda-matchers (~> 5.1.0)
-  sidekiq (~> 6.4)
-  sidekiq-cron (~> 1.2)
+  sidekiq (~> 6.4.0)
+  sidekiq-cron (~> 1.4.0)
   sigdump (~> 0.2.4)
   simple_po_parser (~> 1.1.6)
   simplecov (~> 0.21)
@@ -1744,21 +1781,21 @@ DEPENDENCIES
   simplecov-lcov (~> 0.8.0)
   slack-messenger (~> 2.3.4)
   snowplow-tracker (~> 0.6.1)
-  solargraph (~> 0.45.0)
-  spamcheck (~> 0.1.0)
+  solargraph (~> 0.46.0)
+  spamcheck (~> 1.0.0)
   spring (~> 2.1.0)
   spring-commands-rspec (~> 1.0.4)
   sprite-factory (~> 1.7)
   sprockets (~> 3.7.0)
   ssh_data (~> 1.3)
-  stackprof (~> 0.2.15)
+  stackprof (~> 0.2.21)
   state_machines-activerecord (~> 0.8.0)
   sys-filesystem (~> 1.4.3)
   tanuki_emoji (~> 0.6)
   terser (= 1.0.2)
   test-prof (~> 1.0.7)
   test_file_finder (~> 0.1.3)
-  thrift (>= 0.14.0)
+  thrift (>= 0.16.0)
   timecop (~> 0.9.1)
   timfel-krb5-auth (~> 0.8)
   toml-rb (~> 2.0)
@@ -1771,7 +1808,7 @@ DEPENDENCIES
   valid_email (~> 0.1)
   validates_hostname (~> 1.0.11)
   version_sorter (~> 2.2.4)
-  view_component (~> 2.61)
+  view_component (~> 2.71.0)
   vmstat (~> 2.3.0)
   warning (~> 1.3.0)
   webauthn (~> 2.3)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 0acceb8f5a936..6e34481ef6de3 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -221,10 +221,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k3lijm4dmiz977bfmpclk5glj5jwv7bidamwwwywm60ywb0n4n4";
+      sha256 = "0g8gn3g6qy4bzjv1b14sj283kqynjgwq62bgq569jr4dkqwmwnzd";
       type = "gem";
     };
-    version = "2.0.15";
+    version = "2.0.17";
   };
   asciidoctor-include-ext = {
     dependencies = ["asciidoctor"];
@@ -254,10 +254,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02knhmyd3h1yryn66xjfciz7jjsq676kl7ama0r0cf92vyyvm12x";
+      sha256 = "14qppm3qzfra2g2lf8jl3mbnrhi4alp8232zqz6dbpl6276lfzj0";
       type = "gem";
     };
-    version = "0.0.12";
+    version = "0.0.16";
   };
   ast = {
     groups = ["default" "development" "test"];
@@ -1067,10 +1067,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0syqkh0q9mcdgj68m2cf1innpxb8fv6xsayk1kgsdmq539rkv3ic";
+      sha256 = "0gl0b4jqf7ysv3rg99sgxa5y9va2k13p0si3a88pr7m8g6z8pm7x";
       type = "gem";
     };
-    version = "4.7.3";
+    version = "4.8.1";
   };
   devise-two-factor = {
     dependencies = ["activesupport" "attr_encrypted" "devise" "railties" "rotp"];
@@ -1108,10 +1108,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qhx743lcx61r2d3925jk61c6r8clfjmpf5g93cdy5sq00ig76lh";
+      sha256 = "1qcsv29ljfhy76gq4xi8zpn6dc6nv15c41r131bdr38kwpxjzd1n";
       type = "gem";
     };
-    version = "3.3.0";
+    version = "3.4.2";
   };
   discordrb-webhooks = {
     dependencies = ["rest-client"];
@@ -1394,10 +1394,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swgjb3h2hs5xflb68837l0vd32masbz9c66b1963mxlnnxf5gsg";
+      sha256 = "1d2z4ky2v15dpcz672i2p7lb2nc793dasq3yq3660h2az53kss9v";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.7";
   };
   ethon = {
     dependencies = ["ffi"];
@@ -1880,10 +1880,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5h31hl75x0p5s36hinywg18ijlxjhnlb5p02aqcjjkx777rcav";
+      sha256 = "0idp3hcg50rd7nh8lywyk39s40wgq7axc9nc64si0saf3whmifm0";
       type = "gem";
     };
-    version = "1.2.1";
+    version = "1.2.3";
   };
   fuubar = {
     dependencies = ["rspec-core" "ruby-progressbar"];
@@ -1977,10 +1977,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nvlnfjv5fycndri3bfbs7fsgb3cndgl3hhckiq7428yz58jgvg0";
+      sha256 = "1qzqyglw7akval4rxjyqygs2abdrziy6ry0cy135lq1hlwl4axj8";
       type = "gem";
     };
-    version = "15.3.0.pre.rc3";
+    version = "15.4.0.pre.rc2";
   };
   github-markup = {
     groups = ["default"];
@@ -2020,10 +2020,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18cs97r8msg2cvrvz9jfp6gn02xm80y4r14y7f5xpmg4k9j6ywqj";
+      sha256 = "07zhs9mz9gi6hgarm0px55kn6wxfah1xkcdrk217yv1vp1aqmqps";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.5.2";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store"];
@@ -2083,10 +2083,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11kc33j6m0nayppkb7645w0ldh8g18pgmxgb8wz39pd5vilr6qpv";
+      sha256 = "0yvh8vv9kgd06hc8c1pl2hq56w56vr0n7dr5mz19fx4p2v89y7xb";
       type = "gem";
     };
-    version = "1.8.0";
+    version = "1.8.1";
   };
   gitlab-net-dns = {
     groups = ["default"];
@@ -2104,10 +2104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nxak6q0m0nd3m5a7vp9xqww9w5fqx97viv5g6pg3q62q9binm0j";
+      sha256 = "0lqizfap12ica5c6q74ldarzmbpmhgl156bap9xhamrlm4za4i7a";
       type = "gem";
     };
-    version = "0.9.1";
+    version = "0.10.0";
   };
   gitlab-sidekiq-fetcher = {
     dependencies = ["sidekiq"];
@@ -2126,10 +2126,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xp2f1bbx8i7a89xjwy6b5rhxr9g1vnms68chcnxdd95csxhxpzp";
+      sha256 = "1nk6gdgjs920kfzyj35im2m3rp79vhmamg8f8f3y74vh7dadhxzz";
       type = "gem";
     };
-    version = "7.1.0";
+    version = "8.0.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2202,10 +2202,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0825yplkfp8xf0vpl25ff58xrlah98x9yv3hj9pgl82b0gqali6p";
+      sha256 = "1ysvm5mxx1knjp3sbhi18nswaml625vbgm3gbh7is14h4d8fwjy9";
       type = "gem";
     };
-    version = "3.21.3";
+    version = "3.21.5";
   };
   googleapis-common-protos-types = {
     dependencies = ["google-protobuf"];
@@ -2408,10 +2408,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dwarfbc04bblljs4xg9fy57b5y8xrck6slhssa6bd7x58bh222c";
+      sha256 = "035fgbfr20m08w4603ls2lwqbggr0vy71mijz0p68ib1am394xbf";
       type = "gem";
     };
-    version = "5.1.2";
+    version = "5.2.2";
   };
   haml_lint = {
     dependencies = ["haml" "parallel" "rainbow" "rubocop" "sysexits"];
@@ -2419,10 +2419,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0imdiwxqyca1i158yrqkdv6fa8sdfk8wwx2kaq6ad9i7k7jj365a";
+      sha256 = "00j8wdi731wy8qnn5g4laynswxlw0d0s69wsn509wfa5n8p34n5n";
       type = "gem";
     };
-    version = "0.36.0";
+    version = "0.40.1";
   };
   hamlit = {
     dependencies = ["temple" "thor" "tilt"];
@@ -2907,10 +2907,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mvyr9wqgv3pp75wg8majkivzrd0imkvq5f62p1ndzm09lnv6z05";
+      sha256 = "0nyhh3h96c118xcyfmn2595fhavi9r0g2v7rckqzc56walncszgs";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -2961,10 +2961,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c551j4qy773d79hgypjaz43h5wjn08mnxnxy9s2vdjc40qm95k5";
+      sha256 = "1v9x94h19b20wc551vs9a0yvk44w2y3g9ng07fflk26s8jsmjsab";
       type = "gem";
     };
-    version = "9.14.1";
+    version = "9.15.2";
   };
   listen = {
     dependencies = ["rb-fsevent" "rb-inotify"];
@@ -3020,15 +3020,15 @@
     version = "2.18.0";
   };
   lookbook = {
-    dependencies = ["actioncable" "htmlbeautifier" "listen" "railties" "redcarpet" "rouge" "view_component" "yard"];
+    dependencies = ["actioncable" "css_parser" "htmlbeautifier" "htmlentities" "listen" "railties" "redcarpet" "rouge" "view_component" "yard"];
     groups = ["development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ycj1wa1qfxiz2g2i8lqmzfhrl82n2sh6242gyp5vdzhqqyaf6yz";
+      sha256 = "1mmw3jklhhrvvmp2fswld7pipdgw3s5l3fg3dgv353jq6w516gn5";
       type = "gem";
     };
-    version = "0.9.3";
+    version = "1.0.3";
   };
   lru_redux = {
     groups = ["default"];
@@ -3511,15 +3511,15 @@
     version = "3.13.21";
   };
   omniauth = {
-    dependencies = ["hashie" "rack"];
-    groups = ["default" "kerberos"];
+    dependencies = ["hashie" "rack" "rack-protection"];
+    groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "002vi9gwamkmhf0dsj2im1d47xw2n1jfhnzl18shxf3ampkqfmyz";
+      sha256 = "0013azz7kz2q6dy8131b1q5xwl7qa9nz5iqpn8i3ccn9br7j7xxz";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "2.1.0";
   };
   omniauth-alicloud = {
     dependencies = ["omniauth-oauth2"];
@@ -3576,17 +3576,6 @@
     };
     version = "1.0.0";
   };
-  omniauth-azure-oauth2 = {
-    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1a3iqy63l1jd6na4y0bj4a8mlp7gcn3a0awnz9g79fa8n4v2g8n4";
-      type = "gem";
-    };
-    version = "0.0.10";
-  };
   omniauth-dingtalk-oauth2 = {
     dependencies = ["omniauth-oauth2"];
     groups = ["default"];
@@ -3615,21 +3604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xbk0dbxqfpyfb33ghz6vrlz3m6442rp18ryf13gwzlnifcawhlb";
+      sha256 = "0jc66zp4bhwy7c6s817ws0nkimski3crrhwd7xyy55ss29v6b8hw";
       type = "gem";
     };
-    version = "1.4.0";
-  };
-  omniauth-google-oauth2 = {
-    dependencies = ["jwt" "omniauth" "omniauth-oauth2"];
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "03v2gqpsbdhkqaxhvzr83za885awm6pgskv3mkyfvang7mr321df";
-      type = "gem";
-    };
-    version = "0.6.0";
+    version = "2.0.0";
   };
   omniauth-oauth = {
     dependencies = ["oauth" "omniauth"];
@@ -3664,16 +3642,16 @@
     };
     version = "0.2.2";
   };
-  omniauth-salesforce = {
-    dependencies = ["omniauth" "omniauth-oauth2"];
+  omniauth-rails_csrf_protection = {
+    dependencies = ["actionpack" "omniauth"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sr7xmffx6dbsrvnh6spka5ljyzf69iac754xw5r1736py41qhpj";
+      sha256 = "1kwswnkyl8ym6i4wv65qh3qchqbf2n0c6lbhfgbvkds3gpmnlm7w";
       type = "gem";
     };
-    version = "1.0.5";
+    version = "1.0.1";
   };
   omniauth-saml = {
     dependencies = ["omniauth" "ruby-saml"];
@@ -3681,10 +3659,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17lji8i4q9k3yi8lmjwlw8rfpp2sc74jv8d6flgq85lg5brfqq1p";
+      sha256 = "1is4vnikwmd148gpyv3sm57k4cmdx4il5rm2cng6mqhdcgb4yn82";
       type = "gem";
     };
-    version = "1.10.0";
+    version = "2.0.0";
   };
   omniauth-shibboleth = {
     dependencies = ["omniauth"];
@@ -3849,10 +3827,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xhfghgidj8cbdnqp01f7kvnrv1f60izpkd9dhxsvpdzkfsdg97d";
+      sha256 = "1q31n7yj59wka8xl8s5wkf66hm4pgvblx95czyxffprdnlhrir2p";
       type = "gem";
     };
-    version = "3.1.2.0";
+    version = "3.1.2.1";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3902,10 +3880,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00bhwkhjy6bkp04313m5il7vd165i3fz0x4jissflf66i164ppgk";
+      sha256 = "1fyhhb5f2y5mqk5vg5ykicxp58wwhc7invfp27x8d7fgi0zkdwa8";
       type = "gem";
     };
-    version = "2.1.3";
+    version = "2.1.4";
   };
   plist = {
     groups = ["default"];
@@ -4045,10 +4023,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0dgr2rybayih2naz3658mbzqwfrg9fxl80zsvhscf6b972kp3jdw";
+      sha256 = "0qzq0c791kacv68hgk9zqsd1p7zx1y1rr9j10rn9yphibb8jj436";
       type = "gem";
     };
-    version = "5.6.4";
+    version = "5.6.5";
   };
   puma_worker_killer = {
     dependencies = ["get_process_mem" "puma"];
@@ -4076,10 +4054,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xzdmbn48753f6k0ckirp8ja5p0xn1a92wbwxfyggyhj0hza9ylq";
+      sha256 = "10m8bln9d00dwzjil1k42i5r7l82x25ysbi45fwyv4932zsrzynl";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.4.0";
   };
   racc = {
     groups = ["default" "development" "test"];
@@ -4145,6 +4123,17 @@
     };
     version = "1.21.2";
   };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "169jzzgvbjrqmz4q55wp9pg4ji2h90mggcdxy152gv5vp96l2hgx";
+      type = "gem";
+    };
+    version = "2.2.2";
+  };
   rack-proxy = {
     dependencies = ["rack"];
     groups = ["default"];
@@ -4289,10 +4278,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06c50pvxib7wqnv6q0f3n7gzfcrp5chi3sa48hxpkfxc3hhy11fm";
+      sha256 = "1zmf31rnpm8553lqwibvv3kkx0v7majm1f341xbxc0bk5sbhp423";
       type = "gem";
     };
-    version = "0.11.1";
+    version = "0.11.2";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -4402,10 +4391,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ig832dp0xmpp6a934nifzaj7wm9lzjxzasw911fagycs8p6m720";
+      sha256 = "1xid9av3apfz5mszwqgl6v0n58g6038lsfdz0p53xb9ywpa5dcpc";
       type = "gem";
     };
-    version = "4.4.0";
+    version = "4.7.1";
   };
   redis-actionpack = {
     dependencies = ["actionpack" "redis-rack" "redis-store"];
@@ -4735,10 +4724,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0h8q3gwqs8afshjd2l52ywf48md9rskr3q2y4fydgm536vvahjgm";
+      sha256 = "0s4m9h9hzrpfmsnswvfimafmjwfa79cbqh9dvq18cja32dhrhpcg";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.21.0";
   };
   rubocop-gitlab-security = {
     dependencies = ["rubocop"];
@@ -4757,10 +4746,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yam7fdm77y0x6b6i7v14iiji9020mvdd9h1ainvv88zbv8yd4wq";
+      sha256 = "1bdxal5n0q6aq457jz60jzhs3z04mv2wbvl5xd2cw3lrr6x2q3xl";
       type = "gem";
     };
-    version = "0.14.3";
+    version = "0.14.6";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -5160,10 +5149,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10pllqwracvy5nmchipg359sq9pnyg08q970xpqmpc3nkmrihxlf";
+      sha256 = "0b06kw7frd8hrb7373pvfd39qap00ykkvipgymgwxfjzrgz0ag0d";
       type = "gem";
     };
-    version = "6.4.0";
+    version = "6.4.2";
   };
   sidekiq-cron = {
     dependencies = ["fugit" "sidekiq"];
@@ -5171,10 +5160,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hxvm42zbr27k40jvdba5v8ich2ys8q7a2wbia9sxb0mmcy8v2aj";
+      sha256 = "0v9psfprq1x03b51mnpidfzilnm8b6spzkgap3pb8yga4pg2lq91";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.4.0";
   };
   sigdump = {
     groups = ["development" "test"];
@@ -5296,10 +5285,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "11c7hcgg4sflhlj9lv9yh76sxrlk9a52y6p56xc99f0w015yyslh";
+      sha256 = "0r8lr7gldwp57xqik4kims6w72q9ww34bral0j5z20a56s6gva8x";
       type = "gem";
     };
-    version = "0.45.0";
+    version = "0.46.0";
   };
   sorted_set = {
     dependencies = ["rbtree" "set"];
@@ -5318,10 +5307,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0n307r7y819gq21yqhlni3r455cgcg3nc5318rhhx1bs99qs793r";
+      sha256 = "177wcssfjp63vwr4rxma6sx7rc0lszrx4afp2wz3b4a0322s1vnz";
       type = "gem";
     };
-    version = "0.1.0";
+    version = "1.0.0";
   };
   spring = {
     groups = ["development" "test"];
@@ -5411,10 +5400,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g2zzasjdr1qnwmpmn28ddv2z9jsnv4w5raiz26y9h1jh03sagqd";
+      sha256 = "1bpmrz2vw59gw556y5hsha3xlrvfv4qwck4wg2r39qf2bp2hcr1b";
       type = "gem";
     };
-    version = "0.2.15";
+    version = "0.2.21";
   };
   state_machines = {
     groups = ["default"];
@@ -5610,10 +5599,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v4q8wlc4kr952r24q9x60cvimn27g34h0j23imwqkrjcbngsj5n";
+      sha256 = "1knw2xa3pkfql4np9qazz2mdi1vz21vdsa0wkx648c4ym1p2h8yh";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.16.0";
   };
   tilt = {
     groups = ["default" "development" "test"];
@@ -5947,10 +5936,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bwj34rz7961rrl545f006m2jdz1nrc0m72gfqmnb41xwsvpagbk";
+      sha256 = "0lblym140w5n88ijyfgcvkxvpfj8m6z00rxxf2ckmmhk0x61dzkj";
       type = "gem";
     };
-    version = "1.0.13";
+    version = "1.0.15";
   };
   validates_hostname = {
     dependencies = ["activerecord" "activesupport"];
@@ -5984,15 +5973,15 @@
     version = "2.2.4";
   };
   view_component = {
-    dependencies = ["activesupport" "method_source"];
+    dependencies = ["activesupport" "concurrent-ruby" "method_source"];
     groups = ["default" "development"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03my3glfw0v9g2zlwp1wad74v5n2pgz8hai8kj1n9by06vwr32v0";
+      sha256 = "0av6ngrfb1pyxwvy2lsp7m5lljk2vc9j7aabzw1zp70dh13hd261";
       type = "gem";
     };
-    version = "2.61.0";
+    version = "2.71.0";
   };
   vmstat = {
     groups = ["default"];
@@ -6010,10 +5999,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fr9n9i9r82xb6i61fdw4xgc7zjv7fsdrr4k0njchy87iw9fl454";
+      sha256 = "1l7gl7vms023w4clg02pm4ky9j12la2vzsixi2xrv9imbn44ys26";
       type = "gem";
     };
-    version = "1.2.8";
+    version = "1.2.9";
   };
   warning = {
     groups = ["default"];
diff --git a/pkgs/applications/version-management/gitlab/update-pg.patch b/pkgs/applications/version-management/gitlab/update-pg.patch
index 6af5da8fbe4bb..be8cd639df596 100644
--- a/pkgs/applications/version-management/gitlab/update-pg.patch
+++ b/pkgs/applications/version-management/gitlab/update-pg.patch
@@ -1,13 +1,13 @@
 diff --git a/Gemfile.lock b/Gemfile.lock
-index f04445e1d..b9bf34cd0 100644
+index 9074b48c56b..57a1c924897 100644
 --- a/Gemfile.lock
 +++ b/Gemfile.lock
-@@ -987,7 +987,7 @@ GEM
+@@ -1019,7 +1019,7 @@ GEM
        tty-color (~> 0.5)
      peek (1.1.0)
        railties (>= 4.0.0)
 -    pg (1.4.1)
 +    pg (1.4.3)
-     pg_query (2.1.3)
+     pg_query (2.1.4)
        google-protobuf (>= 3.19.2)
      plist (3.6.0)
diff --git a/pkgs/applications/version-management/gitlab/update.py b/pkgs/applications/version-management/gitlab/update.py
index 454637db3d3c6..65c152a347e5f 100755
--- a/pkgs/applications/version-management/gitlab/update.py
+++ b/pkgs/applications/version-management/gitlab/update.py
@@ -17,7 +17,20 @@ import requests
 
 # Always keep this in sync with the GitLaab version you're updating to.
 # If you see any errors about vendored dependencies during an update, check the Gemfile.
-VENDORED_GEMS = ['devise-pbkdf2-encryptable', 'omniauth-cas3', 'omniauth-gitlab', 'omniauth_crowd', 'mail-smtp_pool', 'ipynbdiff', 'error_tracking_open_api']
+VENDORED_GEMS = [
+    "bundler-checksum",
+    "devise-pbkdf2-encryptable",
+    "omniauth-azure-oauth2",
+    "omniauth-cas3",
+    "omniauth-gitlab",
+    "omniauth-google-oauth2",
+    "omniauth_crowd",
+    "omniauth-salesforce",
+    "mail-smtp_pool",
+    "microsoft_graph_mailer",
+    "ipynbdiff",
+    "error_tracking_open_api",
+]
 logger = logging.getLogger(__name__)
 
 
diff --git a/pkgs/applications/version-management/gitoxide/default.nix b/pkgs/applications/version-management/gitoxide/default.nix
index 8afa6cfa73d0d..b4182927b7d82 100644
--- a/pkgs/applications/version-management/gitoxide/default.nix
+++ b/pkgs/applications/version-management/gitoxide/default.nix
@@ -12,16 +12,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitoxide";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "gitoxide";
     rev = "v${version}";
-    sha256 = "sha256-6U2B+L/42okpYJrJ6gjS8tRxstFq1QBFq4ZZtzwOwac=";
+    sha256 = "sha256-4Yk3WXkm8jdabEisGKqVQlzjFrrf3pskRmuPa5K4vw4=";
   };
 
-  cargoSha256 = "sha256-cOQ9GRoQxZInoijRW4BtsNPEVipa8YcBo8aj5D2u+u0=";
+  cargoSha256 = "sha256-mX58cb1Ywr7npmxgynDQ1x1PmO/62Bd+bONdv/Y1I2Q=";
 
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = if stdenv.isDarwin
diff --git a/pkgs/applications/version-management/gitqlient/default.nix b/pkgs/applications/version-management/gitqlient/default.nix
index d8b4427364175..a1c4ec5c69495 100644
--- a/pkgs/applications/version-management/gitqlient/default.nix
+++ b/pkgs/applications/version-management/gitqlient/default.nix
@@ -69,7 +69,6 @@ mkDerivation rec {
   ];
 
   passthru.updateScript = gitUpdater {
-    inherit pname version;
     rev-prefix = "v";
   };
 
diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix
index 14827119f237f..bda8bb2c066a6 100644
--- a/pkgs/applications/version-management/got/default.nix
+++ b/pkgs/applications/version-management/got/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "got";
-  version = "0.75";
+  version = "0.76";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
-    sha256 = "sha256-s1MkiTya771r9JYCpsm7nW4gZwr/PJc0/v6tAgW7nLI=";
+    sha256 = "sha256-05VUIHUqXnES4CmgopzQ2LQ0uldSffsGF5ExedEO+yA=";
   };
 
   nativeBuildInputs = [ pkg-config bison ];
@@ -45,6 +45,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gameoftrees.org";
     license = licenses.isc;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ abbe ];
+    maintainers = with maintainers; [ abbe afh ];
   };
 }
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index 88af6b0ceae5e..121a0cdf7731e 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.21.2";
+  version = "3.22.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "IV+odABTZ5TFllddE6nIfijxjdNyW43/mG2y4pM6cU4=";
+    sha256 = "sha256-P8EHyY7251NY/9Kw0UyF3bSP4UoR6TmpQyL6qo6QxA0=";
   };
 
   nativeBuildInputs = [
@@ -56,6 +56,10 @@ python3.pkgs.buildPythonApplication rec {
   # https://github.com/NixOS/nixpkgs/issues/56943
   strictDeps = false;
 
+  postPatch = ''
+    patchShebangs meson_shebang_normalisation.py
+  '';
+
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
@@ -65,7 +69,7 @@ python3.pkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Visual diff and merge tool";
-    homepage = "http://meldmerge.org/";
+    homepage = "https://meld.app/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ jtojnar mimame ];
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index 261368272b3f3..feb1063503ff3 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, python3Packages, makeWrapper, gettext, installShellFiles
+{ lib, stdenv, fetchurl, python3Packages, makeWrapper, gettext, installShellFiles
 , re2Support ? true
 , rustSupport ? stdenv.hostPlatform.isLinux, rustPlatform
 , fullBuild ? false
@@ -21,11 +21,11 @@ let
 
   self = python3Packages.buildPythonApplication rec {
     pname = "mercurial${lib.optionalString fullBuild "-full"}";
-    version = "6.2.2";
+    version = "6.2.3";
 
     src = fetchurl {
       url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-      sha256 = "sha256-nvqdpfSXqHUKycSPpDHEq3IgnxNgGAxdSSDRMRsEIN8=";
+      sha256 = "sha256-mNGuAC9orfU9ZcWUf+i3o3n5jPBdm46h9Ad9LKXc6ds=";
     };
 
     format = "other";
@@ -35,7 +35,7 @@ let
     cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
       inherit src;
       name = "mercurial-${version}";
-      sha256 = "sha256-hvjp45Iv+fjs8R5Q+k96chY5j0S2Vs6+VrXzMuc2Cwg=";
+      sha256 = "sha256-UWYXVPdEMITLNdBjnoo8IuLOGZiwUJL+dqSl26nf5qs=";
       sourceRoot = "mercurial-${version}/rust";
     } else null;
     cargoRoot = if rustSupport then "rust" else null;
diff --git a/pkgs/applications/version-management/monotone/default.nix b/pkgs/applications/version-management/monotone/default.nix
index 6f62a381a5045..866146e1d8ffb 100644
--- a/pkgs/applications/version-management/monotone/default.nix
+++ b/pkgs/applications/version-management/monotone/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub, boost, zlib, botan2, libidn
+{ lib, stdenv, fetchFromGitHub, boost, zlib, botan2, libidn
 , lua, pcre, sqlite, perl, pkg-config, expect, less
 , bzip2, gmp, openssl
 , autoreconfHook, texinfo
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index 4f61be6669aa1..8a54d4eb77bf2 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -1,31 +1,115 @@
-{ stdenv, fetchurl, lib, autoPatchelfHook }:
+{ stdenv
+, fetchurl
+, fetchzip
+, lib
+, emptyDirectory
+, linkFarm
+, symlinkJoin
+, jam
+, libcxx
+, libcxxabi
+, openssl
+, xcbuild
+, CoreServices
+, Foundation
+, Security
+}:
 
+let
+  opensslStatic = openssl.override {
+    static = true;
+  };
+  androidZlibContrib =
+    let
+      src = fetchzip {
+        url = "https://android.googlesource.com/platform/external/zlib/+archive/61174f4fd262c6075f88768465f308aae95a2f04.tar.gz";
+        sha256 = "sha256-EMzKAHcEWOUugcHKH2Fj3ZaIHC9UlgO4ULKe3RvgxvI=";
+        stripRoot = false;
+      };
+    in
+    linkFarm "android-zlib-contrib" [
+      # We only want to keep the contrib directory as the other files conflict
+      # with p4's own zlib files. (For the same reason, we can't use the
+      # 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";
-  version = "2021.2.2201121";
+  version = "2022.1.2305383";
 
   src = fetchurl {
-    # actually  https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz but upstream deletes releases
-    url = "https://web.archive.org/web/20211118024943/https://cdist2.perforce.com/perforce/r21.2/bin.linux26x86_64/helix-core-server.tgz";
-    sha256 = "sha256-SrfI2ZD7KDyttCd8+fo8g4UZKljYYO/SbzqrS9tAcC8=";
+    # Upstream replaces minor versions, so use archived URL.
+    url = "https://web.archive.org/web/20220901184735id_/https://ftp.perforce.com/perforce/r22.1/bin.tools/p4source.tgz";
+    sha256 = "27ab3ddd7b178b05cf0b710e941650dac0688d294110ebafda9027732c0944c6";
   };
 
-  sourceRoot = ".";
+  nativeBuildInputs = [ jam ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices Foundation Security ];
+
+  outputs = [ "out" "bin" "dev" ];
 
-  dontBuild = true;
+  hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ];
 
-  nativeBuildInputs = [ autoPatchelfHook ];
+  jamFlags =
+    [
+      "-sEXEC=bin.unix"
+      "-sCROSS_COMPILE=${stdenv.cc.targetPrefix}"
+      "-sMALLOC_OVERRIDE=no"
+      "-sSSLINCDIR=${lib.getDev opensslStatic}/include"
+      "-sSSLLIBDIR=${lib.getLib opensslStatic}/lib"
+    ]
+    ++ lib.optionals stdenv.cc.isClang [ "-sOSCOMP=clang" "-sCLANGVER=${stdenv.cc.cc.version}" ]
+    ++ lib.optionals stdenv.cc.isGNU [ "-sOSCOMP=gcc" "-sGCCVER=${stdenv.cc.cc.version}" ]
+    ++ lib.optionals stdenv.isLinux [ "-sOSVER=26" ]
+    ++ lib.optionals stdenv.isDarwin [
+      "-sOSVER=1013"
+      "-sMACOSX_SDK=${emptyDirectory}"
+      "-sLIBC++DIR=${libcxxUnified}/lib"
+    ];
+
+  CCFLAGS =
+    # The file contrib/optimizations/slide_hash_neon.h is missing from the
+    # upstream distribution. It comes from the Android/Chromium sources.
+    lib.optionals stdenv.isAarch64 [ "-I${androidZlibContrib}" ];
+
+  "C++FLAGS" =
+    # Avoid a compilation error that only occurs for 4-byte longs.
+    lib.optionals stdenv.isi686 [ "-Wno-narrowing" ]
+    # See the "Header dependency changes" section of
+    # https://www.gnu.org/software/gcc/gcc-11/porting_to.html for more
+    # information on why we need to include these.
+    ++ lib.optionals
+      (stdenv.cc.isClang || (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.cc.version "11.0.0"))
+      [ "-include" "limits" "-include" "thread" ];
+
+  buildPhase = ''
+    runHook preBuild
+    jam $jamFlags -j$NIX_BUILD_CORES p4
+    jam $jamFlags -j$NIX_BUILD_CORES -sPRODUCTION=yes p4api.tar
+    runHook postBuild
+  '';
 
   installPhase = ''
-    install -D --target $out/bin p4 p4broker p4d p4p
+    runHook preInstall
+    mkdir -p $bin/bin $dev $out
+    cp bin.unix/p4 $bin/bin
+    cp -r bin.unix/p4api-${version}/include $dev
+    cp -r bin.unix/p4api-${version}/lib $out
+    runHook postInstall
   '';
 
-  meta = {
-    description = "Perforce Command-Line Client";
+  meta = with lib; {
+    description = "Perforce Helix Core command-line client and APIs";
     homepage = "https://www.perforce.com";
-    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
-    license = lib.licenses.unfree;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with lib.maintainers; [ corngood ];
+    license = licenses.bsd2;
+    mainProgram = "p4";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ corngood impl ];
   };
 }
diff --git a/pkgs/applications/version-management/p4d/default.nix b/pkgs/applications/version-management/p4d/default.nix
index 5b98131303d3b..e2cf8e1013c3d 100644
--- a/pkgs/applications/version-management/p4d/default.nix
+++ b/pkgs/applications/version-management/p4d/default.nix
@@ -47,6 +47,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     mainProgram = "p4d";
     platforms = builtins.attrNames srcs;
-    maintainers = with maintainers; [ impl ];
+    maintainers = with maintainers; [ corngood impl ];
   };
 }
diff --git a/pkgs/applications/version-management/redmine/Gemfile b/pkgs/applications/version-management/redmine/Gemfile
index 3b22a9d50743f..7e5cf752bc884 100644
--- a/pkgs/applications/version-management/redmine/Gemfile
+++ b/pkgs/applications/version-management/redmine/Gemfile
@@ -3,7 +3,7 @@ source 'https://rubygems.org'
 ruby '>= 2.4.0', '< 2.8.0'
 gem 'bundler', '>= 1.12.0'
 
-gem 'rails', '5.2.8'
+gem 'rails', '5.2.8.1'
 gem 'sprockets', '~> 3.7.2' if RUBY_VERSION < '2.5'
 gem 'globalid', '~> 0.4.2' if Gem.ruby_version < Gem::Version.new('2.6.0')
 gem 'rouge', '~> 3.26.0'
@@ -25,6 +25,7 @@ gem 'i18n', '~> 1.8.2'
 gem "rbpdf", "~> 1.20.0"
 gem 'addressable'
 gem 'rubyzip', '~> 2.3.0'
+gem 'psych', '~> 3.1' 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]
diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock
index 5ad1b80d3c776..c57844b49a28c 100644
--- a/pkgs/applications/version-management/redmine/Gemfile.lock
+++ b/pkgs/applications/version-management/redmine/Gemfile.lock
@@ -1,19 +1,19 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    actioncable (5.2.8)
-      actionpack (= 5.2.8)
+    actioncable (5.2.8.1)
+      actionpack (= 5.2.8.1)
       nio4r (~> 2.0)
       websocket-driver (>= 0.6.1)
-    actionmailer (5.2.8)
-      actionpack (= 5.2.8)
-      actionview (= 5.2.8)
-      activejob (= 5.2.8)
+    actionmailer (5.2.8.1)
+      actionpack (= 5.2.8.1)
+      actionview (= 5.2.8.1)
+      activejob (= 5.2.8.1)
       mail (~> 2.5, >= 2.5.4)
       rails-dom-testing (~> 2.0)
-    actionpack (5.2.8)
-      actionview (= 5.2.8)
-      activesupport (= 5.2.8)
+    actionpack (5.2.8.1)
+      actionview (= 5.2.8.1)
+      activesupport (= 5.2.8.1)
       rack (~> 2.0, >= 2.0.8)
       rack-test (>= 0.6.3)
       rails-dom-testing (~> 2.0)
@@ -21,26 +21,26 @@ GEM
     actionpack-xml_parser (2.0.1)
       actionpack (>= 5.0)
       railties (>= 5.0)
-    actionview (5.2.8)
-      activesupport (= 5.2.8)
+    actionview (5.2.8.1)
+      activesupport (= 5.2.8.1)
       builder (~> 3.1)
       erubi (~> 1.4)
       rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.3)
-    activejob (5.2.8)
-      activesupport (= 5.2.8)
+    activejob (5.2.8.1)
+      activesupport (= 5.2.8.1)
       globalid (>= 0.3.6)
-    activemodel (5.2.8)
-      activesupport (= 5.2.8)
-    activerecord (5.2.8)
-      activemodel (= 5.2.8)
-      activesupport (= 5.2.8)
+    activemodel (5.2.8.1)
+      activesupport (= 5.2.8.1)
+    activerecord (5.2.8.1)
+      activemodel (= 5.2.8.1)
+      activesupport (= 5.2.8.1)
       arel (>= 9.0)
-    activestorage (5.2.8)
-      actionpack (= 5.2.8)
-      activerecord (= 5.2.8)
+    activestorage (5.2.8.1)
+      actionpack (= 5.2.8.1)
+      activerecord (= 5.2.8.1)
       marcel (~> 1.0.0)
-    activesupport (5.2.8)
+    activesupport (5.2.8.1)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -62,7 +62,7 @@ GEM
     chunky_png (1.4.0)
     concurrent-ruby (1.1.10)
     crass (1.0.6)
-    css_parser (1.11.0)
+    css_parser (1.12.0)
       addressable
     csv (3.1.9)
     docile (1.4.0)
@@ -72,7 +72,7 @@ GEM
     htmlentities (4.3.4)
     i18n (1.8.11)
       concurrent-ruby (~> 1.0)
-    loofah (2.18.0)
+    loofah (2.19.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mail (2.7.1)
@@ -83,15 +83,13 @@ GEM
     mini_mime (1.0.3)
     mini_portile2 (2.8.0)
     minitest (5.16.3)
-    mocha (1.14.0)
+    mocha (1.15.0)
     mysql2 (0.5.4)
     net-ldap (0.17.1)
     nio4r (2.5.8)
     nokogiri (1.13.8)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
-    nokogiri (1.13.8-x86_64-linux)
-      racc (~> 1.4)
     parallel (1.22.1)
     parser (3.1.2.1)
       ast (~> 2.4.1)
@@ -106,27 +104,27 @@ GEM
       ruby-openid (>= 2.1.8)
     rack-test (2.0.2)
       rack (>= 1.3)
-    rails (5.2.8)
-      actioncable (= 5.2.8)
-      actionmailer (= 5.2.8)
-      actionpack (= 5.2.8)
-      actionview (= 5.2.8)
-      activejob (= 5.2.8)
-      activemodel (= 5.2.8)
-      activerecord (= 5.2.8)
-      activestorage (= 5.2.8)
-      activesupport (= 5.2.8)
+    rails (5.2.8.1)
+      actioncable (= 5.2.8.1)
+      actionmailer (= 5.2.8.1)
+      actionpack (= 5.2.8.1)
+      actionview (= 5.2.8.1)
+      activejob (= 5.2.8.1)
+      activemodel (= 5.2.8.1)
+      activerecord (= 5.2.8.1)
+      activestorage (= 5.2.8.1)
+      activesupport (= 5.2.8.1)
       bundler (>= 1.3.0)
-      railties (= 5.2.8)
+      railties (= 5.2.8.1)
       sprockets-rails (>= 2.0.0)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
     rails-html-sanitizer (1.4.3)
       loofah (~> 2.3)
-    railties (5.2.8)
-      actionpack (= 5.2.8)
-      activesupport (= 5.2.8)
+    railties (5.2.8.1)
+      actionpack (= 5.2.8.1)
+      activesupport (= 5.2.8.1)
       method_source
       rake (>= 0.8.7)
       thor (>= 0.19.0, < 2.0)
@@ -174,7 +172,7 @@ GEM
     ruby-openid (2.9.2)
     ruby-progressbar (1.11.0)
     rubyzip (2.3.2)
-    selenium-webdriver (4.4.0)
+    selenium-webdriver (4.5.0)
       childprocess (>= 0.5, < 5.0)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
@@ -194,7 +192,7 @@ GEM
     thread_safe (0.3.6)
     tzinfo (1.2.10)
       thread_safe (~> 0.1)
-    unicode-display_width (2.2.0)
+    unicode-display_width (2.3.0)
     webdrivers (4.7.0)
       nokogiri (~> 1.6)
       rubyzip (>= 1.3.0)
@@ -231,7 +229,7 @@ DEPENDENCIES
   pg (~> 1.2.2)
   puma
   rack-openid
-  rails (= 5.2.8)
+  rails (= 5.2.8.1)
   rails-dom-testing
   rbpdf (~> 1.20.0)
   redcarpet (~> 3.5.1)
@@ -255,4 +253,4 @@ RUBY VERSION
    ruby 2.7.6p219
 
 BUNDLED WITH
-   2.3.20
+   2.3.9
diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix
index a518a9cec2e88..9da39ba4b1c93 100644
--- a/pkgs/applications/version-management/redmine/default.nix
+++ b/pkgs/applications/version-management/redmine/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper, nixosTests }:
 
 let
-  version = "4.2.7";
+  version = "4.2.8";
   rubyEnv = bundlerEnv {
     name = "redmine-env-${version}";
 
@@ -16,7 +16,7 @@ in
 
     src = fetchurl {
       url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz";
-      sha256 = "sha256-7UvgO1q2PCZBqH24l4c53Zl8D2Rr+hAQrJ5SEMNDck4=";
+      sha256 = "sha256-C0McBS2P02uTIB2vrzYVzbjQNGDvzyQA59MmYrKrYnI=";
     };
 
     nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix
index a478796ca2264..5248ff369830d 100644
--- a/pkgs/applications/version-management/redmine/gemset.nix
+++ b/pkgs/applications/version-management/redmine/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "123nrlrh5kikl314l4gjbc8ljw3h2ppzhpmm7cilisqvn71s5ysd";
+      sha256 = "1v5bihkn3cdf7s1cv04wqpk3l5snjgyav0jz9x5vhzzdqyknvndr";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "mail" "rails-dom-testing"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18vrdwdwfmrnpj8k30qhvdx23km233ffnhhzpbmx8m6spavwvli2";
+      sha256 = "1x0qjs8v5z5wzk7vlg7pdr71hsm154d8d0gwhya573xpxfjzmjpx";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   actionpack = {
     dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
@@ -27,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1knnka6n292f4hhbjfchpa4sbjj79wys5y8bcggm8ah894051kzk";
+      sha256 = "0mqvz5dsg9zis34y8m4d2ackr3zs7h27mv6zx5yx00a58fifhyv3";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   actionpack-xml_parser = {
     dependencies = ["actionpack" "railties"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zndg7ax4bckayjw558p9hz92ic6x3r5acfbd5vnad0xh7hfdrmx";
+      sha256 = "06bk0hyv2sq386qc7r96qbhskg91apdj3mrdpzhry6p6nby2afml";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kzb5y4lflmvi3vxz2zrj55k6xyys2h5bdqp2ki69rcyd4ay5qrg";
+      sha256 = "12y07kvq9y30ycl4i45g9c2c9jv5a9vlxvrjaqfl79iim6gk1klz";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b6pskl8x4c1hcsf4xh4cl9qlh814s91bjv3yy94cdc4xpl76vr6";
+      sha256 = "0vsyxbjpl47grlkzgh2rm0i9yksfwk11lsdi11jmqszc6lkj1b9g";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   activerecord = {
     dependencies = ["activemodel" "activesupport" "arel"];
@@ -82,10 +82,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "078iiv5g02n1ivrgpkbw5bxkbihi85msvn88p5q37vbfr14ynk0a";
+      sha256 = "0jk8qwdvq465nklxr7z0qzpiacxcqd72y6frimlalchhigl8ya0a";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   activestorage = {
     dependencies = ["actionpack" "activerecord" "marcel"];
@@ -93,10 +93,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xnxgg9j4nr6yw8g3l0jdr9m985k3wrvjql9j5qr5lfcsn9zwz4w";
+      sha256 = "0qklddvw3v13dh79c7vljad8m25frlhnwcnw9xk510d676j3lr8a";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   activesupport = {
     dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
@@ -104,10 +104,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0anvhpxjgic1cv1h66lmz6x5nd7g0bbnwl0rgxnbdr3w76fa8w02";
+      sha256 = "0r15sbhl4nrkh2g5ccbhmn3c2ngri71j0yfnarxkq90vdrhqqjgh";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -207,10 +207,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qbdgp36dhcyljhmfxrvbgp1ha9yqxhxgyg3sdm48y9m371jd2an";
+      sha256 = "1107j3frhmcd95wcsz0rypchynnzhnjiyyxxcl6dlmr2lfy08z4b";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.12.0";
   };
   csv = {
     groups = ["default"];
@@ -280,10 +280,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18ymp6l3bv7abz07k6qbbi9c9vsiahq30d2smh4qzsvag8j5m5v1";
+      sha256 = "1fpyk1965py77al7iadkn5dibwgvybknkr7r8bii2dj73wvr29rh";
       type = "gem";
     };
-    version = "2.18.0";
+    version = "2.19.0";
   };
   mail = {
     dependencies = ["mini_mime"];
@@ -361,10 +361,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ffd7zn24lwhp3xp747jfg4zxgqbm04ar7shhjy2iv5xg1pz01lr";
+      sha256 = "0z2nzk106b6af6n0d9xqf2sphaff4gpjgxvwqcmvy6k719hqhkh9";
       type = "gem";
     };
-    version = "1.14.0";
+    version = "1.15.0";
   };
   mysql2 = {
     groups = ["default"];
@@ -523,10 +523,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0884z2ilm4by47qk7my856dr42vzy12ghj241rymp13flaf54449";
+      sha256 = "1jy4jfkq0xpqp0d3ii9xhj69kacx8l4q3pincncw2g30bqd7a66g";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "nokogiri"];
@@ -556,10 +556,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "157mmm2jhvq2g08xhq0780i3r4i679h14m68jj7265ik26gbchhc";
+      sha256 = "0w9hm85jgbyar748z9nppsz8mgwywa2v9qqlbkzhpgirxhblifv2";
       type = "gem";
     };
-    version = "5.2.8";
+    version = "5.2.8.1";
   };
   rainbow = {
     groups = ["default" "test"];
@@ -786,10 +786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vy0baak61wr652a7qf249n85sqq5k5mi51ws5ccyyirlsymz2gv";
+      sha256 = "0fp7h5bnlqp649imgpnshgf3mxl8zwnpsl1ak1giii81r0cd6in3";
       type = "gem";
     };
-    version = "4.4.0";
+    version = "4.5.0";
   };
   simplecov = {
     dependencies = ["docile" "simplecov-html"];
@@ -870,10 +870,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1nlfck6z986fngp0r74maswmyb1rcksc8xc3mfpw9cj23c3s8zwn";
+      sha256 = "0ra70s8prfacpqwj5v2mqn1rbfz6xds3n9nsr9cwzs3z2c0wm5j7";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   webdrivers = {
     dependencies = ["nokogiri" "rubyzip" "selenium-webdriver"];
diff --git a/pkgs/applications/version-management/reposurgeon/default.nix b/pkgs/applications/version-management/reposurgeon/default.nix
index fc57024ea20fc..2c7836f1318a9 100644
--- a/pkgs/applications/version-management/reposurgeon/default.nix
+++ b/pkgs/applications/version-management/reposurgeon/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, makeWrapper, buildGoModule, git
-, asciidoctor, ruby
+{ lib, fetchurl, buildGoModule, asciidoctor, ruby
 }:
 
 buildGoModule rec {
diff --git a/pkgs/applications/version-management/sourcehut/builds.nix b/pkgs/applications/version-management/sourcehut/builds.nix
index b8f9a0f1522a3..1655ad28aaf9a 100644
--- a/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/pkgs/applications/version-management/sourcehut/builds.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchFromSourcehut
+, fetchpatch
 , buildGoModule
 , buildPythonPackage
 , srht
@@ -12,27 +13,36 @@
 , unzip
 }:
 let
-  version = "0.81.0";
+  version = "0.82.8";
 
   src = fetchFromSourcehut {
     owner = "~sircmpwn";
     repo = "builds.sr.ht";
     rev = version;
-    sha256 = "sha256-oUSzanRFZ2dQTgm/VuNhqUaUAPq7ffxR7OtBKtE61DE=";
+    hash = "sha256-M94zkEUJU8EwksN34sd5IkASDCQ0hHb98G5wzZsCrpg=";
   };
 
   buildsrht-api = buildGoModule ({
     inherit src version;
     pname = "buildsrht-api";
     modRoot = "api";
-    vendorSha256 = "sha256-roTwqtg4Y846PNtLdRN/LV3Jd0LVElqjFy3DJcrwoaI=";
+    vendorHash = "sha256-8z5m4bMwLeYg4i91MMjLMqbciWvqS0icCHFUJTUHBgk=";
   } // import ./fix-gqlgen-trimpath.nix { inherit unzip; });
 
   buildsrht-worker = buildGoModule {
     inherit src version;
     sourceRoot = "source/worker";
     pname = "buildsrht-worker";
-    vendorSha256 = "sha256-Pf1M9a43eK4jr6QMi6kRHA8DodXQU0pqq9ua5VC3ER0=";
+    vendorHash = "sha256-y5RFPbtaGmgPpiV2Q3njeWORGZF1TJRjAbY6VgC1hek=";
+
+    patches = [
+      (fetchpatch {
+        name = "update-x-sys-for-go-1.18-on-aarch64-darwin.patch";
+        url = "https://git.sr.ht/~sircmpwn/builds.sr.ht/commit/f58bbde6bfed7d2321a3b17e991c91fc83d4c230.patch";
+        stripLen = 1;
+        hash = "sha256-vQR/T5G5Gz5tY+SEZZabsbnFKW44b+Bs+GDdydyeCDs=";
+      })
+    ];
   };
 in
 buildPythonPackage rec {
diff --git a/pkgs/applications/version-management/sourcehut/default.nix b/pkgs/applications/version-management/sourcehut/default.nix
index aee65dee3bbb8..d5c8a97a5f898 100644
--- a/pkgs/applications/version-management/sourcehut/default.nix
+++ b/pkgs/applications/version-management/sourcehut/default.nix
@@ -1,5 +1,4 @@
 { python3
-, openssl
 , callPackage
 , recurseIntoAttrs
 , nixosTests
diff --git a/pkgs/applications/version-management/srvc/default.nix b/pkgs/applications/version-management/srvc/default.nix
new file mode 100644
index 0000000000000..8e32b42912c0d
--- /dev/null
+++ b/pkgs/applications/version-management/srvc/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "srvc";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "insilica";
+    repo = "rs-srvc";
+    rev = "v${version}";
+    sha256 = "sha256-PBs86cvEacvCt/2JnURL4qKvXGXRZHWaGYrPUSsnt0I=";
+  };
+
+  cargoSha256 = "sha256-5CUbfI67gsINdHcxN8KbIN10Mu90rAU53DbmQ5QotWg=";
+
+  meta = with lib; {
+    description = "Sysrev version control";
+    homepage = "https://github.com/insilica/rs-srvc";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ john-shaffer ];
+  };
+}
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index 8cb447445c69a..998b1793c187c 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -98,7 +98,7 @@ in stdenv.mkDerivation (rec {
     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}" "$out/bin/${primaryBinary}"
+    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"
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 777bd86916ccb..5cbb4fe1ba9f3 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,8 +4,8 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2074";
-    x64sha256 = "REo59Lpi0fmAOp0XJa4Iln3VKxR5kRiMpz2zfqz1MQs=";
+    buildVersion = "2077";
+    x64sha256 = "6xgh/oSatTYHCnQEXiZAoHs3yI1iimLMtzCosBKBVp8=";
   } {};
 
   sublime-merge-dev = common {
diff --git a/pkgs/applications/version-management/tortoisehg/default.nix b/pkgs/applications/version-management/tortoisehg/default.nix
index 6a9903c25b206..7d74f86975a6e 100644
--- a/pkgs/applications/version-management/tortoisehg/default.nix
+++ b/pkgs/applications/version-management/tortoisehg/default.nix
@@ -7,11 +7,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tortoisehg";
-  version = "6.1";
+  version = "6.2.2";
 
   src = fetchurl {
     url = "https://www.mercurial-scm.org/release/tortoisehg/targz/tortoisehg-${version}.tar.gz";
-    sha256 = "sha256-UG13BlFY9DcsCPWaBiYa6r2oA3ieJtTYfXknDoKNkYI=";
+    sha256 = "sha256-Xbvg/FcuX/AL2reWsaM2oaFyLby3+HDCfYtRyswE7DA=";
   };
 
   # Extension point for when thg's mercurial is lagging behind mainline.
@@ -54,6 +54,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://tortoisehg.bitbucket.io/";
     license = lib.licenses.gpl2Only;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ danbst ];
+    maintainers = with lib.maintainers; [ danbst gbtb ];
   };
 }
diff --git a/pkgs/applications/version-management/yadm/default.nix b/pkgs/applications/version-management/yadm/default.nix
index c48962841fd8b..32c2e14da1cf6 100644
--- a/pkgs/applications/version-management/yadm/default.nix
+++ b/pkgs/applications/version-management/yadm/default.nix
@@ -29,7 +29,7 @@ to support their use in yadm.
 
 resholve.mkDerivation rec {
   pname = "yadm";
-  version = "3.1.1";
+  version = "3.2.1";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -37,7 +37,7 @@ resholve.mkDerivation rec {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    hash   = "sha256-bgiRBlqEjDq0gQ0+aUWpFDeE2piFX3Gy2gEAXgChAOk=";
+    hash   = "sha256:0h3gxhdf32g21xx9si0lv0sa4ipb1k0n5qpln0w2vipvfgakn5mn";
   };
 
   dontConfigure = true;