GitRoot

craft your forge, build your project, grow your community freely
 1# GitRoot
 2
 3Welcome in your new git forge. This repository contains all configurations for your forge.
 4
 5## Create your first repo
 6
 7Now all is configured you can create your first repo.
 8
 9```sh
10echo "firstRepo:\n  defaultbranch: main\n" >> .gitroot/repositories.yml
11```
12
13If you are in "owner" section of `.gitroot/users.yml`:
14
15```sh
16git commit -am "add repo"
17git push origin main
18```
19
20Else:
21
22```sh
23git checkout -b addRepo
24git commit -am "add repo"
25git push origin addRepo
26```
27
28And request a owner to merge your branch.
29
30> All done! You can clone your repo
31
32```sh
33git clone ssh://127.0.0.1:4545/firstRepo
34```
35
36Don't forget to configure this new repository. Restart commands from [above](#first-configure-your-repo)
37
38## Add collaborators
39
40In any GitRoot repository you will find a `.gitroot/users.yml` file. To add a user append its informations in the right group.
41
42```yml
43owner:
44  branches:
45    - name: main
46  users:
47    - pseudo: GitRoot
48      avatar: ""
49      emails:
50        - GitRoot@yourinstance.com
51      ssh:
52        - SSH
53    - pseudo: You
54      avatar: ""
55      emails:
56        - you@yourinstance.com
57      ssh:
58        - SSH
59group:
60  branches:
61    - name: main
62  users:
63    - pseudo: PSEUDO
64      avatar: ""
65      emails:
66        - EMAIL
67      ssh:
68        - SSH
69```
70
71`group` is the group name where user will reside. You can choose any name you want, gitroot only use the owner group (so don't modify/delete it). Group is a convenience way to group users.
72
73Each group manage `branches`. Every branch name in this group means only user of this group can write to them. All others branches will be "open" and anyone can write to them.
74
75Each group have `users`. A user is at least a ssh key. All others informations are here for convience and not used by gitroot (today).
76
77## Active plugins
78
79In any GitRoot repository you will find a `.gitroot/plugins.yml` file. It contain all plugins available in your instance. To active one, change the boolean `active` to `true`, commit and push.
80
81## Need more?
82
83Read the official [https://gitroot.dev/doc/](https://gitroot.dev/doc/).