Adding a invalid topic to a project using PUT /project/:id REST API returns 200 OK

Summary

200 OK Returned when topic cannot be added when passed into Edit a project.

Steps to reproduce

  1. Create a new project
  2. Add a topic like bx::code::c (this can be done via the UI or API).
  3. Use the PUT projects/:id REST API to add a topic such as bx::code::c++ to an existing project (we can consistently reproduce the issue using this as a topic).

Sample Code

import requests
import json

access_token='glpat-REDACTED'
project_id='2'
gitlab_server="https:/gitlab.example.com/api/v4/projects/"
topics = {
    "topics":[
        "bx::code::c++"
    ]
}

body = json.dumps(topics)

p = requests.put(
    gitlab_server + project_id, 
    headers={
        "PRIVATE-TOKEN":access_token,
        "Content-Type": "application/json"
    },
    data=body,
)
print(p.status_code)
print(p.json())

What is the current bug behavior?

  • GitLab returns a 200 OK
  • The response body is empty
  • The project topics are not updated

What is the expected correct behavior?

  • A more appropriate HTTP Response Code (4xx) is returned
  • An error message is returned in the response body (preferred)

Problem Analysis

The root cause is that both topics generate the same slug bxcodec. The goal of this issue is to address the problem of returning a 200 OK regardless of the underlying failure, as there could be other scenarios where operations fail but still return success response codes. I'll log a separate ticket to investigate better handling of duplicate topic slugs specifically.

Impact

By returning a 200 OK, most developers would assume the request was successful. In this customers case, they later determined that a number of projects were missing topics.

Relevant logs and/or screenshots

