Github, Bitbucket, Gitlab support this feature which in a nutshell are user-created usergroups.
Alternative phrasing for this would be: allow usergrups to be created by users, however, I think there are some considerations to take care of:
- Teams should have at least two permissions, i.e. allow the owner to designate other owners or team admins
- Teams should be public or private
- Teams can own repositories, but that doesn't mean all team members are automatically admins. Admin, write and read permissions for each team's members can be set such that you can have default admins, default writers and default readers for all repos owned by that team. If you need more granular control per repo, you can add the permissions in the repo itself already
This would also imply inversion of control of permissions from repos to user groups. If this is not the best idea, then teams could be implemented as a separate entity but hold the same core functionality than user groups.
In summary, the concept of teams would be user-administered user groups. The motivation for this is really taking advantage of user groups and removing the bottleneck that represents only having the sysadmins be able to manage user groups.