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
@@ -6,9 +6,9 @@ package v1_26
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)
}
@@ -4,10 +4,12 @@
package v1_26
import (
"gitea.dev/models/db"
"xorm.io/xorm"
)
func AddActionsConcurrency(x *xorm.Engine) error {
func AddActionsConcurrency(x db.EngineMigration) error {
type ActionRun struct {
RepoID int64 `xorm:"index(repo_concurrency)"`
RawConcurrency string
@@ -6,10 +6,10 @@ package v1_26
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
)
func FixClosedMilestoneCompleteness(x *xorm.Engine) error {
func FixClosedMilestoneCompleteness(x db.EngineMigration) error {
// Update all milestones to recalculate completeness with the new logic:
// - Closed milestones with 0 issues should show 100%
// - All other milestones should calculate based on closed/total ratio
@@ -3,11 +3,9 @@
package v1_26
import (
"xorm.io/xorm"
)
import "gitea.dev/models/db"
func FixMissedRepoIDWhenMigrateAttachments(x *xorm.Engine) error {
func FixMissedRepoIDWhenMigrateAttachments(x db.EngineMigration) error {
_, err := x.Exec("UPDATE `attachment` SET `repo_id` = (SELECT `repo_id` FROM `issue` WHERE `issue`.`id` = `attachment`.`issue_id`) WHERE `issue_id` > 0 AND (`repo_id` IS NULL OR `repo_id` = 0);")
if err != nil {
return err
@@ -6,8 +6,8 @@ package v1_26
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/require"
)
@@ -38,7 +38,7 @@ func Test_FixMissedRepoIDWhenMigrateAttachments(t *testing.T) {
}
// Prepare and load the testing database
x, deferrable := base.PrepareTestEnv(t, 0, new(Attachment), new(Issue), new(Release))
x, deferrable := migrationtest.PrepareTestEnv(t, 0, new(Attachment), new(Issue), new(Release))
defer deferrable()
require.NoError(t, FixMissedRepoIDWhenMigrateAttachments(x))
@@ -10,13 +10,11 @@ import (
"strconv"
"strings"
"code.gitea.io/gitea/modules/json"
"code.gitea.io/gitea/modules/log"
"code.gitea.io/gitea/modules/setting"
api "code.gitea.io/gitea/modules/structs"
webhook_module "code.gitea.io/gitea/modules/webhook"
"xorm.io/xorm"
"gitea.dev/models/db"
"gitea.dev/modules/json"
"gitea.dev/modules/log"
"gitea.dev/modules/setting"
webhook_module "gitea.dev/modules/webhook"
)
const (
@@ -59,6 +57,29 @@ type migrationCommitStatus struct {
TargetURL string
}
// Frozen subsets of modules/structs payload types, decoded from stored
// action_run.event_payload values. Inlined so the migration is insulated
// from future field changes in modules/structs.
type migrationPayloadCommit struct {
ID string `json:"id"`
}
type migrationPushPayload struct {
HeadCommit *migrationPayloadCommit `json:"head_commit"`
}
type migrationPRBranchInfo struct {
Sha string `json:"sha"`
}
type migrationPullRequest struct {
Head *migrationPRBranchInfo `json:"head"`
}
type migrationPullRequestPayload struct {
PullRequest *migrationPullRequest `json:"pull_request"`
}
type commitSHAAndRuns struct {
commitSHA string
runs map[int64]*migrationActionRun
@@ -70,7 +91,7 @@ type commitSHAAndRuns struct {
// Only rows whose resolved run ID is below legacyURLIDThreshold are rewritten.
// This is because smaller legacy run indexes are more likely to collide with run ID URLs during runtime resolution,
// so this migration prioritizes that lower range and leaves the remaining legacy target URLs to the web compatibility logic.
func FixCommitStatusTargetURLToUseRunAndJobID(x *xorm.Engine) error {
func FixCommitStatusTargetURLToUseRunAndJobID(x db.EngineMigration) error {
jobsByRunIDCache := make(map[int64][]int64)
repoLinkCache := make(map[int64]string)
groups, err := loadLegacyMigrationRunGroups(x)
@@ -91,7 +112,7 @@ func FixCommitStatusTargetURLToUseRunAndJobID(x *xorm.Engine) error {
return nil
}
func loadLegacyMigrationRunGroups(x *xorm.Engine) (map[int64]map[string]*commitSHAAndRuns, error) {
func loadLegacyMigrationRunGroups(x db.EngineMigration) (map[int64]map[string]*commitSHAAndRuns, error) {
var runs []migrationActionRun
if err := x.Table("action_run").
Where("id < ?", legacyURLIDThreshold).
@@ -127,7 +148,7 @@ func loadLegacyMigrationRunGroups(x *xorm.Engine) (map[int64]map[string]*commitS
}
func migrateCommitStatusTargetURLForGroup(
x *xorm.Engine,
x db.EngineMigration,
table string,
repoID int64,
sha string,
@@ -188,7 +209,7 @@ func migrateCommitStatusTargetURLForGroup(
return nil
}
func getRepoLinkCached(x *xorm.Engine, cache map[int64]string, repoID int64) (string, error) {
func getRepoLinkCached(x db.EngineMigration, cache map[int64]string, repoID int64) (string, error) {
if link, ok := cache[repoID]; ok {
return link, nil
}
@@ -206,7 +227,7 @@ func getRepoLinkCached(x *xorm.Engine, cache map[int64]string, repoID int64) (st
return link, nil
}
func getJobIDByIndexCached(x *xorm.Engine, cache map[int64][]int64, runID, jobIndex int64) (int64, bool, error) {
func getJobIDByIndexCached(x db.EngineMigration, cache map[int64][]int64, runID, jobIndex int64) (int64, bool, error) {
jobIDs, ok := cache[runID]
if !ok {
var jobs []migrationActionRunJob
@@ -292,22 +313,22 @@ func getCommitStatusCommitID(run *migrationActionRun) (string, error) {
}
}
func getPushEventPayload(run *migrationActionRun) (*api.PushPayload, error) {
func getPushEventPayload(run *migrationActionRun) (*migrationPushPayload, error) {
if run.Event != webhook_module.HookEventPush {
return nil, fmt.Errorf("event %s is not a push event", run.Event)
}
var payload api.PushPayload
var payload migrationPushPayload
if err := json.Unmarshal([]byte(run.EventPayload), &payload); err != nil {
return nil, err
}
return &payload, nil
}
func getPullRequestEventPayload(run *migrationActionRun) (*api.PullRequestPayload, error) {
func getPullRequestEventPayload(run *migrationActionRun) (*migrationPullRequestPayload, error) {
if !run.Event.IsPullRequest() && !run.Event.IsPullRequestReview() {
return nil, fmt.Errorf("event %s is not a pull request event", run.Event)
}
var payload api.PullRequestPayload
var payload migrationPullRequestPayload
if err := json.Unmarshal([]byte(run.EventPayload), &payload); err != nil {
return nil, err
}
@@ -6,16 +6,16 @@ package v1_26
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/modules/setting"
"code.gitea.io/gitea/modules/test"
"gitea.dev/models/db"
"gitea.dev/models/migrations/migrationtest"
"gitea.dev/modules/setting"
"gitea.dev/modules/test"
_ "code.gitea.io/gitea/models/actions"
_ "code.gitea.io/gitea/models/git"
_ "code.gitea.io/gitea/models/repo"
_ "gitea.dev/models/actions"
_ "gitea.dev/models/git"
_ "gitea.dev/models/repo"
"github.com/stretchr/testify/require"
"xorm.io/xorm"
)
func Test_FixCommitStatusTargetURLToUseRunAndJobID(t *testing.T) {
@@ -57,7 +57,7 @@ func Test_FixCommitStatusTargetURLToUseRunAndJobID(t *testing.T) {
TargetURL string
}
x, deferable := base.PrepareTestEnv(t, 0,
x, deferable := migrationtest.PrepareTestEnv(t, 0,
new(Repository),
new(ActionRun),
new(ActionRunJob),
@@ -100,7 +100,7 @@ func Test_FixCommitStatusTargetURLToUseRunAndJobID(t *testing.T) {
}
}
func assertTargetURL(t *testing.T, x *xorm.Engine, table string, id int64, want string) {
func assertTargetURL(t *testing.T, x db.EngineMigration, table string, id int64, want string) {
t.Helper()
var row struct {
@@ -3,9 +3,13 @@
package v1_26
import "xorm.io/xorm"
import (
"gitea.dev/models/db"
func AddDisabledToActionRunner(x *xorm.Engine) error {
"xorm.io/xorm"
)
func AddDisabledToActionRunner(x db.EngineMigration) error {
type ActionRunner struct {
IsDisabled bool `xorm:"is_disabled NOT NULL DEFAULT false"`
}
@@ -6,7 +6,7 @@ package v1_26
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/migrations/migrationtest"
"github.com/stretchr/testify/require"
)
@@ -17,7 +17,7 @@ func Test_AddDisabledToActionRunner(t *testing.T) {
Name string
}
x, deferable := base.PrepareTestEnv(t, 0, new(ActionRunner))
x, deferable := migrationtest.PrepareTestEnv(t, 0, new(ActionRunner))
defer deferable()
_, err := x.Insert(&ActionRunner{Name: "runner"})
@@ -4,10 +4,12 @@
package v1_26
import (
"gitea.dev/models/db"
"xorm.io/xorm"
)
func AddTokenPermissionsToActionRunJob(x *xorm.Engine) error {
func AddTokenPermissionsToActionRunJob(x db.EngineMigration) error {
type ActionRunJob struct {
TokenPermissions string `xorm:"JSON TEXT"`
}
@@ -6,7 +6,8 @@ package v1_26
import (
"fmt"
"xorm.io/xorm"
"gitea.dev/models/db"
"xorm.io/xorm/schemas"
)
@@ -27,7 +28,7 @@ func (n *UserBadge) TableIndices() []*schemas.Index {
// AddUniqueIndexForUserBadge adds a compound unique indexes for user badge table
// and it replaces an old index on user_id
func AddUniqueIndexForUserBadge(x *xorm.Engine) error {
func AddUniqueIndexForUserBadge(x db.EngineMigration) error {
// remove possible duplicated records in table user_badge
type result struct {
UserID int64
@@ -6,7 +6,7 @@ package v1_26
import (
"testing"
"code.gitea.io/gitea/models/migrations/base"
"gitea.dev/models/migrations/migrationtest"
"github.com/stretchr/testify/assert"
)
@@ -22,7 +22,7 @@ func (UserBadgeBefore) TableName() string {
}
func Test_AddUniqueIndexForUserBadge(t *testing.T) {
x, deferable := base.PrepareTestEnv(t, 0, new(UserBadgeBefore))
x, deferable := migrationtest.PrepareTestEnv(t, 0, new(UserBadgeBefore))
defer deferable()
if x == nil || t.Failed() {
return
@@ -4,10 +4,12 @@
package v1_26
import (
"gitea.dev/models/db"
"xorm.io/xorm"
)
func AddNameToWebhook(x *xorm.Engine) error {
func AddNameToWebhook(x db.EngineMigration) error {
type Webhook struct {
Name string `xorm:"VARCHAR(255) NOT NULL DEFAULT ''"`
}
@@ -1,38 +0,0 @@
// Copyright 2026 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_26
import (
"code.gitea.io/gitea/modules/timeutil"
"xorm.io/xorm"
"xorm.io/xorm/schemas"
)
type HeatmapContribution struct { //revive:disable-line:exported
ID int64 `xorm:"pk autoincr"`
UserID int64 `xorm:"NOT NULL"`
RepoID int64 `xorm:"NOT NULL"`
CommitSHA string `xorm:"VARCHAR(64) NOT NULL"`
AuthorEmail string `xorm:"VARCHAR(320) NOT NULL"`
AuthorUnix timeutil.TimeStamp `xorm:"NOT NULL"`
CreatedUnix timeutil.TimeStamp `xorm:"created"`
UpdatedUnix timeutil.TimeStamp `xorm:"updated"`
}
// TableIndices implements xorm's TableIndices interface.
func (c *HeatmapContribution) TableIndices() []*schemas.Index {
uniqueContribution := schemas.NewIndex("repo_commit_user", schemas.UniqueType)
uniqueContribution.AddColumn("repo_id", "commit_sha", "user_id")
userAuthorRepo := schemas.NewIndex("u_a_r", schemas.IndexType)
userAuthorRepo.AddColumn("user_id", "author_unix", "repo_id")
return []*schemas.Index{uniqueContribution, userAuthorRepo}
}
func CreateHeatmapContributionTable(x *xorm.Engine) error {
_, err := x.SyncWithOptions(xorm.SyncOptions{IgnoreDropIndices: true}, new(HeatmapContribution))
return err
}