@@ -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