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/user"
11)
12
13func (m *Manager) ToNewRepo(isRootRepo bool, inactiveAll bool, plugins []Plugin) ([]byte, []user.SimpleUser) {
14	toSerialize := make([]Plugin, len(plugins))
15	users := make([]user.SimpleUser, len(plugins))
16	for i, p := range plugins {
17		active := p.Active
18		if inactiveAll {
19			active = false
20		}
21		toSerialize[i] = Plugin{
22			PURL:   p.PURL,
23			Active: active,
24			Run:    p.Run,
25		}
26		users[i] = p.commiter.SimpleUser
27	}
28	b, _ := yaml.MarshalWithOptions(toSerialize, yaml.CustomMarshaler(func(t *packageurl.PackageURL) ([]byte, error) {
29		return []byte(t.ToString()), nil
30	}))
31	return b, users
32}