git: be70e700ec03 - main - www/gitlab: major update to 17.11

From: Matthias Fechner <mfechner_at_FreeBSD.org>
Date: Fri, 18 Apr 2025 08:35:10 UTC
The branch main has been updated by mfechner:

URL: https://cgit.FreeBSD.org/ports/commit/?id=be70e700ec0333d4beefd76084866f42ed4fc18a

commit be70e700ec0333d4beefd76084866f42ed4fc18a
Author:     Matthias Fechner <mfechner@FreeBSD.org>
AuthorDate: 2025-04-16 12:13:52 +0000
Commit:     Matthias Fechner <mfechner@FreeBSD.org>
CommitDate: 2025-04-18 08:34:28 +0000

    www/gitlab: major update to 17.11
    
    Changes: https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/
---
 devel/gitaly/distinfo                            | 14 ++---
 devel/gitaly/files/patch-Makefile                | 80 +++++++++++-------------
 devel/gitaly/files/patch-config.toml.example     | 10 +--
 net/gitlab-agent/distinfo                        | 10 +--
 net/rubygem-gitlab-kas-grpc/Makefile             |  2 +-
 net/rubygem-gitlab-kas-grpc/distinfo             |  6 +-
 textproc/gitlab-elasticsearch-indexer/Makefile   |  5 +-
 textproc/gitlab-elasticsearch-indexer/distinfo   | 10 +--
 www/gitlab-pages/distinfo                        | 10 +--
 www/gitlab-workhorse/distinfo                    | 10 +--
 www/gitlab/Makefile                              | 42 +++++++------
 www/gitlab/Makefile.common                       | 10 ++-
 www/gitlab/distinfo                              | 12 ++--
 www/gitlab/files/patch-Gemfile                   | 36 ++++++-----
 www/gitlab/files/patch-config_gitlab.yml.example | 20 +++---
 www/gitlab/pkg-message                           |  4 +-
 16 files changed, 142 insertions(+), 139 deletions(-)

diff --git a/devel/gitaly/distinfo b/devel/gitaly/distinfo
index 3ec3a9153169..6e6db71a9f0f 100644
--- a/devel/gitaly/distinfo
+++ b/devel/gitaly/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1744259242
-SHA256 (go/devel_gitaly/gitaly-v17.10.4/go.mod) = f824aae5cee8f78761e4ede33e828f218425ca982e99c92eca80e05593631e64
-SIZE (go/devel_gitaly/gitaly-v17.10.4/go.mod) = 12365
-SHA256 (go/devel_gitaly/gitaly-v17.10.4/gitaly-v17.10.4.tar.bz2) = e0742d42225873bde0be95ac6c4d0b3e9154412bdec4db435605c4df49a4e3c5
-SIZE (go/devel_gitaly/gitaly-v17.10.4/gitaly-v17.10.4.tar.bz2) = 4456545
-SHA256 (go/devel_gitaly/gitaly-v17.10.4/git-v2.47.2.tar.bz2) = 061297b19daa4adcf9700a01acadbc5ca8722c9c26e2d2a2fe002edff537545f
-SIZE (go/devel_gitaly/gitaly-v17.10.4/git-v2.47.2.tar.bz2) = 8892868
+TIMESTAMP = 1744782293
+SHA256 (go/devel_gitaly/gitaly-v17.11.0/go.mod) = 2e2d5338397f220f0b8c980a4ac083c67d9b2c66f83225d2a7fbff917f631a6c
+SIZE (go/devel_gitaly/gitaly-v17.11.0/go.mod) = 12599
+SHA256 (go/devel_gitaly/gitaly-v17.11.0/gitaly-v17.11.0.tar.bz2) = 4c6cd166ad9d4ed58f3bde27414b5fd57f54463d32a8ab5b19380c14bf1e9cb7
+SIZE (go/devel_gitaly/gitaly-v17.11.0/gitaly-v17.11.0.tar.bz2) = 4491160
+SHA256 (go/devel_gitaly/gitaly-v17.11.0/git-v2.49.0.tar.bz2) = 63678e3839f5af667b48cb9d0c37de4b249916dc19aae7c5ce83d07fb3146ecb
+SIZE (go/devel_gitaly/gitaly-v17.11.0/git-v2.49.0.tar.bz2) = 9079092
diff --git a/devel/gitaly/files/patch-Makefile b/devel/gitaly/files/patch-Makefile
index 6fb9b785f001..6c6e353e2a30 100644
--- a/devel/gitaly/files/patch-Makefile
+++ b/devel/gitaly/files/patch-Makefile
@@ -1,79 +1,75 @@
---- Makefile.orig	2025-03-19 10:31:26 UTC
+--- Makefile.orig	2025-04-16 03:58:04 UTC
 +++ Makefile
-@@ -152,7 +152,7 @@ GIT_VERSION_2_47 ?= v2.47.2
+@@ -151,7 +151,7 @@ GIT_VERSION ?=
+ # GIT_VERSION_x_xx defines versions for each instance of bundled Git we ship. When a new
  # major version is added, be sure to update GIT_PACKED_EXECUTABLES, the *-bundled-git targets,
  # and add new targets under the "# These targets build specific releases of Git." section.
- GIT_VERSION_2_47 ?= v2.47.2
 -GIT_VERSION_2_48 ?= v2.48.1.gl1
 +#GIT_VERSION_2_48 ?= v2.48.1.gl1
+ GIT_VERSION_2_49 ?= v2.49.0.gl1
  #
  # OVERRIDE_GIT_VERSION allows you to specify a custom semver value to be reported by the
- # `git --version` command. This affects bundled and non-bundled Git, and can be used whenever
-@@ -247,8 +247,7 @@ BUILD_GEM_NAME ?= gitaly
+@@ -163,7 +163,7 @@ ifeq (${GIT_VERSION:default=},)
+ ifeq (${GIT_VERSION:default=},)
+ 	# GIT_VERSION should be overridden to the default version of bundled Git. This is only
+ 	# necessary until https://gitlab.com/gitlab-org/gitaly/-/issues/6195 is complete.
+-    override GIT_VERSION := ${GIT_VERSION_2_48}
++    override GIT_VERSION := ${GIT_VERSION_2_49}
+     # When GIT_VERSION is not explicitly set, we default to bundled Git.
+ 	export WITH_BUNDLED_GIT = YesPlease
+ else
+@@ -259,8 +259,7 @@ BUILD_GEM_NAME ?= gitaly
  BUILD_GEM_NAME ?= gitaly
  
  # Git binaries that are eventually embedded into the Gitaly binary.
--GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.47, ${GIT_EXECUTABLES})) \
--															 $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.48, ${GIT_EXECUTABLES}))
-+GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.47, ${GIT_EXECUTABLES})) 
+-GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.48, ${GIT_EXECUTABLES})) \
+-                               $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.49, ${GIT_EXECUTABLES}))
++GIT_PACKED_EXECUTABLES       = $(addprefix ${BUILD_DIR}/bin/gitaly-, $(addsuffix -v2.49, ${GIT_EXECUTABLES}))
  
  # All executables provided by Gitaly.
  GITALY_EXECUTABLES           = $(addprefix ${BUILD_DIR}/bin/,$(notdir $(shell find ${SOURCE_DIR}/cmd -mindepth 1 -maxdepth 1 -type d -print)))
-@@ -337,16 +336,14 @@ install: build
+@@ -349,15 +348,13 @@ install: build
  
  .PHONY: build-bundled-git
  ## Build bundled Git binaries.
--build-bundled-git: build-bundled-git-v2.47 build-bundled-git-v2.48
-+build-bundled-git: build-bundled-git-v2.47
- build-bundled-git-v2.47: $(patsubst %,${BUILD_DIR}/bin/gitaly-%-v2.47,${GIT_EXECUTABLES})
+-build-bundled-git: build-bundled-git-v2.48 build-bundled-git-v2.49
 -build-bundled-git-v2.48: $(patsubst %,${BUILD_DIR}/bin/gitaly-%-v2.48,${GIT_EXECUTABLES})
++build-bundled-git: build-bundled-git-v2.49
+ build-bundled-git-v2.49: $(patsubst %,${BUILD_DIR}/bin/gitaly-%-v2.49,${GIT_EXECUTABLES})
  
  .PHONY: install-bundled-git
  ## Install bundled Git binaries. The target directory can be modified by
  ## setting PREFIX and DESTDIR.
--install-bundled-git: install-bundled-git-v2.47 install-bundled-git-v2.48
-+install-bundled-git: install-bundled-git-v2.47
- install-bundled-git-v2.47: $(patsubst %,${INSTALL_DEST_DIR}/gitaly-%-v2.47,${GIT_EXECUTABLES})
+-install-bundled-git: install-bundled-git-v2.48 install-bundled-git-v2.49
 -install-bundled-git-v2.48: $(patsubst %,${INSTALL_DEST_DIR}/gitaly-%-v2.48,${GIT_EXECUTABLES})
++install-bundled-git: install-bundled-git-v2.49
+ install-bundled-git-v2.49: $(patsubst %,${INSTALL_DEST_DIR}/gitaly-%-v2.49,${GIT_EXECUTABLES})
  
  ifdef WITH_BUNDLED_GIT
