GitRoot

craft your forge, build your project, grow your community freely

Managing users

The .gitroot/users.yml yaml file is the most important file for any GitRoot repository. It describe who can write where.

Structure

 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

Group

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.

Branch

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.

Users

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.

Special cases

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.