https://gitolite.com/gitolite/ (perl) packaged as gitolite3 Gitolite allows a server to host many git repositories and provide access to many developers, without having to give them real userids on the server. The essential magic in doing this is ssh's pubkey access and the authorized keys file, and the inspiration was an older program called gitosis. Gitolite can restrict who can read from (clone/fetch) or write to (push) a repository. It can also restrict who can push to what branch or tag, which is very important in a corporate environment. Gitolite can be installed without requiring root permissions, and with no additional software than git itself and perl. It also has several other neat features described below and elsewhere in the doc/ directory. A project using gitolite only needs one user account on the host (with one admin git repo containing the ssh keys of the developers with git push access). We can even run it inside a project specific container or vm to have more isolation.
Both cygwin (with 3000+ repos) and dwarfstd (with just 5) use gitolite. The cygwin setup is an hybrid using some repos which can be accessed through a unix group and others (the packages) which are accessed through the gitolite account. The dwarfstd setup is "pure" gitolite, no shared group, just one gitolite account. Both are integrated with a cgit setup where the projects.list is automatically generated. If there are new projects that want to use gitolite (or existing projects that want to migrate) then lets open a new bugzilla specifically for that project.