- build: build-bundled-git
-@@ -631,22 +628,22 @@ ${BUILD_DIR}/bin/gitaly-%-v2.47: ${DEPENDENCY_DIR}/git
- ${BUILD_DIR}/bin/gitaly-%-v2.47: ${DEPENDENCY_DIR}/git-v2.47/% | ${BUILD_DIR}/bin
- 	${Q}install $< $@
+@@ -679,17 +676,17 @@ ${DEPENDENCY_DIR}/git-distribution/build/git: ${DEPEND
+ 	${Q}touch $@
  
+ # These targets build specific releases of Git.
 -${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_VERSION = ${GIT_VERSION_2_48}
 +#${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_VERSION = ${GIT_VERSION_2_48}
- # Use non-collision-detecting SHA1 implementation in non-cryptographic scenarios
- # to improve performance. For now, this is only enabled for Git version 2.48 on
- # Linux platforms.
--ifeq ($(OS),Linux)
--${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_MESON_BUILD_OPTIONS += -Dsha1_unsafe_backend=openssl
--${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_BUILD_OPTIONS += OPENSSL_SHA1_UNSAFE=YesPlease
--endif
-+#ifeq ($(OS),Linux)
-+#${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_MESON_BUILD_OPTIONS += -Dsha1_unsafe_backend=openssl
-+#${BUILD_DIR}/bin/gitaly-%-v2.48: override GIT_BUILD_OPTIONS += OPENSSL_SHA1_UNSAFE=YesPlease
-+#endif
+ ${BUILD_DIR}/bin/gitaly-%-v2.49: override GIT_VERSION = ${GIT_VERSION_2_49}
  
--ifdef USE_MESON
+ ifdef USE_MESON
 -${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/build/% | ${BUILD_DIR}/bin
 -	${Q}install $< $@
--else
--${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/% | ${BUILD_DIR}/bin
--	${Q}install $< $@
--endif
-+#ifdef USE_MESON
 +#${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/build/% | ${BUILD_DIR}/bin
 +#	${Q}install $< $@
-+#else
+ ${BUILD_DIR}/bin/gitaly-%-v2.49: ${DEPENDENCY_DIR}/git-v2.49/build/% | ${BUILD_DIR}/bin
+ 	${Q}install $< $@
+ else
+-${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/% | ${BUILD_DIR}/bin
+-	${Q}install $< $@
 +#${BUILD_DIR}/bin/gitaly-%-v2.48: ${DEPENDENCY_DIR}/git-v2.48/% | ${BUILD_DIR}/bin
 +#	${Q}install $< $@
-+#endif
- 
- # clear-go-build-cache-if-needed cleans the Go build cache if it exceeds the maximum size as
- # configured in GOCACHE_MAX_SIZE_KB.
-@@ -680,12 +677,12 @@ ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/gi
+ ${BUILD_DIR}/bin/gitaly-%-v2.49: ${DEPENDENCY_DIR}/git-v2.49/% | ${BUILD_DIR}/bin
+ 	${Q}install $< $@
+ endif
+@@ -726,12 +723,12 @@ ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/gi
  # otherwise try to rebuild all targets depending on it whenever we build
  # something else. We thus depend on the Makefile instead.
  ${DEPENDENCY_DIR}/git-%/Makefile: ${DEPENDENCY_DIR}/git-%.version
diff --git a/devel/gitaly/files/patch-config.toml.example b/devel/gitaly/files/patch-config.toml.example
index 76d7cbff727f..4303af905b5a 100644
--- a/devel/gitaly/files/patch-config.toml.example
+++ b/devel/gitaly/files/patch-config.toml.example
@@ -1,4 +1,4 @@
---- config.toml.example.orig	2025-03-19 10:31:26 UTC
+--- config.toml.example.orig	2025-04-16 03:58:04 UTC
 +++ config.toml.example
 @@ -2,10 +2,10 @@
  # For Gitaly documentation, see https://docs.gitlab.com/administration/gitaly/.
@@ -13,8 +13,8 @@
  
  # # Optional. The directory where Gitaly can create all files required to
  # # properly operate at runtime. If not set, Gitaly will create a directory in
-@@ -40,9 +40,9 @@ bin_dir = "/home/git/gitaly/_build/bin"
- # key_path = '/home/git/key.pem'
+@@ -42,9 +42,9 @@ bin_dir = "/home/git/gitaly/_build/bin"
+ # min_version = "TLS 1.2"
  
  # # Git settings
 -# [git]
@@ -26,7 +26,7 @@
  # # Maximum number of cached 'cat-file' processes, which constitute a pair of 'git cat-file --batch' and
  # # 'git cat-file --batch-check' processes. Defaults to '100'.
  # catfile_cache_size = 100
-@@ -58,7 +58,7 @@ name = "default"
+@@ -60,7 +60,7 @@ name = "default"
  # # The name of the storage
  name = "default"
  # # The path to the storage.
@@ -35,7 +35,7 @@
  
  # # You can optionally configure more storages for this Gitaly instance to serve up
  #
-@@ -89,18 +89,18 @@ sentry_environment = ""
+@@ -91,18 +91,18 @@ sentry_environment = ""
  # # Custom Git hooks that are used to perform tasks based on changes performed in any repository.
  [hooks]
  # # Directory where custom Git hooks are installed. If left unset, no custom hooks are used.
diff --git a/net/gitlab-agent/distinfo b/net/gitlab-agent/distinfo
index 7a77258b88cd..316c2429ae95 100644
--- a/net/gitlab-agent/distinfo
+++ b/net/gitlab-agent/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1744259244
-SHA256 (go/net_gitlab-agent/gitlab-agent-v17.10.4/v17.10.4.mod) = 29fa2cf5a657e0c393997fef1e94e69bcce20558673fc352fa535e84d28244c1
-SIZE (go/net_gitlab-agent/gitlab-agent-v17.10.4/v17.10.4.mod) = 9379
-SHA256 (go/net_gitlab-agent/gitlab-agent-v17.10.4/v17.10.4.zip) = de9272ac78d646788b04bdc76f19cd1f6c2f159917ec3323df45e67007edfab9
-SIZE (go/net_gitlab-agent/gitlab-agent-v17.10.4/v17.10.4.zip) = 1583939
+TIMESTAMP = 1744779984
+SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.0/v17.11.0.mod) = 6c36855cd351c829e5b19c5aa99876db58a2b4bd7b934e05497e7777faa64f8f
+SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.0/v17.11.0.mod) = 9293
+SHA256 (go/net_gitlab-agent/gitlab-agent-v17.11.0/v17.11.0.zip) = 8743da14abb59d181548d986929b211648b6edd854ea658427cfc0f923ce14eb
+SIZE (go/net_gitlab-agent/gitlab-agent-v17.11.0/v17.11.0.zip) = 1555374
diff --git a/net/rubygem-gitlab-kas-grpc/Makefile b/net/rubygem-gitlab-kas-grpc/Makefile
index f73e632ccda3..0181129b0d47 100644
--- a/net/rubygem-gitlab-kas-grpc/Makefile
+++ b/net/rubygem-gitlab-kas-grpc/Makefile
@@ -1,5 +1,5 @@
 PORTNAME=	gitlab-kas-grpc
-PORTVERSION=	${GITLAB_VERSION}
+PORTVERSION=	${GITLAB_KAS_GRPC_VERSION}
 PORTREVISION=	${GITLAB_PORTREVISION} # modify it in www/gitlab/Makefile.common
 CATEGORIES=	net rubygems
 MASTER_SITES=	RG
diff --git a/net/rubygem-gitlab-kas-grpc/distinfo b/net/rubygem-gitlab-kas-grpc/distinfo
index 7362ab186bb8..dbc277573fbc 100644
--- a/net/rubygem-gitlab-kas-grpc/distinfo
+++ b/net/rubygem-gitlab-kas-grpc/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1744259305
-SHA256 (rubygem/gitlab-kas-grpc-17.10.4.gem) = eef69a52b39ea69f7c79ba1785b37f985187a8609744d2b17336b738402858b1
-SIZE (rubygem/gitlab-kas-grpc-17.10.4.gem) = 10752
+TIMESTAMP = 1744950337
+SHA256 (rubygem/gitlab-kas-grpc-17.11.0.pre.rc43.gem) = 992ef6143a66fcc48217b76ca9a456a8a0a680667ebabffaef6f67d49b698d14
+SIZE (rubygem/gitlab-kas-grpc-17.11.0.pre.rc43.gem) = 10752
diff --git a/textproc/gitlab-elasticsearch-indexer/Makefile b/textproc/gitlab-elasticsearch-indexer/Makefile
index c383ba6b3eed..37234cf0c907 100644
--- a/textproc/gitlab-elasticsearch-indexer/Makefile
+++ b/textproc/gitlab-elasticsearch-indexer/Makefile
@@ -1,7 +1,6 @@
 PORTNAME=	gitlab-elasticsearch-indexer
-PORTVERSION=	5.4.0
+PORTVERSION=	5.5.0
 DISTVERSIONPREFIX=	v
-PORTREVISION=	4
 CATEGORIES=	textproc
 
 MAINTAINER=	mfechner@FreeBSD.org
@@ -16,7 +15,7 @@ LIB_DEPENDS=	libicui18n.so:devel/icu \
 		libicuuc.so:devel/icu
 #RUN_DEPENDS=	p5-Image-ExifTool>=0:graphics/p5-Image-ExifTool
 
-USES=		gmake go:modules,no_targets,1.22 pkgconfig
+USES=		gmake go:modules,no_targets,1.23 pkgconfig
 
 USE_GITLAB=	yes
 GL_ACCOUNT=	gitlab-org
diff --git a/textproc/gitlab-elasticsearch-indexer/distinfo b/textproc/gitlab-elasticsearch-indexer/distinfo
index f963d35e9edd..a0a3b323c8ed 100644
--- a/textproc/gitlab-elasticsearch-indexer/distinfo
+++ b/textproc/gitlab-elasticsearch-indexer/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1732170969
-SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.4.0/go.mod) = d2985eae2316426054b7e3cf2d6ea7cf777401ea0e4dcae6d3128ca06db4bd1a
-SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.4.0/go.mod) = 5002
-SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.4.0/gitlab-elasticsearch-indexer-v5.4.0.tar.bz2) = 91d2e3becb3ec0a227d2637b0cc157f9bdb03aab9341a26eb6d4edb43fa29e63
-SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.4.0/gitlab-elasticsearch-indexer-v5.4.0.tar.bz2) = 69073
+TIMESTAMP = 1744780212
+SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/go.mod) = f37adcaa570698fc1a3eb860586c4eae8cd265aa58c16784c7643d89d4c13350
+SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/go.mod) = 5509
+SHA256 (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/gitlab-elasticsearch-indexer-v5.5.0.tar.bz2) = f6258d0596bd0942e2ab8dbbdf3808040dd9c98bce75ef8d6d50b80bb1b9cd46
+SIZE (go/textproc_gitlab-elasticsearch-indexer/gitlab-elasticsearch-indexer-v5.5.0/gitlab-elasticsearch-indexer-v5.5.0.tar.bz2) = 79334
diff --git a/www/gitlab-pages/distinfo b/www/gitlab-pages/distinfo
index b25b1ab90169..8cba709f580e 100644
--- a/www/gitlab-pages/distinfo
+++ b/www/gitlab-pages/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1744259247
-SHA256 (go/www_gitlab-pages/gitlab-pages-v17.10.4/go.mod) = e41278594ee22017fca4184ba9257748c547483a00ee36b7ba2f9ce7dcf5f7e9
-SIZE (go/www_gitlab-pages/gitlab-pages-v17.10.4/go.mod) = 3486
-SHA256 (go/www_gitlab-pages/gitlab-pages-v17.10.4/gitlab-pages-v17.10.4.tar.bz2) = 8d5954f2ea819dc4790cdb518689b4d38f1fce54f3726b719eb27462568f36c6
-SIZE (go/www_gitlab-pages/gitlab-pages-v17.10.4/gitlab-pages-v17.10.4.tar.bz2) = 233131
+TIMESTAMP = 1744780017
+SHA256 (go/www_gitlab-pages/gitlab-pages-v17.11.0/go.mod) = b83da7e72c96e7faf9b45df5ea511c394c921e0a377adec8673636f904354f99
+SIZE (go/www_gitlab-pages/gitlab-pages-v17.11.0/go.mod) = 3435
+SHA256 (go/www_gitlab-pages/gitlab-pages-v17.11.0/gitlab-pages-v17.11.0.tar.bz2) = e7f50719e38077b01a54505240950fe904b01c805cbb8d5484a1f4e9f5e99caa
+SIZE (go/www_gitlab-pages/gitlab-pages-v17.11.0/gitlab-pages-v17.11.0.tar.bz2) = 233563
diff --git a/www/gitlab-workhorse/distinfo b/www/gitlab-workhorse/distinfo
index 8d92f76f9e96..7e844cd4bd75 100644
--- a/www/gitlab-workhorse/distinfo
+++ b/www/gitlab-workhorse/distinfo
@@ -1,5 +1,5 @@
-TIMESTAMP = 1744259304
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.10.4/go.mod) = 09b00b9aea6b3ec4f35e5b707b45d202cd5cd85cdc955100e15311959ca27486
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.10.4/go.mod) = 9212
-SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.10.4/gitlab-foss-v17.10.4.tar.bz2) = 136b41fd15714aaf230d59b9aceef0c912c70d342d9188f1014f360e4f4c7be5
-SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.10.4/gitlab-foss-v17.10.4.tar.bz2) = 128865018
+TIMESTAMP = 1744780079
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.11.0/go.mod) = 7a8a5f2fc15547a8a314bb4701e33e873b3978afc24255409fd792b6fe1f7058
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.11.0/go.mod) = 9207
+SHA256 (go/www_gitlab-workhorse/gitlab-foss-v17.11.0/gitlab-foss-v17.11.0.tar.bz2) = 5441ecd89caec2e9d91a6016c61c2b97d930714cc08bd7d4c4cc6e83f35ca256
+SIZE (go/www_gitlab-workhorse/gitlab-foss-v17.11.0/gitlab-foss-v17.11.0.tar.bz2) = 129900742
diff --git a/www/gitlab/Makefile b/www/gitlab/Makefile
index 3cd469f04bda..17ca43c9922d 100644
--- a/www/gitlab/Makefile
+++ b/www/gitlab/Makefile
@@ -28,7 +28,7 @@ LICENSE_FILE=	${WRKSRC}/LICENSE
 # textproc/rubygem-psych3 is required as ruby 3.1 applied an update to psych 4.0 which has breaking changes
 # mail/rubygem-net-pop is required as ruby 3.1 removed it
 MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
