-
Notifications
You must be signed in to change notification settings - Fork 3
/
pipeline_trigger.go
33 lines (28 loc) · 1.13 KB
/
pipeline_trigger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package manifest
import (
"fmt"
"regexp"
"strings"
)
type PipelineTrigger struct {
Type string
ConcourseURL string `json:"concourse_url,omitempty" yaml:"concourse_url,omitempty" secretAllowed:"true"`
Username string `json:"username,omitempty" yaml:"username,omitempty" secretAllowed:"true"`
Password string `json:"password,omitempty" yaml:"password,omitempty" secretAllowed:"true"`
Team string `json:"team,omitempty" yaml:"team,omitempty"`
Pipeline string `json:"pipeline,omitempty" yaml:"pipeline,omitempty"`
Job string `json:"job,omitempty" yaml:"job,omitempty"`
Status string `json:"status,omitempty" yaml:"status,omitempty"`
}
func (p PipelineTrigger) GetTriggerAttempts() int {
return 2
}
func (p PipelineTrigger) MarshalYAML() (interface{}, error) {
p.Type = "pipeline"
return p, nil
}
func (p PipelineTrigger) GetTriggerName() string {
name := fmt.Sprintf("%s.%s", strings.ToLower(p.Pipeline), strings.ToLower(p.Job))
replaceSpecialChars := strings.TrimSpace(regexp.MustCompile("[^a-z0-9-.]+").ReplaceAllString(name, " "))
return strings.Replace(replaceSpecialChars, " ", "-", -1)
}