GitRoot
craft your forge, build your project, grow your community freely
1// SPDX-FileCopyrightText: 2025 Romain Maneschi <romain@gitroot.dev>
2//
3// SPDX-License-Identifier: EUPL-1.2
4
5package user
6
7type Commiter struct {
8 SimpleUser
9 Signer *Signer
10}
11
12func (m *Manager) NewCommiter(pseudo string) (*Commiter, error) {
13 return newCommiter(pseudo, m.conf)
14}
15
16func newCommiter(pseudo string, conf needConf) (*Commiter, error) {
17 path := conf.GetDirPathDataPlugin(pseudo)
18 if conf.IsRootCommiter(pseudo) {
19 path = conf.GetDirPathData()
20 }
21 email := conf.GetEmail(pseudo)
22 signer, err := generateIfNotExist(path, pseudo)
23 if err != nil {
24 return nil, err
25 }
26 return &Commiter{
27 SimpleUser: SimpleUser{Pseudo: pseudo, Email: email, Ssh: signer.PublicKey()},
28 Signer: signer,
29 }, nil
30}