summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Olheiser <john.olheiser@gmail.com>2022-03-29 06:55:00 -0500
committerGitHub <noreply@github.com>2022-03-29 13:55:00 +0200
commitea6efba9b3fd298c842a935266060e405e2ae4a3 (patch)
treed58829b7d63c7763e94b1d2ae3174432129c6290
parent97625b44e7ec96a99b78e910ddcfdabb687f68b3 (diff)
downloadgitea-ea6efba9b3fd298c842a935266060e405e2ae4a3.tar.gz
gitea-ea6efba9b3fd298c842a935266060e405e2ae4a3.zip
Granular webhook events in editHook (#19251)
Signed-off-by: jolheiser <john.olheiser@gmail.com>
-rw-r--r--routers/api/v1/utils/hook.go21
1 files changed, 16 insertions, 5 deletions
diff --git a/routers/api/v1/utils/hook.go b/routers/api/v1/utils/hook.go
index d4d4e05524..4c3753231d 100644
--- a/routers/api/v1/utils/hook.go
+++ b/routers/api/v1/utils/hook.go
@@ -245,18 +245,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