Success
/var/log/gitlab/gitlab-rails/audit_json.log:{"severity":"INFO","time":"2025-06-10T17:53:20.086Z","correlation_id":"01JXDFK79K0AFADQ6X2Z220DKG","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"X.X.X.X","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"id":52,"author_id":2,"entity_id":2,"entity_type":"Project","details":{"event_name":"project_topics_updated","from":"[]","to":"[\"bx::code::c\"]","author_name":"Adam Lauzon","author_class":"User","target_id":2,"target_type":"Project","target_details":"adamlauzon/test-topics","custom_message":"topics changed to: 'bx::code::c'","ip_address":"X.X.X.X","entity_path":"adamlauzon/test-topics"},"ip_address":"X.X.X.X","author_name":"Adam Lauzon","entity_path":"adamlauzon/test-topics","target_details":"adamlauzon/test-topics","created_at":"2025-06-10T17:53:19.988Z","target_type":"Project","target_id":2,"event_name":"project_topics_updated","from":"[]","to":"[\"bx::code::c\"]","author_class":"User","custom_message":"topics changed to: 'bx::code::c'"}
./var/log/gitlab/gitlab-rails/api_json.log:{"time":"2025-06-10T17:53:20.270Z","severity":"INFO","duration_s":2.63424,"db_duration_s":0.21596,"view_duration_s":2.41828,"status":200,"method":"PUT","path":"/api/v4/projects/2","params":[{"key":"topics","value":["bx::code::c"]}],"host":"gl-1.twostep.info","remote_ip":"X.X.X.X, X.X.X.X","ua":"python-requests/2.32.4","route":"/api/:version/projects/:id","user_id":2,"username":"adamlauzon","token_type":"PersonalAccessToken","token_id":1,"queue_duration_s":0.009385,"redis_calls":14,"redis_duration_s":0.004127,"redis_read_bytes":389,"redis_write_bytes":1148,"redis_cache_calls":2,"redis_cache_duration_s":0.000596,"redis_cache_read_bytes":58,"redis_cache_write_bytes":123,"redis_db_load_balancing_calls":1,"redis_db_load_balancing_duration_s":0.000247,"redis_db_load_balancing_write_bytes":53,"redis_feature_flag_calls":4,"redis_feature_flag_duration_s":0.001576,"redis_feature_flag_read_bytes":232,"redis_feature_flag_write_bytes":426,"redis_repository_cache_calls":5,"redis_repository_cache_duration_s":0.00106,"redis_repository_cache_read_bytes":97,"redis_repository_cache_write_bytes":257,"redis_shared_state_calls":2,"redis_shared_state_duration_s":0.000648,"redis_shared_state_read_bytes":2,"redis_shared_state_write_bytes":289,"db_count":61,"db_write_count":10,"db_cached_count":0,"db_txn_count":4,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":61,"db_replica_write_count":0,"db_primary_write_count":10,"db_replica_cached_count":0,"db_primary_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.066,"db_main_txn_count":4,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":60,"db_ci_count":1,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":10,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":0,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.147,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.169,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.065,"db_ci_duration_s":0.001,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":2.287427,"mem_objects":261171,"mem_bytes":21504568,"mem_mallocs":79386,"mem_total_bytes":31951408,"pid":28018,"worker_id":"puma_1","rate_limiting_gates":[],"exclusive_lock_requested_count":1,"exclusive_lock_wait_duration_s":0,"exclusive_lock_hold_duration_s":0.034843779,"correlation_id":"01JXDFK79K0AFADQ6X2Z220DKG","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"99.250.63.45","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"content_length":"27","request_urgency":"low","target_duration_s":5}
./var/log/gitlab/gitlab-rails/api_json.log:{"time":"2025-06-10T17:53:39.963Z","severity":"INFO","duration_s":0.16724,"db_duration_s":0.02736,"view_duration_s":0.13988,"status":200,"method":"PUT","path":"/api/v4/projects/2","params":[{"key":"topics","value":["bx::code::c++"]}],"host":"gl-1.twostep.info","remote_ip":"X.X.X.X, X.X.X.X","ua":"python-requests/2.32.4","route":"/api/:version/projects/:id","user_id":2,"username":"adamlauzon","token_type":"PersonalAccessToken","token_id":1,"queue_duration_s":0.012511,"redis_calls":4,"redis_duration_s":0.000835,"redis_read_bytes":117,"redis_write_bytes":396,"redis_db_load_balancing_calls":1,"redis_db_load_balancing_duration_s":0.000192,"redis_db_load_balancing_write_bytes":53,"redis_feature_flag_calls":1,"redis_feature_flag_duration_s":0.000184,"redis_feature_flag_read_bytes":115,"redis_feature_flag_write_bytes":54,"redis_shared_state_calls":2,"redis_shared_state_duration_s":0.000459,"redis_shared_state_read_bytes":2,"redis_shared_state_write_bytes":289,"db_count":31,"db_write_count":2,"db_cached_count":3,"db_txn_count":1,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":31,"db_replica_write_count":0,"db_primary_write_count":2,"db_replica_cached_count":0,"db_primary_cached_count":3,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.027,"db_main_txn_count":1,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":30,"db_ci_count":1,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":2,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":3,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.068,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.068,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.026,"db_ci_duration_s":0.001,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.156625,"mem_objects":37582,"mem_bytes":2972248,"mem_mallocs":7126,"mem_total_bytes":4475528,"pid":28018,"worker_id":"puma_1","rate_limiting_gates":[],"exclusive_lock_requested_count":1,"exclusive_lock_wait_duration_s":0,"exclusive_lock_hold_duration_s":0.003323724,"correlation_id":"01JXDFKWY44JRXNQW8DS5Z74ST","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"99.250.63.45","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"content_length":"29","request_urgency":"low","target_duration_s":5}
./var/log/gitlab/gitlab-rails/api_json.log:{"time":"2025-06-10T17:53:53.798Z","severity":"INFO","duration_s":0.10652,"db_duration_s":0.0169,"view_duration_s":0.08962,"status":200,"method":"PUT","path":"/api/v4/projects/2","params":[{"key":"topics","value":["bx::code::c++"]}],"host":"gl-1.twostep.info","remote_ip":"X.X.X.X, X.X.X.X","ua":"python-requests/2.32.4","route":"/api/:version/projects/:id","user_id":2,"username":"adamlauzon","token_type":"PersonalAccessToken","token_id":1,"queue_duration_s":0.013278,"redis_calls":9,"redis_duration_s":0.002032,"redis_read_bytes":692,"redis_write_bytes":732,"redis_db_load_balancing_calls":1,"redis_db_load_balancing_duration_s":0.000203,"redis_db_load_balancing_write_bytes":53,"redis_feature_flag_calls":6,"redis_feature_flag_duration_s":0.001305,"redis_feature_flag_read_bytes":690,"redis_feature_flag_write_bytes":390,"redis_shared_state_calls":2,"redis_shared_state_duration_s":0.000524,"redis_shared_state_read_bytes":2,"redis_shared_state_write_bytes":289,"db_count":31,"db_write_count":2,"db_cached_count":3,"db_txn_count":1,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":31,"db_replica_write_count":0,"db_primary_write_count":2,"db_replica_cached_count":0,"db_primary_cached_count":3,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.017,"db_main_txn_count":1,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":30,"db_ci_count":1,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":2,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":3,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.042,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.042,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.017,"db_ci_duration_s":0.001,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.107892,"mem_objects":37824,"mem_bytes":2950112,"mem_mallocs":6992,"mem_total_bytes":4463072,"pid":28018,"worker_id":"puma_1","rate_limiting_gates":[],"exclusive_lock_requested_count":1,"exclusive_lock_wait_duration_s":0,"exclusive_lock_hold_duration_s":0.001833171,"correlation_id":"01JXDFMAG9SC93204V0D183AMA","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"99.250.63.45","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"content_length":"29","request_urgency":"low","target_duration_s":5}
Failure
./var/log/gitlab/gitlab-rails/api_json.log:{"time":"2025-06-10T17:53:39.963Z","severity":"INFO","duration_s":0.16724,"db_duration_s":0.02736,"view_duration_s":0.13988,"status":200,"method":"PUT","path":"/api/v4/projects/2","params":[{"key":"topics","value":["bx::code::c++"]}],"host":"gl-1.twostep.info","remote_ip":"X.X.X.X, X.X.X.X","ua":"python-requests/2.32.4","route":"/api/:version/projects/:id","user_id":2,"username":"adamlauzon","token_type":"PersonalAccessToken","token_id":1,"queue_duration_s":0.012511,"redis_calls":4,"redis_duration_s":0.000835,"redis_read_bytes":117,"redis_write_bytes":396,"redis_db_load_balancing_calls":1,"redis_db_load_balancing_duration_s":0.000192,"redis_db_load_balancing_write_bytes":53,"redis_feature_flag_calls":1,"redis_feature_flag_duration_s":0.000184,"redis_feature_flag_read_bytes":115,"redis_feature_flag_write_bytes":54,"redis_shared_state_calls":2,"redis_shared_state_duration_s":0.000459,"redis_shared_state_read_bytes":2,"redis_shared_state_write_bytes":289,"db_count":31,"db_write_count":2,"db_cached_count":3,"db_txn_count":1,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":31,"db_replica_write_count":0,"db_primary_write_count":2,"db_replica_cached_count":0,"db_primary_cached_count":3,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.027,"db_main_txn_count":1,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":30,"db_ci_count":1,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":2,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":3,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.068,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.068,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.026,"db_ci_duration_s":0.001,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.156625,"mem_objects":37582,"mem_bytes":2972248,"mem_mallocs":7126,"mem_total_bytes":4475528,"pid":28018,"worker_id":"puma_1","rate_limiting_gates":[],"exclusive_lock_requested_count":1,"exclusive_lock_wait_duration_s":0,"exclusive_lock_hold_duration_s":0.003323724,"correlation_id":"01JXDFKWY44JRXNQW8DS5Z74ST","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"99.250.63.45","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"content_length":"29","request_urgency":"low","target_duration_s":5}
./var/log/gitlab/gitlab-rails/api_json.log:{"time":"2025-06-10T17:53:53.798Z","severity":"INFO","duration_s":0.10652,"db_duration_s":0.0169,"view_duration_s":0.08962,"status":200,"method":"PUT","path":"/api/v4/projects/2","params":[{"key":"topics","value":["bx::code::c++"]}],"host":"gl-1.twostep.info","remote_ip":"X.X.X.X, X.X.X.X","ua":"python-requests/2.32.4","route":"/api/:version/projects/:id","user_id":2,"username":"adamlauzon","token_type":"PersonalAccessToken","token_id":1,"queue_duration_s":0.013278,"redis_calls":9,"redis_duration_s":0.002032,"redis_read_bytes":692,"redis_write_bytes":732,"redis_db_load_balancing_calls":1,"redis_db_load_balancing_duration_s":0.000203,"redis_db_load_balancing_write_bytes":53,"redis_feature_flag_calls":6,"redis_feature_flag_duration_s":0.001305,"redis_feature_flag_read_bytes":690,"redis_feature_flag_write_bytes":390,"redis_shared_state_calls":2,"redis_shared_state_duration_s":0.000524,"redis_shared_state_read_bytes":2,"redis_shared_state_write_bytes":289,"db_count":31,"db_write_count":2,"db_cached_count":3,"db_txn_count":1,"db_replica_txn_count":0,"db_primary_txn_count":0,"db_replica_count":0,"db_primary_count":31,"db_replica_write_count":0,"db_primary_write_count":2,"db_replica_cached_count":0,"db_primary_cached_count":3,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_replica_txn_max_duration_s":0.0,"db_primary_txn_max_duration_s":0.0,"db_replica_txn_duration_s":0.0,"db_primary_txn_duration_s":0.0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.017,"db_main_txn_count":1,"db_ci_txn_count":0,"db_main_replica_txn_count":0,"db_ci_replica_txn_count":0,"db_main_count":30,"db_ci_count":1,"db_main_replica_count":0,"db_ci_replica_count":0,"db_main_write_count":2,"db_ci_write_count":0,"db_main_replica_write_count":0,"db_ci_replica_write_count":0,"db_main_cached_count":3,"db_ci_cached_count":0,"db_main_replica_cached_count":0,"db_ci_replica_cached_count":0,"db_main_wal_count":0,"db_ci_wal_count":0,"db_main_replica_wal_count":0,"db_ci_replica_wal_count":0,"db_main_wal_cached_count":0,"db_ci_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_ci_replica_wal_cached_count":0,"db_main_txn_max_duration_s":0.042,"db_ci_txn_max_duration_s":0.0,"db_main_replica_txn_max_duration_s":0.0,"db_ci_replica_txn_max_duration_s":0.0,"db_main_txn_duration_s":0.042,"db_ci_txn_duration_s":0.0,"db_main_replica_txn_duration_s":0.0,"db_ci_replica_txn_duration_s":0.0,"db_main_duration_s":0.017,"db_ci_duration_s":0.001,"db_main_replica_duration_s":0.0,"db_ci_replica_duration_s":0.0,"cpu_s":0.107892,"mem_objects":37824,"mem_bytes":2950112,"mem_mallocs":6992,"mem_total_bytes":4463072,"pid":28018,"worker_id":"puma_1","rate_limiting_gates":[],"exclusive_lock_requested_count":1,"exclusive_lock_wait_duration_s":0,"exclusive_lock_hold_duration_s":0.001833171,"correlation_id":"01JXDFMAG9SC93204V0D183AMA","meta.caller_id":"PUT /api/:version/projects/:id","meta.remote_ip":"X.X.X.X","meta.feature_category":"groups_and_projects","meta.user":"adamlauzon","meta.user_id":2,"meta.project":"adamlauzon/test-topics","meta.root_namespace":"adamlauzon","meta.client_id":"user/2","meta.organization_id":1,"content_length":"29","request_urgency":"low","target_duration_s":5}
### Output of checks

This bug happens on GitLab.com

Results of GitLab environment info

Expand for output related to GitLab environment info
System information
System:         Ubuntu 20.04
Proxy:          no
Current User:   git
Using RVM:      no
Ruby Version:   3.2.5
Gem Version:    3.6.7
Bundler Version:2.6.5
Rake Version:   13.0.6
Redis Version:  7.2.7
Sidekiq Version:7.3.9
Go Version:     unknown

GitLab information Version: 18.0.1-ee Revision: 3426be1b938 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: PostgreSQL DB Version: 16.8 URL: https://gitlab.example.com HTTP Clone URL: https://gitlab.example.com/some-group/some-project.git SSH Clone URL: git@gitlab.example.com:some-group/some-project.git Elasticsearch: no Geo: no Using LDAP: no Using Omniauth: yes Omniauth Providers:

GitLab Shell Version: 14.42.0 Repository storages:

  • default: unix:/var/opt/gitlab/gitaly/gitaly.socket GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell

Gitaly

  • default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket
  • default Version: 18.0.1
  • default Git Version: 2.49.0.gl2

/cc @ulisesf

Edited by Adam Lauzon