-	gitlab-elasticsearch-indexer>=5.4.0:textproc/gitlab-elasticsearch-indexer \
+	gitlab-elasticsearch-indexer>=5.5.0:textproc/gitlab-elasticsearch-indexer \
 	gitlab-agent>=${GITLAB_VERSION}:net/gitlab-agent \
 	gitlab-pages>=${GITLAB_VERSION}:www/gitlab-pages \
 	gitlab-shell>=14.41.0:devel/gitlab-shell \
@@ -47,7 +47,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-bootsnap>=1.18.3<1.19:devel/rubygem-bootsnap \
 	rubygem-ffi>=1.17.1<2:devel/rubygem-ffi \
 	rubygem-openssl>=3.2.0<4:security/rubygem-openssl \
-	rubygem-gitlab-secret_detection>=0.19.0<1:security/rubygem-gitlab-secret_detection \
+	rubygem-gitlab-secret_detection>=0.23.0<1:security/rubygem-gitlab-secret_detection \
 	rubygem-responders-rails70>=3.0<4.0:www/rubygem-responders-rails70 \
 	rubygem-sprockets3>=3.7.0<3.8:devel/rubygem-sprockets3 \
 	rubygem-sprockets-rails-rails70>=3.5.2<3.6:devel/rubygem-sprockets-rails-rails70 \
@@ -66,7 +66,8 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-doorkeeper-openid_connect>=1.8.11<2:security/rubygem-doorkeeper-openid_connect \
 	rubygem-doorkeeper-device_authorization_grant>=1.0.0<1.1:security/rubygem-doorkeeper-device_authorization_grant \
 	rubygem-rexml>=3.4.1<3.5:textproc/rubygem-rexml \
-	rubygem-ruby-saml-gitlab>=1.18.0<1.19:security/rubygem-ruby-saml-gitlab \
+	rubygem-ruby-saml-gitlab>=1.18<2:security/rubygem-ruby-saml-gitlab \
+	rubygem-omniauth-saml-gitlab>=2.2.3<3:security/rubygem-omniauth-saml-gitlab \
 	rubygem-omniauth>=2.1.2<3:security/rubygem-omniauth \
 	rubygem-omniauth-auth0-gitlab>=3.1.1<3.2.0:net/rubygem-omniauth-auth0-gitlab \
 	rubygem-omniauth-azure-activedirectory-v2>=2.0<3:net/rubygem-omniauth-azure-activedirectory-v2 \
@@ -74,7 +75,6 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-omniauth-github-gitlab>=2.0.1<2.1:net/rubygem-omniauth-github-gitlab \
 	rubygem-omniauth-google-oauth2-gitlab>=1.1<2:net/rubygem-omniauth-google-oauth2-gitlab \
 	rubygem-omniauth-oauth2-generic-gitlab>=0.2.2<0.3.0:security/rubygem-omniauth-oauth2-generic-gitlab \
