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
 7import "time"
 8
 9type Commit struct {
10	Branch     string
11	Hash       string
12	Message    string
13	Date       time.Time
14	Committer  string
15	ParentHash string
16}
17
18type PluginRunWhen string
19type PluginWriteRightCan string
20
21const (
22	PluginRunWhenAdd PluginRunWhen = "add"
23	PluginRunWhenMod PluginRunWhen = "mod"
24	PluginRunWhenDel PluginRunWhen = "del"
25
26	PluginWriteRightCanAdd    PluginWriteRightCan = "add"
27	PluginWriteRightCanMod    PluginWriteRightCan = "mod"
28	PluginWriteRightCanDel    PluginWriteRightCan = "del"
29	PluginWriteRightCanAppend PluginWriteRightCan = "append"
30)
31
32var PluginRunWhenAll = []PluginRunWhen{PluginRunWhenAdd, PluginRunWhenMod, PluginRunWhenDel}
33var PluginWriteRightCanAll = []PluginWriteRightCan{PluginWriteRightCanAdd, PluginWriteRightCanMod, PluginWriteRightCanDel, PluginWriteRightCanAppend}
34
35type PluginRun struct {
36	Path          string
37	Branch        []string
38	When          []PluginRunWhen
39	Write         PluginWrite
40	Configuration map[string]any
41}
42
43type PluginWrite struct {
44	Git []PluginWriteRight
45	Web []PluginWriteRight
46}
47
48type PluginWriteRight struct {
49	Path string
50	Can  []PluginWriteRightCan
51}