GitLab 17.4 includes PostgreSQL 16 by default for fresh installations of GitLab.
GitLab 17.5 will include OpenSSL V3. This will affect Omnibus instances with external integration setup's that do not meet the minimum requirements of TLS 1.2 or above for outbound connections, along with at least 112-bit encryption for TLS certificates. Please review our OpenSSL upgrade documentation for more information or if your are unsure if your instance will be affected.
Omnibus improvements (self-managed only):
Omnibus Package
We added new endpoints to the Groups API and Projects API to retrieve the groups that have been invited to a group or project. This functionality is available only on the Members page of a group or project. We hope that this addition will make it easier to automate membership management for your groups and projects. The endpoints are rate-limited to 60 requests per minute per user.
List groups invited to a group or project using the Groups or Projects API:
Groups & Projects
We have simplified the display of the source column on the Members page for groups and projects. Direct members are still indicated as Improved source display for group and project members:
Groups & Projects
Direct member
. Inherited members are now listed as Inherited from
followed by the group name. Members that were added by inviting a group to the group or project are listed as Invited group
followed by the group name. For members that inherited from an invited group that was added to a parent group, we now display the last step to keep the display actionable for users managing membership.
Although you can configure Flux to trigger reconciliations at specified intervals, there are situations where you might want an immediate reconciliation. In past releases, you could trigger the reconciliation from a CI/CD pipeline or from the command line. In GitLab 17.4, you can now trigger a reconciliation from a dashboard for Kubernetes with no additional configuration.
To trigger a reconciliation, go to a configured dashboard and select the Flux status badge.
Trigger a Flux reconciliation from the cluster UI:
Deployment Management
Previously, GitLab provided the ability to resend webhook requests only in the UI, which was inefficient if many So that you can handle failed webhook requests programmatically, in this release thanks to a community contribution, we You can now:
Thanks to Phawin for this community contribution!
Resend failed webhook requests with the API:
Webhooks
requests failed.
added API endpoints for resending them:
id
of any event to resend it.
From this release, we support an idempotency key in the headers of webhook requests. An idempotency key is a unique ID that remains consistent across webhook retries, which Thanks to Van for this community contribution!
Idempotency keys for webhook requests:
Webhooks
allows webhook clients to detect retries. Use the Idempotency-Key
header to ensure the idempotency of webhook effects on integrations.
GitLab provides a real-time view into your pods and streaming pod logs. Until now, however, we didn't show you resource-specific event information from the UI, This is the first time we've added events to the UI. Currently, events are refreshed every time you open the resource details view. You can track the development of real-time event streaming in issue 470042.
List Kubernetes resource events:
Deployment Management
so you still had to use 3rd party tools to debug Kubernetes deployments.
This release adds events to the resource details view of the dashboard for Kubernetes.
Plan
You can now adjust the wiki sidebar to see longer page titles, improving the overall discoverability ofResizable wiki sidebar:
Wiki
content. As wiki content grows, having a resizable sidebar helps manage and browse through complex hierarchies or extensive
lists of pages more efficiently.
Previously, to create a GitLab Pages project, you needed a domain formatted like Removing the requirement for wildcard certificates eases administrative overhead associated withGitLab Pages without wildcard DNS is generally available (self-managed only):
Pages
name.example.io
or name.pages.example.io
. This requirement meant you had to set up wildcard DNS records and
TLS certificate. In this release, setting up a GitLab Pages project without a DNS wildcard has
moved from beta to generally available.
GitLab Pages. Some customers can't use GitLab Pages because of organizational restrictions on
wildcard DNS records or certificates.
Create
Code intelligence in GitLab provides code navigation features when browsing a repository. Getting started with code navigation is often complicated, as you must configure a CI/CD job. This job can require custom scripting to provide the correct output and artifacts.
GitLab now supports an official Code intelligence CI/CD component for easier setup. Add this component to your project by following the instructions for using a component. This greatly simplifies adopting code intelligence in GitLab.
Currently, the component supports these languages:
We'll continue to evaluate available SCIP indexers as we look to broaden language support for the new component. If you're interested in adding support for a language, please open a merge request in the code intelligence component project.
CI/CD component for code intelligence:
Code Review Workflow
When you share a link to a specific file in a merge request, it's often because you want the person to look at something within that file. Merge requests previously needed to load all of the files before scrolling to the specific position you've referenced. Linking directly to a file is a great way to improve the speed of collaboration in merge requests:
Feedback about linked files can be left in issue 439582.
Linked files in merge request show first:
Code Review Workflow
Merge requests have many required checks that must pass before they are mergeable. These checks can include approvals, unresolved threads, pipelines, and other items that need to be satisfied. When you're responsible for merging code, it can be hard to keep track of all of these events, and know when to come back and check to see if a merge request can be merged.
GitLab now supports Auto-merge for all checks in merge requests. Auto-merge enables any user who is eligible to merge to set a merge request to Auto-merge, even before all the required checks have passed. As the merge request continues through its lifecycle, the merge request automagically merges after the last failing check passes.
We're really excited about this improvement to accelerate your merge request workflows. You can leave feedback about this feature in issue 438395.
Auto-merge when all checks pass:
Code Review Workflow
Verify
You can now use JaCoCo coverage reports, a popular standard for coverage calculation, inside your merge requests. The feature is available as beta, but ready for testing by anyone who wants to use JaCoCo coverage reports right away. If you have any feedback, feel free to contribute to the feedback issue.
JaCoCo support for test coverage visualization available in beta:
Code Testing and Coverage
We’re also releasing GitLab Runner 17.4 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.
The list of all changes is in the GitLab Runner CHANGELOG.
GitLab Runner 17.4:
GitLab Runner Core
What's new:
Bug Fixes:
You might not want anyone to see the value of a variable after it is saved to project settings. You can now select the new Masked and hidden visibility option when creating a CI/CD variable. Selecting this option will permanently mask the value of the variable in the CI/CD settings UI, restricting the value from being displayed to anyone in the future and decreasing visibility of your data.
Hide CI/CD variable values in the UI:
Variables
Secure
Both pipeline and client-side Secret Detection now support detection of Anthropic API keys.
Secret Detection support for Anthropic API keys:
Secret Detection
Govern
Administrators can now decide if they want to enforce a mandatory expiration date for personal, project, and group access tokens. If administrators disable this setting, any new access token generated will not be required to have an expiration date. By default this setting is enabled, and an expiration less than that of the maximum allowed lifetime is required. This setting is available in GitLab 16.11 and later.
Optional token expiration (self-managed only):
System Access