GitLab 18.0 release notes

The following features were added in this release.

In addition, we want to thank all of our contributors, including this month's notable contributor.

This month’s Notable Contributor: Michael Hofer

Michael Hofer champions GitLab’s open source mission as both a top contributor and community leader. With over 50 contributions this year, his work strengthened GitLab’s Geo features and Secrets Manager, based on OpenBao. He topped the April Hackathon while supporting fellow contributors and leading community projects.

“I truly appreciate that everyone can contribute to GitLab!” says Michael. “The team is great to work with, it’s a lot of fun, and everyone is super helpful, especially when we team up across open source initiatives like OpenBao and SLSA.”

Michael is the CTO at Adfinis, an international IT service provider specializing in planning, building, and running mission critical open source workloads. He is passionate about fostering collaboration and promoting open source solutions across organizations.

Recently, Adfinis participated in GitLab’s Co-Create program, which pairs organizations with GitLab’s product and engineering teams to build GitLab together. “We highly recommend Co-Create to all organizations,” Michael says. “It led to a number of cool contributions, including rootless Podman builds, Glimmer syntax highlighting, and other improvements.”

“The Geo Team really appreciates and enjoys working with Michael,” says Lucie Zhao, Engineering Manager at GitLab, who nominated Michael for the award. “With his excellent contributions over the last few milestones, he has become the most well-known community contributor within our team.”

GitLab team members Lee Tickett, Chloe Fons, and Alex Scheel supported the nomination. Alex adds, “Michael’s leadership in OpenBao has enabled us to effectively collaborate in bringing forward a secrets management solution for our customers, with the transparency that aligns with our GitLab values.”

Thanks to Michael and the Adfinis team for co-creating GitLab!

Primary features

GitLab Premium and Ultimate with Duo

We’re excited to announce GitLab Premium with Duo and GitLab Ultimate with Duo. GitLab Premium and Ultimate now include AI-native features.

GitLab’s AI-native features include Code Suggestions and Chat within the IDE. Development teams can use these features to:

  • Analyze, understand, and explain code
  • Write secure code faster
  • Quickly generate tests to maintain code quality
  • Easily refactor code to improve performance or use specific libraries
Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com
Add-ons: Duo Pro, Duo Enterprise

Repository X-Ray now available on GitLab Duo Self-Hosted

You can now use Repository X-Ray with Code Suggestions on GitLab Duo Self-Hosted. This feature is in beta for GitLab Duo Self-Hosted, and is generally available on GitLab Self-Managed instances.
Available in: Premium, Ultimate
Add-ons: Duo Enterprise

Automatic reviews with Duo Code Review

Duo Code Review provides valuable insights during the review process, but currently requires you to manually request reviews on each merge request.

You can now configure GitLab Duo Code Review to run automatically on merge requests by updating your project’s merge request settings. When enabled, Duo Code Review automatically reviews merge requests unless:

  • The merge request is marked as draft.
  • The merge request contains no changes.

Automatic reviews ensure that all code in your project receives a review, consistently improving code quality across your codebase.

Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com
Add-ons: Duo Enterprise

Code Suggestions prompt caching

Code Suggestions now includes prompt caching. Prompt caching significantly improves code completion latency by avoiding the re-processing of cached prompt and input data. The cached data is never logged to any persistent storage, and you can optionally disable prompt caching in the GitLab Duo settings.
Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com
Add-ons: Duo Pro, Duo Enterprise

Improved Duo Code Review context

Duo Code Review now provides more comprehensive context for improved analysis. The key improvements are:

  • Includes a merge request’s title and description to better understand the purpose of proposed changes.
  • Examines all diffs simultaneously to recognize cross-file relationships and reduce false positives.
  • Provides the full content of changed files to understand how modifications fit within existing code patterns.

These enhancements reduce inaccurate suggestions and deliver more relevant and higher quality code reviews.

Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com
Add-ons: Duo Enterprise

Scale and Deployments

List only Enterprise users for contributions reassignment on GitLab.com

In this release we’ve improved the placeholder users mapping experience by narrowing down the user selection dropdown to only Enterprise users associated with the top-level group. Previously, when reassigning users’ contributions after an import to GitLab.com, you would see in the dropdown list all active users on the platform, making it difficult to identify the correct user, especially when SCIM provisioning had modified usernames. Now, if your top-level group uses the Enterprise users feature, the dropdown list will display only users claimed by your organization, significantly reducing the potential for errors during user reassignment. The same scoping is also applied to CSV-based reassignment, preventing accidental assignment to users outside your organization.
Available in: Premium, Ultimate
Offerings: GitLab.com

Support for multiple workspaces in the GitLab for Slack app

