feat: update gitea vendor
runner nix smoke / nix label and flake smoke (push) Failing after 1m28s

This commit is contained in:
2026-09-26 21:18:24 +00:00
parent c439c1b948
commit d9b2a4e787
3538 changed files with 116131 additions and 44340 deletions
@@ -11,17 +11,17 @@ import (
"regexp"
"strings"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
// RecreateTables will recreate the tables for the provided beans using the newly provided bean definition and move all data to that new table
// WARNING: YOU MUST PROVIDE THE FULL BEAN DEFINITION
func RecreateTables(beans ...any) func(*xorm.Engine) error {
return func(x *xorm.Engine) error {
func RecreateTables(beans ...any) func(db.EngineMigration) error {
return func(x db.EngineMigration) error {
sess := x.NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
@@ -41,7 +41,7 @@ func RecreateTables(beans ...any) func(*xorm.Engine) error {
// RecreateTable will recreate the table using the newly provided bean definition and move all data to that new table
// WARNING: YOU MUST PROVIDE THE FULL BEAN DEFINITION
// WARNING: YOU MUST COMMIT THE SESSION AT THE END
func RecreateTable(sess *xorm.Session, bean any) error {
func RecreateTable(sess db.Session, bean any) error {
// TODO: This will not work if there are foreign keys
tableName := sess.Engine().TableName(bean)
@@ -304,7 +304,7 @@ func RecreateTable(sess *xorm.Session, bean any) error {
}
// WARNING: YOU MUST COMMIT THE SESSION AT THE END
func DropTableColumns(sess *xorm.Session, tableName string, columnNames ...string) (err error) {
func DropTableColumns(sess db.Session, tableName string, columnNames ...string) (err error) {
if tableName == "" || len(columnNames) == 0 {
return nil
}
@@ -474,7 +474,7 @@ func DropTableColumns(sess *xorm.Session, tableName string, columnNames ...strin
}
// ModifyColumn will modify column's type or other property. SQLITE is not supported
func ModifyColumn(x *xorm.Engine, tableName string, col *schemas.Column) error {
func ModifyColumn(x db.EngineMigration, tableName string, col *schemas.Column) error {
var indexes map[string]*schemas.Index
var err error
// MSSQL have to remove index at first, otherwise alter column will fail
@@ -6,22 +6,23 @@ package base
import (
"testing"
"code.gitea.io/gitea/modules/timeutil"
"gitea.dev/models/migrations/migrationtest"
"gitea.dev/modules/timeutil"
"xorm.io/xorm/names"
)
func TestMain(m *testing.M) {
MainTest(m)
migrationtest.MainTest(m)
}
func Test_DropTableColumns(t *testing.T) {
x, deferable := PrepareTestEnv(t, 0)
if x == nil || t.Failed() {
defer deferable()
return
}
x, deferable := migrationtest.PrepareTestEnv(t, 0)
defer deferable()
// FIXME: this logic seems wrong. Need to add an assertion here in the future, but it seems causing failure.
if x == nil || t.Failed() {
t.Skip("PrepareTestEnv did not yield a usable engine")
}
type DropTest struct {
ID int64 `xorm:"pk autoincr"`
@@ -1,225 +0,0 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package base
import (
"database/sql"
"fmt"
"os"
"path"
"path/filepath"
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/tempdir"
"code.gitea.io/gitea/modules/testlogger"
"code.gitea.io/gitea/modules/util"
"github.com/stretchr/testify/require"
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
// FIXME: this file shouldn't be in a normal package, it should only be compiled for tests
func newXORMEngine(t *testing.T) (*xorm.Engine, error) {
if err := db.InitEngine(t.Context()); err != nil {
return nil, err
}
x := unittest.GetXORMEngine()
return x, nil
}
func deleteDB() error {
switch {
case setting.Database.Type.IsSQLite3():
if err := util.Remove(setting.Database.Path); err != nil {
return err
}
return os.MkdirAll(path.Dir(setting.Database.Path), os.ModePerm)
case setting.Database.Type.IsMySQL():
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/",
setting.Database.User, setting.Database.Passwd, setting.Database.Host))
if err != nil {
return err
}
defer db.Close()
if _, err = db.Exec("DROP DATABASE IF EXISTS " + setting.Database.Name); err != nil {
return err
}
if _, err = db.Exec("CREATE DATABASE IF NOT EXISTS " + setting.Database.Name); err != nil {
return err
}
return nil
case setting.Database.Type.IsPostgreSQL():
db, err := sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.SSLMode))
if err != nil {
return err
}
defer db.Close()
if _, err = db.Exec("DROP DATABASE IF EXISTS " + setting.Database.Name); err != nil {
return err
}
if _, err = db.Exec("CREATE DATABASE " + setting.Database.Name); err != nil {
return err
}
db.Close()
// Check if we need to setup a specific schema
if len(setting.Database.Schema) != 0 {
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
if err != nil {
return err
}
defer db.Close()
schrows, err := db.Query(fmt.Sprintf("SELECT 1 FROM information_schema.schemata WHERE schema_name = '%s'", setting.Database.Schema))
if err != nil {
return err
}
defer schrows.Close()
if !schrows.Next() {
// Create and setup a DB schema
_, err = db.Exec("CREATE SCHEMA " + setting.Database.Schema)
if err != nil {
return err
}
}
// Make the user's default search path the created schema; this will affect new connections
_, err = db.Exec(fmt.Sprintf(`ALTER USER "%s" SET search_path = %s`, setting.Database.User, setting.Database.Schema))
if err != nil {
return err
}
return nil
}
case setting.Database.Type.IsMSSQL():
host, port := setting.ParseMSSQLHostPort(setting.Database.Host)
db, err := sql.Open("mssql", fmt.Sprintf("server=%s; port=%s; database=%s; user id=%s; password=%s;",
host, port, "master", setting.Database.User, setting.Database.Passwd))
if err != nil {
return err
}
defer db.Close()
if _, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS [%s]", setting.Database.Name)); err != nil {
return err
}
if _, err = db.Exec(fmt.Sprintf("CREATE DATABASE [%s]", setting.Database.Name)); err != nil {
return err
}
}
return nil
}
// PrepareTestEnv prepares the test environment and reset the database. The skip parameter should usually be 0.
// Provide models to be sync'd with the database - in particular any models you expect fixtures to be loaded from.
//
// fixtures in `models/migrations/fixtures/<TestName>` will be loaded automatically
func PrepareTestEnv(t *testing.T, skip int, syncModels ...any) (*xorm.Engine, func()) {
t.Helper()
ourSkip := 2
ourSkip += skip
deferFn := testlogger.PrintCurrentTest(t, ourSkip)
require.NoError(t, unittest.SyncDirs(filepath.Join(filepath.Dir(setting.AppPath), "tests/gitea-repositories-meta"), setting.RepoRootPath))
if err := deleteDB(); err != nil {
t.Fatalf("unable to reset database: %v", err)
return nil, deferFn
}
x, err := newXORMEngine(t)
require.NoError(t, err)
if x != nil {
oldDefer := deferFn
deferFn = func() {
oldDefer()
if err := x.Close(); err != nil {
t.Errorf("error during close: %v", err)
}
if err := deleteDB(); err != nil {
t.Errorf("unable to reset database: %v", err)
}
}
}
if err != nil {
return x, deferFn
}
if len(syncModels) > 0 {
if err := x.Sync(syncModels...); err != nil {
t.Errorf("error during sync: %v", err)
return x, deferFn
}
}
fixturesDir := filepath.Join(filepath.Dir(setting.AppPath), "models", "migrations", "fixtures", t.Name())
if _, err := os.Stat(fixturesDir); err == nil {
t.Logf("initializing fixtures from: %s", fixturesDir)
if err := unittest.InitFixtures(
unittest.FixturesOptions{
Dir: fixturesDir,
}, x); err != nil {
t.Errorf("error whilst initializing fixtures from %s: %v", fixturesDir, err)
return x, deferFn
}
if err := unittest.LoadFixtures(); err != nil {
t.Errorf("error whilst loading fixtures from %s: %v", fixturesDir, err)
return x, deferFn
}
} else if !os.IsNotExist(err) {
t.Errorf("unexpected error whilst checking for existence of fixtures: %v", err)
} else {
t.Logf("no fixtures found in: %s", fixturesDir)
}
return x, deferFn
}
func LoadTableSchemasMap(t *testing.T, x *xorm.Engine) map[string]*schemas.Table {
tables, err := x.DBMetas()
require.NoError(t, err)
tableMap := make(map[string]*schemas.Table)
for _, table := range tables {
tableMap[table.Name] = table
}
return tableMap
}
func mainTest(m *testing.M) int {
testlogger.Init()
tmpDataPath, cleanup, err := tempdir.OsTempDir("gitea-test").MkdirTempRandom("data")
if err != nil {
testlogger.Panicf("Unable to create temporary data path %v\n", err)
}
defer cleanup()
setting.AppDataPath = tmpDataPath
unittest.InitSettingsForTesting()
if err = git.InitFull(); err != nil {
testlogger.Panicf("Unable to InitFull: %v\n", err)
}
setting.LoadDBSetting()
setting.InitLoggersForTest()
return m.Run()
}
func MainTest(m *testing.M) {
os.Exit(mainTest(m))
}
@@ -9,32 +9,33 @@ import (
"errors"
"fmt"
"code.gitea.io/gitea/models/migrations/v1_10"
"code.gitea.io/gitea/models/migrations/v1_11"
"code.gitea.io/gitea/models/migrations/v1_12"
"code.gitea.io/gitea/models/migrations/v1_13"
"code.gitea.io/gitea/models/migrations/v1_14"
"code.gitea.io/gitea/models/migrations/v1_15"
"code.gitea.io/gitea/models/migrations/v1_16"
"code.gitea.io/gitea/models/migrations/v1_17"
"code.gitea.io/gitea/models/migrations/v1_18"
"code.gitea.io/gitea/models/migrations/v1_19"
"code.gitea.io/gitea/models/migrations/v1_20"
"code.gitea.io/gitea/models/migrations/v1_21"
"code.gitea.io/gitea/models/migrations/v1_22"
"code.gitea.io/gitea/models/migrations/v1_23"
"code.gitea.io/gitea/models/migrations/v1_24"
"code.gitea.io/gitea/models/migrations/v1_25"
"code.gitea.io/gitea/models/migrations/v1_26"
"code.gitea.io/gitea/models/migrations/v1_6"
"code.gitea.io/gitea/models/migrations/v1_7"
"code.gitea.io/gitea/models/migrations/v1_8"
"code.gitea.io/gitea/models/migrations/v1_9"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"gitea.dev/models/db"
"gitea.dev/models/migrations/v1_10"
"gitea.dev/models/migrations/v1_11"
"gitea.dev/models/migrations/v1_12"
"gitea.dev/models/migrations/v1_13"
"gitea.dev/models/migrations/v1_14"
"gitea.dev/models/migrations/v1_15"
"gitea.dev/models/migrations/v1_16"
"gitea.dev/models/migrations/v1_17"
"gitea.dev/models/migrations/v1_18"
"gitea.dev/models/migrations/v1_19"
"gitea.dev/models/migrations/v1_20"
"gitea.dev/models/migrations/v1_21"
"gitea.dev/models/migrations/v1_22"
"gitea.dev/models/migrations/v1_23"
"gitea.dev/models/migrations/v1_24"
"gitea.dev/models/migrations/v1_25"
"gitea.dev/models/migrations/v1_26"
"gitea.dev/models/migrations/v1_27"
"gitea.dev/models/migrations/v1_6"
"gitea.dev/models/migrations/v1_7"
"gitea.dev/models/migrations/v1_8"
"gitea.dev/models/migrations/v1_9"
"gitea.dev/modules/git"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"xorm.io/xorm"
"xorm.io/xorm/names"
)
@@ -43,23 +44,23 @@ const minDBVersion = 70 // Gitea 1.5.3
type migration struct {
idNumber int64 // DB version is "the last migration's idNumber" + 1
description string
migrate func(context.Context, *xorm.Engine) error
migrate func(context.Context, db.EngineMigration) error
}
// newMigration creates a new migration
func newMigration[T func(*xorm.Engine) error | func(context.Context, *xorm.Engine) error](idNumber int64, desc string, fn T) *migration {
func newMigration[T func(db.EngineMigration) error | func(context.Context, db.EngineMigration) error](idNumber int64, desc string, fn T) *migration {
m := &migration{idNumber: idNumber, description: desc}
var ok bool
if m.migrate, ok = any(fn).(func(context.Context, *xorm.Engine) error); !ok {
m.migrate = func(ctx context.Context, x *xorm.Engine) error {
return any(fn).(func(*xorm.Engine) error)(x)
if m.migrate, ok = any(fn).(func(context.Context, db.EngineMigration) error); !ok {
m.migrate = func(ctx context.Context, x db.EngineMigration) error {
return any(fn).(func(db.EngineMigration) error)(x)
}
}
return m
}
// Migrate executes the migration
func (m *migration) Migrate(ctx context.Context, x *xorm.Engine) error {
func (m *migration) Migrate(ctx context.Context, x db.EngineMigration) error {
return m.migrate(ctx, x)
}
@@ -70,7 +71,7 @@ type Version struct {
}
// Use noopMigration when there is a migration that has been no-oped
var noopMigration = func(_ *xorm.Engine) error { return nil }
var noopMigration = func(_ db.EngineMigration) error { return nil }
var preparedMigrations []*migration
@@ -405,13 +406,26 @@ func prepareMigrationTasks() []*migration {
newMigration(328, "Add TokenPermissions column to ActionRunJob", v1_26.AddTokenPermissionsToActionRunJob),
newMigration(329, "Add unique constraint for user badge", v1_26.AddUniqueIndexForUserBadge),
newMigration(330, "Add name column to webhook", v1_26.AddNameToWebhook),
newMigration(331, "Create heatmap contribution table", v1_26.CreateHeatmapContributionTable),
// Gitea 1.26.0 ends at migration ID number 330 (database version 331)
newMigration(331, "Add ActionRunAttempt model and related action fields", v1_27.AddActionRunAttemptModel),
newMigration(332, "Add last_sync_unix to mirror and bridge heatmap migration collision", v1_27.BridgeHeatmapMigrationCollision),
newMigration(333, "Add bypass allowlist to branch protection", v1_27.AddBranchProtectionBypassAllowlist),
newMigration(334, "Add cancelling support to action runners", v1_27.AddCancellingSupportToActionRunner),
newMigration(335, "Add reusable workflow fields and action_run_attempt_job_id_index table for ActionRunJob", v1_27.AddReusableWorkflowFieldsToActionRunJob),
newMigration(336, "Add ActionRunJobSummary table", v1_27.AddActionRunJobSummaryTable),
newMigration(337, "Add visibility to team", v1_27.AddVisibilityToTeam),
newMigration(338, "Expand legacy MSSQL issue/comment long-text columns", v1_27.ExpandIssueAndCommentLongTextFieldsForMSSQL),
newMigration(339, "Extend action c_u index to include created_unix for faster dashboard feed queries", v1_27.AddCreatedUnixToActionUserIsDeletedIndex),
newMigration(340, "Add ContinueOnError column to ActionRunJob", v1_27.AddContinueOnErrorToActionRunJob),
newMigration(341, "Convert legacy MSSQL DATETIME columns to DATETIME2", v1_27.FixLegacyMSSQLDateTimeColumns),
newMigration(342, "Add scoped workflows schema", v1_27.AddScopedWorkflowsSchema),
}
return preparedMigrations
}
// GetCurrentDBVersion returns the current db version
func GetCurrentDBVersion(x *xorm.Engine) (int64, error) {
func GetCurrentDBVersion(x db.EngineMigration) (int64, error) {
if err := x.Sync(new(Version)); err != nil {
return -1, fmt.Errorf("sync: %w", err)
}
@@ -444,7 +458,7 @@ func ExpectedDBVersion() int64 {
}
// EnsureUpToDate will check if the db is at the correct version
func EnsureUpToDate(ctx context.Context, x *xorm.Engine) error {
func EnsureUpToDate(ctx context.Context, x db.EngineMigration) error {
currentDB, err := GetCurrentDBVersion(x)
if err != nil {
return err
@@ -476,7 +490,7 @@ func migrationIDNumberToDBVersion(idNumber int64) int64 {
}
// Migrate database to current version
func Migrate(ctx context.Context, x *xorm.Engine) error {
func Migrate(ctx context.Context, x db.EngineMigration) error {
migrations := prepareMigrationTasks()
maxDBVer := calcDBVersion(migrations)
@@ -495,7 +509,7 @@ func Migrate(ctx context.Context, x *xorm.Engine) error {
// XORM model framework will create all tables when initializing.
currentVersion.ID = 0
currentVersion.Version = maxDBVer
if _, err = x.InsertOne(currentVersion); err != nil {
if _, err = x.Insert(currentVersion); err != nil {
return fmt.Errorf("insert: %w", err)
}
}
@@ -6,7 +6,7 @@ package migrations
import (
"testing"
"code.gitea.io/gitea/modules/test"
"gitea.dev/modules/test"
"github.com/stretchr/testify/assert"
)
@@ -0,0 +1,120 @@
// Copyright 2022 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package migrationtest
import (
"os"
"path/filepath"
"testing"
"gitea.dev/models/db"
"gitea.dev/models/unittest"
"gitea.dev/modules/git"
"gitea.dev/modules/setting"
"gitea.dev/modules/testlogger"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"xorm.io/xorm/schemas"
)
// PrepareTestEnv prepares the test environment and reset the database. The skip parameter should usually be 0.
// Provide models to be sync'd with the database - in particular any models you expect fixtures to be loaded from.
//
// fixtures in `models/migrations/fixtures/<TestName>` will be loaded automatically
func PrepareTestEnv(t *testing.T, skip int, syncModels ...any) (db.EngineMigration, func()) {
t.Helper()
ourSkip := 2
ourSkip += skip
deferFn := testlogger.PrintCurrentTest(t, ourSkip)
giteaRoot := setting.GetGiteaTestSourceRoot()
require.NoError(t, unittest.SyncDirs(filepath.Join(giteaRoot, "tests/gitea-repositories-meta"), setting.RepoRootPath))
cleanup, err := unittest.ResetTestDatabase()
if err != nil {
t.Fatalf("unable to reset database: %v", err)
return nil, deferFn
}
{
oldDefer := deferFn
deferFn = func() {
cleanup()
oldDefer()
}
}
err = db.InitEngine(t.Context())
if !assert.NoError(t, err) {
return nil, deferFn
}
x := unittest.GetXORMEngine()
{
oldDefer := deferFn
deferFn = func() {
_ = x.Close()
oldDefer()
}
}
if len(syncModels) > 0 {
if err := x.Sync(syncModels...); err != nil {
t.Errorf("error during sync: %v", err)
return x, deferFn
}
}
fixturesDir := filepath.Join(giteaRoot, "models", "migrations", "fixtures", t.Name())
if _, err := os.Stat(fixturesDir); err == nil {
t.Logf("initializing fixtures from: %s", fixturesDir)
if err := unittest.InitFixtures(
unittest.FixturesOptions{
Dir: fixturesDir,
}); err != nil {
t.Errorf("error whilst initializing fixtures from %s: %v", fixturesDir, err)
return x, deferFn
}
if err := unittest.LoadFixtures(); err != nil {
t.Errorf("error whilst loading fixtures from %s: %v", fixturesDir, err)
return x, deferFn
}
} else if !os.IsNotExist(err) {
t.Errorf("unexpected error whilst checking for existence of fixtures: %v", err)
} else {
t.Logf("no fixtures found in: %s", fixturesDir)
}
return x, deferFn
}
func LoadTableSchemasMap(t *testing.T, x db.EngineMigration) map[string]*schemas.Table {
tables, err := x.DBMetas()
require.NoError(t, err)
tableMap := make(map[string]*schemas.Table)
for _, table := range tables {
tableMap[table.Name] = table
}
return tableMap
}
func mainTest(m *testing.M) int {
testlogger.Init()
err := setting.PrepareIntegrationTestConfig()
if err != nil {
return testlogger.MainErrorf("Unable to prepare integration test config: %v", err)
}
setting.SetupGiteaTestEnv()
if err = git.InitFull(); err != nil {
return testlogger.MainErrorf("Unable to InitFull: %v", err)
}
setting.Database.SlowQueryThreshold = 0
setting.LoadDBSetting()
setting.InitLoggersForTest()
return m.Run()
}
func MainTest(m *testing.M) {
os.Exit(mainTest(m))
}
@@ -8,10 +8,10 @@ import (
"strings"
"time"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func UpdateMigrationServiceTypes(x *xorm.Engine) error {
func UpdateMigrationServiceTypes(x db.EngineMigration) error {
type Repository struct {
ID int64
OriginalServiceType int `xorm:"index default(0)"`
@@ -3,11 +3,9 @@
package v1_10
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func ChangeSomeColumnsLengthOfExternalLoginUser(x *xorm.Engine) error {
func ChangeSomeColumnsLengthOfExternalLoginUser(x db.EngineMigration) error {
type ExternalLoginUser struct {
AccessToken string `xorm:"TEXT"`
AccessTokenSecret string `xorm:"TEXT"`
@@ -7,14 +7,14 @@ import (
"crypto/sha1"
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func hashContext(context string) string {
return fmt.Sprintf("%x", sha1.Sum([]byte(context)))
}
func AddCommitStatusContext(x *xorm.Engine) error {
func AddCommitStatusContext(x db.EngineMigration) error {
type CommitStatus struct {
ID int64 `xorm:"pk autoincr"`
ContextHash string `xorm:"char(40) index"`
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddOriginalMigrationInfo(x *xorm.Engine) error {
func AddOriginalMigrationInfo(x db.EngineMigration) error {
// Issue see models/issue.go
type Issue struct {
OriginalAuthor string
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func ChangeSomeColumnsLengthOfRepo(x *xorm.Engine) error {
func ChangeSomeColumnsLengthOfRepo(x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
Description string `xorm:"TEXT"`
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddIndexOnRepositoryAndComment(x *xorm.Engine) error {
func AddIndexOnRepositoryAndComment(x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"index"`
@@ -4,11 +4,12 @@
package v1_10
import (
"gitea.dev/models/db"
"xorm.io/builder"
"xorm.io/xorm"
)
func RemoveLingeringIndexStatus(x *xorm.Engine) error {
func RemoveLingeringIndexStatus(x db.EngineMigration) error {
_, err := x.Exec(builder.Delete(builder.NotIn("`repo_id`", builder.Select("`id`").From("`repository`"))).From("`repo_indexer_status`"))
return err
}
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddEmailNotificationEnabledToUser(x *xorm.Engine) error {
func AddEmailNotificationEnabledToUser(x db.EngineMigration) error {
// User see models/user.go
type User struct {
EmailNotificationsPreference string `xorm:"VARCHAR(20) NOT NULL DEFAULT 'enabled'"`
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddStatusCheckColumnsForProtectedBranches(x *xorm.Engine) error {
func AddStatusCheckColumnsForProtectedBranches(x db.EngineMigration) error {
type ProtectedBranch struct {
EnableStatusCheck bool `xorm:"NOT NULL DEFAULT false"`
StatusCheckContexts []string `xorm:"JSON TEXT"`
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddCrossReferenceColumns(x *xorm.Engine) error {
func AddCrossReferenceColumns(x db.EngineMigration) error {
// Comment see models/comment.go
type Comment struct {
RefRepoID int64 `xorm:"index"`
@@ -6,13 +6,12 @@ package v1_10
import (
"path/filepath"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/setting"
"gitea.dev/modules/util"
)
func DeleteOrphanedAttachments(x *xorm.Engine) error {
func DeleteOrphanedAttachments(x db.EngineMigration) error {
type Attachment struct {
ID int64 `xorm:"pk autoincr"`
UUID string `xorm:"uuid UNIQUE"`
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddRepoAdminChangeTeamAccessColumnForUser(x *xorm.Engine) error {
func AddRepoAdminChangeTeamAccessColumnForUser(x db.EngineMigration) error {
type User struct {
RepoAdminChangeTeamAccess bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -3,9 +3,9 @@
package v1_10
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddOriginalAuthorOnMigratedReleases(x *xorm.Engine) error {
func AddOriginalAuthorOnMigratedReleases(x db.EngineMigration) error {
type Release struct {
ID int64
OriginalAuthor string
@@ -4,12 +4,11 @@
package v1_10
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddTaskTable(x *xorm.Engine) error {
func AddTaskTable(x db.EngineMigration) error {
// TaskType defines task type
type TaskType int
@@ -4,12 +4,11 @@
package v1_11
import (
"code.gitea.io/gitea/models/migrations/base"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
)
func DropColumnHeadUserNameOnPullRequest(x *xorm.Engine) error {
func DropColumnHeadUserNameOnPullRequest(x db.EngineMigration) error {
sess := x.NewSession()
defer sess.Close()
if err := sess.Begin(); err != nil {
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddWhitelistDeployKeysToBranches(x *xorm.Engine) error {
func AddWhitelistDeployKeysToBranches(x db.EngineMigration) error {
type ProtectedBranch struct {
ID int64
WhitelistDeployKeys bool `xorm:"NOT NULL DEFAULT false"`
@@ -4,12 +4,11 @@
package v1_11
import (
"code.gitea.io/gitea/models/migrations/base"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
)
func RemoveLabelUneededCols(x *xorm.Engine) error {
func RemoveLabelUneededCols(x db.EngineMigration) error {
// Make sure the columns exist before dropping them
type Label struct {
QueryString string
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddTeamIncludesAllRepositories(x *xorm.Engine) error {
func AddTeamIncludesAllRepositories(x db.EngineMigration) error {
type Team struct {
ID int64 `xorm:"pk autoincr"`
IncludesAllRepositories bool `xorm:"NOT NULL DEFAULT false"`
@@ -3,9 +3,7 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
// RepoWatchMode specifies what kind of watch the user has on a repository
type RepoWatchMode int8
@@ -16,7 +14,7 @@ type Watch struct {
Mode RepoWatchMode `xorm:"SMALLINT NOT NULL DEFAULT 1"`
}
func AddModeColumnToWatch(x *xorm.Engine) error {
func AddModeColumnToWatch(x db.EngineMigration) error {
if err := x.Sync(new(Watch)); err != nil {
return err
}
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddTemplateToRepo(x *xorm.Engine) error {
func AddTemplateToRepo(x db.EngineMigration) error {
type Repository struct {
IsTemplate bool `xorm:"INDEX NOT NULL DEFAULT false"`
TemplateID int64 `xorm:"INDEX"`
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddCommentIDOnNotification(x *xorm.Engine) error {
func AddCommentIDOnNotification(x db.EngineMigration) error {
type Notification struct {
ID int64 `xorm:"pk autoincr"`
CommentID int64
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddCanCreateOrgRepoColumnForTeam(x *xorm.Engine) error {
func AddCanCreateOrgRepoColumnForTeam(x db.EngineMigration) error {
type Team struct {
CanCreateOrgRepo bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -4,11 +4,12 @@
package v1_11
import (
"xorm.io/xorm"
"gitea.dev/models/db"
"xorm.io/xorm/schemas"
)
func ChangeReviewContentToText(x *xorm.Engine) error {
func ChangeReviewContentToText(x db.EngineMigration) error {
switch x.Dialect().URI().DBType {
case schemas.MYSQL:
_, err := x.Exec("ALTER TABLE review MODIFY COLUMN content TEXT")
@@ -7,10 +7,10 @@ import (
"fmt"
"slices"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddBranchProtectionCanPushAndEnableWhitelist(x *xorm.Engine) error {
func AddBranchProtectionCanPushAndEnableWhitelist(x db.EngineMigration) error {
type ProtectedBranch struct {
CanPush bool `xorm:"NOT NULL DEFAULT false"`
EnableApprovalsWhitelist bool `xorm:"NOT NULL DEFAULT false"`
@@ -132,7 +132,7 @@ func AddBranchProtectionCanPushAndEnableWhitelist(x *xorm.Engine) error {
}
// getUserRepoPermission static function based on issues_model.IsOfficialReviewer at 5d78792385
getUserRepoPermission := func(sess *xorm.Session, repo *Repository, user *User) (Permission, error) {
getUserRepoPermission := func(sess db.Session, repo *Repository, user *User) (Permission, error) {
var perm Permission
repoOwner := new(User)
@@ -305,7 +305,7 @@ func AddBranchProtectionCanPushAndEnableWhitelist(x *xorm.Engine) error {
}
// isOfficialReviewer static function based on 5d78792385
isOfficialReviewer := func(sess *xorm.Session, issueID int64, reviewer *User) (bool, error) {
isOfficialReviewer := func(sess db.Session, issueID int64, reviewer *User) (bool, error) {
pr := new(PullRequest)
has, err := sess.ID(issueID).Get(pr)
if err != nil {
@@ -6,15 +6,15 @@ package v1_11
import (
"path/filepath"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"gitea.dev/modules/util"
"xorm.io/builder"
"xorm.io/xorm"
)
func RemoveAttachmentMissedRepo(x *xorm.Engine) error {
func RemoveAttachmentMissedRepo(x db.EngineMigration) error {
type Attachment struct {
UUID string `xorm:"uuid"`
}
@@ -6,10 +6,10 @@ package v1_11
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func FeatureChangeTargetBranch(x *xorm.Engine) error {
func FeatureChangeTargetBranch(x db.EngineMigration) error {
type Comment struct {
OldRef string
NewRef string
@@ -6,10 +6,10 @@ package v1_11
import (
"net/url"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func SanitizeOriginalURL(x *xorm.Engine) error {
func SanitizeOriginalURL(x db.EngineMigration) error {
type Repository struct {
ID int64
OriginalURL string `xorm:"VARCHAR(2048)"`
@@ -12,15 +12,14 @@ import (
"path/filepath"
"time"
"code.gitea.io/gitea/modules/container"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/util"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/container"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"gitea.dev/modules/util"
)
func RenameExistingUserAvatarName(x *xorm.Engine) error {
func RenameExistingUserAvatarName(x db.EngineMigration) error {
sess := x.NewSession()
defer sess.Close()
@@ -3,11 +3,9 @@
package v1_11
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func ExtendTrackedTimes(x *xorm.Engine) error {
func ExtendTrackedTimes(x db.EngineMigration) error {
type TrackedTime struct {
Time int64 `xorm:"NOT NULL"`
Deleted bool `xorm:"NOT NULL DEFAULT false"`
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddBlockOnRejectedReviews(x *xorm.Engine) error {
func AddBlockOnRejectedReviews(x db.EngineMigration) error {
type ProtectedBranch struct {
BlockOnRejectedReviews bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddReviewCommitAndStale(x *xorm.Engine) error {
func AddReviewCommitAndStale(x db.EngineMigration) error {
type Review struct {
CommitID string `xorm:"VARCHAR(40)"`
Stale bool `xorm:"NOT NULL DEFAULT false"`
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func FixMigratedRepositoryServiceType(x *xorm.Engine) error {
func FixMigratedRepositoryServiceType(x db.EngineMigration) error {
// structs.GithubService:
// GithubService = 2
_, err := x.Exec("UPDATE repository SET original_service_type = ? WHERE original_url LIKE 'https://github.com/%'", 2)
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddOwnerNameOnRepository(x *xorm.Engine) error {
func AddOwnerNameOnRepository(x db.EngineMigration) error {
type Repository struct {
OwnerName string
}
@@ -3,9 +3,9 @@
package v1_12
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddIsRestricted(x *xorm.Engine) error {
func AddIsRestricted(x db.EngineMigration) error {
// User see models/user.go
type User struct {
ID int64 `xorm:"pk autoincr"`
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddRequireSignedCommits(x *xorm.Engine) error {
func AddRequireSignedCommits(x db.EngineMigration) error {
type ProtectedBranch struct {
RequireSignedCommits bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddReactionOriginals(x *xorm.Engine) error {
func AddReactionOriginals(x db.EngineMigration) error {
type Reaction struct {
OriginalAuthorID int64 `xorm:"INDEX NOT NULL DEFAULT(0)"`
OriginalAuthor string
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddUserRepoMissingColumns(x *xorm.Engine) error {
func AddUserRepoMissingColumns(x db.EngineMigration) error {
type VisibleType int
type User struct {
PasswdHashAlgo string `xorm:"NOT NULL DEFAULT 'pbkdf2'"`
@@ -6,10 +6,10 @@ package v1_12
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddReviewMigrateInfo(x *xorm.Engine) error {
func AddReviewMigrateInfo(x db.EngineMigration) error {
type Review struct {
OriginalAuthor string
OriginalAuthorID int64
@@ -4,11 +4,12 @@
package v1_12
import (
"gitea.dev/models/db"
"xorm.io/builder"
"xorm.io/xorm"
)
func FixTopicRepositoryCount(x *xorm.Engine) error {
func FixTopicRepositoryCount(x db.EngineMigration) error {
_, err := x.Exec(builder.Delete(builder.NotIn("`repo_id`", builder.Select("`id`").From("`repository`"))).From("`repo_topic`"))
if err != nil {
return err
@@ -6,12 +6,11 @@ package v1_12
import (
"fmt"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddLanguageStats(x *xorm.Engine) error {
func AddLanguageStats(x db.EngineMigration) error {
// LanguageStat see models/repo_language_stats.go
type LanguageStat struct {
ID int64 `xorm:"pk autoincr"`
@@ -11,15 +11,14 @@ import (
"strings"
"time"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/git/gitcmd"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/git"
"gitea.dev/modules/git/gitcmd"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
func FixMergeBase(ctx context.Context, x *xorm.Engine) error {
func FixMergeBase(ctx context.Context, x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(s) index"`
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func PurgeUnusedDependencies(x *xorm.Engine) error {
func PurgeUnusedDependencies(x db.EngineMigration) error {
if _, err := x.Exec("DELETE FROM issue_dependency WHERE issue_id NOT IN (SELECT id FROM issue)"); err != nil {
return err
}
@@ -4,13 +4,12 @@
package v1_12
import (
"code.gitea.io/gitea/modules/json"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/json"
"gitea.dev/modules/setting"
)
func ExpandWebhooks(x *xorm.Engine) error {
func ExpandWebhooks(x db.EngineMigration) error {
type HookEvents struct {
Create bool `json:"create"`
Delete bool `json:"delete"`
@@ -6,10 +6,10 @@ package v1_12
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddSystemWebhookColumn(x *xorm.Engine) error {
func AddSystemWebhookColumn(x db.EngineMigration) error {
type Webhook struct {
IsSystemWebhook bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -6,10 +6,10 @@ package v1_12
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddBranchProtectionProtectedFilesColumn(x *xorm.Engine) error {
func AddBranchProtectionProtectedFilesColumn(x db.EngineMigration) error {
type ProtectedBranch struct {
ProtectedFilePatterns string `xorm:"TEXT"`
}
@@ -3,9 +3,9 @@
package v1_12
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddEmailHashTable(x *xorm.Engine) error {
func AddEmailHashTable(x db.EngineMigration) error {
// EmailHash represents a pre-generated hash map
type EmailHash struct {
Hash string `xorm:"pk varchar(32)"`
@@ -11,14 +11,13 @@ import (
"strings"
"time"
"code.gitea.io/gitea/modules/git/gitcmd"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/git/gitcmd"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
func RefixMergeBase(ctx context.Context, x *xorm.Engine) error {
func RefixMergeBase(ctx context.Context, x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(s) index"`
@@ -6,10 +6,10 @@ package v1_12
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddOrgIDLabelColumn(x *xorm.Engine) error {
func AddOrgIDLabelColumn(x db.EngineMigration) error {
type Label struct {
OrgID int64 `xorm:"INDEX"`
}
@@ -8,16 +8,15 @@ import (
"math"
"time"
repo_model "code.gitea.io/gitea/models/repo"
"code.gitea.io/gitea/modules/gitrepo"
"code.gitea.io/gitea/modules/graceful"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
repo_model "gitea.dev/models/repo"
"gitea.dev/modules/gitrepo"
"gitea.dev/modules/graceful"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
func AddCommitDivergenceToPulls(x *xorm.Engine) error {
func AddCommitDivergenceToPulls(x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
OwnerID int64 `xorm:"UNIQUE(s) index"`
@@ -3,11 +3,9 @@
package v1_12
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddBlockOnOutdatedBranch(x *xorm.Engine) error {
func AddBlockOnOutdatedBranch(x db.EngineMigration) error {
type ProtectedBranch struct {
BlockOnOutdatedBranch bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -6,10 +6,10 @@ package v1_12
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddResolveDoerIDCommentColumn(x *xorm.Engine) error {
func AddResolveDoerIDCommentColumn(x db.EngineMigration) error {
type Comment struct {
ResolveDoerID int64
}
@@ -4,12 +4,11 @@
package v1_12
import (
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/setting"
)
func PrependRefsHeadsToIssueRefs(x *xorm.Engine) error {
func PrependRefsHeadsToIssueRefs(x db.EngineMigration) error {
var query string
switch {
@@ -6,13 +6,12 @@ package v1_13
import (
"fmt"
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
"gitea.dev/modules/setting"
)
func FixLanguageStatsToSaveSize(x *xorm.Engine) error {
func FixLanguageStatsToSaveSize(x db.EngineMigration) error {
// LanguageStat see models/repo_language_stats.go
type LanguageStat struct {
Size int64 `xorm:"NOT NULL DEFAULT 0"`
@@ -6,10 +6,10 @@ package v1_13
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddKeepActivityPrivateUserColumn(x *xorm.Engine) error {
func AddKeepActivityPrivateUserColumn(x db.EngineMigration) error {
type User struct {
KeepActivityPrivate bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -4,13 +4,13 @@
package v1_13
import (
"code.gitea.io/gitea/modules/log"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"xorm.io/builder"
"xorm.io/xorm"
)
func SetIsArchivedToFalse(x *xorm.Engine) error {
func SetIsArchivedToFalse(x db.EngineMigration) error {
type Repository struct {
IsArchived bool `xorm:"INDEX"`
}
@@ -4,12 +4,11 @@
package v1_13
import (
"code.gitea.io/gitea/modules/log"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/log"
)
func RecalculateStars(x *xorm.Engine) (err error) {
func RecalculateStars(x db.EngineMigration) (err error) {
// because of issue https://github.com/go-gitea/gitea/issues/11949,
// recalculate Stars number for all users to fully fix it.
@@ -4,13 +4,13 @@
package v1_13
import (
"code.gitea.io/gitea/modules/log"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"xorm.io/builder"
"xorm.io/xorm"
)
func UpdateMatrixWebhookHTTPMethod(x *xorm.Engine) error {
func UpdateMatrixWebhookHTTPMethod(x db.EngineMigration) error {
matrixHookTaskType := 9 // value comes from the models package
type Webhook struct {
HTTPMethod string
@@ -6,12 +6,11 @@ package v1_13
import (
"fmt"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/setting"
)
func IncreaseLanguageField(x *xorm.Engine) error {
func IncreaseLanguageField(x db.EngineMigration) error {
type LanguageStat struct {
RepoID int64 `xorm:"UNIQUE(s) INDEX NOT NULL"`
Language string `xorm:"VARCHAR(50) UNIQUE(s) INDEX NOT NULL"`
@@ -4,12 +4,11 @@
package v1_13
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddProjectsInfo(x *xorm.Engine) error {
func AddProjectsInfo(x db.EngineMigration) error {
// Create new tables
type (
ProjectType uint8
@@ -4,12 +4,11 @@
package v1_13
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func CreateReviewsForCodeComments(x *xorm.Engine) error {
func CreateReviewsForCodeComments(x db.EngineMigration) error {
// Review
type Review struct {
ID int64 `xorm:"pk autoincr"`
@@ -3,11 +3,9 @@
package v1_13
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func PurgeInvalidDependenciesComments(x *xorm.Engine) error {
func PurgeInvalidDependenciesComments(x db.EngineMigration) error {
_, err := x.Exec("DELETE FROM comment WHERE dependent_issue_id != 0 AND dependent_issue_id NOT IN (SELECT id FROM issue)")
return err
}
@@ -6,12 +6,11 @@ package v1_13
import (
"fmt"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddCreatedAndUpdatedToMilestones(x *xorm.Engine) error {
func AddCreatedAndUpdatedToMilestones(x db.EngineMigration) error {
type Milestone struct {
CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
@@ -4,13 +4,12 @@
package v1_13
import (
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
"gitea.dev/modules/timeutil"
)
func AddPrimaryKeyToRepoTopic(x *xorm.Engine) error {
func AddPrimaryKeyToRepoTopic(x db.EngineMigration) error {
// Topic represents a topic of repositories
type Topic struct {
ID int64 `xorm:"pk autoincr"`
@@ -9,14 +9,14 @@ import (
"fmt"
"strings"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
func SetDefaultPasswordToArgon2(x *xorm.Engine) error {
func SetDefaultPasswordToArgon2(x db.EngineMigration) error {
switch {
case setting.Database.Type.IsMySQL():
_, err := x.Exec("ALTER TABLE `user` ALTER passwd_hash_algo SET DEFAULT 'argon2';")
@@ -3,9 +3,9 @@
package v1_13
import "xorm.io/xorm"
import "gitea.dev/models/db"
func AddTrustModelToRepository(x *xorm.Engine) error {
func AddTrustModelToRepository(x db.EngineMigration) error {
type Repository struct {
TrustModel int
}
@@ -3,11 +3,9 @@
package v1_13
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddTeamReviewRequestSupport(x *xorm.Engine) error {
func AddTeamReviewRequestSupport(x db.EngineMigration) error {
type Review struct {
ReviewerTeamID int64 `xorm:"NOT NULL DEFAULT 0"`
}
@@ -4,12 +4,11 @@
package v1_13
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddTimeStamps(x *xorm.Engine) error {
func AddTimeStamps(x db.EngineMigration) error {
// this will add timestamps where it is useful to have
// Star represents a starred repo by an user.
@@ -6,9 +6,9 @@ package v1_14
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/migrations/migrationtest"
)
func TestMain(m *testing.M) {
base.MainTest(m)
migrationtest.MainTest(m)
}
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddChangedProtectedFilesPullRequestColumn(x *xorm.Engine) error {
func AddChangedProtectedFilesPullRequestColumn(x db.EngineMigration) error {
type PullRequest struct {
ChangedProtectedFiles []string `xorm:"TEXT JSON"`
}
@@ -9,11 +9,10 @@ import (
"path/filepath"
"strings"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/git"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
// Copy paste from models/repo.go because we cannot import models package
@@ -25,7 +24,7 @@ func userPath(userName string) string {
return filepath.Join(setting.RepoRootPath, strings.ToLower(userName))
}
func FixPublisherIDforTagReleases(ctx context.Context, x *xorm.Engine) error {
func FixPublisherIDforTagReleases(ctx context.Context, x db.EngineMigration) error {
type Release struct {
ID int64
RepoID int64
@@ -3,11 +3,9 @@
package v1_14
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func FixRepoTopics(x *xorm.Engine) error {
func FixRepoTopics(x db.EngineMigration) error {
type Repository struct {
ID int64 `xorm:"pk autoincr"`
Topics []string `xorm:"TEXT JSON"`
@@ -7,13 +7,12 @@ import (
"errors"
"strconv"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
func UpdateCodeCommentReplies(x *xorm.Engine) error {
func UpdateCodeCommentReplies(x db.EngineMigration) error {
type Comment struct {
ID int64 `xorm:"pk autoincr"`
CommitSHA string `xorm:"VARCHAR(40)"`
@@ -4,13 +4,12 @@
package v1_14
import (
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
"gitea.dev/modules/timeutil"
)
func UpdateReactionConstraint(x *xorm.Engine) error {
func UpdateReactionConstraint(x db.EngineMigration) error {
// Reaction represents a reactions on issues and comments.
type Reaction struct {
ID int64 `xorm:"pk autoincr"`
@@ -3,11 +3,9 @@
package v1_14
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func AddBlockOnOfficialReviewRequests(x *xorm.Engine) error {
func AddBlockOnOfficialReviewRequests(x db.EngineMigration) error {
type ProtectedBranch struct {
BlockOnOfficialReviewRequests bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -6,12 +6,11 @@ package v1_14
import (
"context"
"code.gitea.io/gitea/models/migrations/base"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
)
func ConvertTaskTypeToString(x *xorm.Engine) error {
func ConvertTaskTypeToString(x db.EngineMigration) error {
const (
GOGS int = iota + 1
SLACK
@@ -4,12 +4,11 @@
package v1_14
import (
"code.gitea.io/gitea/models/migrations/base"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
)
func ConvertWebhookTaskTypeToString(x *xorm.Engine) error {
func ConvertWebhookTaskTypeToString(x db.EngineMigration) error {
const (
GOGS int = iota + 1
SLACK
@@ -4,12 +4,11 @@
package v1_14
import (
"code.gitea.io/gitea/models/migrations/base"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
)
func ConvertTopicNameFrom25To50(x *xorm.Engine) error {
func ConvertTopicNameFrom25To50(x db.EngineMigration) error {
type Topic struct {
ID int64 `xorm:"pk autoincr"`
Name string `xorm:"UNIQUE VARCHAR(50)"`
@@ -6,7 +6,7 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
// OAuth2Grant here is a snapshot of models.OAuth2Grant for this version
@@ -29,7 +29,7 @@ func (grant *OAuth2Grant) TableName() string {
return "oauth2_grant"
}
func AddScopeAndNonceColumnsToOAuth2Grant(x *xorm.Engine) error {
func AddScopeAndNonceColumnsToOAuth2Grant(x db.EngineMigration) error {
if err := x.Sync(new(OAuth2Grant)); err != nil {
return fmt.Errorf("Sync: %w", err)
}
@@ -4,13 +4,13 @@
package v1_14
import (
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/db"
"gitea.dev/models/migrations/base"
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
func ConvertHookTaskTypeToVarcharAndTrim(x *xorm.Engine) error {
func ConvertHookTaskTypeToVarcharAndTrim(x db.EngineMigration) error {
dbType := x.Dialect().URI().DBType
if dbType == schemas.SQLITE { // For SQLITE, varchar or char will always be represented as TEXT
return nil
@@ -7,15 +7,16 @@ import (
"crypto/sha256"
"encoding/hex"
"gitea.dev/models/db"
"golang.org/x/crypto/argon2"
"golang.org/x/crypto/bcrypt"
"golang.org/x/crypto/pbkdf2"
"golang.org/x/crypto/scrypt"
"xorm.io/builder"
"xorm.io/xorm"
)
func RecalculateUserEmptyPWD(x *xorm.Engine) (err error) {
func RecalculateUserEmptyPWD(x db.EngineMigration) (err error) {
const (
algoBcrypt = "bcrypt"
algoScrypt = "scrypt"
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddUserRedirect(x *xorm.Engine) (err error) {
func AddUserRedirect(x db.EngineMigration) (err error) {
type UserRedirect struct {
ID int64 `xorm:"pk autoincr"`
LowerName string `xorm:"UNIQUE(s) INDEX NOT NULL"`
@@ -3,8 +3,8 @@
package v1_14
import "xorm.io/xorm"
import "gitea.dev/models/db"
func RecreateUserTableToFixDefaultValues(_ *xorm.Engine) error {
func RecreateUserTableToFixDefaultValues(_ db.EngineMigration) error {
return nil
}
@@ -3,11 +3,9 @@
package v1_14
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func CommentTypeDeleteBranchUseOldRef(x *xorm.Engine) error {
func CommentTypeDeleteBranchUseOldRef(x db.EngineMigration) error {
_, err := x.Exec("UPDATE comment SET old_ref = commit_sha, commit_sha = '' WHERE type = 11")
return err
}
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddDismissedReviewColumn(x *xorm.Engine) error {
func AddDismissedReviewColumn(x db.EngineMigration) error {
type Review struct {
Dismissed bool `xorm:"NOT NULL DEFAULT false"`
}
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddSortingColToProjectBoard(x *xorm.Engine) error {
func AddSortingColToProjectBoard(x db.EngineMigration) error {
type ProjectBoard struct {
Sorting int8 `xorm:"NOT NULL DEFAULT 0"`
}
@@ -4,12 +4,11 @@
package v1_14
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/timeutil"
)
func AddSessionTable(x *xorm.Engine) error {
func AddSessionTable(x db.EngineMigration) error {
type Session struct {
Key string `xorm:"pk CHAR(16)"`
Data []byte `xorm:"BLOB"`
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddTimeIDCommentColumn(x *xorm.Engine) error {
func AddTimeIDCommentColumn(x db.EngineMigration) error {
type Comment struct {
TimeID int64
}
@@ -6,10 +6,10 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func AddRepoTransfer(x *xorm.Engine) error {
func AddRepoTransfer(x db.EngineMigration) error {
type RepoTransfer struct {
ID int64 `xorm:"pk autoincr"`
DoerID int64
@@ -7,13 +7,12 @@ import (
"fmt"
"regexp"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
)
func FixPostgresIDSequences(x *xorm.Engine) error {
func FixPostgresIDSequences(x db.EngineMigration) error {
if !setting.Database.Type.IsPostgreSQL() {
return nil
}
@@ -3,14 +3,12 @@
package v1_14
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
// RemoveInvalidLabels looks through the database to look for comments and issue_labels
// that refer to labels do not belong to the repository or organization that repository
// that the issue is in
func RemoveInvalidLabels(x *xorm.Engine) error {
func RemoveInvalidLabels(x db.EngineMigration) error {
type Comment struct {
ID int64 `xorm:"pk autoincr"`
Type int `xorm:"INDEX"`
@@ -6,7 +6,7 @@ package v1_14
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/migrations/migrationtest"
"github.com/stretchr/testify/assert"
)
@@ -47,7 +47,7 @@ func Test_RemoveInvalidLabels(t *testing.T) {
}
// load and prepare the test database
x, deferable := base.PrepareTestEnv(t, 0, new(Comment), new(Issue), new(Repository), new(IssueLabel), new(Label))
x, deferable := migrationtest.PrepareTestEnv(t, 0, new(Comment), new(Issue), new(Repository), new(IssueLabel), new(Label))
if x == nil || t.Failed() {
defer deferable()
return
@@ -6,11 +6,11 @@ package v1_14
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
// DeleteOrphanedIssueLabels looks through the database for issue_labels where the label no longer exists and deletes them.
func DeleteOrphanedIssueLabels(x *xorm.Engine) error {
func DeleteOrphanedIssueLabels(x db.EngineMigration) error {
type IssueLabel struct {
ID int64 `xorm:"pk autoincr"`
IssueID int64 `xorm:"UNIQUE(s)"`
@@ -6,8 +6,8 @@ package v1_14
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/modules/timeutil"
"gitea.dev/models/migrations/migrationtest"
"gitea.dev/modules/timeutil"
"github.com/stretchr/testify/assert"
)
@@ -34,7 +34,7 @@ func Test_DeleteOrphanedIssueLabels(t *testing.T) {
}
// Prepare and load the testing database
x, deferable := base.PrepareTestEnv(t, 0, new(IssueLabel), new(Label))
x, deferable := migrationtest.PrepareTestEnv(t, 0, new(IssueLabel), new(Label))
if x == nil || t.Failed() {
defer deferable()
return
@@ -6,9 +6,9 @@ package v1_15
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/migrations/migrationtest"
)
func TestMain(m *testing.M) {
base.MainTest(m)
migrationtest.MainTest(m)
}

Some files were not shown because too many files have changed in this diff Show More