Previously, group Owners had no way to programmatically delete SAML or SCIM identities. This made it difficult to troubleshoot issues with the user provisioning and sign-in processes. Now, group Owners can use new endpoints to delete these identities.
Thank you jgao1025 for your contribution!
Use the API to delete a user's SAML and SCIM identities (SaaS only):
User Management
Ultimate
The compliance violations report can contain a lot of information. Previously, you could only view the information in the GitLab UI. This was fine for individual issues, but
could be tricky if you needed to, for example:
In GitLab 16.5, you can now export a list of the items included in the compliance violations report in CSV format.
The permissions to manage group members and project access tokens have been added to the custom roles framework. You can add these permissions to any base role to create a custom role. By creating custom roles with only the permissions needed to accomplish a particular set of tasks, you do not have to unnecessarily assign highly privileged roles such as Maintainer and Owner to users.
Previously, you could configure only top-level group streaming audit events for Google Cloud Logging.
With GitLab 16.5, we've extended support for Google Cloud Logging to instance-level streaming destinations.
Previously, you had to delete HTTP headers added to audit event streaming destinations, even if you only wanted to deactivate
them temporarily.
With GitLab 16.5, you can use the Active checkbox in the GitLab UI to toggle each header on and off individually. You can use this to:
As a user, you require the ability to group vulnerabilities so that you can more efficiently triage vulnerabilities. With this release, you are able to group by severity or status. This will help you better answer questions like how many confirmed vulnerabilities are in a group or project, or how many vulnerabilities still need to be triaged.
The Compliance Center now includes a new tab for the standards adherence report.
This report initially includes a GitLab best practices standard, showing when the
projects in your group are not meeting the requirements for the checks included in the standard. The
three checks shown initially are:
The report contains details on the status of each check on a per project basis. It will
also show you when the check was last run, which standard the check applies to,
and how to fix any failures or problems that might be shown on the report. Future iterations
will add more checks and expand the scope to include more regulations and standards.
Additionally, we will be adding improvements to group and filter the report, so you
can focus on the projects or standards that matter most to your organization.
Export the compliance violations report:
Compliance Management
New customizable permissions:
User Management
Instance-level audit event streaming to Google Cloud Logging:
Audit Events
Activate and deactivate headers for streaming audit events:
Audit Events
Vulnerability report grouping by status and severity:
Vulnerability Management
Compliance standards adherence report:
Compliance Management
Secure
DAST analyzer updates: DAST
During the 16.5 release milestone, we enabled the following active checks for browser-based DAST by default:
- Check 78.1 replaces ZAP check 90020 and identifies command injection, which can be exploited by executing arbitrary OS commands on the target application server. This is a critical vulnerability that can lead to a full system compromise.
- Check 611.1 replaces ZAP check 90023 and identifies External XML Entity Injection (XXE), which can be exploited by causing an application's XML parser to include external resources.
- Check 94.4 replaces ZAP check 90019 and identifies "Server-side code injection (NodeJS)", which can be exploited by injecting arbitrary JavaScript code to be executed on the server.
- Check 113.1 replaces ZAP check 40003 and identifies "Improper Neutralization of CRLF Sequences in HTTP Headers ('HTTP Response Splitting')", which can be exploited by inserting Carriage Return / Line Feed (CRLF) characters to inject arbitrary data into HTTP responses.
Premium
The popularity of epics in GitLab continues to grow. Previously, finding epics was a little more difficult than other content types. With this release, you can now search and view results for epics when you use advanced search.
Deployments in regulated industries are a central topic of compliance. In previous releases, deployment approvals were not part of audited events, which made it difficult to tell when and how approval rules changed.
GitLab now ships with a new set of audit events for deployment approval and approval rule changes. These events fire when deployment approval rules change, or when approval rules for protected environments change.
You can now trigger bulk resync or reverify for any data component managed by Geo, through buttons in the Geo admin UI. Selecting the button will apply the operation to all data items related to the respective component. Before, this was only possible by logging into the Rails console. These actions are now more accessible, and the experience of troubleshooting and applying large scale changes that require a full resync or reverify of specific components, such as moving storage locations, is improved.
Find epics with advanced search:
Global Search
Integrate deployment approval and approval rule changes into audit events:
Environment Management
Geo adds bulk resync and reverify buttons for all components (self-managed only):
Geo-replication
, Disaster Recovery
Create
Create rules to set target branches for merge requests: Code Review Workflow
Some projects use multiple long-term branches for development, like
develop
andqa
. In these projects, you might want to keepmain
as the default branch since it represents the production state of the project. However, development work expects merge requests to targetdevelop
orqa
. Target branch rules help ensure merge requests target the appropriate branch for your project and development workflow.When you create a merge request, the rule checks the name of the branch. If the branch name matches the rule, the merge request pre-selects the branch you specified in the rule as the target. If the branch name does not match, the merge request targets the default branch of the project.
Verify
Fast-forward merge trains with semi-linear history: Merge Trains
In 16.4, we released Fast-forward merge trains, and as a continuation, we want to ensure we support all merge methods. Now, if you want to ensure your semi-linear commit history is maintained you can use semi-linear fast-forward merge trains.
Core
Administrators can now configure a locked user policy for their instance by choosing the number of unsuccessful sign-in attempts, and how long the user is locked for. For example, five unsuccessful sign-in attempts would lock a user for 60 minutes. This allows administrators to define a locked user policy that meets their security and compliance needs. Previously, the number of sign-in attempts and locked user time period were not configurable.
You can now use a new REST API endpoint at The GitLab backup and restore feature now supports storing repository data in object storage. This update improves performance by eliminating the intermediate steps used to create a large tarball, which needs to be manually stored in an appropriate location.
With this update, repository backups get stored in an object storage location of your choice (Amazon S3, Google Cloud Storage, Azure Cloud Data Storage, MinIO, etc.). This change eliminates the need to manually move data off of your Gitaly instance.
Omnibus improvements (self-managed only):
Omnibus Package
.deb
Linux packages have switched from gzip to xz compression,
resulting in smaller package sizes. This change might result in slower unpacking times during installation.
/opt/gitlab/embedded/selinux/rhel/7/
to /opt/gitlab/embedded/selinux
to reflect that the module isn't only for RHEL 7.
Configurable locked user policy (self-managed only):
System Access
API to create PAT for currently authenticated user (self-managed only):
System Access
user/personal_access_tokens
to create a new personal access token for the currently authenticated user. This token's scope is limited to k8s_proxy
for security reasons, so you can use it to only perform Kubernetes API calls using the agent for Kubernetes. Previously, only instance administrators could create personal access tokens through the API.
Back up and restore repository data in the cloud (self-managed only):
Gitaly
Manage
Reviewer information for merge requests in the Jira development panel: Integrations
With the GitLab for Jira Cloud app, you can connect GitLab and Jira Cloud to sync development information in real time. You can view this information in the Jira development panel. Previously, when a reviewer was assigned to a merge request, the reviewer information was not displayed in the Jira development panel. With this release, the reviewer name, email, and approval status are displayed in the Jira development panel when you use the GitLab for Jira Cloud app.
Changing context just got easier: Navigation & Settings
We've heard your feedback that on the left sidebar, it can be hard to find the search button and to change between things like projects and preferences. In this release, we've made the button more prominent. This aids discoverability as well as streamlining workflows into a single touch point.
You can try it out by selecting the Search or go to... button or with a keyboard shortcut by typing / or s.
Webhook now triggered when a release is deleted: Webhooks
You can use release events to monitor release objects and react to changes. Previously, a webhook was only triggered when a release was created or updated. In heavily regulated industries, deleting releases is a crucial event that must be monitored and followed up. With GitLab 16.5, a webhook is now also triggered when a release is deleted.
Plan
Resolve an issue thread: Team Planning
Long-running issues with many threads can be challenging to read and track. You can now resolve a thread on an issue when the topic of discussion has concluded.
Export individual wiki pages as PDF: Wiki
From GitLab 16.5, you can export individual wiki pages as PDF files. Now, sharing team knowledge is even more seamless. Exporting a wiki to PDF can be used for a variety of use cases. For example, to provide a copy of technical documentation that is kept in a wiki or share information in a wiki with project status. Gone is the need to leverage alternative tools to convert Markdown files to PDF, since in some organizations, using these tools is prohibited, creating another challenge. Thank you to JiHu for contributing this feature!
Add a child task, objective, or key result with a quick action: Portfolio Management
You can now add a child item for a task, objective, or key result by using the
/add_child
quick action.
Linked items widget in tasks, objectives, and key results: Portfolio Management
With this release, you can link tasks and OKRs as "related," "blocked by," or "blocking" to provide traceability between dependent and related work items.
When we migrate epics and issues to the work item framework, you will be able to link across all these types.
Set a parent for a task, objective, or key result with a quick action: Portfolio Management
You can now set a parent item for a task, objective, or key result by using the
/set_parent
quick action.
Verify
Make jobs API endpoint rate limit configurable
A rate limit for the
project/:id/jobs
API endpoint was added recently, defaulting to 600 requests per minute per user. As a follow up iteration, we are making this limit configurable, enabling instance administrators to set the limit that best matches their requirements.
Monitor
Redesigned Service Desk issues list: Service Desk
We've redesigned Service Desk issues list to load faster and more smoothly. It now matches more closely the regular issues list. Available features include:
- The same sorting and ordering options as on the issue list.
- The same filters, including the OR operator and filtering by issue ID.