Mysql TEXT has a limit of 64KB, change this to LONGTEXT in mysql only so we can have bigger hook payloads. Postgresql has unlimited TEXT - https://www.postgresql.org/docs/current/datatype-character.html Sqlite has unlimited TEXT - https://www.sqlitetutorial.net/sqlite-data-types/#:~:text=The%20maximum%20length%20of%20TEXT,SQLite%20supports%20various%20character%20encodings. Same issue as #16656 but for hook_task Fixes #10252, #19679, #3561tags/v1.18.0-rc0
NewMigration("allow to view files in PRs", addReviewViewedFiles), | NewMigration("allow to view files in PRs", addReviewViewedFiles), | ||||
// v216 -> v217 | // v216 -> v217 | ||||
NewMigration("Improve Action table indices", improveActionTableIndices), | NewMigration("Improve Action table indices", improveActionTableIndices), | ||||
// v217 -> v218 | |||||
NewMigration("Alter hook_task table TEXT fields to LONGTEXT", alterHookTaskTextFieldsToLongText), | |||||
} | } | ||||
// GetCurrentDBVersion returns the current db version | // GetCurrentDBVersion returns the current db version |
// Copyright 2022 The Gitea Authors. All rights reserved. | |||||
// Use of this source code is governed by a MIT-style | |||||
// license that can be found in the LICENSE file. | |||||
package migrations | |||||
import ( | |||||
"code.gitea.io/gitea/modules/setting" | |||||
"xorm.io/xorm" | |||||
) | |||||
func alterHookTaskTextFieldsToLongText(x *xorm.Engine) error { | |||||
sess := x.NewSession() | |||||
defer sess.Close() | |||||
if err := sess.Begin(); err != nil { | |||||
return err | |||||
} | |||||
if setting.Database.UseMySQL { | |||||
if _, err := sess.Exec("ALTER TABLE `hook_task` CHANGE `payload_content` `payload_content` LONGTEXT, CHANGE `request_content` `request_content` LONGTEXT, change `response_content` `response_content` LONGTEXT"); err != nil { | |||||
return err | |||||
} | |||||
} | |||||
return sess.Commit() | |||||
} |
HookID int64 | HookID int64 | ||||
UUID string | UUID string | ||||
api.Payloader `xorm:"-"` | api.Payloader `xorm:"-"` | ||||
PayloadContent string `xorm:"TEXT"` | |||||
PayloadContent string `xorm:"LONGTEXT"` | |||||
EventType HookEventType | EventType HookEventType | ||||
IsDelivered bool | IsDelivered bool | ||||
Delivered int64 | Delivered int64 | ||||
// History info. | // History info. | ||||
IsSucceed bool | IsSucceed bool | ||||
RequestContent string `xorm:"TEXT"` | |||||
RequestContent string `xorm:"LONGTEXT"` | |||||
RequestInfo *HookRequest `xorm:"-"` | RequestInfo *HookRequest `xorm:"-"` | ||||
ResponseContent string `xorm:"TEXT"` | |||||
ResponseContent string `xorm:"LONGTEXT"` | |||||
ResponseInfo *HookResponse `xorm:"-"` | ResponseInfo *HookResponse `xorm:"-"` | ||||
} | } | ||||