Hi,
I'm trying to use the change url functionality to switch my Xcode Cloud setup from Gitlab.com to my self hosted Gitlab instance. The setup process completes successfully, however, Xcode Cloud does not create any web hooks in my repo and also is not able to fetch any branch/tag information from the Gitlab instance.
There is also no error displayed on Xcode Cloud UI. I even tried to debug by looking at requests on my server to see if there are any clues, to no avail.
The only clue seems to be that in my repositories page, I see the instance listed but the row is highlighted red (which I assume means there's an issue with the connection). The last accessed date is also empty. The call to the /repos-v3
endpoint from App Store Connect seems to indicate there's an authentication issue:
{ "primary_repos" : [ { "repo" : { "id" : "xxxxxxxxxxx", "http_clone_url" : "xxxxxxxxxxx", "owner_name" : "xxxxxxxxxxx", "repo_name" : "xxxxxxxxxxx-ios", "repo_id" : "7", "provider" : "gitlab-hosted", "ssh_clone_url" : "ssh://xxxxxxxxxxx", "scp_clone_url" : "git@xxxxxxxxxxx", "default_branch" : "master" }, "authorization_state" : "unauthorized" } ], "additional_repos" : [ ], "unauthorized_repos" : [ ], "revoked_repos" : [ ] }
On my end, when I try to add the repository to Xcode Cloud, I see a few requests to my GitLab instance, all of which succeed with 200:
{"time":"2025-03-11T21:10:26.217Z","severity":"INFO","duration_s":0.05674,"db_duration_s":0.00567,"view_duration_s":0.05107,"status":200,"method":"GET","path":"/api/v4/user",.... {"time":"2025-03-11T21:10:26.797Z","severity":"INFO","duration_s":0.16682,"db_duration_s":0.02024,"view_duration_s":0.14658,"status":200,"method":"GET","path":"/api/v4/projects/xxxxxx%2Fxxxxxx-ios",.... {"time":"2025-03-11T21:10:28.298Z","severity":"INFO","duration_s":0.06617,"db_duration_s":0.00835,"view_duration_s":0.05782,"status":200,"method":"GET","path":"/api/v4/user",.... {"time":"2025-03-11T21:10:28.867Z","severity":"INFO","duration_s":0.21071,"db_duration_s":0.03075,"view_duration_s":0.17996,"status":200,"method":"GET","path":"/api/v4/projects/xxxxxx%2Fxxxxxx-ios",.... {"time":"2025-03-11T21:10:30.621Z","severity":"INFO","duration_s":0.15613,"db_duration_s":0.01842,"view_duration_s":0.13771,"status":200,"method":"GET","path":"/api/v4/projects/7",.... {"time":"2025-03-11T21:10:31.239Z","severity":"INFO","duration_s":0.1672,"db_duration_s":0.01828,"view_duration_s":0.14892,"status":200,"method":"GET","path":"/api/v4/projects/7",.....
At this point I'm sure this is some sort of a bug with Xcode Cloud since the requests do succeed but Xcode Cloud is unable to process the responses and identify the correct branches and tags, as well as set the web hook for the repo.