Skip to content

Commit dd5b24d

Browse files
committed
Merge remote-tracking branch 'giteaofficial/main'
* giteaofficial/main: Disable `vet` as part of `go test` (go-gitea#33662) Refactor error system (go-gitea#33771) Add migrations and doctor fixes (go-gitea#33556) Refactor mail code (go-gitea#33768) Refactor global init code and add more comments (go-gitea#33755)
2 parents acf52c7 + 43c8d85 commit dd5b24d

File tree

37 files changed

+816
-698
lines changed

37 files changed

+816
-698
lines changed

.github/workflows/pull-compliance.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ jobs:
9595
go-version-file: go.mod
9696
check-latest: true
9797
- run: make deps-backend deps-tools
98-
- run: make lint-go-windows lint-go-vet
98+
- run: make lint-go-windows lint-go-gitea-vet
9999
env:
100100
TAGS: bindata sqlite sqlite_unlock_notify
101101
GOOS: windows

Makefile

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ EXTRA_GOFLAGS ?=
7373
MAKE_VERSION := $(shell "$(MAKE)" -v | cat | head -n 1)
7474
MAKE_EVIDENCE_DIR := .make_evidence
7575

76+
GOTESTFLAGS ?= -vet=off
7677
ifeq ($(RACE_ENABLED),true)
7778
GOFLAGS += -race
7879
GOTESTFLAGS += -race
@@ -311,10 +312,10 @@ lint-frontend: lint-js lint-css ## lint frontend files
311312
lint-frontend-fix: lint-js-fix lint-css-fix ## lint frontend files and fix issues
312313

313314
.PHONY: lint-backend
314-
lint-backend: lint-go lint-go-vet lint-go-gopls lint-editorconfig ## lint backend files
315+
lint-backend: lint-go lint-go-gitea-vet lint-go-gopls lint-editorconfig ## lint backend files
315316

316317
.PHONY: lint-backend-fix
317-
lint-backend-fix: lint-go-fix lint-go-vet lint-editorconfig ## lint backend files and fix issues
318+
lint-backend-fix: lint-go-fix lint-go-gitea-vet lint-editorconfig ## lint backend files and fix issues
318319

319320
.PHONY: lint-js
320321
lint-js: node_modules ## lint js files
@@ -365,9 +366,9 @@ lint-go-windows:
365366
@GOOS= GOARCH= $(GO) install $(GOLANGCI_LINT_PACKAGE)
366367
golangci-lint run
367368

368-
.PHONY: lint-go-vet
369-
lint-go-vet: ## lint go files with vet
370-
@echo "Running go vet..."
369+
.PHONY: lint-go-gitea-vet
370+
lint-go-gitea-vet: ## lint go files with gitea-vet
371+
@echo "Running gitea-vet..."
371372
@GOOS= GOARCH= $(GO) build code.gitea.io/gitea-vet
372373
@$(GO) vet -vettool=gitea-vet ./...
373374

models/actions/runner.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -337,3 +337,17 @@ func FixRunnersWithoutBelongingRepo(ctx context.Context) (int64, error) {
337337
}
338338
return res.RowsAffected()
339339
}
340+
341+
func CountWrongRepoLevelRunners(ctx context.Context) (int64, error) {
342+
var result int64
343+
_, err := db.GetEngine(ctx).SQL("SELECT count(`id`) FROM `action_runner` WHERE `repo_id` > 0 AND `owner_id` > 0").Get(&result)
344+
return result, err
345+
}
346+
347+
func UpdateWrongRepoLevelRunners(ctx context.Context) (int64, error) {
348+
result, err := db.GetEngine(ctx).Exec("UPDATE `action_runner` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0")
349+
if err != nil {
350+
return 0, err
351+
}
352+
return result.RowsAffected()
353+
}

models/actions/variable.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,17 @@ func GetVariablesOfRun(ctx context.Context, run *ActionRun) (map[string]string,
147147

148148
return variables, nil
149149
}
150+
151+
func CountWrongRepoLevelVariables(ctx context.Context) (int64, error) {
152+
var result int64
153+
_, err := db.GetEngine(ctx).SQL("SELECT count(`id`) FROM `action_variable` WHERE `repo_id` > 0 AND `owner_id` > 0").Get(&result)
154+
return result, err
155+
}
156+
157+
func UpdateWrongRepoLevelVariables(ctx context.Context) (int64, error) {
158+
result, err := db.GetEngine(ctx).Exec("UPDATE `action_variable` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0")
159+
if err != nil {
160+
return 0, err
161+
}
162+
return result.RowsAffected()
163+
}

models/asymkey/error.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func (err ErrKeyUnableVerify) Error() string {
2525
}
2626

