GitLab.org/GitLab: Release v17.6.0-ee

Name: GitLab

Owner: GitLab.org

Release: GitLab 17.6

Released: 2024-11-21

License: MIT

Release Assets:

39 new features 3650 total badges

Verify
[macOS Sequoia 15 and Xcode 16 job image](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html) (SaaS only): GitLab Hosted Runners

You can now create, test, and deploy applications for the newest generations of Apple devices using macOS Sequoia 15 and Xcode 16.

GitLab's hosted runners on macOS help your development teams build and deploy macOS applications faster in a secure, on-demand build environment integrated with GitLab CI/CD.

Try it out today by using the macos-15-xcode-16 image in your .gitlab-ci.yml file.

Ultimate

11 new features 571 total badges

[Use self-hosted model for GitLab Duo Chat](https://docs.gitlab.com/ee/administration/self_hosted_models/) (self-managed only): Self-Hosted Models

You can now host selected large language models (LLMs) in your own infrastructure and configure those models as the source for GitLab Duo Chat. This feature is in beta and available with an Ultimate and Duo Enterprise subscription on self-managed GitLab environments.

With self-hosted models, you can use models hosted either on-premise or in a private cloud as the source for GitLab Duo Chat or Code Suggestions (introduced as a beta feature in GitLab 17.5). For Code Suggestions, we currently support open-source Mistral models on vLLM or AWS Bedrock, Claude 3.5 Sonnet on AWS Bedrock, and OpenAI models on Azure OpenAI. For Chat, we currently support open-source Mistral models on vLLM or AWS Bedrock, and Claude 3.5 Sonnet on AWS Bedrock. By enabling self-hosted models, you can leverage the power of generative AI while maintaining complete data sovereignty and privacy.

Please leave feedback in issue 501268.

[New tenant networking configurations for GitLab Dedicated](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/network_security.html#outbound-private-link) (self-managed only): GitLab Dedicated, Switchboard

As a GitLab Dedicated tenant administrator, you can now use Switchboard to set up outbound private links and private hosted zones. You can also monitor your network connections by viewing periodic snapshots in Switchboard.

Outbound private links and private hosted zones establish secure network connectivity between resources in your AWS account and GitLab Dedicated.

Plan
[Query user-level GitLab Duo Enterprise usage metrics](https://docs.gitlab.com/ee/api/graphql/reference/#aiusermetrics): Value Stream Management

Prior to this release, it was not possible to get GitLab Duo Chat and Code Suggestions usage data per Duo Enterprise user. In 17.6, we've added a GraphQL API to provide visibility into the number of code suggestions accepted and Duo Chat interactions for each active Duo Enterprise user. The API can help you get more granular insight into who is using which Duo Enterprise features and how frequently. This is the first iteration toward our goal of providing more comprehensive Duo Enterprise usage data within GitLab.

Application security testing
[Efficient risk prioritization with EPSS](https://docs.gitlab.com/ee/api/graphql/reference/#cveenrichmenttype): Software Composition Analysis

In GitLab 17.6, we added support for the Exploit Prediction Scoring System (EPSS). EPSS gives each CVE a score between 0 and 1 indicating the probability of the CVE being exploited in the next 30 days. You can leverage EPSS to better prioritize scan results and to help evaluate the potential impact a vulnerability may have on your environment.

This data is available to composition analysis users through GraphQL.

[Enable Secret Push Protection in your projects via API](https://docs.gitlab.com/ee/api/projects.html): Secret Detection

It's now easier to programatically enable secret push protection. We've updated the application settings REST API, allowing you to:

  1. Enable the feature in your self-managed instance so that it can be enabled on a per-project basis.
  2. Check whether the feature has been enabled on a project.
  3. Enable the feature for a specified project.
[Secret Push Protection audit events for applied exclusions](https://docs.gitlab.com/ee/user/application_security/secret_detection/exclusions.html): Secret Detection

Audit events are now logged when a secret push protection exclusion is applied. This enables security teams to audit and track any occurence when a secret on the project's exclusions list is allowed to be pushed.

[Support for license data from CycloneDX SBOMs](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx): Software Composition Analysis

The License Scanner now has the ability to consume a dependency's license from a CycloneDX SBOM that includes supported package types.

In cases where the licenses field of a CycloneDX SBOM is available, users will see license data from their SBOM. In cases where the SBOM lacks license information we will continue to provide this data from our License database.

Software supply chain security
[New audit event when merge requests are merged](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#compliance-management): Audit Events

With this release, when a merge request is merged, a new audit event type called merge_request_merged is triggered that contains key information about the merge request, including:

  • The title of the merge request
  • The description or summary of the merge request
  • How many approvals were required for merge
  • How many approvals were granted for merge
  • Which users approved the merge request
  • Whether committers approve the merge request
  • Whether authors approved the merge request
  • The date/time of the merge
  • The list of SHAs from Commit history
[New adherence checks for SAST and DAST security scanners](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_standards_adherence_dashboard.html#gitlab-standard): Compliance Management

GitLab offers a wide range of security scanners such as SAST, secret detection, dependency scanning, container scanning, and more so that you can check your applications for security vulnerabilities.

You need to have a way to show auditors and relevant compliance authorities that your applications have adhered to regulatory standards that require you to have security scanners set up for your repositories.

To help you demonstrate adherence to these standards, this release includes two new checks as part of the standard adherence report in the Compliance Centre. These new checks check whether SAST and DAST has been enabled for projects within a group. The checks confirm that the SAST and DAST security scanners correctly ran in a project and the pipeline results has the correct resulting artifacts.

Security risk management
[Prevent modification of group protected branches](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html#approval_settings): Security Policy Management

When a merge request approval policy is configured to prevent group branch modification, policies now account for protected branches configured for a group. This setting ensures that branches protected at the group level cannot be unprotected. Protected branches restrict certain actions, such as deleting the branch and force pushing to the branch. You can override this behavior and declare exceptions for specific top-level groups with the new approval_settings.block_group_branch_modification property to allow group owners to temporarily modify protected branches when necessary.

This new project override setting ensures that group protected branch settings cannot be modified to circumvent security and compliance requirements, ensuring more stable enforcement of protected branches.

[Vulnerability report grouping](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#group-vulnerabilities): Vulnerability Management

Users require the ability to view vulnerabilities in groups. This will help security analysts optimize their triage tasks by utilizing bulk actions. In addition users can see how many vulnerabilities match their group; i.e. how many OWASP Top 10 vulnerabilities are there?

Premium

12 new features 674 total badges

[Project events for group webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#project-events): Webhooks

In this release, we've added project events to group webhooks. Project events are triggered when:

  • A project is created in a group.
  • A project is deleted in a group.

These events are triggered for group webhooks only.

[Filter GitLab Duo users by assigned seat](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#view-assigned-gitlab-duo-users): Add-on Provisioning

In previous versions of GitLab, the user list displayed on the GitLab Duo seat assignment page could not be filtered, making it difficult to see which users had previously been assigned a GitLab Duo seat. Now, you can filter your user list by Assigned seat = Yes or Assigned seat = No to see to see which users are currently assigned or not assigned a GitLab Duo seat, allowing for ease in adjusting seat allocations.

[GitLab Duo seat assignment email update](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#assign-gitlab-duo-seats) (self-managed only): Seat Cost Management

All users on self-managed instances will receive an email when they are assigned a GitLab Duo seat.

Previously, those assigned a Duo Enterprise seat or those granted access by bulk assignment would not be notified. You wouldn't know you were assigned a seat unless someone told you, or you noticed new functionality in the GitLab UI.

To disable this email, an administrator can disable the duo_seat_assignment_email_for_sm feature flag.

Plan
[AI Impact Analytics API for GitLab Duo Pro](https://docs.gitlab.com/ee/api/graphql/reference/#aimetrics): Value Stream Management

GitLab Duo Pro customers can now programmatically access AI Impact Analytics metrics with the aiMetrics GraphQL API. Metrics include the number of assigned GitLab Duo seats, Duo Chat users, and Code Suggestion users. The API also provides granular counts for code suggestions that are shown and accepted. With this data, you can calculate the acceptance rate for Code Suggestions, and better understand your Duo Pro users' adoption of Duo Chat and Code Suggestions. You can also pair AI Impact Analytics metrics with Value Stream Analytics and DORA metrics to gain deeper insight into how adopting Duo Chat and Code Suggestions are impacting your team's productivity.

Create
[Automated Repository X-Ray](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/repository_xray.html): Code Suggestions

Repository X-Ray enriches code generation requests for GitLab Duo Code Suggestions by providing additional context about a project's dependencies to improve the accuracy and relevance of code recommendations. This improves the quality of code generation. Previously, Repository X-Ray used a CI job that you had to configure and manage.

Now, when a new commit is pushed to your project's default branch, Repository X-Ray automatically triggers a background job that scans and parses the applicable configuration files in your repository.

[Corporate network support for GitLab Duo](https://docs.gitlab.com/ee/editor_extensions/language_server/#enable-proxy-authentication): Editor Extensions

The latest update to the GitLab Duo plugin introduces advanced proxy authentication. This enables developers to connect seamlessly in environments with strict corporate firewalls. Building on our existing HTTP proxy support, this enhancement allows for authenticated connections. It ensures secure and uninterrupted access to Duo features in VS Code and JetBrains IDEs.

This update is crucial for developers needing secure, authenticated connections in restricted network environments. It ensures all Duo features remain available without compromising security.

[Enhanced merge request reviewer assignments](https://docs.gitlab.com/ee/user/project/merge_requests/reviews/#request-a-review): Code Review Workflow

After you've carefully crafted your changes and prepared a merge request, the next step is to identify reviewers who can help move it forward. Identifying the right reviewers for your merge request involves understanding who the right approvers are, and who might be a subject matter expert (CODEOWNER) for the changes you're proposing.

Now, when assigning reviewers, the sidebar creates a connection between the approval requirements for your merge request and reviewers. View each approval rule, then select from approvers who can satisfy that approval rule and move the merge request forward for you. If you use optional CODEOWNER sections those rules are also shown in the sidebar to help you identify appropriate subject matter experts for your changes.

Enhanced reviewer assignments is the next evolution of applying intelligence to assigned reviewers in GitLab. This iteration builds on what we've learned from suggested reviewers, and how to effectively identify the best reviewers for moving a merge request forward. In upcoming iterations of reviewer assignments, we'll continue to enhance the intelligence used to recommend and rank possible reviewers.

[Support for private container registries in workspaces](https://docs.gitlab.com/ee/user/workspace/configuration.html#configure-support-for-private-container-registries): Remote Development

GitLab workspaces now offer support for private container registries. With this setup, you can pull container images from any private registry of your choice. As long as your Kubernetes cluster has a valid image pull secret, you can reference the secret in your GitLab agent configuration.

This feature simplifies workflows, especially for teams that use custom or third-party container registries, and improves the flexibility and security of containerized development environments.

[Extension marketplace now available in workspaces](https://docs.gitlab.com/ee/user/project/web_ide/index.html#extension-marketplace): Remote Development

The extension marketplace is now available in workspaces. With the extension marketplace, you can discover, install, and manage third-party extensions to enhance your development experience. Choose from thousands of extensions to boost your productivity or customize your workflow.

The extension marketplace is disabled by default. To get started, go to your user preferences and enable the extension marketplace. For enterprise users, only users with the Owner role for a top-level group can enable the extension marketplace.

[Improved workspace lifecycle with delayed termination](https://docs.gitlab.com/ee/user/workspace/#automatic-workspace-stop-and-termination): Remote Development

With this release, a workspace now stops rather than terminates after the configured timeout has elapsed. This feature means you can always restart your workspaces and pick up where you left off.

By default, a workspace automatically:

  • Stops 36 hours after the workspace was last started or restarted
  • Terminates 722 hours after the workspace was last stopped

You can configure these settings in your GitLab agent configuration.

With this feature, a workspace remains available for approximately one month after it was stopped. This way, you get to keep your progress while optimizing workspace resources.

Software supply chain security
[Top-level group Owners can create service accounts](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#allow-top-level-group-owners-to-create-service-accounts) (self-managed only): System Access

Currently, only administrators can create service accounts on GitLab self-managed. Now, there is an optional setting which allows top-level group Owners to create service accounts. This allows administrators to choose if they would like a wider range of roles that are allowed to create service accounts, or keep it as an administrator-only task.

[Service accounts badge](https://docs.gitlab.com/ee/user/profile/service_accounts.html): System Access

Service accounts now have a designated badge and can be easily identified in the users list. Previously, these accounts only had the bot badge, making it difficult to distinguish between them and group and project access tokens.

Core

15 new features 2298 total badges

[Add support for values to the `glab agent bootstrap` command](https://gitlab.com/gitlab-org/cli/-/blob/main/docs/source/cluster/agent/bootstrap.md#options): Deployment Management

In the last release, we introduced support for easy agent bootstrapping to the GitLab CLI tool. GitLab 17.6 further improves the glab cluster agent bootstrap command with support for custom Helm values. You can use the --helm-release-values and --helm-release-values-from flags to customize the generated HelmRelease resource.

[Select a GitLab agent for an environment in a CI/CD job](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#configure-a-dashboard-for-a-dynamic-environment): Environment Management

To use the dashboard for Kubernetes, you need to select an agent for Kubernetes connection from the environment settings. Until now, you could select the agent only from the UI or (from GitLab 17.5) the API, which made configuring a dashboard from CI/CD difficult. In GitLab 17.6, you can configure an agent connection with the environment.kubernetes.agent syntax. In addition, issue 500164 proposes to add support for selecting a namespace and Flux resource from your CI/CD configuration.

[Display release notes on deployment details page](https://docs.gitlab.com/ee/ci/environments/deployment_approvals.html#view-blocked-deployments): Continuous Delivery

Have you ever wondered what might be included in a deployment you've been asked to approve? In past versions, you could create a release with a detailed description about its content and instructions for testing, but the related environment-specific deployment did not show this data. We are happy to share that GitLab now displays the release notes under the related deployment details page.

Because GitLab releases are always created from a Git tag, the release notes are shown only on deployments related to the tag-triggered pipeline.

This feature was contributed to GitLab by Anton Kalmykov. Thank you!

Plan
[Deploy your Pages site with any CI/CD job](https://docs.gitlab.com/ee/user/project/pages/#user-defined-job-names): Pages

To give you more flexibility in designing your pipelines, you no longer need to name your Pages deploy job pages. You can now simply use the pages attribute in any CI/CD job to trigger a Pages deployment.

[Easily remove closed items from your view](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html): Portfolio Management

You can now hide closed items from the linked and child items lists by turning off the Show closed items toggle. With this addition, you have greater control over your view and can focus on active work while reducing visual clutter in complex projects.

Create
[Merge at a scheduled date and time](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html#prevent-merge-before-a-specific-date): Code Review Workflow

Some merge requests may need to be held for merging until after a certain date or time. When that date and time does pass you need to find someone with permissions to merge and hope they're available to take care of it for you. If this is after hours or the timeline is critical you may need to prepare folks well in advance for the task.

Now, when you create or edit a merge request you can specify a merge after date. This date will be used to prevent the merge request from being merged until it has passed. Using this new capability with our previously released improvements to auto-merge gives you the flexibility to schedule merge requests to merge in the future.

A big thank you to Niklas van Schrick for the amazing contribution!

Verify
[JaCoCo test coverage visualization now generally available](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/jacoco.html): Code Testing and Coverage

You can now see JaCoCo test coverage results directly in your merge request diff view. This visualization allows you to quickly identify which lines are covered by tests and which need additional coverage before merging.

[GitLab Runner 17.6](https://docs.gitlab.com/runner): GitLab Runner Core

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

Bug Fixes:

Software supply chain security
[Audit events for privileged actions](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#groups-and-projects) (self-managed only)

There are now additional audit events for privileged settings-related administrator actions. A record of when these settings were changed can help improve security by providing an audit trail.

[Disable OTP authenticator and WebAuthn devices independently](https://docs.gitlab.com/ee/user/profile/account/two_factor_authentication.html#disable-two-factor-authentication): System Access

It is now possible to disable the OTP authenticator and WebAuthn devices individually or simultaneously. Previously, if you disabled the OTP authenticator, the WebAuthn device(s) were also disabled. Because the two now operate independently, there is more granular control over these authentication methods.

[Use API to get information about tokens](https://docs.gitlab.com/ee/api/admin/token.html) (self-managed only): System Access

Administrators can use the new token information API to get information about personal access tokens, deploy tokens, and feed tokens. Unlike other API endpoints that expose token information, this endpoint allows administrators to retrieve token information without knowing the type of the token.

Thank you Nicholas Wittstruck and the rest of the crew from Siemens for your contribution!

[More information in sign in emails from new locations](https://docs.gitlab.com/ee/user/profile/notifications.html#notifications-for-unknown-sign-ins) (self-managed only): System Access

GitLab optionally sends an email when a sign-in from a new location is detected. Previously, this email only contained the IP address, which is difficult to correlate to a location. This email now contains city and country location information as well.

Thank you Henry Helm for your contribution!

[Admin setting to enforce CI/CD job token allowlist](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#job-token-permissions) (self-managed only): Secrets Management

Previously, we announced that the default CI/CD job token (CI_JOB_TOKEN) behavior will change in GitLab 18.0, requiring you to explicitly add indvidual projects or groups to your project's job token allowlist if you want them to continue to be able to access your project.

Now, we are giving self-managed and Dedicated instance administrators the ability to enforce this more secure setting on all projects on an instance. After you enable this setting, all projects will need to make use of their allowlist if they want to use CI/CD job tokens for authentication. Note: We recommend enabling this setting as part of a strong security policy.

[Track CI/CD job token authentications](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#job-token-authentication-log): Secrets Management

Previously it was difficult to track which other projects were using accessing your project by authenticating with CI/CD job tokens. To make it easier for you to audit and control access to your project, we've added an authentication log.

With this authentication log, you can view the list of other projects that have used a job token to authenticate with your project, both in the UI and as a downloadable CSV file. This data can be used to audit project access and aid in populating the job token allowlist to enable stronger control over which projects can access your project.

Modelops
[Model registry now generally available](https://docs.gitlab.com/ee/user/project/ml/model_registry/): MLOps

GitLab's model registry, now generally available, is your centralized hub for managing machine learning models as part of your existing GitLab workflow. You can track model versions, store artifacts and metadata, and maintain comprehensive documentation in the model card.

Built for seamless integration, the model registry works natively with MLflow clients and connects directly to your CI/CD pipelines, enabling automated model deployment and testing. Data scientists can manage models through an intuitive UI or existing MLflow workflows, while MLOps teams can leverage semantic versioning and CI/CD integration for streamlined production deployments all within the GitLab API.

Please feel free to drop us a note in our feedback issue and we'll get back in touch! Get started today by going to Deploy > Model registry in your GitLab instance.

To top