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}