- Controlling GitLab Duo features
- Experimental AI features and how to use them
- Language models
- Data usage
GitLab Duo
- First GitLab Duo features introduced in GitLab 16.0.
- Removed third-party AI setting in GitLab 16.6.
- Removed support for OpenAI from all GitLab Duo features in GitLab 16.6.
GitLab is creating AI-assisted features across our DevSecOps platform. These features aim to help increase velocity and solve key pain points across the software development lifecycle. GitLab Duo features are accessible through the IDE extension and the GitLab UI. Some of the features are accessible through GitLab Duo Chat, which is available in both interfaces.
Some features are still in development. View details about support for each status (Experiment, Beta, Generally Available).
GitLab is transparent. As GitLab Duo features mature, the documentation will be updated to clearly state how and where you can access these capabilities.
Goal | Feature | Tier/Offering/Status |
---|---|---|
Helps you write code more efficiently by showing code suggestions as you type. Watch overview | Code Suggestions |
Tier: Premium and Ultimate with GitLab Duo Pro Offering: GitLab.com, Self-managed, GitLab Dedicated |
Processes and generates text and code in a conversational manner. Helps you quickly identify useful information in large volumes of text in issues, epics, code, and GitLab documentation. | Chat |
Tier: Freely available for Premium and Ultimate for a limited time Offering: GitLab.com, Self-managed, GitLab Dedicated |
Helps you discover or recall Git commands when and where you need them. | Git suggestions |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Assists with quickly getting everyone up to speed on lengthy conversations to help ensure you are all on the same page. Watch overview | Discussion summary |
Tier: Freely available for Ultimate for a limited time In the future, will require GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Generates issue descriptions. | Issue description generation |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Automates repetitive tasks and helps catch bugs early. Watch overview | Test generation |
Tier: Freely available for Premium and Ultimate for a limited time In the future, will require Premium or Ultimate with GitLab Duo Pro Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Beta |
Generates a description for the merge request based on the contents of the template. | Merge request template population |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Assists in creating faster and higher-quality reviews by automatically suggesting reviewers for your merge request. Watch overview | Suggested Reviewers |
Tier: Ultimate Offering: GitLab.com Status: Generally Available |
Efficiently communicates the impact of your merge request changes. | Merge request summary |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Beta |
Helps ease merge request handoff between authors and reviewers and help reviewers efficiently understand suggestions. | Code review summary |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Helps you remediate vulnerabilities more efficiently, boost your skills, and write more secure code. Watch overview | Vulnerability explanation |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Beta |
Generates a merge request containing the changes required to mitigate a vulnerability. | Vulnerability resolution |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Helps you understand code by explaining it in English language. Watch overview | Code explanation |
Tier: Freely available for Premium and Ultimate for a limited time In the future, will require Premium or Ultimate with GitLab Duo Pro Offering: GitLab.com Status: Experiment |
Assists you in determining the root cause for a pipeline failure and failed CI/CD build. | Root cause analysis |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Assists you with predicting productivity metrics and identifying anomalies across your software development lifecycle. | Value stream forecasting |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com, Self-managed, GitLab Dedicated Status: Experiment |
Processes and responds to your questions about your application’s usage data. | Product Analytics |
Tier: Freely available for Ultimate for a limited time In the future, will require Ultimate with GitLab Duo Enterprise Offering: GitLab.com Status: Experiment |
Controlling GitLab Duo features
There are two different levels at which GitLab Duo features can be controlled. The user level and the content level.
GitLab Duo features that are generally available are always enabled for all users that have access to these features. Whether they have access depends on the tier or the add-on as stated in the previous table. Experimental and Beta GitLab Duo features need to be enabled as follows.
Owners of projects and groups as well as administrators of self-managed instances can control if GitLab Duo features can be used with their content such as code files.
Giving access to users
If a feature is dependent on an add-on seat such as Code Suggestions, access to the feature can be controlled through GitLab Duo seat assignment.
Enabling Beta and Experimental AI-powered features
Features listed as Experiment and Beta are disabled by default. These features are subject to the Testing Agreement.
GitLab.com
Prerequisites
- You must have the Owner role in the top-level group.
To enable Beta and Experimental AI-powered features, use the Experiment and Beta features checkbox.
GitLab self-managed
To enable Beta and Experimental AI-powered features for GitLab versions where GitLab Duo Chat is not yet generally available, see the GitLab Duo Chat documentation.
Enable outbound connections to enable GitLab Duo features on self-managed instances
- Your firewalls and HTTP/S proxy servers must allow outbound connections
to
cloud.gitlab.com
andcustomers.gitlab.com
on port443
both withhttps://
andwws://
. - Both
HTTP2
and the'upgrade'
header must be allowed, because GitLab Duo uses both REST and WebSockets. - To use an HTTP/S proxy, both
gitLab_workhorse
andgitLab_rails
must have the necessary web proxy environment variables set. - Check for restrictions on WebSocket (
wss://
) traffic towss://gitlab.com/-/cable
and other.com
domains. Network policy restrictions onwss://
traffic can cause issues with some GitLab Duo Chat services. Consider policy updates to allow these services.
Disable GitLab Duo features for specific groups or projects or an entire instance
- Settings to disable AI features introduced in GitLab 16.10.
- Settings to disable AI features added to the UI in GitLab 16.11.
You can disable GitLab Duo AI features for a group, project, or instance. When it’s disabled, any attempt to use GitLab Duo features on the group, project, or instance is blocked and an error is displayed. GitLab Duo features are also blocked for resources in the group or project, like epics, issues, and vulnerabilities.
For the group or project
Prerequisites:
- You must have the Owner role for the group or project.
- You must have a Premium or Ultimate subscription.
To disable GitLab Duo for a group:
- On the left sidebar, select Search or go to and find your group.
- Select Settings > General.
- Expand Permissions and group features.
- Clear the Use Duo features checkbox.
-
Optional. Select the Enforce for all subgroups checkbox to cascade the setting to all subgroups.
To disable GitLab Duo for a project:
- Use the GitLab GraphQL API
projectSettingsUpdate
mutation. - Disable GitLab Duo for the project by setting the
duo_features_enabled
setting tofalse
. (The default istrue
.)
For an instance
Prerequisites:
- You must be an administrator.
To disable GitLab Duo for an instance:
- On the left sidebar, at the bottom, select Admin Area.
- Select Settings > General
- Expand AI-powered features.
- Clear the Use Duo features checkbox.
- Optional. Select the Enforce for all subgroups checkbox to cascade the setting to all groups in the instance.
Future plans
- An issue exists for making the setting
cascade to all groups and projects. Right now the projects and groups do not
display the setting of the top-level group. To ensure the setting cascades,
ensure
lock_duo_features_enabled
is set totrue
. - An issue exists to allow administrators to override the setting for specific groups or projects.
Experimental AI features and how to use them
The following subsections describe the experimental AI features in more detail.
Explain code in the Web UI with Code explanation
- Introduced in GitLab 15.11 as an Experiment on GitLab.com.
To use this feature:
- The parent group of the project must:
- Enable the experiment and beta features setting.
- You must:
- Belong to at least one group with the experiment and beta features setting enabled.
- Have sufficient permissions to view the project.
GitLab can help you get up to speed faster if you:
- Spend a lot of time trying to understand pieces of code that others have created, or
- Struggle to understand code written in a language that you are not familiar with.
By using a large language model, GitLab can explain the code in natural language.
To explain your code:
- On the left sidebar, select Search or go to and find your project.
- Select any file in your project that contains code.
- On the file, select the lines that you want to have explained.
- On the left side, select the question mark (). You might have to scroll to the first line of your selection to view it. This sends the selected code, together with a prompt, to provide an explanation to the large language model.
- A drawer is displayed on the right side of the page. Wait a moment for the explanation to be generated.
- Provide feedback about how satisfied you are with the explanation, so we can improve the results.
You can also have code explained in the context of a merge request. To explain code in a merge request:
- On the left sidebar, select Search or go to and find your project.
- Select Code > Merge requests, then select your merge request.
- On the secondary menu, select Changes.
-
On the file you would like explained, select the three dots () and select View File @ $SHA.
A separate browser tab opens and shows the full file with the latest changes.
- On the new tab, select the lines that you want to have explained.
- On the left side, select the question mark (). You might have to scroll to the first line of your selection to view it. This sends the selected code, together with a prompt, to provide an explanation to the large language model.
- A drawer is displayed on the right side of the page. Wait a moment for the explanation to be generated.
- Provide feedback about how satisfied you are with the explanation, so we can improve the results.
We cannot guarantee that the large language model produces results that are correct. Use the explanation with caution.
Summarize issue discussions with Discussion summary
- Introduced in GitLab 16.0 as an Experiment.
To use this feature:
- The parent group of the issue must:
- Enable the experiment and beta features setting.
- You must:
- Belong to at least one group with the experiment and beta features setting enabled.
- Have sufficient permissions to view the issue.
You can generate a summary of discussions on an issue:
- In an issue, scroll to the Activity section.
- Select View summary.
The comments in the issue are summarized in as many as 10 list items. The summary is displayed only for you.
Provide feedback on this experimental feature in issue 407779.
Data usage: When you use this feature, the text of all comments on the issue are sent to the large language model referenced above.
Forecast deployment frequency with Value stream forecasting
- Introduced in GitLab 16.2 as an Experiment.
To use this feature:
- The parent group of the project must:
- Enable the experiment and beta features setting.
- You must:
- Belong to at least one group with the experiment and beta features setting enabled.
- Have sufficient permissions to view the CI/CD analytics.
In CI/CD Analytics, you can view a forecast of deployment frequency:
- On the left sidebar, select Search or go to and find your project.
- Select Analyze > CI/CD analytics.
- Select the Deployment frequency tab.
- Turn on the Show forecast toggle.
- On the confirmation dialog, select Accept testing terms.
The forecast is displayed as a dotted line on the chart. Data is forecasted for a duration that is half of the selected date range. For example, if you select a 30-day range, a forecast for the following 15 days is displayed.
Provide feedback on this experimental feature in issue 416833.
Root cause analysis
- Introduced in GitLab 16.2 as an Experiment.
To use this feature:
- The parent group of the project must:
- Enable the experiment and beta features setting.
- You must:
- Belong to at least one group with the experiment and beta features setting enabled.
- Have sufficient permissions to view the CI/CD job.
When the feature is available, the “Root cause analysis” button will appears on a failed CI/CD job. Selecting this button generates an analysis regarding the reason for the failure.
Summarize an issue with Issue description generation
- Introduced in GitLab 16.3 as an Experiment.
To use this feature:
- The parent group of the project must:
- Enable the experiment and beta features setting.
- You must:
- Belong to at least one group with the experiment and beta features setting enabled.
- Have sufficient permissions to view the issue.
You can generate the description for an issue from a short summary.
- Create a new issue.
- Above the Description field, select AI actions > Generate issue description.
- Write a short description and select Submit.
The issue description is replaced with AI-generated text.
Provide feedback on this experimental feature in issue 409844.
Data usage: When you use this feature, the text you enter is sent to the large language model referenced above.
Language models
Data usage
GitLab AI features leverage generative AI to help increase velocity and aim to help make you more productive. Each feature operates independently of other features and is not required for other features to function. GitLab selects the best-in-class large-language models for specific tasks. We use Google Vertex AI Models and Anthropic Claude.
Progressive enhancement
These features are designed as a progressive enhancement to existing GitLab features across our DevSecOps platform. They are designed to fail gracefully and should not prevent the core functionality of the underlying feature. You should note each feature is subject to its expected functionality as defined by the relevant feature support policy.
Stability and performance
These features are in a variety of feature support levels. Due to the nature of these features, there may be high demand for usage which may cause degraded performance or unexpected downtime of the feature. We have built these features to gracefully degrade and have controls in place to allow us to mitigate abuse or misuse. GitLab may disable beta and experimental features for any or all customers at any time at our discretion.
Data privacy
GitLab Duo AI features are powered by a generative AI models. The processing of any personal data is in accordance with our Privacy Statement. You may also visit the Sub-Processors page to see the list of our Sub-Processors that we use to provide these features.
Data retention
The below reflects the current retention periods of GitLab AI model Sub-Processors:
- Anthropic discards model input and output data immediately after the output is provided. Anthropic currently does not store data for abuse monitoring. Model input and output is not used to train models.
- Google discards model input and output data immediately after the output is provided. Google currently does not store data for abuse monitoring. Model input and output is not used to train models.
All of these AI providers are under data protection agreements with GitLab that prohibit the use of Customer Content for their own purposes, except to perform their independent legal obligations.
GitLab retains input and output for up to 30 days for the purpose of troubleshooting, debugging, and addressing latency issues.
Telemetry
GitLab Duo collects aggregated or de-identified first-party usage data through our Snowplow collector. This usage data includes the following metrics:
- Number of unique users
- Number of unique instances
- Prompt lengths
- Model used
- Status code responses
- API responses times
Training data
GitLab does not train generative AI models based on private (non-public) data. The vendors we work with also do not train models based on private data.
For more information on our AI sub-processors, see:
- Google Vertex AI Models APIs data governance and responsible AI.
- Anthropic Claude’s constitution.
Model accuracy and quality
Generative AI may produce unexpected results that may be:
- Low-quality
- Incoherent
- Incomplete
- Produce failed pipelines
- Insecure code
- Offensive or insensitive
- Out of date information
GitLab is actively iterating on all our AI-assisted capabilities to improve the quality of the generated content. We improve the quality through prompt engineering, evaluating new AI/ML models to power these features, and through novel heuristics built into these features directly.