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
- Create a new project
- Add a topic like
bx::code::c(this can be done via the UI or API). - Use the
PUT projects/:idREST API to add a topic such asbx::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}
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: unknownGitLab 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