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}