-	rubygem-omniauth-saml-gitlab>=2.2.2<3:security/rubygem-omniauth-saml-gitlab \
 	rubygem-omniauth-shibboleth-redux>=2.0<3:security/rubygem-omniauth-shibboleth-redux \
 	rubygem-omniauth_openid_connect>=0.8.0<0.9:net/rubygem-omniauth_openid_connect \
 	rubygem-openid_connect>=2.3.1<2.4:net/rubygem-openid_connect \
@@ -89,7 +89,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-rqrcode>=2.2.0<3:www/rubygem-rqrcode \
 	rubygem-validates_hostname>=1.0.13<1.1.0:dns/rubygem-validates_hostname \
 	rubygem-rubyzip>=2.3.2<2.4:archivers/rubygem-rubyzip \
-	rubygem-acme-client-gitlab>=2.0.20<3:security/rubygem-acme-client-gitlab \
+	rubygem-acme-client-gitlab>=2.0.21<3:security/rubygem-acme-client-gitlab \
 	rubygem-browser5>=5.3.1<5.4:www/rubygem-browser5 \
 	rubygem-ohai>=18.1.18<19:sysutils/rubygem-ohai \
 	rubygem-gpgme>=2.0.24<2.1.0:security/rubygem-gpgme \
@@ -103,7 +103,6 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-rack-cors>=2.0.1<2.1:www/rubygem-rack-cors \
 	rubygem-graphql>=2.4.11<2.5:devel/rubygem-graphql \
 	rubygem-apollo_upload_server>=2.1.6<2.2:net/rubygem-apollo_upload_server \
-	rubygem-graphlient>=0.8.0<0.9:devel/rubygem-graphlient \
 	rubygem-ffaker>=2.24.0<3:devel/rubygem-ffaker \
 	rubygem-hashie>=5.0.0<5.1:devel/rubygem-hashie \
 	rubygem-kaminari-rails70>=1.2.2<1.3:www/rubygem-kaminari-rails70 \
@@ -156,18 +155,18 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-asciidoctor-kroki>=0.10.0<0.11:textproc/rubygem-asciidoctor-kroki \
 	rubygem-rouge-gitlab>=4.5.1<4.6:textproc/rubygem-rouge-gitlab \
 	rubygem-truncato>=0.7.13<0.8.0:textproc/rubygem-truncato \
-	rubygem-nokogiri>=1.18.3<2:textproc/rubygem-nokogiri \
-	rubygem-gitlab-glfm-markdown>=0.0.27<0.1:textproc/rubygem-gitlab-glfm-markdown \
+	rubygem-nokogiri>=1.18.7<2:textproc/rubygem-nokogiri \
+	rubygem-gitlab-glfm-markdown>=0.0.29<0.1:textproc/rubygem-gitlab-glfm-markdown \
 	rubygem-tanuki_emoji>=0.13<1:graphics/rubygem-tanuki_emoji \
 	rubygem-unicode-emoji>=4.0.4<5:devel/rubygem-unicode-emoji \
 	rubygem-icalendar>=2.10.3<2.11:devel/rubygem-icalendar \
 	rubygem-diffy>=3.4<4:textproc/rubygem-diffy \
-	rubygem-rack22>=2.2.11,3<2.3,3:www/rubygem-rack22 \
+	rubygem-rack22>=2.2.13,3<2.3,3:www/rubygem-rack22 \
 	rubygem-rack-timeout>=0.7.0<0.8:www/rubygem-rack-timeout \
 	rubygem-puma>=6.5.0<7:www/rubygem-puma \
 	rubygem-sd_notify>=0.1.1<0.2:devel/rubygem-sd_notify \
 	rubygem-state_machines-activerecord08>=0.8.0<0.9.0:databases/rubygem-state_machines-activerecord08 \
-	rubygem-sidekiq72>=7.2.4<7.3:devel/rubygem-sidekiq72 \
+	rubygem-sidekiq-gitlab>=7.3.9:devel/rubygem-sidekiq-gitlab \
 	rubygem-sidekiq-cron-rails70>=1.12.0<1.13:devel/rubygem-sidekiq-cron-rails70 \
 	rubygem-fugit>=1.11.1<1.12:devel/rubygem-fugit \
 	rubygem-httparty-gitlab>=0.22.0<0.23:www/rubygem-httparty-gitlab \
@@ -200,7 +199,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-gitlab-chronic>=0.10.6<0.11.0:devel/rubygem-gitlab-chronic \
 	rubygem-gitlab_chronic_duration>=0.12<1:devel/rubygem-gitlab_chronic_duration \
 	rubygem-rack-proxy>=0.7.7<0.8.0:www/rubygem-rack-proxy \
-	rubygem-cssbundling-rails-gitlab>=1.4.2<1.5:www/rubygem-cssbundling-rails-gitlab \
+	rubygem-cssbundling-rails-rails70>=1.4.3<1.5:www/rubygem-cssbundling-rails-rails70 \
 	rubygem-terser>=1.0.2<1.0.3:textproc/rubygem-terser \
 	rubygem-addressable>=2.8<3:www/rubygem-addressable \
 	rubygem-gon-rails70>=6.4.0<6.5:www/rubygem-gon-rails70 \
@@ -211,7 +210,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-sentry-ruby>=5.22.0<5.23:devel/rubygem-sentry-ruby \
 	rubygem-sentry-rails>=5.22.0<5.23:devel/rubygem-sentry-rails \
 	rubygem-sentry-sidekiq>=5.22.0<5.23:devel/rubygem-sentry-sidekiq \
-	rubygem-pg_query>=6.0.0<6.1:databases/rubygem-pg_query \
+	rubygem-pg_query>=6.1.0<6.2:databases/rubygem-pg_query \
 	rubygem-premailer-rails-rails70>=1.12.0<1.13:mail/rubygem-premailer-rails-rails70 \
 	rubygem-gitlab-labkit>=0.37.0<0.38:devel/rubygem-gitlab-labkit \
 	rubygem-thrift>=0.16.0:devel/rubygem-thrift \
@@ -224,7 +223,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-snowplow-tracker>=0.8.0<1:devel/rubygem-snowplow-tracker \
 	rubygem-webrick>=1.8.2<1.10:www/rubygem-webrick \
 	rubygem-prometheus-client-mmap>=1.2.9<1.3:devel/rubygem-prometheus-client-mmap \
-	rubygem-async-gitlab>=2.23.0<2.24:devel/rubygem-async-gitlab \
+	rubygem-async-gitlab>=2.23.1<2.24:devel/rubygem-async-gitlab \
 	rubygem-gitlab-security_report_schemas>=0.1.2.min15.0.0.max15.2.1<0.1.2.min15.0.0.max15.2.2:devel/rubygem-gitlab-security_report_schemas \
 	rubygem-opentelemetry-sdk>=1.5.0:devel/rubygem-opentelemetry-sdk \
 	rubygem-opentelemetry-exporter-otlp>=0.29.1:devel/rubygem-opentelemetry-exporter-otlp \
