github.com/profzone/eden-framework@v1.0.10/internal/project/drone/trigger.go (about) 1 package drone 2 3 import "github.com/profzone/eden-framework/internal/project/drone/enums" 4 5 type PipelineTriggerIncludeAndExcludeString struct { 6 Include []string `yaml:"include" json:"include"` 7 Exclude []string `yaml:"exclude" json:"exclude"` 8 } 9 type PipelineTriggerIncludeAndExcludeEvent struct { 10 Include []enums.DroneCiTriggerEvent `yaml:"include" json:"include"` 11 Exclude []enums.DroneCiTriggerEvent `yaml:"exclude" json:"exclude"` 12 } 13 14 type PipelineTrigger struct { 15 Branch *PipelineTriggerIncludeAndExcludeString `yaml:"branch,omitempty" json:"branch,omitempty"` 16 Event *PipelineTriggerIncludeAndExcludeEvent `yaml:"event,omitempty" json:"event,omitempty"` 17 Reference *PipelineTriggerIncludeAndExcludeString `yaml:"ref,omitempty" json:"ref,omitempty"` 18 Repository *PipelineTriggerIncludeAndExcludeString `yaml:"repo,omitempty" json:"repo,omitempty"` 19 Status enums.DroneCiTriggerStatus `yaml:"status,omitempty" json:"status,omitempty"` 20 Target *PipelineTriggerIncludeAndExcludeString `yaml:"target,omitempty" json:"target,omitempty"` 21 } 22 23 func NewPipelineTrigger() *PipelineTrigger { 24 return new(PipelineTrigger) 25 } 26 27 func (t *PipelineTrigger) WithBranchInclude(name string) *PipelineTrigger { 28 if t.Branch == nil { 29 t.Branch = &PipelineTriggerIncludeAndExcludeString{} 30 } 31 t.Branch.Include = append(t.Branch.Include, name) 32 return t 33 } 34 35 func (t *PipelineTrigger) WithBranchExclude(name string) *PipelineTrigger { 36 if t.Branch == nil { 37 t.Branch = &PipelineTriggerIncludeAndExcludeString{} 38 } 39 t.Branch.Exclude = append(t.Branch.Exclude, name) 40 return t 41 } 42 43 func (t *PipelineTrigger) WithEventInclude(evt enums.DroneCiTriggerEvent) *PipelineTrigger { 44 if t.Event == nil { 45 t.Event = &PipelineTriggerIncludeAndExcludeEvent{} 46 } 47 t.Event.Include = append(t.Event.Include, evt) 48 return t 49 } 50 51 func (t *PipelineTrigger) WithEventExclude(evt enums.DroneCiTriggerEvent) *PipelineTrigger { 52 if t.Event == nil { 53 t.Event = &PipelineTriggerIncludeAndExcludeEvent{} 54 } 55 t.Event.Exclude = append(t.Event.Exclude, evt) 56 return t 57 } 58 59 func (t *PipelineTrigger) WithRefInclude(name string) *PipelineTrigger { 60 if t.Reference == nil { 61 t.Reference = &PipelineTriggerIncludeAndExcludeString{} 62 } 63 t.Reference.Include = append(t.Reference.Include, name) 64 return t 65 } 66 67 func (t *PipelineTrigger) WithRefExclude(name string) *PipelineTrigger { 68 if t.Reference == nil { 69 t.Reference = &PipelineTriggerIncludeAndExcludeString{} 70 } 71 t.Reference.Exclude = append(t.Reference.Exclude, name) 72 return t 73 } 74 75 func (t *PipelineTrigger) WithRepoInclude(name string) *PipelineTrigger { 76 if t.Repository == nil { 77 t.Repository = &PipelineTriggerIncludeAndExcludeString{} 78 } 79 t.Repository.Include = append(t.Repository.Include, name) 80 return t 81 } 82 83 func (t *PipelineTrigger) WithRepoExclude(name string) *PipelineTrigger { 84 if t.Repository == nil { 85 t.Repository = &PipelineTriggerIncludeAndExcludeString{} 86 } 87 t.Repository.Exclude = append(t.Repository.Exclude, name) 88 return t 89 } 90 91 func (t *PipelineTrigger) WithStatus(status enums.DroneCiTriggerStatus) *PipelineTrigger { 92 t.Status = status 93 return t 94 } 95 96 func (t *PipelineTrigger) WithTargetInclude(name string) *PipelineTrigger { 97 if t.Target == nil { 98 t.Target = &PipelineTriggerIncludeAndExcludeString{} 99 } 100 t.Target.Include = append(t.Target.Include, name) 101 return t 102 } 103 104 func (t *PipelineTrigger) WithTargetExclude(name string) *PipelineTrigger { 105 if t.Target == nil { 106 t.Target = &PipelineTriggerIncludeAndExcludeString{} 107 } 108 t.Target.Exclude = append(t.Target.Exclude, name) 109 return t 110 }