2727
// ErrKeyIsPrivate is returned when the provided key is a private key not a public key
28-
var ErrKeyIsPrivate = util.NewSilentWrapErrorf(util.ErrInvalidArgument, "the provided key is a private key")
28+
var ErrKeyIsPrivate = util.ErrorWrap(util.ErrInvalidArgument, "the provided key is a private key")
2929

3030
// ErrKeyNotExist represents a "KeyNotExist" kind of error.
3131
type ErrKeyNotExist struct {

models/db/name.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func (err ErrNameCharsNotAllowed) Unwrap() error {
7777
func IsUsableName(reservedNames, reservedPatterns []string, name string) error {
7878
name = strings.TrimSpace(strings.ToLower(name))
7979
if utf8.RuneCountInString(name) == 0 {
80-
return util.SilentWrap{Message: "name is empty", Err: util.ErrInvalidArgument}
80+
return util.NewInvalidArgumentErrorf("name is empty")
8181
}
8282

8383
for i := range reservedNames {

models/migrations/migrations.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -374,6 +374,7 @@ func prepareMigrationTasks() []*migration {
374374
// Gitea 1.23.0-rc0 ends at migration ID number 311 (database version 312)
375375
newMigration(312, "Add DeleteBranchAfterMerge to AutoMerge", v1_24.AddDeleteBranchAfterMergeForAutoMerge),
376376
newMigration(313, "Move PinOrder from issue table to a new table issue_pin", v1_24.MovePinOrderToTableIssuePin),
377+
newMigration(314, "Update OwnerID as zero for repository level action tables", v1_24.UpdateOwnerIDOfRepoLevelActionsTables),
377378
}
378379
return preparedMigrations
379380
}

models/migrations/v1_24/v314.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright 2025 The Gitea Authors. All rights reserved.
2+
// SPDX-License-Identifier: MIT
3+
4+
package v1_24 //nolint
5+
6+
import (
7+
"xorm.io/xorm"
8+
)
9+
10+
func UpdateOwnerIDOfRepoLevelActionsTables(x *xorm.Engine) error {
11+
if _, err := x.Exec("UPDATE `action_runner` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0"); err != nil {
12+
return err
13+
}
14+
if _, err := x.Exec("UPDATE `action_variable` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0"); err != nil {
15+
return err
16+
}
17+
_, err := x.Exec("UPDATE `secret` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0")
18+
return err
19+
}

models/repo/archiver.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,15 +50,15 @@ func (archiver *RepoArchiver) RelativePath() string {
5050
func repoArchiverForRelativePath(relativePath string) (*RepoArchiver, error) {
5151
parts := strings.SplitN(relativePath, "/", 3)
5252
if len(parts) != 3 {
53-
return nil, util.SilentWrap{Message: fmt.Sprintf("invalid storage path: %s", relativePath), Err: util.ErrInvalidArgument}
53+
return nil, util.NewInvalidArgumentErrorf("invalid storage path: must have 3 parts")
5454
}
5555
repoID, err := strconv.ParseInt(parts[0], 10, 64)
5656
if err != nil {
57-
return nil, util.SilentWrap{Message: fmt.Sprintf("invalid storage path: %s", relativePath), Err: util.ErrInvalidArgument}
57+
return nil, util.NewInvalidArgumentErrorf("invalid storage path: invalid repo id")
5858
}
5959
commitID, archiveType := git.SplitArchiveNameType(parts[2])
6060
if archiveType == git.ArchiveUnknown {
61-
return nil, util.SilentWrap{Message: fmt.Sprintf("invalid storage path: %s", relativePath), Err: util.ErrInvalidArgument}
61+
return nil, util.NewInvalidArgumentErrorf("invalid storage path: invalid archive type")
6262
}
6363
return &RepoArchiver{RepoID: repoID, CommitID: commitID, Type: archiveType}, nil
6464
}

models/secret/secret.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,3 +165,17 @@ func GetSecretsOfTask(ctx context.Context, task *actions_model.ActionTask) (map[
165165

166166
return secrets, nil
167167
}
168+
169+
func CountWrongRepoLevelSecrets(ctx context.Context) (int64, error) {
170+
var result int64
171+
_, err := db.GetEngine(ctx).SQL("SELECT count(`id`) FROM `secret` WHERE `repo_id` > 0 AND `owner_id` > 0").Get(&result)
172+
return result, err
173+
}
174+
175+
func UpdateWrongRepoLevelSecrets(ctx context.Context) (int64, error) {
176+
result, err := db.GetEngine(ctx).Exec("UPDATE `secret` SET `owner_id` = 0 WHERE `repo_id` > 0 AND `owner_id` > 0")
177+
if err != nil {
178+
return 0, err
179+
}
180+
return result.RowsAffected()
181+
}

0 commit comments

Comments
 (0)