The GitLab for Slack app now supports multiple workspaces for GitLab Self-Managed and GitLab Dedicated customers. Enabling multiple workspaces allows organizations with federated Slack environments to maintain seamless GitLab integrations across all their workspaces. To enable support for multiple workspaces, configure the GitLab for Slack app as an unlisted distributed app.
Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated

Delete groups and placeholder users

In GitLab 18.0, when you delete a top-level group, placeholder users associated with the group are deleted as well. If placeholder users are associated with other projects, they are only removed from the top-level group. This way, unnecessary placeholder users are removed without disrupting the history or attributions of other projects.
Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Internal releases available for GitLab Dedicated

GitLab Dedicated customers with strict security requirements and compliance obligations require the highest level of protection for their development environments. Today, we’re introducing Internal Releases, a new private release that allows us to remediate GitLab Dedicated instances for critical vulnerabilities before public disclosure, ensuring GitLab Dedicated customers are never exposed to them. This new capability delivers immediate protection for critical vulnerabilities found in GitLab parallel to response for GitLab.com. This new process does not require customer action.
Available in: Ultimate
Offerings: GitLab Dedicated

GitLab chart 9.0 released with breaking changes

  • Breaking change: Support for PostgreSQL 14 and 15 has been removed. Make sure you are running PostgreSQL 16 before upgrading.
  • Breaking change: The bundled Prometheus chart was updated from 15.3 to 27.11. Along with the Prometheus chart upgrade, the Prometheus version was updated from 2.38 to 3.0. Manual steps are required to perform the upgrade. If you have Alertmanager, Node Exporter, or Pushgateway enabled, you must also update your Helm values. For more information, see the migration guide.
  • Breaking change: The default NGINX controller image was updated from version 1.3.1 to 1.11.2. If you’re using the GitLab NGINX chart, and you have set your own NGINX RBAC rules, new RBAC rules must exist. For more information, see the upgrade guide for more information.
Available in: Free, Premium, Ultimate

Event data collection

In GitLab 18.0, we are enabling event-level product usage data collection from GitLab Self-Managed and GitLab Dedicated instances. Unlike aggregated data, event-level data provides GitLab with deeper insights into usage, allowing us to improve user experience on the platform and increase feature adoption. For detailed instructions on how to adjust data sharing settings, please refer to our documentation.
Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated

Deletion protection available for all users

Project and group delayed deletion is now available for all GitLab users, including those on our Free tier. This essential safety feature adds a grace period (7 days on GitLab.com) before deleted groups and projects are permanently removed. This feature allows recovery from accidental deletions without complex recovery operations.

By making data safety a core feature, GitLab can help better protect your work against data loss events.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Delayed project deletion for user namespaces

Delayed project deletion is now available for projects in user namespaces (personal projects). Previously, this safeguard against accidental data loss was only available for group namespaces. When you delete a project in your user namespace, it will now enter a “pending deletion” state for the duration configured in your instance settings (7 days on GitLab.com), rather than being immediately deleted. This creates a recovery window during which you can restore the project if needed.

We hope this enhancement provides greater peace of mind when managing your personal projects in GitLab.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

New `active` parameter for Groups and Projects REST APIs

We’ve added a new active parameter to our Groups and Projects REST APIs that simplifies filtering groups based on their status. When set to true, only non-archived groups or projects not marked for deletion are returned. When set to false, only archived groups or projects marked for deletion are returned. If the parameter is undefined, no filtering is applied. This enhancement helps you efficiently manage your workflows by targeting specific statuses through simple API calls.

Thank you @dagaranupam for adding this parameter to the Projects API.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Rate limits for Groups, Projects, and Users API

We have added API rate limits for projects, groups, and users to improve platform stability and performance for all users. These changes are in response to increased API traffic that has been affecting our services.

The limits have been carefully set based on average usage patterns and should provide sufficient capacity for most use cases. If you exceed these limits, you’ll receive a “429 Too Many Requests” response.

For complete details about specific rate limits and implementation information, please read the related blog post.

Available in: Free, Silver, Gold
Offerings: GitLab.com

Unified DevOps and Security

Security scanners now support MR pipelines

You can now choose to run Application Security Testing (AST) scanners in merge request (MR) pipelines. To minimize the impact to your pipelines, this is as an opt-in behavior you can control.

Previously, the default behavior depended on whether you used the Stable or Latest CI/CD template edition to enable a scanner:

  • In Stable templates, scan jobs ran in branch pipelines only. MR pipelines weren’t supported.
  • In Latest templates, scan jobs ran in MR pipelines when an MR was open, and ran in branch pipelines if there was no associated MR. You couldn’t control this behavior.

Now, a new option, AST_ENABLE_MR_PIPELINES, allows you to control whether to run jobs in MR pipelines. The default behavior for both Stable and Latest templates remains the same. Specifically:

  • Stable templates continue to run scan jobs in branch pipelines by default, but you can set AST_ENABLE_MR_PIPELINES: "true" to use MR pipelines instead when an MR is open.
  • Latest templates continue to run scan jobs in MR pipelines by default when an MR is open, but you can set AST_ENABLE_MR_PIPELINES: "false" to use branch pipelines instead.

