@@ -159,6 +159,41 @@ func pullHook(events []string, event string) bool {
159159return util .SliceContainsString (events ,event ,true )|| util .SliceContainsString (events ,string (webhook_module .HookEventPullRequest ),true )
160160}
161161
162+ func updateHookEvents (events []string ) webhook_module.HookEvents {
163+ if len (events )== 0 {
164+ events = []string {"push" }
165+ }
166+ hookEvents := make (webhook_module.HookEvents )
167+ hookEvents [webhook_module .HookEventCreate ]= util .SliceContainsString (events ,string (webhook_module .HookEventCreate ),true )
168+ hookEvents [webhook_module .HookEventPush ]= util .SliceContainsString (events ,string (webhook_module .HookEventPush ),true )
169+ hookEvents [webhook_module .HookEventDelete ]= util .SliceContainsString (events ,string (webhook_module .HookEventDelete ),true )
170+ hookEvents [webhook_module .HookEventFork ]= util .SliceContainsString (events ,string (webhook_module .HookEventFork ),true )
171+ hookEvents [webhook_module .HookEventRepository ]= util .SliceContainsString (events ,string (webhook_module .HookEventRepository ),true )
172+ hookEvents [webhook_module .HookEventWiki ]= util .SliceContainsString (events ,string (webhook_module .HookEventWiki ),true )
173+ hookEvents [webhook_module .HookEventRelease ]= util .SliceContainsString (events ,string (webhook_module .HookEventRelease ),true )
174+ hookEvents [webhook_module .HookEventPackage ]= util .SliceContainsString (events ,string (webhook_module .HookEventPackage ),true )
175+ hookEvents [webhook_module .HookEventStatus ]= util .SliceContainsString (events ,string (webhook_module .HookEventStatus ),true )
176+ hookEvents [webhook_module .HookEventWorkflowJob ]= util .SliceContainsString (events ,string (webhook_module .HookEventWorkflowJob ),true )
177+
178+ // Issues
179+ hookEvents [webhook_module .HookEventIssues ]= issuesHook (events ,"issues_only" )
180+ hookEvents [webhook_module .HookEventIssueAssign ]= issuesHook (events ,string (webhook_module .HookEventIssueAssign ))
181+ hookEvents [webhook_module .HookEventIssueLabel ]= issuesHook (events ,string (webhook_module .HookEventIssueLabel ))
182+ hookEvents [webhook_module .HookEventIssueMilestone ]= issuesHook (events ,string (webhook_module .HookEventIssueMilestone ))
183+ hookEvents [webhook_module .HookEventIssueComment ]= issuesHook (events ,string (webhook_module .HookEventIssueComment ))
184+
185+ // Pull requests
186+ hookEvents [webhook_module .HookEventPullRequest ]= pullHook (events ,"pull_request_only" )
187+ hookEvents [webhook_module .HookEventPullRequestAssign ]= pullHook (events ,string (webhook_module .HookEventPullRequestAssign ))
188+ hookEvents [webhook_module .HookEventPullRequestLabel ]= pullHook (events ,string (webhook_module .HookEventPullRequestLabel ))
189+ hookEvents [webhook_module .HookEventPullRequestMilestone ]= pullHook (events ,string (webhook_module .HookEventPullRequestMilestone ))
190+ hookEvents [webhook_module .HookEventPullRequestComment ]= pullHook (events ,string (webhook_module .HookEventPullRequestComment ))
191+ hookEvents [webhook_module .HookEventPullRequestReview ]= pullHook (events ,"pull_request_review" )
192+ hookEvents [webhook_module .HookEventPullRequestReviewRequest ]= pullHook (events ,string (webhook_module .HookEventPullRequestReviewRequest ))
193+ hookEvents [webhook_module .HookEventPullRequestSync ]= pullHook (events ,string (webhook_module .HookEventPullRequestSync ))
194+ return hookEvents
195+ }
196+
162197// addHook add the hook specified by `form`, `ownerID` and `repoID`. If there is
163198// an error, write to `ctx` accordingly. Return (webhook, ok)
164199func addHook (ctx * context.APIContext ,form * api.CreateHookOption ,ownerID ,repoID int64 ) (* webhook.Webhook ,bool ) {
@@ -167,9 +202,6 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
167202return nil ,false
168203}
169204
170- if len (form .Events )== 0 {
171- form .Events = []string {"push" }
172- }
173205if form .Config ["is_system_webhook" ]!= "" {
174206sw ,err := strconv .ParseBool (form .Config ["is_system_webhook" ])
175207if err != nil {
@@ -188,31 +220,7 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
188220IsSystemWebhook :isSystemWebhook ,
189221HookEvent :& webhook_module.HookEvent {
190222ChooseEvents :true ,
191- HookEvents : webhook_module.HookEvents {
192- webhook_module .HookEventCreate :util .SliceContainsString (form .Events ,string (webhook_module .HookEventCreate ),true ),
193- webhook_module .HookEventDelete :util .SliceContainsString (form .Events ,string (webhook_module .HookEventDelete ),true ),
194- webhook_module .HookEventFork :util .SliceContainsString (form .Events ,string (webhook_module .HookEventFork ),true ),
195- webhook_module .HookEventIssues :issuesHook (form .Events ,"issues_only" ),
196- webhook_module .HookEventIssueAssign :issuesHook (form .Events ,string (webhook_module .HookEventIssueAssign )),
197- webhook_module .HookEventIssueLabel :issuesHook (form .Events ,string (webhook_module .HookEventIssueLabel )),
198- webhook_module .HookEventIssueMilestone :issuesHook (form .Events ,string (webhook_module .HookEventIssueMilestone )),
199- webhook_module .HookEventIssueComment :issuesHook (form .Events ,string (webhook_module .HookEventIssueComment )),
200- webhook_module .HookEventPush :util .SliceContainsString (form .Events ,string (webhook_module .HookEventPush ),true ),
201- webhook_module .HookEventPullRequest :pullHook (form .Events ,"pull_request_only" ),
202- webhook_module .HookEventPullRequestAssign :pullHook (form .Events ,string (webhook_module .HookEventPullRequestAssign )),
203- webhook_module .HookEventPullRequestLabel :pullHook (form .Events ,string (webhook_module .HookEventPullRequestLabel )),
204- webhook_module .HookEventPullRequestMilestone :pullHook (form .Events ,string (webhook_module .HookEventPullRequestMilestone )),
205- webhook_module .HookEventPullRequestComment :pullHook (form .Events ,string (webhook_module .HookEventPullRequestComment )),
206- webhook_module .HookEventPullRequestReview :pullHook (form .Events ,"pull_request_review" ),
207- webhook_module .HookEventPullRequestReviewRequest :pullHook (form .Events ,string (webhook_module .HookEventPullRequestReviewRequest )),
208- webhook_module .HookEventPullRequestSync :pullHook (form .Events ,string (webhook_module .HookEventPullRequestSync )),
209- webhook_module .HookEventWiki :util .SliceContainsString (form .Events ,string (webhook_module .HookEventWiki ),true ),
210- webhook_module .HookEventRepository :util .SliceContainsString (form .Events ,string (webhook_module .HookEventRepository ),true ),
211- webhook_module .HookEventRelease :util .SliceContainsString (form .Events ,string (webhook_module .HookEventRelease ),true ),
212- webhook_module .HookEventPackage :util .SliceContainsString (form .Events ,string (webhook_module .HookEventPackage ),true ),
213- webhook_module .HookEventStatus :util .SliceContainsString (form .Events ,string (webhook_module .HookEventStatus ),true ),
214- webhook_module .HookEventWorkflowJob :util .SliceContainsString (form .Events ,string (webhook_module .HookEventWorkflowJob ),true ),
215- },
223+ HookEvents :updateHookEvents (form .Events ),
216224BranchFilter :form .BranchFilter ,
217225},
218226IsActive :form .Active ,
@@ -361,19 +369,10 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
361369}
362370
363371// Update events
364- if len (form .Events )== 0 {
365- form .Events = []string {"push" }
366- }
372+ w .HookEvents = updateHookEvents (form .Events )
367373w .PushOnly = false
368374w .SendEverything = false
369375w .ChooseEvents = true
370- w .HookEvents [webhook_module .HookEventCreate ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventCreate ),true )
371- w .HookEvents [webhook_module .HookEventPush ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventPush ),true )
372- w .HookEvents [webhook_module .HookEventDelete ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventDelete ),true )
373- w .HookEvents [webhook_module .HookEventFork ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventFork ),true )
374- w .HookEvents [webhook_module .HookEventRepository ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventRepository ),true )
375- w .HookEvents [webhook_module .HookEventWiki ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventWiki ),true )
376- w .HookEvents [webhook_module .HookEventRelease ]= util .SliceContainsString (form .Events ,string (webhook_module .HookEventRelease ),true )
377376w .BranchFilter = form .BranchFilter
378377
379378err := w .SetHeaderAuthorization (form .AuthorizationHeader )
@@ -382,23 +381,6 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
382381return false
383382}
384383
385- // Issues
386- w .HookEvents [webhook_module .HookEventIssues ]= issuesHook (form .Events ,"issues_only" )
387- w .HookEvents [webhook_module .HookEventIssueAssign ]= issuesHook (form .Events ,string (webhook_module .HookEventIssueAssign ))
388- w .HookEvents [webhook_module .HookEventIssueLabel ]= issuesHook (form .Events ,string (webhook_module .HookEventIssueLabel ))
389- w .HookEvents [webhook_module .HookEventIssueMilestone ]= issuesHook (form .Events ,string (webhook_module .HookEventIssueMilestone ))
390- w .HookEvents [webhook_module .HookEventIssueComment ]= issuesHook (form .Events ,string (webhook_module .HookEventIssueComment ))
391-
392- // Pull requests
393- w .HookEvents [webhook_module .HookEventPullRequest ]= pullHook (form .Events ,"pull_request_only" )
394- w .HookEvents [webhook_module .HookEventPullRequestAssign ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestAssign ))
395- w .HookEvents [webhook_module .HookEventPullRequestLabel ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestLabel ))
396- w .HookEvents [webhook_module .HookEventPullRequestMilestone ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestMilestone ))
397- w .HookEvents [webhook_module .HookEventPullRequestComment ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestComment ))
398- w .HookEvents [webhook_module .HookEventPullRequestReview ]= pullHook (form .Events ,"pull_request_review" )
399- w .HookEvents [webhook_module .HookEventPullRequestReviewRequest ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestReviewRequest ))
400- w .HookEvents [webhook_module .HookEventPullRequestSync ]= pullHook (form .Events ,string (webhook_module .HookEventPullRequestSync ))
401-
402384if err := w .UpdateEvent ();err != nil {
403385ctx .APIErrorInternal (err )
404386return false