-
Notifications
You must be signed in to change notification settings - Fork 0
/
args.go
59 lines (43 loc) · 1.3 KB
/
args.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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package templating
import (
"time"
"github.com/ogmaresca/azd-kubernetes-manager/pkg/azuredevops"
)
// Args holds all of the values available to go templating at runtime
type Args struct {
EventType string
BuildID *int
BuildNumber *string
PullRequestID *int
ProjectName *string
ResourceURL *string
StartTime *time.Time
FinishTime *time.Time
ResourceName string
Status *string
Reason *string
ServiceHook azuredevops.ServiceHook
}
// NewArgsFromServiceHook creates an Args from a Service Hook request
func NewArgsFromServiceHook(serviceHook azuredevops.ServiceHook) Args {
var buildID *int
var buildNumber *string
if serviceHook.EventType == string(azuredevops.ServiceHookEventTypeBuildComplete) {
buildID = &serviceHook.Resource.ID
buildNumber = serviceHook.Resource.BuildNumber
}
return Args{
EventType: serviceHook.EventType,
PullRequestID: serviceHook.Resource.PullRequestID,
BuildID: buildID,
BuildNumber: buildNumber,
ProjectName: serviceHook.GetProjectName(),
ResourceURL: serviceHook.Resource.URL,
StartTime: serviceHook.Resource.StartTime,
FinishTime: serviceHook.Resource.FinishTime,
ResourceName: serviceHook.Resource.Name,
Status: serviceHook.GetStatus(),
Reason: serviceHook.GetReason(),
ServiceHook: serviceHook,
}
}