@@ -259,31 +259,38 @@ func addHook(ctx *context.APIContext, form *api.CreateHookOption, ownerID, repoI
259259 Type : form .Type ,
260260 }
261261
262- // Set payload optimization config
263- if form .PayloadOptimization != nil {
264- payloadOptConfig := & webhook.PayloadOptimizationConfig {}
265-
266- // Parse files config
267- if filesConfig , ok := form .PayloadOptimization ["files" ].(map [string ]any ); ok {
268- payloadOptConfig .Files = & webhook.PayloadOptimizationItem {
269- Enable : getBoolFromMap (filesConfig , false ),
270- Limit : getIntFromMap (filesConfig , 0 ),
262+ // Set webhook meta settings
263+ if form .MetaSettings != nil {
264+ metaSettings := & webhook.MetaSettings {}
265+
266+ // Parse payload optimization config
267+ if payloadOptMap , ok := form .MetaSettings ["payload_optimization" ].(map [string ]any ); ok {
268+ payloadOptConfig := & webhook.PayloadOptimizationConfig {}
269+
270+ // Parse files config
271+ if filesConfig , ok := payloadOptMap ["files" ].(map [string ]any ); ok {
272+ payloadOptConfig .Files = & webhook.PayloadOptimizationItem {
273+ Enable : getBoolFromMap (filesConfig , false ),
274+ Limit : getIntFromMap (filesConfig , 0 ),
275+ }
276+ } else {
277+ payloadOptConfig .Files = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
271278 }
272- } else {
273- payloadOptConfig .Files = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
274- }
275279
276- // Parse commits config
277- if commitsConfig , ok := form .PayloadOptimization ["commits" ].(map [string ]any ); ok {
278- payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {
279- Enable : getBoolFromMap (commitsConfig , false ),
280- Limit : getIntFromMap (commitsConfig , 0 ),
280+ // Parse commits config
281+ if commitsConfig , ok := payloadOptMap ["commits" ].(map [string ]any ); ok {
282+ payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {
283+ Enable : getBoolFromMap (commitsConfig , false ),
284+ Limit : getIntFromMap (commitsConfig , 0 ),
285+ }
286+ } else {
287+ payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
281288 }
282- } else {
283- payloadOptConfig . Commits = & webhook. PayloadOptimizationItem { Enable : false , Limit : 0 }
289+
290+ metaSettings . PayloadOptimization = payloadOptConfig
284291 }
285292
286- if err := w .SetPayloadOptimizationConfig ( payloadOptConfig ); err != nil {
293+ if err := w .SetMetaSettings ( metaSettings ); err != nil {
287294 ctx .APIErrorInternal (err )
288295 return nil , false
289296 }
@@ -453,31 +460,38 @@ func editHook(ctx *context.APIContext, form *api.EditHookOption, w *webhook.Webh
453460 w .IsActive = * form .Active
454461 }
455462
456- // Update payload optimization config
457- if form .PayloadOptimization != nil {
458- payloadOptConfig := & webhook.PayloadOptimizationConfig {}
463+ // Update webhook meta settings
464+ if form .MetaSettings != nil {
465+ metaSettings := & webhook.MetaSettings {}
466+
467+ // Parse payload optimization config
468+ if payloadOptMap , ok := (* form .MetaSettings )["payload_optimization" ].(map [string ]any ); ok {
469+ payloadOptConfig := & webhook.PayloadOptimizationConfig {}
459470
460- // Parse files config
461- if filesConfig , ok := (* form .PayloadOptimization )["files" ].(map [string ]any ); ok {
462- payloadOptConfig .Files = & webhook.PayloadOptimizationItem {
463- Enable : getBoolFromMap (filesConfig , false ),
464- Limit : getIntFromMap (filesConfig , 0 ),
471+ // Parse files config
472+ if filesConfig , ok := payloadOptMap ["files" ].(map [string ]any ); ok {
473+ payloadOptConfig .Files = & webhook.PayloadOptimizationItem {
474+ Enable : getBoolFromMap (filesConfig , false ),
475+ Limit : getIntFromMap (filesConfig , 0 ),
476+ }
477+ } else {
478+ payloadOptConfig .Files = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
465479 }
466- } else {
467- payloadOptConfig .Files = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
468- }
469480
470- // Parse commits config
471- if commitsConfig , ok := (* form .PayloadOptimization )["commits" ].(map [string ]any ); ok {
472- payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {
473- Enable : getBoolFromMap (commitsConfig , false ),
474- Limit : getIntFromMap (commitsConfig , 0 ),
481+ // Parse commits config
482+ if commitsConfig , ok := payloadOptMap ["commits" ].(map [string ]any ); ok {
483+ payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {
484+ Enable : getBoolFromMap (commitsConfig , false ),
485+ Limit : getIntFromMap (commitsConfig , 0 ),
486+ }
487+ } else {
488+ payloadOptConfig .Commits = & webhook.PayloadOptimizationItem {Enable : false , Limit : 0 }
475489 }
476- } else {
477- payloadOptConfig . Commits = & webhook. PayloadOptimizationItem { Enable : false , Limit : 0 }
490+
491+ metaSettings . PayloadOptimization = payloadOptConfig
478492 }
479493
480- if err := w .SetPayloadOptimizationConfig ( payloadOptConfig ); err != nil {
494+ if err := w .SetMetaSettings ( metaSettings ); err != nil {
481495 ctx .APIErrorInternal (err )
482496 return false
483497 }
0 commit comments