From bf6014644401dd3fdf9031670b3a00ccd866f49f Mon Sep 17 00:00:00 2001 From: S7evinK Date: Fri, 31 Jul 2020 00:04:19 +0200 Subject: Don't use legacy method to send Matrix Webhook (#12348) * Don't use legacy send for messages * Add migrations to ensure Matrix webhooks use PUT * Set HTTP method to PUT as default * Fix sql condition.. Signed-off-by: Till Faelligen * Rename getTxnID -> getMatrixTxnID * Use local variable instead of constant value Co-authored-by: techknowlogick --- models/migrations/migrations.go | 2 ++ models/migrations/v144.go | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 models/migrations/v144.go (limited to 'models') diff --git a/models/migrations/migrations.go b/models/migrations/migrations.go index d205794e1f..7e1cf2f50a 100644 --- a/models/migrations/migrations.go +++ b/models/migrations/migrations.go @@ -220,6 +220,8 @@ var migrations = []Migration{ NewMigration("Ensure Repository.IsArchived is not null", setIsArchivedToFalse), // v143 -> v144 NewMigration("recalculate Stars number for all user", recalculateStars), + // v144 -> v145 + NewMigration("update Matrix Webhook http method to 'PUT'", updateMatrixWebhookHTTPMethod), } // GetCurrentDBVersion returns the current db version diff --git a/models/migrations/v144.go b/models/migrations/v144.go new file mode 100644 index 0000000000..beb089dde6 --- /dev/null +++ b/models/migrations/v144.go @@ -0,0 +1,25 @@ +// Copyright 2020 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/log" + "xorm.io/builder" + "xorm.io/xorm" +) + +func updateMatrixWebhookHTTPMethod(x *xorm.Engine) error { + var matrixHookTaskType = 9 // value comes from the models package + type Webhook struct { + HTTPMethod string + } + + cond := builder.Eq{"hook_task_type": matrixHookTaskType}.And(builder.Neq{"http_method": "PUT"}) + count, err := x.Where(cond).Cols("http_method").Update(&Webhook{HTTPMethod: "PUT"}) + if err == nil { + log.Debug("Updated %d Matrix webhooks with http_method 'PUT'", count) + } + return err +} -- cgit v1.2.3