Skip to content

Commit 9c954e2

Browse files
authored
Merge pull request #139 from dvonthenen/feature/workflowjob
Implement github workflow events (Dispatch, Job, Run)
2 parents a920656 + ffc40ad commit 9c954e2

File tree

6 files changed

+1345
-0
lines changed

6 files changed

+1345
-0
lines changed

Diff for: github/github.go

+15
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ const (
6969
TeamEvent Event = "team"
7070
TeamAddEvent Event = "team_add"
7171
WatchEvent Event = "watch"
72+
WorkflowDispatchEvent Event = "workflow_dispatch"
73+
WorkflowJobEvent Event = "workflow_job"
74+
WorkflowRunEvent Event = "workflow_run"
7275
)
7376

7477
// EventSubtype defines a GitHub Hook Event subtype
@@ -325,6 +328,18 @@ func (hook Webhook) Parse(r *http.Request, events ...Event) (interface{}, error)
325328
var pl WatchPayload
326329
err = json.Unmarshal([]byte(payload), &pl)
327330
return pl, err
331+
case WorkflowDispatchEvent:
332+
var pl WorkflowDispatchPayload
333+
err = json.Unmarshal([]byte(payload), &pl)
334+
return pl, err
335+
case WorkflowJobEvent:
336+
var pl WorkflowJobPayload
337+
err = json.Unmarshal([]byte(payload), &pl)
338+
return pl, err
339+
case WorkflowRunEvent:
340+
var pl WorkflowRunPayload
341+
err = json.Unmarshal([]byte(payload), &pl)
342+
return pl, err
328343
default:
329344
return nil, fmt.Errorf("unknown event %s", gitHubEvent)
330345
}

Diff for: github/github_test.go

+30
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,36 @@ func TestWebhooks(t *testing.T) {
543543
"X-Hub-Signature": []string{"sha1=a317bcfe69ccb8bece74c20c7378e5413c4772f1"},
544544
},
545545
},
546+
{
547+
name: "WorkflowDispatchEvent",
548+
event: WorkflowDispatchEvent,
549+
typ: WorkflowDispatchPayload{},
550+
filename: "../testdata/github/workflow_dispatch.json",
551+
headers: http.Header{
552+
"X-Github-Event": []string{"workflow_dispatch"},
553+
"X-Hub-Signature": []string{"sha1=58db5b3c7e2391b34275d42256e0eda67e4997b9"},
554+
},
555+
},
556+
{
557+
name: "WorkflowJobEvent",
558+
event: WorkflowJobEvent,
559+
typ: WorkflowJobPayload{},
560+
filename: "../testdata/github/workflow_job.json",
561+
headers: http.Header{
562+
"X-Github-Event": []string{"workflow_job"},
563+
"X-Hub-Signature": []string{"sha1=2f22091ecf169313c9991f5f98ef3dffb069841b"},
564+
},
565+
},
566+
{
567+
name: "WorkflowRunEvent",
568+
event: WorkflowRunEvent,
569+
typ: WorkflowRunPayload{},
570+
filename: "../testdata/github/workflow_run.json",
571+
headers: http.Header{
572+
"X-Github-Event": []string{"workflow_run"},
573+
"X-Hub-Signature": []string{"sha1=c54d046b1ce440bc3434c8de5ad73e0a630d7cbe"},
574+
},
575+
},
546576
}
547577

548578
for _, tt := range tests {

0 commit comments

Comments
 (0)