This improvement affects all security scanning templates except for API Discovery (API-Discovery.gitlab-ci.yml), which currently defaults to MR pipelines. We also changed the API Discovery template to align with other Stable templates in GitLab 18.0 and use branch pipeline by default.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Display and filter archived projects in the compliance projects report

In the compliance projects report, you can view the compliance frameworks applied to projects within a group or subgroup.

However, the report lacked the ability to show whether a project is archived or not, which could be useful information for managing compliance across active and archived projects.

As such, we’ve added an indicator to show whether a project is archived. This will provide you with better visibility and context when reviewing compliance frameworks across both active and archived projects.

This feature includes:

  • An archived status badge for each project in the compliance projects report to show whether a project is archived.
  • A filter that allows you to toggle between archived, non-archived, or all projects.
Available in: Ultimate, Premium
Offerings: GitLab Dedicated, GitLab.com

Create a workspace from merge requests

You can now create a workspace directly from a merge request with the new Open in Workspace option. This feature automatically configures a workspace with the merge request’s branch and context, allowing you to:

  • Review code changes in a fully configured environment.
  • Run tests on the merge request branch to verify functionality.
  • Make additional modifications to the merge request without local setup.
Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

View open merge requests targeting files

Previously, when working on code files, you had no visibility into who else might be modifying the same file in other branches. This lack of awareness led to merge conflicts, duplicated work, and inefficient collaboration.

Now you can easily identify all open merge requests that modify the file you’re viewing in the repository. This feature helps you:

  • Identify potential merge conflicts before they happen.
  • Avoid duplicating work that’s already in progress.
  • Improve collaboration by providing visibility into in-flight changes.

A badge displays the number of open merge requests modifying the file, and hovering over it reveals a popover with the list of these merge requests.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Shared Kubernetes namespace for workspaces

You can now create GitLab workspaces in a shared Kubernetes namespace. This removes the need to create a new namespace for every workspace and eliminates the requirement to give elevated ClusterRole permission to the agent. With this feature, you can more easily adopt workspaces in secure or restricted environments, offering a simpler path to scale.

To enable shared namespaces, set the shared_namespace field in your agent configuration file to specify the Kubernetes namespace you want to use for all workspaces.

Thank you to the half dozen community contributors who helped build this feature through GitLab’s Co-Create program!

Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Improved pod status visualizations in the dashboard for Kubernetes

You can use the dashboard for Kubernetes to monitor your deployed applications. Until now, pods with container errors like CrashLoopBackOff or ImagePullBackOff were displayed with a “Pending” or “Running” status, which makes it difficult to identify problematic deployments without using kubectl.

In GitLab 18.0, error states in the UI show a specific container’s status, similar to the kubectl output. Now, you can quickly identify and troubleshoot failing pods without leaving the GitLab interface.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Exclude packages from license approval rules

In merge request approval policies, this new enhancement to license approval policies gives legal and compliance teams more control over which packages can use specific licenses. You can now create exceptions for pre-approved packages, even when they use licenses that would normally be blocked by your organization’s policies.

Previously, in license approval policies, if you blocked a license like AGPL-3.0, it was blocked for all packages across your organization. This created challenges when:

  • Your legal team pre-approved specific packages with otherwise restricted licenses.
  • You needed to use the same package across hundreds of projects.
  • Different teams required different license exceptions.

With this release, you can maintain strict license governance while allowing necessary exceptions, significantly reducing approval bottlenecks and manual reviews. For example, you can:

  • Define package-specific exceptions to your license approval rules using Package URL (PURL) format.
  • Allow specific packages (or package versions) to use otherwise restricted licenses.
  • Block specific packages (or package versions) from using generally allowed licenses.

To add exceptions, follow this workflow when you create or edit a license approval policy:

  1. In your group, go to Security & Compliance > Policies
  2. Create or edit a license approval policy.
  3. Find the new package exception options in the visual editor or configure them in YAML mode.
  4. Choose between allowlist or denylist mode for the licenses.
  5. Add specific licenses to your policy.
  6. For each license, define package exceptions in PURL format (for example, pkg:npm/@angular/animation@12.3.1).
  7. Specify whether to include or exclude these packages from the license rule.

The policy then enforces your license rules while respecting the defined exceptions, giving you granular control over license compliance across your organization.

Available in: Ultimate
Offerings: GitLab Dedicated, GitLab.com

Limit maximum user session length

Administrators can now choose if the maximum length of a user session is computed from the initial sign-in or from the last activity. Users are notified that the session is ending, but cannot prevent the session from expiring or extend the session. This feature is disabled by default.

