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: MIT
 4
 5package model
 6
 7type PluginRunWhen string
 8type PluginWriteRightCan string
 9
10const (
11	PluginRunWhenAdd PluginRunWhen = "add"
12	PluginRunWhenMod PluginRunWhen = "mod"
13	PluginRunWhenDel PluginRunWhen = "del"
14
15	PluginWriteRightCanAdd    PluginWriteRightCan = "add"
16	PluginWriteRightCanMod    PluginWriteRightCan = "mod"
17	PluginWriteRightCanDel    PluginWriteRightCan = "del"
18	PluginWriteRightCanAppend PluginWriteRightCan = "append"
19)
20
21var PluginRunWhenAll = []PluginRunWhen{PluginRunWhenAdd, PluginRunWhenMod, PluginRunWhenDel}
22var PluginWriteRightCanAll = []PluginWriteRightCan{PluginWriteRightCanAdd, PluginWriteRightCanMod, PluginWriteRightCanDel, PluginWriteRightCanAppend}
23
24type PluginRun struct {
25	Path          string
26	Branch        []string
27	When          []PluginRunWhen
28	Func          []PluginFunc
29	Write         PluginWrite
30	Configuration map[string]any
31}
32
33type PluginFunc struct {
34	FuncName string
35	Args     []string
36	Res      []string
37}
38
39type PluginWrite struct {
40	Git      []PluginWriteRight
41	Web      []PluginWriteRight
42	Exec     []PluginExecRight
43	CallFunc []PluginCallFuncRight
44}
45
46type PluginWriteRight struct {
47	Path string
48	Can  []PluginWriteRightCan
49}
50
51type PluginExecRight struct {
52	Command string
53}
54
55type PluginCallFuncRight struct {
56	PluginName string
57	FuncName   string
58}