The .gitroot/users.yml
yaml file is the most important file for any GitRoot repository. It describe who can write where.
1owner:
2 branches:
3 - name: main
4 users:
5 - pseudo: GitRoot
6 avatar: ""
7 emails:
8 - GitRoot@localhost
9 ssh:
10 - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMHNFk8uaXGbf8gWegbfJj2l/mht7c02qUjouHzjwsrA
The first important thing is the group name
, here it is owner
. Only this group is requiered, it is the group where users (or GitRoot itself or plugins) can write in the default branch.
For others groups you can use the name you want like.
Inside a group there are the branches their are able to push to. Here all users of the owner
group are able to push to master.
You can add as many branch as you want.
You can also use the name *
to say all branches.
Then comes users. A user in GitRoot is only an ssh public key. But for convenience I have added pseudo, emails and avatar (not used today). A user can have as amny emails and ssh key as he wants.
With only this structure you can model the workflow you want for your repository. For example you can ban users, allow all users on all branches or accept contributions only for know users.
I’m pretty sure you will find other ways to manage your project with that structure. If it the case, please, complete the documentation.