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 plugin
6
7import (
8 "github.com/goccy/go-yaml"
9 "github.com/package-url/packageurl-go"
10 "gitroot.dev/server/logger"
11 "gitroot.dev/server/user"
12)
13
14func (m *Manager) ToNewRepo(isRootRepo bool, inactiveAll bool, plugins []Plugin) ([]byte, []user.SimpleUser) {
15 toSerialize := make([]Plugin, len(plugins))
16 users := make([]user.SimpleUser, len(plugins))
17 for i, p := range plugins {
18 active := p.Active
19 if inactiveAll {
20 active = false
21 }
22 toSerialize[i] = Plugin{
23 PURL: p.PURL,
24 Active: active,
25 Run: p.Run,
26 }
27 m.logger.Debug("plugin to new repo", logger.NewLoggerPair("plugin", p.Log()))
28 users[i] = p.commiter.SimpleUser
29 }
30 b, _ := yaml.MarshalWithOptions(toSerialize, yaml.CustomMarshaler(func(t *packageurl.PackageURL) ([]byte, error) {
31 return []byte(t.ToString()), nil
32 }))
33 return b, users
34}