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}