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}