@@ -252,7 +251,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-warning>=1.5.0<1.6:devel/rubygem-warning \
 	rubygem-git>=1.19.1<2:devel/rubygem-git \
 	rubygem-gitlab-dangerfiles>=4.8.1<4.9:devel/rubygem-gitlab-dangerfiles \
-	rubygem-license_finder-gitlab>=7.0.0<8:devel/rubygem-license_finder-gitlab \
+	rubygem-license_finder-gitlab>=7.2.1<8:devel/rubygem-license_finder-gitlab \
 	rubygem-rspec>=3.0<4:devel/rubygem-rspec \
 	rubygem-octokit-gitlab>=9.0<10:net/rubygem-octokit-gitlab \
 	rubygem-faraday-multipart>=1.0<2:www/rubygem-faraday-multipart \
@@ -271,7 +270,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-ssh_data>=1.3<2:security/rubygem-ssh_data \
 	rubygem-spamcheck>=1.3.3<1.4:net/rubygem-spamcheck \
 	rubygem-gitaly>=17.8.4:net/rubygem-gitaly \
-	rubygem-gitlab-kas-grpc>=${GITLAB_VERSION}:net/rubygem-gitlab-kas-grpc \
+	rubygem-gitlab-kas-grpc>=${GITLAB_KAS_GRPC_VERSION}:net/rubygem-gitlab-kas-grpc \
 	rubygem-grpc>=1.63.0<2:net/rubygem-grpc \
 	rubygem-google-protobuf3>=3.25.6<4:devel/rubygem-google-protobuf3 \
 	rubygem-toml-rb>=2.2.0<3:www/rubygem-toml-rb \
@@ -290,7 +289,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-lockbox>=1.3.0<1.4:security/rubygem-lockbox \
 	rubygem-valid_email>=0.1<1:mail/rubygem-valid_email \
 	rubygem-jsonb_accessor>=1.4<2:www/rubygem-jsonb_accessor \
-	rubygem-json>=2.10.0<2.11:devel/rubygem-json \
+	rubygem-json>=2.10.2<2.11:devel/rubygem-json \
 	rubygem-json_schemer>=2.3.0<2.4:devel/rubygem-json_schemer \
 	rubygem-oj>=3.16.0<3.17:devel/rubygem-oj \
 	rubygem-oj-introspect>=0.8<1:devel/rubygem-oj-introspect \
@@ -302,7 +301,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-ed25519>=1.3.0<1.4:security/rubygem-ed25519 \
 	rubygem-cvss-suite>=3.3.0<3.4:security/rubygem-cvss-suite \
 	rubygem-arr-pm>=0.0.12<0.1:devel/rubygem-arr-pm \
-	rubygem-devfile-gitlab>=0.1.1<0.2:net/rubygem-devfile-gitlab \
+	rubygem-devfile>=0.4.0<0.5:net/rubygem-devfile \
 	rubygem-CFPropertyList-gitlab>=3.0.7<3.1:devel/rubygem-CFPropertyList-gitlab \
 	rubygem-app_store_connect>=0:net/rubygem-app_store_connect \
 	rubygem-telesignenterprise>=2.2<3:devel/rubygem-telesignenterprise \
@@ -314,7 +313,7 @@ MY_DEPENDS=	gitaly>=${GITLAB_VERSION}:devel/gitaly \
 	rubygem-gitlab-sdk>=0.3.0<0.4:devel/rubygem-gitlab-sdk \
 	rubygem-paper_trail>=15.0<16:devel/rubygem-paper_trail \
 	rubygem-i18n_data>=0.13.1<1:devel/rubygem-i18n_data \
-	rubygem-gitlab-cloud-connector>=1.0.0<1.1:security/rubygem-gitlab-cloud-connector \
+	rubygem-gitlab-cloud-connector>=1.5<2:security/rubygem-gitlab-cloud-connector \
 	rubygem-google-cloud-profiler-v2>=0.3<1:textproc/rubygem-google-cloud-profiler-v2 \
 	rubygem-parallel>=1.26.3<2:sysutils/rubygem-parallel \
 	rubygem-google-cloud-storage_transfer-gitlab>=1.2.0<1.3:net/rubygem-google-cloud-storage_transfer-gitlab \
@@ -343,8 +342,10 @@ GL_PROJECT=	gitlab-foss
 
 USE_RC_SUBR=	gitlab
 
-SHEBANG_FILES=	scripts/build_qa_image \
+SHEBANG_FILES=	scripts/build_assets_image \
+		scripts/build_qa_image \
 		scripts/build_gdk_image \
+		scripts/compile_assets \
 		scripts/db_tasks \
 		scripts/rails-update-bisect \
 		scripts/frontend/codemods/vuex-to-pinia/migrate.sh \
@@ -355,7 +356,8 @@ SHEBANG_FILES=	scripts/build_qa_image \
 		.lefthook/pre-push/merge_conflicts \
 		qa/gdk/entrypoint \
 		qa/bin/test \
-		vendor/gems/bundler-checksum/test/project_with_checksum_lock/scripts/test
+		vendor/gems/bundler-checksum/test/project_with_checksum_lock/scripts/test \
+		vendor/gems/sidekiq/scripts/update-sidekiq.sh
 
 CONFLICTS_INSTALL=	gitolite \
 			gitolite2 \
diff --git a/www/gitlab/Makefile.common b/www/gitlab/Makefile.common
index 4389b899d794..24b9ef87d1fd 100644
--- a/www/gitlab/Makefile.common
+++ b/www/gitlab/Makefile.common
@@ -1,10 +1,14 @@
-GITLAB_VERSION=		17.10.4
-GITLAB_PORTREVISION=	1
+GITLAB_VERSION=		17.11.0
+GITLAB_PORTREVISION=	0
 
 # Git version gitaly should use (from gitlab mirror)
 # Find current tag from Makefile and .gitlab-ci.yaml
 # and from https://gitlab.com/gitlab-org/git/-/tags
-GITLAB_GIT_VERSION=	2.47.2
+GITLAB_GIT_VERSION=	2.49.0
 # return something like x.yy
 GITLAB_GIT_VERSION_SHORT=	${GITLAB_GIT_VERSION:C/^([0-9]*\.[0-9]*)\..*/\1/}
 
