For completely private services, the obvious answer is a VPN. But what about the ones that need to be “partially” public? Whether just read only, or with restrictions to publicly registered accounts.
For example, If I wanted to open up a git host where I allow public registrations so they can send issues/patches but can’t create repos (kinda impossible with pull requests but you get my point)
Is there any specific thing you can do, or do you just disable registrations completely except for something “out-of-band” (ask me on XYZ to create an account for you, git send-email, mirrors to public services, etc…)
Of course, individual software may have access control features built in, but as a whole, is there anything reasonably generic?
Have you looked at Gitea? I use it myself, but mine is private and I am the only user, so I can’t help with your specific issue. I did find this post before replying: Can new users be restricted to issues only? although this might mess up your ability to have pull requests.