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. Backport of #20038 Co-authored-by: zeripath <art27@cantab.net>
This commit is contained in:
parent
ab9fcb0cf4
commit
1823bfde7c
3 changed files with 31 additions and 3 deletions
|
@ -389,6 +389,8 @@ var migrations = []Migration{
|
||||||
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
|
||||||
|
|
26
models/migrations/v217.go
Normal file
26
models/migrations/v217.go
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
// 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()
|
||||||
|
}
|
|
@ -105,7 +105,7 @@ type HookTask struct {
|
||||||
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
|
||||||
|
@ -113,9 +113,9 @@ type HookTask struct {
|
||||||
|
|
||||||
// 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:"-"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in a new issue