Control GitLab Duo availability

GitLab Duo features that are generally available are automatically turned on for all users that have access.

Prerequisites

GitLab Duo features that are experimental or beta are turned off by default and must be turned on.

Configure GitLab Duo on a self-managed instance

To use GitLab Duo on a self-managed instance, you must ensure both outbound and inbound connectivity exists.

For example, network firewalls can cause lag or delay. Check both your outbound and inbound settings:

Allow outbound connections from the GitLab instance

  • Your firewalls and HTTP/S proxy servers must allow outbound connections to cloud.gitlab.com and customers.gitlab.com on port 443 both with https://. These hosts are protected by Cloudflare. Update your firewall settings to allow traffic to all IP addresses in the list of IP ranges Cloudflare publishes.
  • To use an HTTP/S proxy, both gitLab_workhorse and gitLab_rails must have the necessary web proxy environment variables set.
  • In multi-node GitLab installations, configure the HTTP/S proxy on all Rails and Sidekiq nodes.

Allow inbound connections from clients to the GitLab instance

  • GitLab instances must allow inbound connections from Duo clients (IDEs, Code Editors, and GitLab Web Frontend) on port 443 with https:// and wss://.
  • Both HTTP2 and the 'upgrade' header must be allowed, because GitLab Duo uses both REST and WebSockets.
  • Check for restrictions on WebSocket (wss://) traffic to wss://gitlab.example.com/-/cable and other .com domains. Network policy restrictions on wss:// traffic can cause issues with some GitLab Duo Chat services. Consider policy updates to allow these services.
  • If you use reverse proxies, such as Apache, you might see GitLab Duo Chat connection issues in your logs, like WebSocket connection to …. failures.

To resolve this problem, try editing your Apache proxy settings:

# Enable WebSocket reverse Proxy
# Needs proxy_wstunnel enabled
  RewriteCond %{HTTP:Upgrade} websocket [NC]
  RewriteCond %{HTTP:Connection} upgrade [NC]
  RewriteRule ^/?(.*) "ws://127.0.0.1:8181/$1" [P,L]

Run a health check for GitLab Duo

Offering: Self-managed, GitLab Dedicated Tier: Premium, Ultimate Status: Beta
History

Run a health check to test if your instance meets the requirements to use GitLab Duo. When the health check completes, it displays a pass or fail result and the types of issues. If the health check fails any of the tests, users might not be able to use GitLab Duo features in your instance.

This is a beta feature.

Prerequisites:

  • You must be an administrator.

To run a health check:

  1. On the left sidebar, at the bottom, select Admin.
  2. Select GitLab Duo.
  3. On the upper-right corner, select Run health check.

Health check tests

To verify if your instance meets the requirements to use GitLab Duo, the health check performs tests for online and offline environments.

For online environments

Test Description
Network Tests whether your instance can connect to customers.gitlab.com and cloud.gitlab.com.

If your instance cannot connect to either destination, ensure that your firewall or proxy server settings allow connection.
Synchronization Tests whether your subscription:
- Has been activated with an activation code and can be synchronized with customers.gitlab.com.
- Has correct access credentials.
- Has been synchronized recently. If it hasn’t or the access credentials are missing or expired, you can manually synchronize your subscription data.
System exchange Tests whether Code Suggestions can be used in your instance. If the system exchange assessment fails, users might not be able to use GitLab Duo features.

For offline environments

Test Description
Network Tests whether:
- The environment variable AI_GATEWAY_URL has been set to a valid URL.
- Your instance can connect to the URL specified by AI_GATEWAY_URL.

If your instance cannot connect to the URL, ensure that your firewall or proxy server settings allow connection.
License Tests whether your license has the ability to access Code Suggestions feature.
System exchange Tests whether Code Suggestions can be used in your instance. If the system exchange assessment fails, users might not be able to use GitLab Duo features.

Turn off GitLab Duo features

You can turn off GitLab Duo for a group, project, or instance.

When GitLab Duo is turned off for a group, project, or instance:

  • GitLab Duo features that access resources, like code, issues, and vulnerabilities, are not available.
  • Code Suggestions is not available.

However, GitLab Duo Chat works differently. When you turn off GitLab Duo:

  • For a group or project:
    • You can still ask questions of GitLab Duo Chat. These questions must be generic, like asking about GitLab or asking general questions about code. GitLab Duo Chat will not access group or project resources, and will reject questions about them.
  • For an instance:
    • The GitLab Duo Chat button is not available anywhere in the UI.

Turn off for a group

In 17.4 and later

In GitLab 17.4 and later, follow these instructions to turn off GitLab Duo for a group and its subgroups and projects.

Prerequisites:

  • You must have the Owner role for the group.

To turn off GitLab Duo for a group:

  1. On the left sidebar, select Search or go to and find your group.
  2. Select Settings > General.
  3. Expand GitLab Duo features.
  4. Choose an option:
    • To turn off GitLab Duo for the group, but let other groups or projects turn it on, select Off by default.
    • To turn off GitLab Duo for the group, and to prevent other groups or projects from turning it on, select Never on.
  5. Select Save changes.
In 17.3 and earlier

In GitLab 17.3 and earlier, follow these instructions to turn off GitLab Duo for a group and its subgroups and projects.

  1. On the left sidebar, select Search or go to and find your group.
  2. Select Settings > General.
  3. Expand Permissions and group features.
  4. Clear the Use GitLab Duo features checkbox.
  5. Optional. Select the Enforce for all subgroups checkbox to cascade the setting to all subgroups.

    Cascading setting

Turn off for a project

In 17.4 and later

In GitLab 17.4 and later, follow these instructions to turn off GitLab Duo for a project.

Prerequisites:

  • You must have the Owner role for the project.

To turn off GitLab Duo for a project:

  1. On the left sidebar, select Search or go to and find your project.
  2. Select Settings > General.
  3. Expand Visibility, project features, permissions.
  4. Under GitLab Duo, turn the toggle off.
  5. Select Save changes.
In 17.3 and earlier

In GitLab 17.3 and earlier, follow these instructions to turn off GitLab Duo for a project.

  1. Use the GitLab GraphQL API projectSettingsUpdate mutation.
  2. Set the duo_features_enabled setting to false. (The default is true.)

Turn off for an instance

Offering: Self-managed
In 17.4 and later

In GitLab 17.4 and later, follow these instructions to turn off GitLab Duo for the instance.

Prerequisites:

  • You must be an administrator.

To turn off GitLab Duo for an instance:

  1. On the left sidebar, at the bottom, select Admin area.
  2. Select Settings > General.
  3. Expand GitLab Duo features.
  4. Choose an option:
    • To turn off GitLab Duo for the instance, but let groups and projects turn it on, select Off by default.
    • To turn off GitLab Duo for the instance, and to prevent groups or projects from ever turning it on, select Never on.
  5. Select Save changes.
In 17.3 and earlier

In GitLab 17.3 and earlier, follow these instructions to turn off GitLab Duo for an instance.

  1. On the left sidebar, at the bottom, select Admin.
  2. Select Settings > General
  3. Expand AI-powered features.
  4. Clear the Use Duo features checkbox.
  5. Optional. Select the Enforce for all subgroups checkbox to cascade the setting to all groups in the instance.
note
An issue exists to allow administrators to override the setting for specific groups or projects.

Turn on beta and experimental features

GitLab Duo features that are experimental and beta are turned off by default. These features are subject to the Testing Agreement.

On GitLab.com

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed
In 17.4 and later

In GitLab 17.4 and later, follow these instructions to turn on GitLab Duo experimental and beta features for your group on GitLab.com.

Prerequisites:

  • You must have the Owner role for the top-level group.

To turn on GitLab Duo experiment and beta features for a top-level group:

  1. On the left sidebar, select Search or go to and find your group.
  2. Select Settings > General.
  3. Expand GitLab Duo features.
  4. Under GitLab Duo preview features, select Use experiment and beta GitLab Duo features.
  5. Select Save changes.
In 17.3 and earlier

In GitLab 17.3 and earlier, follow these instructions to turn on GitLab Duo experimental and beta features for your group on GitLab.com.

  1. On the left sidebar, select Search or go to and find your group.
  2. Select Settings > General.
  3. Expand Permissions and group features.
  4. Under GitLab Duo experiment and beta features, select the Use experiment and beta GitLab Duo features checkbox.
  5. Select Save changes.

This setting cascades to all projects that belong to the group.

On self-managed

In 17.4 and later

In GitLab 17.4 and later, follow these instructions to turn on GitLab Duo experiment and beta features for your self-managed instance.

Prerequisites:

  • You must be an administrator.

To turn on GitLab Duo experiment and beta features for an instance:

  1. On the left sidebar, at the bottom, select Admin area.
  2. Select Settings > General.
  3. Expand GitLab Duo features.
  4. Under GitLab Duo preview features, select Use experiment and beta GitLab Duo features.
  5. Select Save changes.
In 17.3 and earlier

To enable GitLab Duo beta and experimental features for GitLab versions where GitLab Duo Chat is not yet generally available, see the GitLab Duo Chat documentation.

Troubleshooting

GitLab Duo features do not work on self-managed

In addition to turning on GitLab Duo features, you can also do the following:

  1. As administrator, run a health check for GitLab Duo.
  2. Verify that the GitLab instance can reach the required GitLab.com endpoints. You can use command-line tools such as curl to verify the connectivity.

     curl --verbose "https://cloud.gitlab.com"
    
     curl --verbose "https://customers.gitlab.com"
    

    If an HTTP/S proxy is configured for the GitLab instance, include the proxy parameter in the curl command.

     # https proxy for curl
     curl --verbose --proxy "http://USERNAME:PASSWORD@example.com:8080" "https://cloud.gitlab.com"
     curl --verbose --proxy "http://USERNAME:PASSWORD@example.com:8080" "https://customers.gitlab.com"
    
  3. Manually synchronize subscription data.

GitLab Duo features not available for users

In addition to turning on GitLab Duo features, you can also do the following:

  1. Verify that subscription seats have been purchased.
  2. Ensure that seats are assigned to users.
  3. For IDE users with the GitLab Duo extension:
    • Verify that the extension is up-to-date.
    • Run extension setting health checks, and test the authentication.