@@ -159,6 +159,41 @@ func pullHook(events []string, event string) bool {
159159 return 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
167202 return nil , false
168203 }
169204
170- if len (form .Events ) == 0 {
171- form .Events = []string {"push" }
172- }
173205 if form .Config ["is_system_webhook" ] != "" {
174206 sw , err := strconv .ParseBool (form .Config ["is_system_webhook" ])
175207 if err != nil {
@@ -188,31 +220,7 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
188220 IsSystemWebhook : isSystemWebhook ,
189221 HookEvent : & webhook_module.HookEvent {
190222 ChooseEvents : 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 ),
216224 BranchFilter : form .BranchFilter ,
217225 },
218226 IsActive : 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 )
367373 w .PushOnly = false
368374 w .SendEverything = false
369375 w .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 )
377376 w .BranchFilter = form .BranchFilter
378377
379378 err := w .SetHeaderAuthorization (form .AuthorizationHeader )
@@ -382,23 +381,6 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
382381 return 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-
402384 if err := w .UpdateEvent (); err != nil {
403385 ctx .APIErrorInternal (err )
404386 return false
0 commit comments