]> source.dussan.org Git - gitea.git/commitdiff
Granular webhook events in editHook (#19251) (#19257)
authorJohn Olheiser <john.olheiser@gmail.com>
Tue, 29 Mar 2022 16:26:51 +0000 (11:26 -0500)
committerGitHub <noreply@github.com>
Tue, 29 Mar 2022 16:26:51 +0000 (18:26 +0200)
Signed-off-by: jolheiser <john.olheiser@gmail.com>
routers/api/v1/utils/hook.go

index 1f0a35ce22aa33e8c8658975763779487536a006..6c06bcdd412df4e3e42da7f2f3d220385f15aed8 100644 (file)
@@ -246,18 +246,29 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
        w.ChooseEvents = true
        w.Create = util.IsStringInSlice(string(webhook.HookEventCreate), form.Events, true)
        w.Push = util.IsStringInSlice(string(webhook.HookEventPush), form.Events, true)
-       w.PullRequest = util.IsStringInSlice(string(webhook.HookEventPullRequest), form.Events, true)
        w.Create = util.IsStringInSlice(string(webhook.HookEventCreate), form.Events, true)
        w.Delete = util.IsStringInSlice(string(webhook.HookEventDelete), form.Events, true)
        w.Fork = util.IsStringInSlice(string(webhook.HookEventFork), form.Events, true)
-       w.Issues = util.IsStringInSlice(string(webhook.HookEventIssues), form.Events, true)
-       w.IssueComment = util.IsStringInSlice(string(webhook.HookEventIssueComment), form.Events, true)
-       w.Push = util.IsStringInSlice(string(webhook.HookEventPush), form.Events, true)
-       w.PullRequest = util.IsStringInSlice(string(webhook.HookEventPullRequest), form.Events, true)
        w.Repository = util.IsStringInSlice(string(webhook.HookEventRepository), form.Events, true)
        w.Release = util.IsStringInSlice(string(webhook.HookEventRelease), form.Events, true)
        w.BranchFilter = form.BranchFilter
 
+       // Issues
+       w.Issues = issuesHook(form.Events, "issues_only")
+       w.IssueAssign = issuesHook(form.Events, string(webhook.HookEventIssueAssign))
+       w.IssueLabel = issuesHook(form.Events, string(webhook.HookEventIssueLabel))
+       w.IssueMilestone = issuesHook(form.Events, string(webhook.HookEventIssueMilestone))
+       w.IssueComment = issuesHook(form.Events, string(webhook.HookEventIssueComment))
+
+       // Pull requests
+       w.PullRequest = pullHook(form.Events, "pull_request_only")
+       w.PullRequestAssign = pullHook(form.Events, string(webhook.HookEventPullRequestAssign))
+       w.PullRequestLabel = pullHook(form.Events, string(webhook.HookEventPullRequestLabel))
+       w.PullRequestMilestone = pullHook(form.Events, string(webhook.HookEventPullRequestMilestone))
+       w.PullRequestComment = pullHook(form.Events, string(webhook.HookEventPullRequestComment))
+       w.PullRequestReview = pullHook(form.Events, "pull_request_review")
+       w.PullRequestSync = pullHook(form.Events, string(webhook.HookEventPullRequestSync))
+
        if err := w.UpdateEvent(); err != nil {
                ctx.Error(http.StatusInternalServerError, "UpdateEvent", err)
                return false