GitRoot

Craft your forge, Build your project, Grow your community freely
 1---
 2id: "7890"
 3priority: 96
 4assignee: null
 5status: triage
 6---
 7
 8# User story
 9
10Technically speaking, today, a user is a public ssh key in gitroot.
11
12We need to represent a user in apex to show who has pushed a commit. In ladybug for assignee, maybe in silo, grafter too.
13
14What is a user?
15
16At least I want to show a pseudo and an avatar. But Gitroot don't need this infos. Only plugins need them.
17
18I want a user can link to an external page (external to repo and to instance). But how to check that the public keys of external user is good key? A bad user can add all public keys they want... Need to be signed with private key!
19
20## Possibilities
21
22A user is:
23
24- a link to a file
25- an array of ssh-keys
26
27The file linked can be:
28
29- local repo
30- local instance
31- distant
32
33The file should contain:
34
35- pub keys and signature (proff their have private key)
36- free attributs like pseudo, avatar, bio...
37- plugins can use file linked or information in git
38
39The distant file should be syncrhonised with local data... or not!?
40
41A plugin can refresh them but when and how?
42
43---
44
45A user could be:
46
47- @pseudo@server/project
48- @manland@gitroot.dev/gitroot
49- @manland@gitroot.dev <- means root project
50- @manland <- means this server and root or this project
51
52Then gitroot download all infos for the project the user want to interact to. Than a schedule refresh informations every x times.
53
54Special case for `@manland@github.com` to download ssh pub keys.
55
56How to download infos of user from gitroot? A plugin make json, but if admin forge don't install this plugin? Parse from `.gitroot/users.yml` is best but what if different versions?