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## First configure your repo
 6
 7GitRoot force to use signed commit. Configure your git client for this repository by executing:
 8
 9```sh
10.gitroot/init.sh
11```
12
13> Don't want to run unknown sh? See [manually init client](https://gitroot.dev/doc/how-tos/manual_init_client.html).
14
15## Create your first repo
16
17Now all is configured you can create your first repo.
18
19```sh
20echo "firstRepo:\n  defaultbranch: main\n" >> .gitroot/repositories.yml
21```
22
23If you are in "owner" section of `.gitroot/users.yml`:
24
25```sh
26git commit -am "add repo"
27git push origin main
28```
29
30Else:
31
32```sh
33git checkout -b addRepo
34git commit -am "add repo"
35git push origin addRepo
36```
37
38And request a owner to merge your branch.
39
40> All done! You can clone your repo
41
42```sh
43git clone ssh://127.0.0.1:4545/firstRepo
44```
45
46Don't forget to configure this new repository. Restart commands from [above](#first-configure-your-repo)
47
48## Add collaborators
49
50In any GitRoot repository you will find a `.gitroot/users.yml` file. To add a user append its informations in the right group.
51
52```yml
53owner:
54  branches:
55    - name: main
56  users:
57    - pseudo: GitRoot
58      avatar: ""
59      emails:
60        - GitRoot@yourinstance.com
61      ssh:
62        - SSH
63    - pseudo: You
64      avatar: ""
65      emails:
66        - you@yourinstance.com
67      ssh:
68        - SSH
69group:
70  branches:
71    - name: main
72  users:
73    - pseudo: PSEUDO
74      avatar: ""
75      emails:
76        - EMAIL
77      ssh:
78        - SSH
79```
80
81`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.
82
83Each 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.
84
85Each group have `users`. A user is at least a ssh key. All others informations are here for convience and not used by gitroot (today).
86
87## Active plugins
88
89In 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.
90
91## Need more?
92
93Read the official [https://gitroot.dev/doc/](https://gitroot.dev/doc/).