update system hooks to handle event_name fields

This commit is contained in:
aritas1
2020-05-31 01:37:42 +02:00
parent 9f0c3ac5d7
commit b03dc868a0
3 changed files with 14 additions and 4 deletions
+10 -1
View File
@@ -191,7 +191,16 @@ func eventParsing(gitLabEvent Event, events []Event, payload []byte) (interface{
case objectMergeRequest: case objectMergeRequest:
return eventParsing(MergeRequestEvents, events, payload) return eventParsing(MergeRequestEvents, events, payload)
default: default:
return nil, fmt.Errorf("unknown system hook event %s", gitLabEvent) switch pl.EventName {
case objectPush:
return eventParsing(PushEvents, events, payload)
case objectTag:
return eventParsing(TagEvents, events, payload)
case objectMergeRequest:
return eventParsing(MergeRequestEvents, events, payload)
default:
return nil, fmt.Errorf("unknown system hook event %s", gitLabEvent)
}
} }
default: default:
return nil, fmt.Errorf("unknown event %s", gitLabEvent) return nil, fmt.Errorf("unknown event %s", gitLabEvent)
+3 -3
View File
@@ -286,19 +286,19 @@ func TestSystemHooks(t *testing.T) {
name: "PushEvent", name: "PushEvent",
event: PushEvents, event: PushEvents,
typ: PushEventPayload{}, typ: PushEventPayload{},
filename: "../testdata/gitlab/push-event.json", filename: "../testdata/gitlab/system-push-event.json",
}, },
{ {
name: "TagEvent", name: "TagEvent",
event: TagEvents, event: TagEvents,
typ: TagEventPayload{}, typ: TagEventPayload{},
filename: "../testdata/gitlab/tag-event.json", filename: "../testdata/gitlab/system-tag-event.json",
}, },
{ {
name: "MergeRequestEvent", name: "MergeRequestEvent",
event: MergeRequestEvents, event: MergeRequestEvents,
typ: MergeRequestEventPayload{}, typ: MergeRequestEventPayload{},
filename: "../testdata/gitlab/merge-request-event.json", filename: "../testdata/gitlab/system-merge-request-event.json",
}, },
} }
for _, tt := range tests { for _, tt := range tests {
+1
View File
@@ -176,6 +176,7 @@ type JobEventPayload struct {
// SystemHookPayload contains the ObjectKind to match with real hook events // SystemHookPayload contains the ObjectKind to match with real hook events
type SystemHookPayload struct { type SystemHookPayload struct {
ObjectKind string `json:"object_kind"` ObjectKind string `json:"object_kind"`
EventName string `json:"event_name"`
} }
// Issue contains all of the GitLab issue information // Issue contains all of the GitLab issue information