@@ -103,9 +103,9 @@ type HookResponse struct {
103
103
104
104
// HookTask represents a hook task.
105
105
type HookTask struct {
106
- ID int64 `xorm:"pk autoincr"`
107
- HookID int64
108
- UUID string
106
+ ID int64 `xorm:"pk autoincr"`
107
+ HookID int64 `xorm:"index"`
108
+ UUID string `xorm:"unique"`
109
109
api.Payloader `xorm:"-"`
110
110
PayloadContent string `xorm:"LONGTEXT"`
111
111
EventType HookEventType
@@ -270,7 +270,7 @@ func CleanupHookTaskTable(ctx context.Context, cleanupType HookTaskCleanupType,
270
270
return db .ErrCancelledf ("Before deleting hook_task records for hook id %d" , hookID )
271
271
default :
272
272
}
273
- if err = deleteDeliveredHookTasksByWebhook (hookID , numberToKeep ); err != nil {
273
+ if err = deleteDeliveredHookTasksByWebhook (ctx , hookID , numberToKeep ); err != nil {
274
274
return err
275
275
}
276
276
}
@@ -279,10 +279,10 @@ func CleanupHookTaskTable(ctx context.Context, cleanupType HookTaskCleanupType,
279
279
return nil
280
280
}
281
281
282
- func deleteDeliveredHookTasksByWebhook (hookID int64 , numberDeliveriesToKeep int ) error {
282
+ func deleteDeliveredHookTasksByWebhook (ctx context. Context , hookID int64 , numberDeliveriesToKeep int ) error {
283
283
log .Trace ("Deleting hook_task rows for webhook %d, keeping the most recent %d deliveries" , hookID , numberDeliveriesToKeep )
284
284
deliveryDates := make ([]int64 , 0 , 10 )
285
- err := db .GetEngine (db . DefaultContext ).Table ("hook_task" ).
285
+ err := db .GetEngine (ctx ).Table ("hook_task" ).
286
286
Where ("hook_task.hook_id = ? AND hook_task.is_delivered = ? AND hook_task.delivered is not null" , hookID , true ).
287
287
Cols ("hook_task.delivered" ).
288
288
Join ("INNER" , "webhook" , "hook_task.hook_id = webhook.id" ).
@@ -294,7 +294,7 @@ func deleteDeliveredHookTasksByWebhook(hookID int64, numberDeliveriesToKeep int)
294
294
}
295
295
296
296
if len (deliveryDates ) > 0 {
297
- deletes , err := db .GetEngine (db . DefaultContext ).
297
+ deletes , err := db .GetEngine (ctx ).
298
298
Where ("hook_id = ? and is_delivered = ? and delivered <= ?" , hookID , true , deliveryDates [0 ]).
299
299
Delete (new (HookTask ))
300
300
if err != nil {
0 commit comments