diff --git a/internal/cli/procedure.go b/internal/cli/procedure.go index bf2b4a6..2afa426 100644 --- a/internal/cli/procedure.go +++ b/internal/cli/procedure.go @@ -38,10 +38,7 @@ func procedureAction(c *cli.Context) error { for _, procedure := range procedures { if procedure.ID == procedureID { - err = tp.Create(&model.Ticket{ - Name: procedure.Name, - Body: fmt.Sprintf("%s\n\n\n---\nProcedure-ID: %s", procedure.Body, procedure.ID), - }, []string{"comply", "comply-procedure"}) + err = tp.Create(procedure.NewTicket(), procedure.Labels()) if err != nil { return err } diff --git a/internal/model/procedure.go b/internal/model/procedure.go index f10308f..4015c95 100644 --- a/internal/model/procedure.go +++ b/internal/model/procedure.go @@ -1,11 +1,17 @@ package model -import "time" +import ( + "fmt" + "time" +) + +var defaultLabels = []string{"comply", "comply-procedure"} type Procedure struct { - Name string `yaml:"name"` - ID string `yaml:"id"` - Cron string `yaml:"cron"` + Name string `yaml:"name"` + ID string `yaml:"id"` + Cron string `yaml:"cron"` + CustomLabels []string `yaml:"labels"` Revisions []Revision `yaml:"majorRevisions"` Satisfies Satisfaction `yaml:"satisfies"` @@ -14,3 +20,14 @@ type Procedure struct { ModifiedAt time.Time Body string } + +func (p *Procedure) Labels() []string { + return append(defaultLabels, p.CustomLabels...) +} + +func (p *Procedure) NewTicket() *Ticket { + return &Ticket{ + Name: p.Name, + Body: fmt.Sprintf("%s\n\n\n---\nProcedure-ID: %s", p.Body, p.ID), + } +} diff --git a/internal/ticket/scheduler.go b/internal/ticket/scheduler.go index 5ff2fda..458c464 100644 --- a/internal/ticket/scheduler.go +++ b/internal/ticket/scheduler.go @@ -114,9 +114,6 @@ func trigger(procedure *model.Procedure) error { } tp := model.GetPlugin(model.TicketSystem(ts)) - err = tp.Create(&model.Ticket{ - Name: procedure.Name, - Body: fmt.Sprintf("%s\n\n\n---\nProcedure-ID: %s", procedure.Body, procedure.ID), - }, []string{"comply", "comply-procedure"}) + err = tp.Create(procedure.NewTicket(), procedure.Labels()) return err }