+# Overwrite version for gitlab-kas-grpc
+#GITLAB_KAS_GRPC_VERSION=	${GITLAB_VERSION}
+GITLAB_KAS_GRPC_VERSION=	17.11.0.pre.rc43
+
diff --git a/www/gitlab/distinfo b/www/gitlab/distinfo
index 1b27af89785a..f3f846cbf2ee 100644
--- a/www/gitlab/distinfo
+++ b/www/gitlab/distinfo
@@ -1,6 +1,6 @@
-TIMESTAMP = 1744259174
-SHA256 (gitlab-foss-v17.10.4.tar.bz2) = 136b41fd15714aaf230d59b9aceef0c912c70d342d9188f1014f360e4f4c7be5
-SIZE (gitlab-foss-v17.10.4.tar.bz2) = 128865018
-TIMESTAMP = 1744259233
-SHA256 (gitlab-v17.10.4-ee.tar.bz2) = f83a0846471958b40cf90f875cf173d940d604618a429cf1bd15fa484564635f
-SIZE (gitlab-v17.10.4-ee.tar.bz2) = 140282525
+TIMESTAMP = 1744950331
+SHA256 (gitlab-foss-v17.11.0.tar.bz2) = 5441ecd89caec2e9d91a6016c61c2b97d930714cc08bd7d4c4cc6e83f35ca256
+SIZE (gitlab-foss-v17.11.0.tar.bz2) = 129900742
+TIMESTAMP = 1744950332
+SHA256 (gitlab-v17.11.0-ee.tar.bz2) = 9bb12ae094f11dfc7358bd22536927695424a4fe96384cc8d25e0e33fe0449e1
+SIZE (gitlab-v17.11.0-ee.tar.bz2) = 144392613
diff --git a/www/gitlab/files/patch-Gemfile b/www/gitlab/files/patch-Gemfile
index e4317e6fb580..66fa089743a5 100644
--- a/www/gitlab/files/patch-Gemfile
+++ b/www/gitlab/files/patch-Gemfile
@@ -1,6 +1,6 @@
---- Gemfile.orig	2025-03-19 10:41:02 UTC
+--- Gemfile.orig	2025-04-16 04:05:48 UTC
 +++ Gemfile
-@@ -164,8 +164,8 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', fea
+@@ -168,8 +168,8 @@ gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', fea
  gem 'rack-cors', '~> 2.0.1', require: 'rack/cors', feature_category: :shared
  
  # GraphQL API
@@ -9,9 +9,9 @@
 +gem 'graphql', '~> 2.4.11', path: 'vendor/gems/graphql', feature_category: :api
 +#gem 'graphql-docs', '~> 5.0.0', group: [:development, :test], feature_category: :api
  gem 'apollo_upload_server', '~> 2.1.6', feature_category: :api
- gem 'graphlient', '~> 0.8.0', feature_category: :importers # Used by BulkImport feature (group::import)
  
-@@ -217,7 +217,7 @@ gem 'google-cloud-storage', '~> 1.45.0', feature_categ
+ # Cells
+@@ -220,7 +220,7 @@ gem 'google-cloud-storage', '~> 1.45.0', feature_categ
  gem 'google-apis-storage_v1', '~> 0.29', feature_category: :shared
  gem 'google-cloud-storage', '~> 1.45.0', feature_category: :shared
  # We need >= 0.11.1 because that's when match_glob support is added to list_objects
@@ -20,7 +20,7 @@
  gem 'google-apis-compute_v1', '~> 0.57.0', feature_category: :shared
  gem 'google-apis-container_v1', '~> 0.43.0', feature_category: :shared
  gem 'google-apis-container_v1beta1', '~> 0.43.0', feature_category: :shared
-@@ -228,7 +228,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0', fe
+@@ -231,7 +231,7 @@ gem 'google-apis-androidpublisher_v3', '~> 0.34.0', fe
  gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0', feature_category: :shared
  gem 'google-apis-androidpublisher_v3', '~> 0.34.0', feature_category: :shared
  
@@ -29,7 +29,7 @@
  gem 'google-cloud-artifact_registry-v1', '~> 0.11.0', feature_category: :shared
  gem 'google-cloud-compute-v1', '~> 2.6.0', feature_category: :shared
  
-@@ -284,7 +284,7 @@ group :puma do
+@@ -287,7 +287,7 @@ group :puma do
  gem 'rack-timeout', '~> 0.7.0', require: 'rack/timeout/base', feature_category: :shared
  
  group :puma do
@@ -38,16 +38,16 @@
    gem 'sd_notify', '~> 0.1.0', require: false, feature_category: :shared
  end
  
-@@ -292,7 +292,7 @@ gem 'state_machines-activerecord', '~> 0.8.0', feature
+@@ -295,7 +295,7 @@ gem 'state_machines-activerecord', '~> 0.8.0', feature
  gem 'state_machines-activerecord', '~> 0.8.0', feature_category: :shared
  
  # Background jobs
--gem 'sidekiq', path: 'vendor/gems/sidekiq-7.2.4', require: 'sidekiq', feature_category: :scalability
-+gem 'sidekiq', '~> 7.2.4', require: 'sidekiq', feature_category: :scalability
+-gem 'sidekiq', path: 'vendor/gems/sidekiq', require: 'sidekiq', feature_category: :scalability
++gem 'sidekiq', '>= 7.3.9', require: 'sidekiq', feature_category: :scalability
  gem 'sidekiq-cron', '~> 1.12.0', feature_category: :scalability
  gem 'gitlab-sidekiq-fetcher',
    path: 'vendor/gems/sidekiq-reliable-fetch',
-@@ -430,7 +430,7 @@ gem 'snowplow-tracker', '~> 0.8.0', feature_category: 
+@@ -433,7 +433,7 @@ gem 'snowplow-tracker', '~> 0.8.0', feature_category: 
  gem 'snowplow-tracker', '~> 0.8.0', feature_category: :product_analytics
  
  # Metrics
@@ -56,7 +56,7 @@
  gem 'prometheus-client-mmap', '~> 1.2.8', require: 'prometheus/client', feature_category: :shared
  
  # Event-driven reactor for Ruby
-@@ -472,138 +472,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
+@@ -475,140 +475,15 @@ gem 'warning', '~> 1.5.0', feature_category: :shared
  
  gem 'warning', '~> 1.5.0', feature_category: :shared
  
@@ -106,11 +106,11 @@
 -  # Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
 -  gem 'minitest', '~> 5.11.0', feature_category: :shared
 -
--  gem 'spring', '~> 4.1.0', feature_category: :shared
+-  gem 'spring', '~> 4.3.0', feature_category: :shared
 -  gem 'spring-commands-rspec', '~> 1.0.4', feature_category: :shared
 -
 -  gem 'gitlab-styles', '~> 13.1.0', feature_category: :tooling, require: false
--  gem 'haml_lint', '~> 0.58', feature_category: :tooling
+-  gem 'haml_lint', '~> 0.58', feature_category: :tooling, require: false
 -
 -  # Benchmarking & profiling
 -  gem 'benchmark-ips', '~> 2.14.0', require: false, feature_category: :shared
@@ -139,6 +139,8 @@
 -  gem 'vite_ruby', '~> 3.9.0', feature_category: :shared
 -
 -  gem 'gitlab-housekeeper', path: 'gems/gitlab-housekeeper', feature_category: :tooling