Thank you John Parent for your contribution!

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated

GitLab Query Language views enhancements

We’ve made significant improvements to GitLab Query Language (GLQL) views. These improvements include support for:

  • The >= and <= operators for all date types
  • The View actions dropdown in views
  • The Reload action
  • Field aliases
  • Aliasing columns to a custom name in GLQL tables

We welcome your feedback on this enhancement, and on GLQL views in general, in issue 509791.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Pages template improvements

GitLab provides templates for popular static site generators. We’ve taken a deep dive into available templates using a scoring framework, and refined the list to include only the most popular templates.

Refining templates available for GitLab Pages streamlines the website creation process. Use templates to launch professional-looking sites with minimal technical expertise. Enhanced templates also provide modern, responsive designs, eliminating the need for custom development work.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Configure Jira issues from vulnerabilities using the Jira integration API

Previously, you had to configure the integration to create Jira issues from vulnerabilities from the Project settings page.

You can now configure this integration from the project integrations API, which allows you to automate the setup.

Available in: Ultimate
Offerings: GitLab Dedicated, GitLab.com

Improved traceability of redetected vulnerabilities

Previously, when a resolved vulnerability was redetected and changed status, the vulnerability details did not provide information to indicate when and why the status change occurred.

GitLab now adds a system note to the vulnerability history when resolved vulnerabilities change status because they appeared in a new scan. This additional information helps users understand why vulnerabilities have changed status.

Available in: Ultimate
Offerings: GitLab Dedicated, GitLab.com

Bulk add vulnerabilities to issues from the vulnerability report

With this release you can now bulk add vulnerabilities to new or existing GitLab issues from the vulnerability report. You may now associate multiple issues and vulnerabilities together. Additionally, related vulnerabilities are now listed within the issue page.
Available in: Ultimate
Offerings: GitLab Dedicated, GitLab.com

Disable user invitations

You can now remove the ability to invite members to groups or projects.

  • On GitLab.com, this setting is configured by Owners of groups with enterprise users and applies to any sub-groups or projects within the top-level group. No user can send invites while this setting is enabled.
  • On GitLab Self-Managed, this setting is by administrators and applies to the entire instance. Administrators can still invite users directly.

This feature helps organizations maintain strict control over membership access.

Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

LDAP authentication with GitLab username

LDAP users can now authenticate requests with their GitLab username. Previously, if the GitLab username didn’t match their LDAP username, GitLab returned an authentication error. This change helps users maintain separate naming conventions in GitLab and LDAP systems without disrupting approval workflows.
Available in: Premium, Ultimate

Support for SHA256 SAML certificates

GitLab now automatically detects and supports both SHA1 and SHA256 certificate fingerprints for Group SAML authentication. This maintains backward compatibility with existing SHA1 fingerprints while adding support for more secure SHA256 fingerprints. This upgrade is essential to prepare for the upcoming ruby-saml 2.x release that will make SHA256 the default.
Available in: Premium, Ultimate
Offerings: GitLab Dedicated, GitLab.com

Granular permissions for job tokens in beta

Pipeline security just got more flexible. Job tokens are ephemeral credentials that provide access to resources in pipelines. Until now, these tokens inherited full permissions from the user, often resulting in unnecessarily broad access capabilities.

With our new fine-grained permissions for job tokens beta feature, you can now precisely control which specific resources a job token can access within a project. This allows you to implement the principle of least privilege in your CI/CD workflows, granting only the minimal access necessary for each job to complete its tasks.

We’re actively seeking community feedback on this feature. If you have questions, want to share your implementation experience, or would like to engage directly with our team about potential improvements, please visit our feedback issue.

Available in: Free, Premium, Ultimate
Offerings: GitLab.com

New permissions for custom roles

You can create custom roles with the Manage protected environments permission. Custom roles allow you to grant only the specific permissions users need to complete their tasks. This helps you define roles that are tailored to the needs of your group, and can reduce the number of users who need the Owner or Maintainer role.
Available in: Ultimate
Offerings: GitLab Dedicated, GitLab.com

New CI/CD analytics view for projects in limited availability

The redesigned CI/CD analytics view transforms how your development teams analyze, monitor, and optimize pipeline performance and reliability. Developers can access intuitive visualizations in the GitLab UI that reveal performance trends and reliability metrics. Embedding these insights in your project repository eliminates context-switching that disrupts developer flow. Teams can identify and address pipeline bottlenecks that drain productivity. This enhancement leads to faster development cycles, improved collaboration, and data-driven confidence to optimize your CI/CD workflows in GitLab.
Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated

GitLab Runner 18.0

We’re also releasing GitLab Runner 18.0 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.

What’s new:

Bug Fixes:

The list of all changes is in the GitLab Runner CHANGELOG.

Available in: Free, Premium, Ultimate
Offerings: GitLab Dedicated