Skip to content

GitLab GetCloneURL returns the wrong clone url in certain conditions #267

@janderssonse

Description

@janderssonse

Describe the bug

GitLab GetCloneUrl returns the wrong clone url in certain conditions.

To Reproduce

Here is a public project where you can reproduce it: https://gitlab.com/hanklank/anki-lpic

  • With the library - list public repositories for this user: https://gitlab.com/hanklank
  • Print out the clone urls for the project anki-lpic.
    *Notice that the clone URL should end with: anki-lpic - but ends with lpic. This means the one gets the wrong clone url, and cant clone it.

Had quick look in the code, The error is likely due to that go-git-providers only use the project name when creating the repository struct, and does not care about the real clone url - these will differ at times, like in the case given-> project NAME is lpic, but CLONE URL (and project path) is anki-lpic. I think if go-gitprovider would replace using Name with Path from the gitlab api it would fix it for all cases.
Example: https://gitlab.com/api/v4/projects/hanklank%2Fanki-lpic name differs from clone url.

Currently this leads to GetCloneURL always giving the wrong clone url in these cases.

repos = append(repos, newUserProject(c.clientContext, apiObj, gitprovider.UserRepositoryRef{

(same with org-repos so it would need to be fixed there too)

Expected behavior

GitLab's GetCloneUrl should end in the real clone url, ie anki-lpic not in project name lpic.

Additional context

  • Go version: 1.22
  • Git provider: GitLab

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions