Allow having a public issue tracker without sharing the code

Summary

Allow having a public issue tracker without giving unauthorized access (pull, fetch or clone) to the repository.

Steps to reproduce

I can't find how to give public access to a project Issues without giving public access to the sources.
There are three "Visibility Level"s:

visibility

  • "Private": I can choose "Disabled" and "Only team members" at the "Issues", so I can't give public access to the Issues.
  • "Internal": I can choose "Disabled" , "Only team members" and "Everyone with access" at the "Issues", but I can't give public access to the Issues.
  • "Public": I am giving public clone access to the sources, which I don't want.

Expected behavior

I would expect to have some way to allow public access, without any login, to the Issue Tracker without allowing git clone, git fetch orgit pullwithout a login.

Relevant logs and/or screenshots

Here some of the new options added with #19734 (closed). Note you can set the push permissions for the repo, but not for the clone/pull:

features

Possible fixes

I would change code under "Visibility Level" to only affect visibility, and nothing about git clone/pull/fetch rights.
Then I would modify the "Feature Visibility" options a bit, adding "Clone" and "Push" in the "Repository" list. Ie:

  • Repository: Nothing to select, or some predefined templates like Totally Public/ Totally Private / Custom
    • Clone/Pull: Only team members / Everyone with access
    • Push: Only team members / Everyone with access
    • Merge requests: Disabled/ Everyone with Push access (I'm not sure)
    • Builds: Disabled/ Everyone with Push access (I'm not sure)
Assignee Loading
Time tracking Loading