summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorWim <wim@42.be>2022-06-19 20:47:04 +0200
committerGitHub <noreply@github.com>2022-06-19 19:47:04 +0100
commit62104b4896f2f443da13b834d0111e1378134ac3 (patch)
treee8311491ac1c379b47f10b12edd88426c376b9e3 /models
parent62cb3c8c85f4721a1d2cf04762d2a8bab062bbd3 (diff)
downloadgitea-62104b4896f2f443da13b834d0111e1378134ac3.tar.gz
gitea-62104b4896f2f443da13b834d0111e1378134ac3.zip
Alter hook_task TEXT fields to LONGTEXT (#20038)
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, #3561
Diffstat (limited to 'models')
-rw-r--r--models/migrations/migrations.go2
-rw-r--r--models/migrations/v217.go26
-rw-r--r--models/webhook/hooktask.go6
3 files changed, 31 insertions, 3 deletions
diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go
index c843e33eb7..edd4beb451 100644
--- a/models/migrations/migrations.go
+++ b/models/migrations/migrations.go
@@ -389,6 +389,8 @@ var migrations = []Migration{
NewMigration("allow to view files in PRs", addReviewViewedFiles),
// v216 -> v217
NewMigration("Improve Action table indices", improveActionTableIndices),
+ // v217 -> v218
+ NewMigration("Alter hook_task table TEXT fields to LONGTEXT", alterHookTaskTextFieldsToLongText),
}
// GetCurrentDBVersion returns the current db version
diff --git a/models/migrations/v217.go b/models/migrations/v217.go
new file mode 100644
index 0000000000..280dba17a9
--- /dev/null
+++ b/models/migrations/v217.go
@@ -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()
+}
diff --git a/models/webhook/hooktask.go b/models/webhook/hooktask.go
index c71b18f662..aff94fb38c 100644
--- a/models/webhook/hooktask.go
+++ b/models/webhook/hooktask.go
@@ -105,7 +105,7 @@ type HookTask struct {
HookID int64
UUID string
api.Payloader `xorm:"-"`
- PayloadContent string `xorm:"TEXT"`
+ PayloadContent string `xorm:"LONGTEXT"`
EventType HookEventType
IsDelivered bool
Delivered int64
@@ -113,9 +113,9 @@ type HookTask struct {
// History info.
IsSucceed bool
- RequestContent string `xorm:"TEXT"`
+ RequestContent string `xorm:"LONGTEXT"`
RequestInfo *HookRequest `xorm:"-"`
- ResponseContent string `xorm:"TEXT"`
+ ResponseContent string `xorm:"LONGTEXT"`
ResponseInfo *HookResponse `xorm:"-"`
}