@@ -159,6 +159,41 @@ func pullHook(events []string, event string) bool {
159
159
return util .SliceContainsString (events , event , true ) || util .SliceContainsString (events , string (webhook_module .HookEventPullRequest ), true )
160
160
}
161
161
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
+
162
197
// addHook add the hook specified by `form`, `ownerID` and `repoID`. If there is
163
198
// an error, write to `ctx` accordingly. Return (webhook, ok)
164
199
func 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
167
202
return nil , false
168
203
}
169
204
170
- if len (form .Events ) == 0 {
171
- form .Events = []string {"push" }
172
- }
173
205
if form .Config ["is_system_webhook" ] != "" {
174
206
sw , err := strconv .ParseBool (form .Config ["is_system_webhook" ])
175
207
if err != nil {
@@ -188,31 +220,7 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
188
220
IsSystemWebhook : isSystemWebhook ,
189
221
HookEvent : & webhook_module.HookEvent {
190
222
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 ),
216
224
BranchFilter : form .BranchFilter ,
217
225
},
218
226
IsActive : form .Active ,
@@ -361,19 +369,10 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
361
369
}
362
370
363
371
// Update events
364
- if len (form .Events ) == 0 {
365
- form .Events = []string {"push" }
366
- }
372
+ w .HookEvents = updateHookEvents (form .Events )
367
373
w .PushOnly = false
368
374
w .SendEverything = false
369
375
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 )
377
376
w .BranchFilter = form .BranchFilter
378
377
379
378
err := w .SetHeaderAuthorization (form .AuthorizationHeader )
@@ -382,23 +381,6 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
382
381
return false
383
382
}
384
383
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
-
402
384
if err := w .UpdateEvent (); err != nil {
403
385
ctx .APIErrorInternal (err )
404
386
return false
0 commit comments