We want to set up a Git repository so that the master branch is public, but we can develop feature branches internally (and merge them into master as required). Looking at Gitolite description, it's possible, but does any repository manager tool (such as GitLab) expose this functionality?
GitLab has various permissions, including one for protecting branches.
So you could emulate a public branch by actually protecting the branches which aren't public.
(project -> commits -> branches -> protected
)