establishes a team ChainTree, which users can be members of. For this release, each repo gets a default team, which is what git dg team add|list|remove uses.
If you dig into that thought a bit more, that means a User is granted access to a Team through grafting, and a Team is granted access to a Repo through grafting, therefore granting the User access to the Repo.
One open question: should a user be able to be added to a team before their dgit username exists?
Also to note I did a slight bit of refactoring around the different tree types here -- I've got a few more things I would like to do on the repo / client front too, but I stopped myself as that belongs in a PR.
I could keep going and going on this, but stopping here as its good for this first release. This does two things:
git dg team add|list|remove
uses.If you dig into that thought a bit more, that means a User is granted access to a Team through grafting, and a Team is granted access to a Repo through grafting, therefore granting the User access to the Repo.
One open question: should a user be able to be added to a team before their dgit username exists?
Also to note I did a slight bit of refactoring around the different tree types here -- I've got a few more things I would like to do on the repo / client front too, but I stopped myself as that belongs in a PR.