Skip to content

Commit 3fef47b

Browse files
KN4CK3Rlunnyzeripathlafriks
authored
Use ErrInvalidArgument in packages (#22268)
Related to #22262 (comment) Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
1 parent dce8887 commit 3fef47b

37 files changed

+144
-94
lines changed

models/asymkey/ssh_key_fingerprint.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package asymkey
55

66
import (
77
"context"
8-
"errors"
98
"fmt"
109
"strings"
1110

@@ -59,9 +58,9 @@ func calcFingerprintSSHKeygen(publicKeyContent string) (string, error) {
5958
if strings.Contains(stderr, "is not a public key file") {
6059
return "", ErrKeyUnableVerify{stderr}
6160
}
62-
return "", fmt.Errorf("'ssh-keygen -lf %s' failed with error '%s': %s", tmpPath, err, stderr)
61+
return "", util.NewInvalidArgumentErrorf("'ssh-keygen -lf %s' failed with error '%s': %s", tmpPath, err, stderr)
6362
} else if len(stdout) < 2 {
64-
return "", errors.New("not enough output for calculating fingerprint: " + stdout)
63+
return "", util.NewInvalidArgumentErrorf("not enough output for calculating fingerprint: %s", stdout)
6564
}
6665
return strings.Split(stdout, " ")[1], nil
6766
}

models/asymkey/ssh_key_parse.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import (
1010
"encoding/base64"
1111
"encoding/binary"
1212
"encoding/pem"
13-
"errors"
1413
"fmt"
1514
"math/big"
1615
"os"
@@ -122,7 +121,7 @@ func parseKeyString(content string) (string, error) {
122121
parts := strings.SplitN(content, " ", 3)
123122
switch len(parts) {
124123
case 0:
125-
return "", errors.New("empty key")
124+
return "", util.NewInvalidArgumentErrorf("empty key")
126125
case 1:
127126
keyContent = parts[0]
128127
case 2:
@@ -167,7 +166,7 @@ func CheckPublicKeyString(content string) (_ string, err error) {
167166

168167
content = strings.TrimRight(content, "\n\r")
169168
if strings.ContainsAny(content, "\n\r") {
170-
return "", errors.New("only a single line with a single key please")
169+
return "", util.NewInvalidArgumentErrorf("only a single line with a single key please")
171170
}
172171

173172
// remove any unnecessary whitespace now

models/asymkey/ssh_key_principals.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
package asymkey
55

66
import (
7-
"errors"
87
"fmt"
98
"strings"
109

1110
"code.gitea.io/gitea/models/db"
1211
"code.gitea.io/gitea/models/perm"
1312
user_model "code.gitea.io/gitea/models/user"
1413
"code.gitea.io/gitea/modules/setting"
14+
"code.gitea.io/gitea/modules/util"
1515
)
1616

1717
// __________ .__ .__ .__
@@ -70,7 +70,7 @@ func CheckPrincipalKeyString(user *user_model.User, content string) (_ string, e
7070

7171
content = strings.TrimSpace(content)
7272
if strings.ContainsAny(content, "\r\n") {
73-
return "", errors.New("only a single line with a single principal please")
73+
return "", util.NewInvalidArgumentErrorf("only a single line with a single principal please")
7474
}
7575

7676
// check all the allowed principals, email, username or anything

models/org_team.go

+2-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package models
66

77
import (
88
"context"
9-
"errors"
109
"fmt"
1110
"strings"
1211

@@ -235,7 +234,7 @@ func RemoveRepository(t *organization.Team, repoID int64) error {
235234
// It's caller's responsibility to assign organization ID.
236235
func NewTeam(t *organization.Team) (err error) {
237236
if len(t.Name) == 0 {
238-
return errors.New("empty team name")
237+
return util.NewInvalidArgumentErrorf("empty team name")
239238
}
240239

241240
if err = organization.IsUsableTeamName(t.Name); err != nil {
@@ -300,7 +299,7 @@ func NewTeam(t *organization.Team) (err error) {
300299
// UpdateTeam updates information of team.
301300
func UpdateTeam(t *organization.Team, authChanged, includeAllChanged bool) (err error) {
302301
if len(t.Name) == 0 {
303-
return errors.New("empty team name")
302+
return util.NewInvalidArgumentErrorf("empty team name")
304303
}
305304

306305
if len(t.Description) > 255 {

models/packages/conan/references.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,21 @@ package conan
55

66
import (
77
"context"
8-
"errors"
98
"strconv"
109
"strings"
1110

1211
"code.gitea.io/gitea/models/db"
1312
"code.gitea.io/gitea/models/packages"
1413
conan_module "code.gitea.io/gitea/modules/packages/conan"
1514
"code.gitea.io/gitea/modules/timeutil"
15+
"code.gitea.io/gitea/modules/util"
1616

1717
"xorm.io/builder"
1818
)
1919

2020
var (
21-
ErrRecipeReferenceNotExist = errors.New("Recipe reference does not exist")
22-
ErrPackageReferenceNotExist = errors.New("Package reference does not exist")
21+
ErrRecipeReferenceNotExist = util.NewNotExistErrorf("recipe reference does not exist")
22+
ErrPackageReferenceNotExist = util.NewNotExistErrorf("package reference does not exist")
2323
)
2424

2525
// RecipeExists checks if a recipe exists

models/packages/container/search.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ package container
55

66
import (
77
"context"
8-
"errors"
98
"strings"
109
"time"
1110

1211
"code.gitea.io/gitea/models/db"
1312
"code.gitea.io/gitea/models/packages"
1413
user_model "code.gitea.io/gitea/models/user"
1514
container_module "code.gitea.io/gitea/modules/packages/container"
15+
"code.gitea.io/gitea/modules/util"
1616

1717
"xorm.io/builder"
1818
)
1919

20-
var ErrContainerBlobNotExist = errors.New("Container blob does not exist")
20+
var ErrContainerBlobNotExist = util.NewNotExistErrorf("container blob does not exist")
2121

2222
type BlobSearchOptions struct {
2323
OwnerID int64

models/packages/package.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"fmt"
109
"strings"
1110

1211
"code.gitea.io/gitea/models/db"
12+
"code.gitea.io/gitea/modules/util"
1313

1414
"xorm.io/builder"
1515
)
@@ -20,9 +20,9 @@ func init() {
2020

2121
var (
2222
// ErrDuplicatePackage indicates a duplicated package error
23-
ErrDuplicatePackage = errors.New("Package does exist already")
23+
ErrDuplicatePackage = util.NewAlreadyExistErrorf("package already exists")
2424
// ErrPackageNotExist indicates a package not exist error
25-
ErrPackageNotExist = errors.New("Package does not exist")
25+
ErrPackageNotExist = util.NewNotExistErrorf("package does not exist")
2626
)
2727

2828
// Type of a package

models/packages/package_blob.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"time"
109

1110
"code.gitea.io/gitea/models/db"
1211
"code.gitea.io/gitea/modules/timeutil"
12+
"code.gitea.io/gitea/modules/util"
1313
)
1414

1515
// ErrPackageBlobNotExist indicates a package blob not exist error
16-
var ErrPackageBlobNotExist = errors.New("Package blob does not exist")
16+
var ErrPackageBlobNotExist = util.NewNotExistErrorf("package blob does not exist")
1717

1818
func init() {
1919
db.RegisterModel(new(PackageBlob))

models/packages/package_blob_upload.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"strings"
109
"time"
1110

@@ -15,7 +14,7 @@ import (
1514
)
1615

1716
// ErrPackageBlobUploadNotExist indicates a package blob upload not exist error
18-
var ErrPackageBlobUploadNotExist = errors.New("Package blob upload does not exist")
17+
var ErrPackageBlobUploadNotExist = util.NewNotExistErrorf("package blob upload does not exist")
1918

2019
func init() {
2120
db.RegisterModel(new(PackageBlobUpload))

models/packages/package_cleanup_rule.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"fmt"
109
"regexp"
1110

1211
"code.gitea.io/gitea/models/db"
1312
"code.gitea.io/gitea/modules/timeutil"
13+
"code.gitea.io/gitea/modules/util"
1414

1515
"xorm.io/builder"
1616
)
1717

18-
var ErrPackageCleanupRuleNotExist = errors.New("Package blob does not exist")
18+
var ErrPackageCleanupRuleNotExist = util.NewNotExistErrorf("package blob does not exist")
1919

2020
func init() {
2121
db.RegisterModel(new(PackageCleanupRule))

models/packages/package_file.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"strconv"
109
"strings"
1110
"time"
1211

1312
"code.gitea.io/gitea/models/db"
1413
"code.gitea.io/gitea/modules/timeutil"
14+
"code.gitea.io/gitea/modules/util"
1515

1616
"xorm.io/builder"
1717
)
@@ -22,9 +22,9 @@ func init() {
2222

2323
var (
2424
// ErrDuplicatePackageFile indicates a duplicated package file error
25-
ErrDuplicatePackageFile = errors.New("Package file does exist already")
25+
ErrDuplicatePackageFile = util.NewAlreadyExistErrorf("package file already exists")
2626
// ErrPackageFileNotExist indicates a package file not exist error
27-
ErrPackageFileNotExist = errors.New("Package file does not exist")
27+
ErrPackageFileNotExist = util.NewNotExistErrorf("package file does not exist")
2828
)
2929

3030
// EmptyFileKey is a named constant for an empty file key

models/packages/package_version.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package packages
55

66
import (
77
"context"
8-
"errors"
98
"strconv"
109
"strings"
1110

@@ -17,7 +16,7 @@ import (
1716
)
1817

1918
// ErrDuplicatePackageVersion indicates a duplicated package version error
20-
var ErrDuplicatePackageVersion = errors.New("Package version already exists")
19+
var ErrDuplicatePackageVersion = util.NewAlreadyExistErrorf("package version already exists")
2120

2221
func init() {
2322
db.RegisterModel(new(PackageVersion))

models/project/project.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package project
55

66
import (
77
"context"
8-
"errors"
98
"fmt"
109

1110
"code.gitea.io/gitea/models/db"
@@ -176,7 +175,7 @@ func NewProject(p *Project) error {
176175
}
177176

178177
if !IsTypeValid(p.Type) {
179-
return errors.New("project type is not valid")
178+
return util.NewInvalidArgumentErrorf("project type is not valid")
180179
}
181180

182181
ctx, committer, err := db.TxContext(db.DefaultContext)

models/repo/mirror.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,16 @@ package repo
66

77
import (
88
"context"
9-
"errors"
109
"time"
1110

1211
"code.gitea.io/gitea/models/db"
1312
"code.gitea.io/gitea/modules/log"
1413
"code.gitea.io/gitea/modules/timeutil"
14+
"code.gitea.io/gitea/modules/util"
1515
)
1616

1717
// ErrMirrorNotExist mirror does not exist error
18-
var ErrMirrorNotExist = errors.New("Mirror does not exist")
18+
var ErrMirrorNotExist = util.NewNotExistErrorf("Mirror does not exist")
1919

2020
// Mirror represents mirror information of a repository.
2121
type Mirror struct {

models/repo/pushmirror.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ package repo
55

66
import (
77
"context"
8-
"errors"
98
"time"
109

1110
"code.gitea.io/gitea/models/db"
1211
"code.gitea.io/gitea/modules/log"
1312
"code.gitea.io/gitea/modules/timeutil"
13+
"code.gitea.io/gitea/modules/util"
1414

1515
"xorm.io/builder"
1616
)
1717

1818
// ErrPushMirrorNotExist mirror does not exist error
19-
var ErrPushMirrorNotExist = errors.New("PushMirror does not exist")
19+
var ErrPushMirrorNotExist = util.NewNotExistErrorf("PushMirror does not exist")
2020

2121
// PushMirror represents mirror information of a repository.
2222
type PushMirror struct {
@@ -90,7 +90,7 @@ func DeletePushMirrors(ctx context.Context, opts PushMirrorOptions) error {
9090
_, err := db.GetEngine(ctx).Where(opts.toConds()).Delete(&PushMirror{})
9191
return err
9292
}
93-
return errors.New("repoID required and must be set")
93+
return util.NewInvalidArgumentErrorf("repoID required and must be set")
9494
}
9595

9696
func GetPushMirror(ctx context.Context, opts PushMirrorOptions) (*PushMirror, error) {

models/repo/release.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package repo
66

77
import (
88
"context"
9-
"errors"
109
"fmt"
1110
"sort"
1211
"strconv"
@@ -156,7 +155,7 @@ func AddReleaseAttachments(ctx context.Context, releaseID int64, attachmentUUIDs
156155

157156
for i := range attachments {
158157
if attachments[i].ReleaseID != 0 {
159-
return errors.New("release permission denied")
158+
return util.NewPermissionDeniedErrorf("release permission denied")
160159
}
161160
attachments[i].ReleaseID = releaseID
162161
// No assign value could be 0, so ignore AllCols().

models/repo/repo_list.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package repo
55

66
import (
77
"context"
8-
"errors"
98
"fmt"
109
"strings"
1110

@@ -708,7 +707,7 @@ func GetUserRepositories(opts *SearchRepoOptions) (RepositoryList, int64, error)
708707

709708
cond := builder.NewCond()
710709
if opts.Actor == nil {
711-
return nil, 0, errors.New("GetUserRepositories: Actor is needed but not given")
710+
return nil, 0, util.NewInvalidArgumentErrorf("GetUserRepositories: Actor is needed but not given")
712711
}
713712
cond = cond.And(builder.Eq{"owner_id": opts.Actor.ID})
714713
if !opts.Private {

models/unittest/fscopy.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ func Copy(src, dest string) error {
6464
func CopyDir(srcPath, destPath string, filters ...func(filePath string) bool) error {
6565
// Check if target directory exists.
6666
if _, err := os.Stat(destPath); !errors.Is(err, os.ErrNotExist) {
67-
return errors.New("file or directory already exists: " + destPath)
67+
return util.NewAlreadyExistErrorf("file or directory already exists: %s", destPath)
6868
}
6969

7070
err := os.MkdirAll(destPath, os.ModePerm)

models/user/email_address.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package user
66

77
import (
88
"context"
9-
"errors"
109
"fmt"
1110
"net/mail"
1211
"regexp"
@@ -22,7 +21,7 @@ import (
2221
)
2322

2423
// ErrEmailNotActivated e-mail address has not been activated error
25-
var ErrEmailNotActivated = errors.New("e-mail address has not been activated")
24+
var ErrEmailNotActivated = util.NewInvalidArgumentErrorf("e-mail address has not been activated")
2625

2726
// ErrEmailCharIsNotSupported e-mail address contains unsupported character
2827
type ErrEmailCharIsNotSupported struct {

0 commit comments

Comments
 (0)