+-
+-  gem 'yard', '~> 0.9', require: false, feature_category: :tooling
 -end
 -
  group :development, :test, :danger do
@@ -195,7 +197,7 @@
  gem 'octokit', '~> 9.0', feature_category: :importers
  # Needed by octokit: https://github.com/octokit/octokit.rb/pull/1688
  gem 'faraday-multipart', '~> 1.0', feature_category: :importers
-@@ -638,16 +515,16 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
+@@ -643,16 +518,16 @@ gem 'spamcheck', '~> 1.3.0', feature_category: :inside
  gem 'spamcheck', '~> 1.3.0', feature_category: :insider_threat
  
  # Gitaly GRPC protocol definitions
@@ -215,7 +217,7 @@
  
  gem 'google-protobuf', '~> 3.25', '>= 3.25.3', feature_category: :shared
  
-@@ -668,7 +545,7 @@ gem 'gitlab-net-dns', '~> 0.10.0', feature_category: :
+@@ -673,7 +548,7 @@ gem 'gitlab-net-dns', '~> 0.10.0', feature_category: :
  gem 'gitlab-net-dns', '~> 0.10.0', feature_category: :shared
  
  # Countries list
@@ -224,7 +226,7 @@
  
  gem 'retriable', '~> 3.1.2', feature_category: :shared
  
-@@ -749,10 +626,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
+@@ -754,10 +629,15 @@ gem 'duo_api', '~> 1.3', feature_category: :system_acc
  
  gem 'duo_api', '~> 1.3', feature_category: :system_access
  
@@ -240,4 +242,4 @@
 -gem "i18n_data", "~> 0.13.1", feature_category: :system_access
 +gem "i18n_data", "~> 0.13", feature_category: :system_access
  
- gem "gitlab-cloud-connector", "~> 1.0.0", require: 'gitlab/cloud_connector', feature_category: :cloud_connector
+ gem "gitlab-cloud-connector", "~> 1.5", require: 'gitlab/cloud_connector', feature_category: :cloud_connector
diff --git a/www/gitlab/files/patch-config_gitlab.yml.example b/www/gitlab/files/patch-config_gitlab.yml.example
index a78db5ae4e8c..09cb658db5d2 100644
--- a/www/gitlab/files/patch-config_gitlab.yml.example
+++ b/www/gitlab/files/patch-config_gitlab.yml.example
@@ -1,6 +1,6 @@
---- config/gitlab.yml.example.orig	2025-03-19 10:41:02 UTC
+--- config/gitlab.yml.example.orig	2025-04-16 04:05:48 UTC
 +++ config/gitlab.yml.example
-@@ -478,7 +478,7 @@ production: &base
+@@ -484,7 +484,7 @@ production: &base
    ## GitLab Pages
    pages:
      enabled: false
@@ -9,7 +9,7 @@
      # The location where pages are stored (default: shared/pages).
      # path: shared/pages
  
-@@ -488,9 +488,9 @@ production: &base
+@@ -494,9 +494,9 @@ production: &base
      host: example.com
      port: 80 # Set to 443 if you serve the pages with HTTPS
      https: false # Set to true if you serve the pages with HTTPS
@@ -22,7 +22,7 @@
  
      # File that contains the shared secret key for verifying access for gitlab-pages.
      # Default is '.gitlab_pages_secret' relative to Rails.root (i.e. root of the GitLab app).
-@@ -1221,13 +1221,13 @@ production: &base
+@@ -1227,13 +1227,13 @@ production: &base
    repositories:
      storages: # You must have at least a `default` storage path.
        default:
@@ -38,7 +38,7 @@
      # archive_permissions: 0640 # Permissions for the resulting backup.tar file (default: 0600)
      # keep_time: 604800   # default: 0 (forever) (in seconds)
      # pg_schema: public     # default: nil, it means that all schemas will be backed up
-@@ -1262,12 +1262,12 @@ production: &base
+@@ -1268,12 +1268,12 @@ production: &base
  
    ## GitLab Shell settings
    gitlab_shell:
@@ -54,7 +54,7 @@
  
      # Git over HTTP
      upload_pack: true
-@@ -1282,7 +1282,7 @@ production: &base
+@@ -1288,7 +1288,7 @@ production: &base
    workhorse:
      # File that contains the secret key for verifying access for gitlab-workhorse.
      # Default is '.gitlab_workhorse_secret' relative to Rails.root (i.e. root of the GitLab app).
@@ -63,7 +63,7 @@
  
    cell:
      # enabled: false
-@@ -1300,7 +1300,7 @@ production: &base
+@@ -1306,7 +1306,7 @@ production: &base
      # enabled: true
      # File that contains the secret key for verifying access for gitlab-kas.
      # Default is '.gitlab_kas_secret' relative to Rails.root (i.e. root of the GitLab app).
@@ -72,7 +72,7 @@
  
      # The URL to the external KAS API (used by the Kubernetes agents)
      # external_url: wss://kas.example.com
-@@ -1327,13 +1327,13 @@ production: &base
+@@ -1333,13 +1333,13 @@ production: &base
  
    ## GitLab Elasticsearch settings
    elasticsearch:
@@ -88,7 +88,7 @@
  
    ## Webpack settings
    # If enabled, this will tell rails to serve frontend assets from the webpack-dev-server running
-@@ -1354,18 +1354,18 @@ production: &base
+@@ -1360,18 +1360,18 @@ production: &base
  
      # Sidekiq exporter is a dedicated Prometheus metrics server optionally running alongside Sidekiq.
      sidekiq_exporter:
@@ -114,7 +114,7 @@
  
      # Web exporter is a dedicated Prometheus metrics server optionally running alongside Puma.
      web_exporter:
-@@ -1592,13 +1592,13 @@ test:
+@@ -1598,13 +1598,13 @@ test:
          gitaly_address: unix:tmp/tests/gitaly/praefect.socket
  
    gitaly:
diff --git a/www/gitlab/pkg-message b/www/gitlab/pkg-message
index 4c0ce4714446..6428be5f3115 100644
--- a/www/gitlab/pkg-message
+++ b/www/gitlab/pkg-message
@@ -6,7 +6,7 @@ Gitlab was installed successfully.
 You now need to set up the various components of Gitlab, so please
 follow the instructions in the guide at:
 
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/17.10-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/install/17.11-freebsd.md
 EOM
   type: install
 }
@@ -20,7 +20,7 @@ EOM
 If you just installed an major upgrade of GitLab, for example you
 switched from 17.9.x to 17.10.x, please follow the instructions in the guide at:
 
-https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/17.9-17.10-freebsd.md
+https://gitlab.com/mfechner/freebsd-gitlab-docu/blob/master/update/17.10-17.11-freebsd.md
 
 If you just installed an minor upgrade of GitLab please follow
 the instructions in the guide at: