From acd55fc04b8824c0bb7394c98d1a31929f026993 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 12:21:05 +0800 Subject: [PATCH 01/16] update golang version to golang v1.23.2 Signed-off-by: wang yan --- .github/workflows/CI.yml | 20 ++++----- .github/workflows/build-package.yml | 2 +- .github/workflows/conformance_test.yml | 2 +- CONTRIBUTING.md | 49 +++++++++++---------- Makefile | 2 +- make/photon/registry/Dockerfile.binary | 2 +- make/photon/trivy-adapter/Dockerfile.binary | 2 +- make/photon/trivy-adapter/builder.sh | 2 +- src/go.mod | 2 +- tests/ci/distro_installer.sh | 4 +- 10 files changed, 44 insertions(+), 43 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index da8aa2932e6..66d26df8cf2 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -41,10 +41,10 @@ jobs: - ubuntu-latest timeout-minutes: 100 steps: - - name: Set up Go 1.22 + - name: Set up Go 1.23 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: @@ -102,10 +102,10 @@ jobs: - ubuntu-latest timeout-minutes: 100 steps: - - name: Set up Go 1.22 + - name: Set up Go 1.23 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: @@ -157,10 +157,10 @@ jobs: - ubuntu-latest timeout-minutes: 100 steps: - - name: Set up Go 1.22 + - name: Set up Go 1.23 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: @@ -212,10 +212,10 @@ jobs: - ubuntu-latest timeout-minutes: 100 steps: - - name: Set up Go 1.22 + - name: Set up Go 1.23 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: @@ -265,10 +265,10 @@ jobs: - ubuntu-latest timeout-minutes: 100 steps: - - name: Set up Go 1.22 + - name: Set up Go 1.23 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: diff --git a/.github/workflows/build-package.yml b/.github/workflows/build-package.yml index febfd494e29..99fcfad12e0 100644 --- a/.github/workflows/build-package.yml +++ b/.github/workflows/build-package.yml @@ -26,7 +26,7 @@ jobs: - name: Set up Go 1.22 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - name: Setup Docker uses: docker-practice/actions-setup-docker@master diff --git a/.github/workflows/conformance_test.yml b/.github/workflows/conformance_test.yml index 8866a46be57..db6725c2c21 100644 --- a/.github/workflows/conformance_test.yml +++ b/.github/workflows/conformance_test.yml @@ -28,7 +28,7 @@ jobs: - name: Set up Go 1.21 uses: actions/setup-go@v5 with: - go-version: 1.22.3 + go-version: 1.23.2 id: go - uses: actions/checkout@v3 with: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index dabf434bbbf..fd5dea99345 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -142,30 +142,31 @@ The folder graph below shows the structure of the source code folder `harbor/src #### Go Harbor backend is written in [Go](http://golang.org/). If you don't have a Harbor backend service development environment, please [set one up](https://golang.org/doc/install). -| Harbor | Requires Go | -|----------|---------------| -| 1.1 | 1.7.3 | -| 1.2 | 1.7.3 | -| 1.3 | 1.9.2 | -| 1.4 | 1.9.2 | -| 1.5 | 1.9.2 | -| 1.6 | 1.9.2 | -| 1.7 | 1.9.2 | -| 1.8 | 1.11.2 | -| 1.9 | 1.12.12 | -| 1.10 | 1.12.12 | -| 2.0 | 1.13.15 | -| 2.1 | 1.14.13 | -| 2.2 | 1.15.6 | -| 2.3 | 1.15.12 | -| 2.4 | 1.17.7 | -| 2.5 | 1.17.7 | -| 2.6 | 1.18.6 | -| 2.7 | 1.19.4 | -| 2.8 | 1.20.6 | -| 2.9 | 1.21.3 | -| 2.10 | 1.21.8 | -| 2.11 | 1.22.3 | +| Harbor | Requires Go | +|--------|-------------| +| 1.1 | 1.7.3 | +| 1.2 | 1.7.3 | +| 1.3 | 1.9.2 | +| 1.4 | 1.9.2 | +| 1.5 | 1.9.2 | +| 1.6 | 1.9.2 | +| 1.7 | 1.9.2 | +| 1.8 | 1.11.2 | +| 1.9 | 1.12.12 | +| 1.10 | 1.12.12 | +| 2.0 | 1.13.15 | +| 2.1 | 1.14.13 | +| 2.2 | 1.15.6 | +| 2.3 | 1.15.12 | +| 2.4 | 1.17.7 | +| 2.5 | 1.17.7 | +| 2.6 | 1.18.6 | +| 2.7 | 1.19.4 | +| 2.8 | 1.20.6 | +| 2.9 | 1.21.3 | +| 2.10 | 1.21.8 | +| 2.11 | 1.22.3 | +| 2.12 | 1.23.2 | Ensure your GOPATH and PATH have been configured in accordance with the Go environment instructions. diff --git a/Makefile b/Makefile index a098f8d58f3..cf22a464b4b 100644 --- a/Makefile +++ b/Makefile @@ -142,7 +142,7 @@ GOINSTALL=$(GOCMD) install GOTEST=$(GOCMD) test GODEP=$(GOTEST) -i GOFMT=gofmt -w -GOBUILDIMAGE=golang:1.22.3 +GOBUILDIMAGE=golang:1.23.2 GOBUILDPATHINCONTAINER=/harbor # go build diff --git a/make/photon/registry/Dockerfile.binary b/make/photon/registry/Dockerfile.binary index 0098691bef3..cdc312e038d 100644 --- a/make/photon/registry/Dockerfile.binary +++ b/make/photon/registry/Dockerfile.binary @@ -1,4 +1,4 @@ -FROM golang:1.22.3 +FROM golang:1.23.2 ENV DISTRIBUTION_DIR /go/src/github.com/docker/distribution ENV BUILDTAGS include_oss include_gcs diff --git a/make/photon/trivy-adapter/Dockerfile.binary b/make/photon/trivy-adapter/Dockerfile.binary index bbfda2e93c3..7f036fb8541 100644 --- a/make/photon/trivy-adapter/Dockerfile.binary +++ b/make/photon/trivy-adapter/Dockerfile.binary @@ -1,4 +1,4 @@ -FROM golang:1.22.3 +FROM golang:1.23.2 ADD . /go/src/github.com/aquasecurity/harbor-scanner-trivy/ WORKDIR /go/src/github.com/aquasecurity/harbor-scanner-trivy/ diff --git a/make/photon/trivy-adapter/builder.sh b/make/photon/trivy-adapter/builder.sh index 31ae7e24534..54863657932 100755 --- a/make/photon/trivy-adapter/builder.sh +++ b/make/photon/trivy-adapter/builder.sh @@ -19,7 +19,7 @@ TEMP=$(mktemp -d ${TMPDIR-/tmp}/trivy-adapter.XXXXXX) git clone https://github.com/aquasecurity/harbor-scanner-trivy.git $TEMP cd $TEMP; git checkout $VERSION; cd - -echo "Building Trivy adapter binary based on golang:1.22.3..." +echo "Building Trivy adapter binary based on golang:1.23.2..." cp Dockerfile.binary $TEMP docker build -f $TEMP/Dockerfile.binary -t trivy-adapter-golang $TEMP diff --git a/src/go.mod b/src/go.mod index 5aa9ae6fd01..3a4bd4a6767 100644 --- a/src/go.mod +++ b/src/go.mod @@ -1,6 +1,6 @@ module github.com/goharbor/harbor/src -go 1.22.3 +go 1.23.2 require ( github.com/FZambia/sentinel v1.1.0 diff --git a/tests/ci/distro_installer.sh b/tests/ci/distro_installer.sh index cab510c9d4c..015e23f06e3 100755 --- a/tests/ci/distro_installer.sh +++ b/tests/ci/distro_installer.sh @@ -3,5 +3,5 @@ set -x set -e -sudo make package_online GOBUILDTAGS="include_oss include_gcs" VERSIONTAG=dev-gitaction PKGVERSIONTAG=dev-gitaction UIVERSIONTAG=dev-gitaction GOBUILDIMAGE=golang:1.22.3 COMPILETAG=compile_golangimage TRIVYFLAG=true HTTPPROXY= PULL_BASE_FROM_DOCKERHUB=false -sudo make package_offline GOBUILDTAGS="include_oss include_gcs" VERSIONTAG=dev-gitaction PKGVERSIONTAG=dev-gitaction UIVERSIONTAG=dev-gitaction GOBUILDIMAGE=golang:1.22.3 COMPILETAG=compile_golangimage TRIVYFLAG=true HTTPPROXY= PULL_BASE_FROM_DOCKERHUB=false +sudo make package_online GOBUILDTAGS="include_oss include_gcs" VERSIONTAG=dev-gitaction PKGVERSIONTAG=dev-gitaction UIVERSIONTAG=dev-gitaction GOBUILDIMAGE=golang:1.23.2 COMPILETAG=compile_golangimage TRIVYFLAG=true HTTPPROXY= PULL_BASE_FROM_DOCKERHUB=false +sudo make package_offline GOBUILDTAGS="include_oss include_gcs" VERSIONTAG=dev-gitaction PKGVERSIONTAG=dev-gitaction UIVERSIONTAG=dev-gitaction GOBUILDIMAGE=golang:1.23.2 COMPILETAG=compile_golangimage TRIVYFLAG=true HTTPPROXY= PULL_BASE_FROM_DOCKERHUB=false From 39af54fb2e3de76830d35ca0de056d71d4569791 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 12:53:07 +0800 Subject: [PATCH 02/16] bump up golangci version Signed-off-by: wang yan --- tests/ci/ut_install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ci/ut_install.sh b/tests/ci/ut_install.sh index 6702bb3aae1..0d05ecef3c6 100755 --- a/tests/ci/ut_install.sh +++ b/tests/ci/ut_install.sh @@ -18,7 +18,7 @@ set -e # cd ../ # binary will be $(go env GOPATH)/bin/golangci-lint # go get installation aren't guaranteed to work. We recommend using binary installation. -curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2 +curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.61.0 sudo service postgresql stop || echo no postgresql need to be stopped sleep 2 From c2b90f8a87573af84b6d437ca6f791a2da6ac524 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 14:42:03 +0800 Subject: [PATCH 03/16] fix cilint Signed-off-by: wang yan --- src/common/rbac/project/evaluator.go | 2 +- src/common/rbac/system/evaluator.go | 2 +- src/controller/blob/controller.go | 4 ++-- src/controller/config/controller.go | 2 +- src/controller/quota/controller.go | 4 ++-- src/controller/scanner/base_controller.go | 2 +- src/controller/securityhub/controller.go | 6 +++--- src/core/service/token/token.go | 2 +- .../job/impl/scandataexport/scan_data_export.go | 10 +++++----- src/jobservice/logger/entry.go | 7 +++++-- src/jobservice/migration/migrator_v180.go | 2 +- src/jobservice/worker/cworker/c_worker.go | 2 +- src/jobservice/worker/cworker/reaper.go | 2 +- src/lib/redis/pool.go | 4 ++-- src/lib/selector/selectors/index/index.go | 2 +- src/pkg/exporter/exporter.go | 2 +- .../permission/evaluator/rbac/casbin_match.go | 2 +- src/pkg/retention/policy/rule/index/index.go | 2 +- src/pkg/scan/dao/scan/vulnerability.go | 16 ++++++++-------- src/pkg/scan/dao/scan/vulnerability_test.go | 2 +- src/pkg/scan/export/filter_processor.go | 4 ++-- src/pkg/token/options.go | 4 ++-- src/pkg/token/token.go | 6 +++--- src/server/middleware/blob/copy_artifact.go | 2 +- src/server/middleware/blob/head_blob.go | 4 ++-- .../middleware/blob/post_initiate_blob_upload.go | 2 +- src/server/middleware/blob/util.go | 4 ++-- src/server/middleware/cosign/cosign.go | 2 +- src/server/middleware/quota/util.go | 2 +- src/server/v2.0/handler/artifact.go | 4 ++-- src/server/v2.0/handler/model/project.go | 6 +++--- src/server/v2.0/handler/scanexport.go | 6 +++--- 32 files changed, 63 insertions(+), 60 deletions(-) diff --git a/src/common/rbac/project/evaluator.go b/src/common/rbac/project/evaluator.go index bba793acf25..38f5753c048 100644 --- a/src/common/rbac/project/evaluator.go +++ b/src/common/rbac/project/evaluator.go @@ -58,7 +58,7 @@ func NewBuilderForUser(user *models.User, ctl project.Controller) RBACUserBuilde // NewBuilderForPolicies create a builder for the policies func NewBuilderForPolicies(username string, policies []*types.Policy, filters ...func(*proModels.Project, []*types.Policy) []*types.Policy) RBACUserBuilder { - return func(ctx context.Context, p *proModels.Project) types.RBACUser { + return func(_ context.Context, p *proModels.Project) types.RBACUser { for _, filter := range filters { policies = filter(p, policies) } diff --git a/src/common/rbac/system/evaluator.go b/src/common/rbac/system/evaluator.go index e16ab10674c..9d4af05fd2d 100644 --- a/src/common/rbac/system/evaluator.go +++ b/src/common/rbac/system/evaluator.go @@ -25,7 +25,7 @@ import ( // NewEvaluator create evaluator for the system func NewEvaluator(username string, policies []*types.Policy) evaluator.Evaluator { - return namespace.New(NamespaceKind, func(ctx context.Context, ns types.Namespace) evaluator.Evaluator { + return namespace.New(NamespaceKind, func(_ context.Context, ns types.Namespace) evaluator.Evaluator { return rbac.New(&rbacUser{ username: username, policies: policies, diff --git a/src/controller/blob/controller.go b/src/controller/blob/controller.go index f59a457ffe0..1adbf80f44a 100644 --- a/src/controller/blob/controller.go +++ b/src/controller/blob/controller.go @@ -363,7 +363,7 @@ func (c *controller) Touch(ctx context.Context, blob *blob.Blob) error { return err } if count == 0 { - return errors.New(nil).WithMessage(fmt.Sprintf("no blob item is updated to StatusNone, id:%d, digest:%s", blob.ID, blob.Digest)).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessage("no blob item is updated to StatusNone, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) } return nil } @@ -375,7 +375,7 @@ func (c *controller) Fail(ctx context.Context, blob *blob.Blob) error { return err } if count == 0 { - return errors.New(nil).WithMessage(fmt.Sprintf("no blob item is updated to StatusDeleteFailed, id:%d, digest:%s", blob.ID, blob.Digest)).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessage("no blob item is updated to StatusDeleteFailed, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) } return nil } diff --git a/src/controller/config/controller.go b/src/controller/config/controller.go index c424b2659fc..f4ddcb783c4 100644 --- a/src/controller/config/controller.go +++ b/src/controller/config/controller.go @@ -186,7 +186,7 @@ func verifyValueLengthCfg(_ context.Context, cfgs map[string]interface{}) error } if int64(vf) > maxValue { - return errors.BadRequestError(nil).WithMessage(fmt.Sprintf("the %s value is over the limit value: %d", c, maxValue)) + return errors.BadRequestError(nil).WithMessage("the %s value is over the limit value: %d", c, maxValue) } } } diff --git a/src/controller/quota/controller.go b/src/controller/quota/controller.go index 570c6ab14a8..150258cefb2 100644 --- a/src/controller/quota/controller.go +++ b/src/controller/quota/controller.go @@ -349,7 +349,7 @@ func (c *controller) updateUsageWithRetry(ctx context.Context, reference, refere options := []retry.Option{ retry.Timeout(defaultRetryTimeout), retry.Backoff(false), - retry.Callback(func(err error, sleep time.Duration) { + retry.Callback(func(err error, _ time.Duration) { log.G(ctx).Debugf("failed to update the quota usage for %s %s, error: %v", reference, referenceID, err) }), } @@ -496,7 +496,7 @@ func reserveResources(resources types.ResourceList) func(hardLimits, used types. } func rollbackResources(resources types.ResourceList) func(hardLimits, used types.ResourceList) (types.ResourceList, error) { - return func(hardLimits, used types.ResourceList) (types.ResourceList, error) { + return func(_, used types.ResourceList) (types.ResourceList, error) { newUsed := types.Subtract(used, resources) // ensure that new used is never negative if negativeUsed := types.IsNegative(newUsed); len(negativeUsed) > 0 { diff --git a/src/controller/scanner/base_controller.go b/src/controller/scanner/base_controller.go index d05878288c4..b6197f3b21d 100644 --- a/src/controller/scanner/base_controller.go +++ b/src/controller/scanner/base_controller.go @@ -402,7 +402,7 @@ type MetadataResult struct { func (m *MetadataResult) Unpack() (*v1.ScannerAdapterMetadata, error) { var err error if m.Error != "" { - err = fmt.Errorf(m.Error) + err = errors.New(nil).WithMessage(m.Error) } return m.Metadata, err diff --git a/src/controller/securityhub/controller.go b/src/controller/securityhub/controller.go index 80babcb9ab3..fe28f3b2214 100644 --- a/src/controller/securityhub/controller.go +++ b/src/controller/securityhub/controller.go @@ -147,11 +147,11 @@ func (c *controller) attachTags(ctx context.Context, vuls []*secHubModel.Vulnera } // get tags in the artifact list - var artifactIds []interface{} + var artifactIDs []interface{} for k := range artifactTagMap { - artifactIds = append(artifactIds, k) + artifactIDs = append(artifactIDs, k) } - query := q.New(q.KeyWords{"artifact_id": q.NewOrList(artifactIds)}) + query := q.New(q.KeyWords{"artifact_id": q.NewOrList(artifactIDs)}) tags, err := c.tagMgr.List(ctx, query) if err != nil { return vuls, err diff --git a/src/core/service/token/token.go b/src/core/service/token/token.go index 82b1dee6251..5b6e29d9b14 100644 --- a/src/core/service/token/token.go +++ b/src/core/service/token/token.go @@ -39,7 +39,7 @@ func (h *Handler) Get() { tokenCreator, ok := creatorMap[service] if !ok { errMsg := fmt.Sprintf("Unable to handle service: %s", service) - log.Errorf(errMsg) + log.Error(errMsg) h.CustomAbort(http.StatusBadRequest, template.HTMLEscapeString(errMsg)) } token, err := tokenCreator.Create(request) diff --git a/src/jobservice/job/impl/scandataexport/scan_data_export.go b/src/jobservice/job/impl/scandataexport/scan_data_export.go index 3201d6b417a..59f84d6c9cd 100644 --- a/src/jobservice/job/impl/scandataexport/scan_data_export.go +++ b/src/jobservice/job/impl/scandataexport/scan_data_export.go @@ -201,24 +201,24 @@ func (sde *ScanDataExport) writeCsvFile(ctx job.Context, params job.Parameters, return err } - projectIds := filterCriteria.Projects - if len(projectIds) == 0 { + projectIDs := filterCriteria.Projects + if len(projectIDs) == 0 { return nil } // extract the repository ids if any repositories have been specified - repoIds, err := sde.filterProcessor.ProcessRepositoryFilter(systemContext, filterCriteria.Repositories, projectIds) + repoIDs, err := sde.filterProcessor.ProcessRepositoryFilter(systemContext, filterCriteria.Repositories, projectIDs) if err != nil { return err } - if len(repoIds) == 0 { + if len(repoIDs) == 0 { logger.Infof("No repositories found with specified names: %v", filterCriteria.Repositories) return nil } // filter artifacts by tags - arts, err := sde.filterProcessor.ProcessTagFilter(systemContext, filterCriteria.Tags, repoIds) + arts, err := sde.filterProcessor.ProcessTagFilter(systemContext, filterCriteria.Tags, repoIDs) if err != nil { return err } diff --git a/src/jobservice/logger/entry.go b/src/jobservice/logger/entry.go index 3cdb5f5d9ca..c1f24ff315e 100644 --- a/src/jobservice/logger/entry.go +++ b/src/jobservice/logger/entry.go @@ -14,7 +14,10 @@ package logger -import "fmt" +import ( + "errors" + "fmt" +) // Entry provides unique interfaces on top of multiple logger backends. // Entry also implements @Interface. @@ -115,7 +118,7 @@ func (e *Entry) Close() error { } } if errMsg != "" { - return fmt.Errorf(errMsg) + return errors.New(errMsg) } return nil } diff --git a/src/jobservice/migration/migrator_v180.go b/src/jobservice/migration/migrator_v180.go index ff9e497ca45..2d935001707 100644 --- a/src/jobservice/migration/migrator_v180.go +++ b/src/jobservice/migration/migrator_v180.go @@ -390,7 +390,7 @@ func toInt(v interface{}) int64 { func hashKey(p *period.Policy) string { key := p.JobName - if p.JobParameters != nil && len(p.JobParameters) > 0 { + if len(p.JobParameters) > 0 { if bytes, err := json.Marshal(p.JobParameters); err == nil { key = fmt.Sprintf("%s:%s", key, string(bytes)) } diff --git a/src/jobservice/worker/cworker/c_worker.go b/src/jobservice/worker/cworker/c_worker.go index 2063e74cd29..130cd099ea9 100644 --- a/src/jobservice/worker/cworker/c_worker.go +++ b/src/jobservice/worker/cworker/c_worker.go @@ -154,7 +154,7 @@ func (w *basicWorker) Start() error { logger.Infof("Basic worker is started") // Start the reaper - w.knownJobs.Range(func(k interface{}, v interface{}) bool { + w.knownJobs.Range(func(k interface{}, _ interface{}) bool { w.reaper.jobTypes = append(w.reaper.jobTypes, k.(string)) return true diff --git a/src/jobservice/worker/cworker/reaper.go b/src/jobservice/worker/cworker/reaper.go index 8bf2b165de3..601a9e6d021 100644 --- a/src/jobservice/worker/cworker/reaper.go +++ b/src/jobservice/worker/cworker/reaper.go @@ -136,7 +136,7 @@ func (r *reaper) syncOutdatedStats() error { // Loop all the in progress jobs to check if they're really in progress or // status is hung. - h := func(k string, v int64) (err error) { + h := func(k string, _ int64) (err error) { defer func() { if errs.IsObjectNotFoundError(err) { // As the job stats is lost and we don't have chance to restore it, then directly discard it. diff --git a/src/lib/redis/pool.go b/src/lib/redis/pool.go index 337375abe00..3fe9c33517f 100644 --- a/src/lib/redis/pool.go +++ b/src/lib/redis/pool.go @@ -84,7 +84,7 @@ func GetRedisPool(name string, rawurl string, param *PoolParam) (*redis.Pool, er Dial: func() (redis.Conn, error) { return redis.DialURL(rawurl) }, - TestOnBorrow: func(c redis.Conn, t time.Time) error { + TestOnBorrow: func(c redis.Conn, _ time.Time) error { _, err := c.Do("PING") return err }, @@ -172,7 +172,7 @@ func getSentinelPool(u *url.URL, param *PoolParam, name string) (*redis.Pool, er log.Debug(name, "dial redis master:", masterAddr, "db:", db) return redis.Dial("tcp", masterAddr, redisOptions...) }, - TestOnBorrow: func(c redis.Conn, t time.Time) error { + TestOnBorrow: func(c redis.Conn, _ time.Time) error { if !sentinel.TestRole(c, "master") { return fmt.Errorf("check role failed, %s", name) } diff --git a/src/lib/selector/selectors/index/index.go b/src/lib/selector/selectors/index/index.go index 8d308ae5aed..5e786462405 100644 --- a/src/lib/selector/selectors/index/index.go +++ b/src/lib/selector/selectors/index/index.go @@ -94,7 +94,7 @@ func Get(kind, decoration, pattern, extras string) (selector.Selector, error) { func Index() []*IndexedMeta { all := make([]*IndexedMeta, 0) - index.Range(func(k, v interface{}) bool { + index.Range(func(_, v interface{}) bool { if item, ok := v.(*indexedItem); ok { all = append(all, item.Meta) return true diff --git a/src/pkg/exporter/exporter.go b/src/pkg/exporter/exporter.go index 079071b31eb..2f5a5fe8845 100644 --- a/src/pkg/exporter/exporter.go +++ b/src/pkg/exporter/exporter.go @@ -87,7 +87,7 @@ func (e *Exporter) RegisterCollector(collectors ...collector) error { func newServer(opt *Opt, _ *prometheus.Registry) *http.Server { exporterMux := http.NewServeMux() exporterMux.Handle(opt.MetricsPath, promhttp.Handler()) - exporterMux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + exporterMux.HandleFunc("/", func(w http.ResponseWriter, _ *http.Request) { _, _ = w.Write([]byte(` Harbor Exporter diff --git a/src/pkg/permission/evaluator/rbac/casbin_match.go b/src/pkg/permission/evaluator/rbac/casbin_match.go index afd0ddf256e..543512b469f 100644 --- a/src/pkg/permission/evaluator/rbac/casbin_match.go +++ b/src/pkg/permission/evaluator/rbac/casbin_match.go @@ -40,7 +40,7 @@ func (s *regexpStore) Get(key string, build func(string) *regexp.Regexp) *regexp func (s *regexpStore) Purge() { var keys []interface{} - s.entries.Range(func(key, value interface{}) bool { + s.entries.Range(func(key, _ interface{}) bool { keys = append(keys, key) return true }) diff --git a/src/pkg/retention/policy/rule/index/index.go b/src/pkg/retention/policy/rule/index/index.go index 7fd148c9c3f..1555aedd662 100644 --- a/src/pkg/retention/policy/rule/index/index.go +++ b/src/pkg/retention/policy/rule/index/index.go @@ -253,7 +253,7 @@ func Get(templateID string, parameters rule.Parameters) (rule.Evaluator, error) func Index() []*Metadata { res := make([]*Metadata, 0) - index.Range(func(k, v interface{}) bool { + index.Range(func(_, v interface{}) bool { if item, ok := v.(*indexedItem); ok { res = append(res, item.Meta) return true diff --git a/src/pkg/scan/dao/scan/vulnerability.go b/src/pkg/scan/dao/scan/vulnerability.go index da59cabe041..d920de81dbe 100644 --- a/src/pkg/scan/dao/scan/vulnerability.go +++ b/src/pkg/scan/dao/scan/vulnerability.go @@ -50,8 +50,8 @@ type VulnerabilityRecordDao interface { DeleteForReport(ctx context.Context, reportUUID string) (int64, error) // DeleteForDigests deletes vulnerability records for a provided list of digests DeleteForDigests(ctx context.Context, digests ...string) (int64, error) - // GetRecordIdsForScanner gets record ids of vulnerability records for a scanner - GetRecordIdsForScanner(ctx context.Context, registrationUUID string) ([]int, error) + // GetRecordIDsForScanner gets record ids of vulnerability records for a scanner + GetRecordIDsForScanner(ctx context.Context, registrationUUID string) ([]int, error) } // NewVulnerabilityRecordDao returns a new dao to handle vulnerability data @@ -230,17 +230,17 @@ func (v *vulnerabilityRecordDao) DeleteForDigests(ctx context.Context, digests . return numRowsDeleted, nil } -// GetRecordIdsForScanner retrieves the internal Ids of the vulnerability records for a given scanner +// GetRecordIDsForScanner retrieves the internal Ids of the vulnerability records for a given scanner // identified by registrationUUID -func (v *vulnerabilityRecordDao) GetRecordIdsForScanner(ctx context.Context, registrationUUID string) ([]int, error) { - vulnRecordIds := make([]int, 0) +func (v *vulnerabilityRecordDao) GetRecordIDsForScanner(ctx context.Context, registrationUUID string) ([]int, error) { + vulnRecordIDs := make([]int, 0) o, err := orm.FromContext(ctx) if err != nil { return nil, err } - _, err = o.Raw("select id from vulnerability_record where registration_uuid = ?", registrationUUID).QueryRows(&vulnRecordIds) + _, err = o.Raw("select id from vulnerability_record where registration_uuid = ?", registrationUUID).QueryRows(&vulnRecordIDs) if err != nil { - return vulnRecordIds, err + return vulnRecordIDs, err } - return vulnRecordIds, err + return vulnRecordIDs, err } diff --git a/src/pkg/scan/dao/scan/vulnerability_test.go b/src/pkg/scan/dao/scan/vulnerability_test.go index c78cdef2c09..9b56ffd672d 100644 --- a/src/pkg/scan/dao/scan/vulnerability_test.go +++ b/src/pkg/scan/dao/scan/vulnerability_test.go @@ -180,7 +180,7 @@ func (suite *VulnerabilityTestSuite) TestGetVulnerabilityRecordsForScanner() { // TestGetVulnerabilityRecordIdsForScanner gets vulnerability records for scanner func (suite *VulnerabilityTestSuite) TestGetVulnerabilityRecordIdsForScanner() { - vulns, err := suite.vulnerabilityRecordDao.GetRecordIdsForScanner(suite.Context(), "scannerId1") + vulns, err := suite.vulnerabilityRecordDao.GetRecordIDsForScanner(suite.Context(), "scannerId1") suite.NoError(err, "Error when fetching vulnerability records for report") suite.True(len(vulns) > 0) } diff --git a/src/pkg/scan/export/filter_processor.go b/src/pkg/scan/export/filter_processor.go index a58e2052be4..331762f3587 100644 --- a/src/pkg/scan/export/filter_processor.go +++ b/src/pkg/scan/export/filter_processor.go @@ -30,8 +30,8 @@ import ( ) type FilterProcessor interface { - ProcessRepositoryFilter(ctx context.Context, filter string, projectIds []int64) ([]int64, error) - ProcessTagFilter(ctx context.Context, filter string, repositoryIds []int64) ([]*artifact.Artifact, error) + ProcessRepositoryFilter(ctx context.Context, filter string, projectIDs []int64) ([]int64, error) + ProcessTagFilter(ctx context.Context, filter string, repositoryIDs []int64) ([]*artifact.Artifact, error) ProcessLabelFilter(ctx context.Context, labelIDs []int64, arts []*artifact.Artifact) ([]*artifact.Artifact, error) } diff --git a/src/pkg/token/options.go b/src/pkg/token/options.go index 7f639dfdc38..1e1cb28723d 100644 --- a/src/pkg/token/options.go +++ b/src/pkg/token/options.go @@ -69,7 +69,7 @@ func (o *Options) GetKey() (interface{}, error) { } return privateKey, nil default: - return nil, fmt.Errorf(fmt.Sprintf("unsupported sign method, %s", o.SignMethod)) + return nil, fmt.Errorf("unsupported sign method, %s", o.SignMethod) } } @@ -83,7 +83,7 @@ func DefaultTokenOptions() *Options { func NewOptions(sm, iss, keyPath string) (*Options, error) { pk, err := os.ReadFile(keyPath) if err != nil { - log.Errorf(fmt.Sprintf("failed to read private key %v", err)) + log.Errorf("failed to read private key %v", err) return nil, err } return &Options{ diff --git a/src/pkg/token/token.go b/src/pkg/token/token.go index 920b587afe1..76398f1a56a 100644 --- a/src/pkg/token/token.go +++ b/src/pkg/token/token.go @@ -54,7 +54,7 @@ func (tk *Token) Raw() (string, error) { } raw, err := tk.Token.SignedString(key) if err != nil { - log.Debugf(fmt.Sprintf("failed to issue token %v", err)) + log.Debugf("failed to issue token %v", err) return "", err } return raw, err @@ -67,7 +67,7 @@ func Parse(opt *Options, rawToken string, claims jwt.Claims) (*Token, error) { return nil, err } var parser = jwt.NewParser(jwt.WithLeeway(common.JwtLeeway), jwt.WithValidMethods([]string{opt.SignMethod.Alg()})) - token, err := parser.ParseWithClaims(rawToken, claims, func(token *jwt.Token) (interface{}, error) { + token, err := parser.ParseWithClaims(rawToken, claims, func(_ *jwt.Token) (interface{}, error) { switch k := key.(type) { case *rsa.PrivateKey: return &k.PublicKey, nil @@ -78,7 +78,7 @@ func Parse(opt *Options, rawToken string, claims jwt.Claims) (*Token, error) { } }) if err != nil { - log.Errorf(fmt.Sprintf("parse token error, %v", err)) + log.Errorf("parse token error, %v", err) return nil, err } diff --git a/src/server/middleware/blob/copy_artifact.go b/src/server/middleware/blob/copy_artifact.go index 2a5de1c0676..2b39e4dbf28 100644 --- a/src/server/middleware/blob/copy_artifact.go +++ b/src/server/middleware/blob/copy_artifact.go @@ -33,7 +33,7 @@ func isSuccess(statusCode int) bool { // CopyArtifactMiddleware middleware to sync the missing associations for the project func CopyArtifactMiddleware() func(http.Handler) http.Handler { - return middleware.AfterResponse(func(w http.ResponseWriter, r *http.Request, statusCode int) error { + return middleware.AfterResponse(func(_ http.ResponseWriter, r *http.Request, statusCode int) error { if !isSuccess(statusCode) { return nil } diff --git a/src/server/middleware/blob/head_blob.go b/src/server/middleware/blob/head_blob.go index 6f8e899141c..67710fb4551 100644 --- a/src/server/middleware/blob/head_blob.go +++ b/src/server/middleware/blob/head_blob.go @@ -59,7 +59,7 @@ func handleHead(req *http.Request) error { case blob_models.StatusNone, blob_models.StatusDelete: if err := blob.Ctl.Touch(req.Context(), bb); err != nil { log.Errorf("failed to update blob: %s status to StatusNone, error:%v", blobInfo.Digest, err) - return errors.Wrapf(err, fmt.Sprintf("the request id is: %s", req.Header.Get(requestid.HeaderXRequestID))) + return errors.Wrapf(err, "the request id is: %s", req.Header.Get(requestid.HeaderXRequestID)) } case blob_models.StatusDeleting: now := time.Now().UTC() @@ -67,7 +67,7 @@ func handleHead(req *http.Request) error { if now.Sub(bb.UpdateTime) > time.Duration(config.GetGCTimeWindow())*time.Hour { if err := blob.Ctl.Fail(req.Context(), bb); err != nil { log.Errorf("failed to update blob: %s status to StatusDeleteFailed, error:%v", blobInfo.Digest, err) - return errors.Wrapf(err, fmt.Sprintf("the request id is: %s", req.Header.Get(requestid.HeaderXRequestID))) + return errors.Wrapf(err, "the request id is: %s", req.Header.Get(requestid.HeaderXRequestID)) } } return errors.New(nil).WithMessage(fmt.Sprintf("the asking blob is in GC, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID))).WithCode(errors.NotFoundCode) diff --git a/src/server/middleware/blob/post_initiate_blob_upload.go b/src/server/middleware/blob/post_initiate_blob_upload.go index 33eb42c1167..07a984961a7 100644 --- a/src/server/middleware/blob/post_initiate_blob_upload.go +++ b/src/server/middleware/blob/post_initiate_blob_upload.go @@ -24,7 +24,7 @@ import ( // PostInitiateBlobUploadMiddleware middleware to add blob to project after mount blob success func PostInitiateBlobUploadMiddleware() func(http.Handler) http.Handler { - return middleware.AfterResponse(func(w http.ResponseWriter, r *http.Request, statusCode int) error { + return middleware.AfterResponse(func(_ http.ResponseWriter, r *http.Request, statusCode int) error { if statusCode != http.StatusCreated { return nil } diff --git a/src/server/middleware/blob/util.go b/src/server/middleware/blob/util.go index 30f720fffa2..6742d78f1e5 100644 --- a/src/server/middleware/blob/util.go +++ b/src/server/middleware/blob/util.go @@ -44,7 +44,7 @@ func probeBlob(r *http.Request, digest string) error { case models.StatusNone, models.StatusDelete, models.StatusDeleteFailed: if err := blobController.Touch(r.Context(), bb); err != nil { logger.Errorf("failed to update blob: %s status to StatusNone, error:%v", bb.Digest, err) - return errors.Wrapf(err, fmt.Sprintf("the request id is: %s", r.Header.Get(requestid.HeaderXRequestID))) + return errors.Wrapf(err, "the request id is: %s", r.Header.Get(requestid.HeaderXRequestID)) } case models.StatusDeleting: now := time.Now().UTC() @@ -52,7 +52,7 @@ func probeBlob(r *http.Request, digest string) error { if now.Sub(bb.UpdateTime) > time.Duration(config.GetGCTimeWindow())*time.Hour { if err := blob.Ctl.Fail(r.Context(), bb); err != nil { log.Errorf("failed to update blob: %s status to StatusDeleteFailed, error:%v", bb.Digest, err) - return errors.Wrapf(err, fmt.Sprintf("the request id is: %s", r.Header.Get(requestid.HeaderXRequestID))) + return errors.Wrapf(err, "the request id is: %s", r.Header.Get(requestid.HeaderXRequestID)) } // StatusDeleteFailed => StatusNone, and then let the proxy to handle manifest upload return probeBlob(r, digest) diff --git a/src/server/middleware/cosign/cosign.go b/src/server/middleware/cosign/cosign.go index 53fcdc7eddf..3dd4aa9a3e9 100644 --- a/src/server/middleware/cosign/cosign.go +++ b/src/server/middleware/cosign/cosign.go @@ -99,7 +99,7 @@ PUT /v2/library/goharbor/harbor-db/manifests/sha256:aabea2bdd5a6fb79c13837b88c7b */ func SignatureMiddleware() func(http.Handler) http.Handler { - return middleware.AfterResponse(func(w http.ResponseWriter, r *http.Request, statusCode int) error { + return middleware.AfterResponse(func(_ http.ResponseWriter, r *http.Request, statusCode int) error { if statusCode != http.StatusCreated { return nil } diff --git a/src/server/middleware/quota/util.go b/src/server/middleware/quota/util.go index 9479a806737..3c6e3df0ea5 100644 --- a/src/server/middleware/quota/util.go +++ b/src/server/middleware/quota/util.go @@ -61,7 +61,7 @@ var ( ) func projectResourcesEvent(level int) func(*http.Request, string, string, string) event.Metadata { - return func(r *http.Request, reference, referenceID string, message string) event.Metadata { + return func(r *http.Request, _, referenceID string, message string) event.Metadata { ctx := r.Context() logger := log.G(ctx).WithFields(log.Fields{"middleware": "quota", "action": "request", "url": r.URL.Path}) diff --git a/src/server/v2.0/handler/artifact.go b/src/server/v2.0/handler/artifact.go index 79cf3162231..64fff3f32c4 100644 --- a/src/server/v2.0/handler/artifact.go +++ b/src/server/v2.0/handler/artifact.go @@ -428,7 +428,7 @@ func (a *artifactAPI) GetVulnerabilitiesAddition(ctx context.Context, params ope content, _ := json.Marshal(vulnerabilities) - return middleware.ResponderFunc(func(w http.ResponseWriter, p runtime.Producer) { + return middleware.ResponderFunc(func(w http.ResponseWriter, _ runtime.Producer) { w.Header().Set("Content-Type", "application/json") _, _ = w.Write(content) }) @@ -449,7 +449,7 @@ func (a *artifactAPI) GetAddition(ctx context.Context, params operation.GetAddit return a.SendError(ctx, err) } - return middleware.ResponderFunc(func(w http.ResponseWriter, p runtime.Producer) { + return middleware.ResponderFunc(func(w http.ResponseWriter, _ runtime.Producer) { w.Header().Set("Content-Type", addition.ContentType) _, _ = w.Write(addition.Content) }) diff --git a/src/server/v2.0/handler/model/project.go b/src/server/v2.0/handler/model/project.go index 1321f2fc0b5..d821e8c9001 100644 --- a/src/server/v2.0/handler/model/project.go +++ b/src/server/v2.0/handler/model/project.go @@ -33,9 +33,9 @@ type Project struct { // ToSwagger converts the project to the swagger model func (p *Project) ToSwagger() *models.Project { - var currentUserRoleIds []int32 + var currentUserRoleIDs []int32 for _, role := range p.RoleList { - currentUserRoleIds = append(currentUserRoleIds, int32(role)) + currentUserRoleIDs = append(currentUserRoleIDs, int32(role)) } var md *models.ProjectMetadata @@ -63,7 +63,7 @@ func (p *Project) ToSwagger() *models.Project { return &models.Project{ CreationTime: strfmt.DateTime(p.CreationTime), CurrentUserRoleID: int64(p.Role), - CurrentUserRoleIds: currentUserRoleIds, + CurrentUserRoleIds: currentUserRoleIDs, CVEAllowlist: &allowlist, Metadata: md, Name: p.Name, diff --git a/src/server/v2.0/handler/scanexport.go b/src/server/v2.0/handler/scanexport.go index 520c66f8142..f5a59bdbb86 100644 --- a/src/server/v2.0/handler/scanexport.go +++ b/src/server/v2.0/handler/scanexport.go @@ -164,7 +164,7 @@ func (se *scanDataExportAPI) DownloadScanData(ctx context.Context, params operat execution, err := se.scanDataExportCtl.GetExecution(ctx, params.ExecutionID) if err != nil { if notFound := orm.AsNotFoundError(err, "execution with id: %d not found", params.ExecutionID); notFound != nil { - return middleware.ResponderFunc(func(writer http.ResponseWriter, producer runtime.Producer) { + return middleware.ResponderFunc(func(writer http.ResponseWriter, _ runtime.Producer) { writer.WriteHeader(http.StatusNotFound) }) } @@ -183,14 +183,14 @@ func (se *scanDataExportAPI) DownloadScanData(ctx context.Context, params operat } if secContext.GetUsername() != execution.UserName { - return middleware.ResponderFunc(func(writer http.ResponseWriter, producer runtime.Producer) { + return middleware.ResponderFunc(func(writer http.ResponseWriter, _ runtime.Producer) { writer.WriteHeader(http.StatusForbidden) }) } // check if the CSV artifact for the execution exists if !execution.FilePresent { - return middleware.ResponderFunc(func(writer http.ResponseWriter, producer runtime.Producer) { + return middleware.ResponderFunc(func(writer http.ResponseWriter, _ runtime.Producer) { writer.WriteHeader(http.StatusNotFound) }) } From d71b8c75b4b95cdac20d99d61a32fb3fefb06a1d Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 15:04:47 +0800 Subject: [PATCH 04/16] upgrade mockery Signed-off-by: wang yan --- Makefile | 2 +- src/controller/replication/flow/mock_adapter_factory_test.go | 2 +- src/controller/replication/flow/mock_adapter_test.go | 2 +- src/controller/replication/mock_flow_controller_test.go | 2 +- src/jobservice/mgt/mock_manager.go | 2 +- src/jobservice/period/mock_scheduler.go | 2 +- src/lib/cache/mock_cache_test.go | 2 +- src/pkg/scheduler/mock_dao_test.go | 2 +- src/pkg/task/mock_execution_dao_test.go | 2 +- src/pkg/task/mock_jobservice_client_test.go | 2 +- src/pkg/task/mock_sweep_manager_test.go | 2 +- src/pkg/task/mock_task_dao_test.go | 2 +- src/pkg/task/mock_task_manager_test.go | 2 +- src/testing/common/security/context.go | 2 +- src/testing/controller/artifact/controller.go | 2 +- src/testing/controller/blob/controller.go | 2 +- src/testing/controller/config/controller.go | 2 +- src/testing/controller/jobservice/scheduler_controller.go | 2 +- src/testing/controller/project/controller.go | 2 +- src/testing/controller/proxy/remote_interface.go | 2 +- src/testing/controller/purge/controller.go | 2 +- src/testing/controller/quota/controller.go | 2 +- src/testing/controller/replication/controller.go | 2 +- src/testing/controller/repository/controller.go | 2 +- src/testing/controller/retention/controller.go | 2 +- src/testing/controller/robot/controller.go | 2 +- src/testing/controller/scan/checker.go | 2 +- src/testing/controller/scan/controller.go | 2 +- src/testing/controller/scandataexport/controller.go | 2 +- src/testing/controller/scanner/controller.go | 2 +- src/testing/controller/securityhub/controller.go | 2 +- src/testing/controller/systemartifact/controller.go | 2 +- src/testing/controller/task/controller.go | 2 +- src/testing/controller/task/execution_controller.go | 2 +- src/testing/controller/user/controller.go | 2 +- src/testing/controller/webhook/controller.go | 2 +- src/testing/lib/cache/cache.go | 2 +- src/testing/lib/cache/iterator.go | 2 +- src/testing/lib/config/manager.go | 2 +- src/testing/lib/orm/creator.go | 2 +- src/testing/pkg/accessory/dao/dao.go | 2 +- src/testing/pkg/accessory/manager.go | 2 +- src/testing/pkg/accessory/model/accessory.go | 2 +- src/testing/pkg/allowlist/dao/dao.go | 2 +- src/testing/pkg/allowlist/manager.go | 2 +- src/testing/pkg/artifact/manager.go | 2 +- src/testing/pkg/artifactrash/manager.go | 2 +- src/testing/pkg/audit/dao/dao.go | 2 +- src/testing/pkg/audit/manager.go | 2 +- src/testing/pkg/blob/manager.go | 2 +- src/testing/pkg/cached/manifest/redis/cached_manager.go | 2 +- src/testing/pkg/chart/operator.go | 2 +- src/testing/pkg/distribution/manifest.go | 2 +- src/testing/pkg/immutable/dao/dao.go | 2 +- src/testing/pkg/immutable/matcher.go | 2 +- src/testing/pkg/joblog/dao/dao.go | 2 +- src/testing/pkg/joblog/manager.go | 2 +- src/testing/pkg/jobmonitor/job_service_monitor_client.go | 2 +- src/testing/pkg/jobmonitor/pool_manager.go | 2 +- src/testing/pkg/jobmonitor/queue_manager.go | 2 +- src/testing/pkg/jobmonitor/redis_client.go | 2 +- src/testing/pkg/jobmonitor/worker_manager.go | 2 +- src/testing/pkg/label/dao/dao.go | 2 +- src/testing/pkg/label/manager.go | 2 +- src/testing/pkg/ldap/manager.go | 2 +- src/testing/pkg/member/fake_member_manager.go | 2 +- src/testing/pkg/notification/policy/dao/dao.go | 2 +- src/testing/pkg/notification/policy/manager.go | 2 +- src/testing/pkg/oidc/dao/meta_dao.go | 2 +- src/testing/pkg/oidc/meta_manager.go | 2 +- src/testing/pkg/p2p/preheat/instance/manager.go | 2 +- src/testing/pkg/p2p/preheat/policy/manager.go | 2 +- src/testing/pkg/parser/parser.go | 2 +- src/testing/pkg/processor/processor.go | 2 +- src/testing/pkg/project/manager.go | 2 +- src/testing/pkg/project/metadata/manager.go | 2 +- src/testing/pkg/queuestatus/manager.go | 2 +- src/testing/pkg/quota/driver/driver.go | 2 +- src/testing/pkg/quota/manager.go | 2 +- src/testing/pkg/rbac/dao/dao.go | 2 +- src/testing/pkg/rbac/manager.go | 2 +- src/testing/pkg/reg/adapter/adapter.go | 2 +- src/testing/pkg/reg/dao/dao.go | 2 +- src/testing/pkg/reg/manager.go | 2 +- src/testing/pkg/registry/fake_registry_client.go | 2 +- src/testing/pkg/replication/dao/dao.go | 2 +- src/testing/pkg/replication/manager.go | 2 +- src/testing/pkg/repository/dao/dao.go | 2 +- src/testing/pkg/repository/manager.go | 2 +- src/testing/pkg/robot/dao/dao.go | 2 +- src/testing/pkg/robot/manager.go | 2 +- src/testing/pkg/scan/export/artifact_digest_calculator.go | 2 +- src/testing/pkg/scan/export/filter_processor.go | 2 +- src/testing/pkg/scan/export/manager.go | 2 +- src/testing/pkg/scan/handler.go | 2 +- .../pkg/scan/postprocessors/native_scan_report_converter.go | 2 +- src/testing/pkg/scan/report/manager.go | 2 +- src/testing/pkg/scan/rest/v1/client.go | 2 +- src/testing/pkg/scan/rest/v1/client_pool.go | 2 +- src/testing/pkg/scan/rest/v1/request_resolver.go | 2 +- src/testing/pkg/scan/rest/v1/response_handler.go | 2 +- src/testing/pkg/scan/sbom/manager.go | 2 +- src/testing/pkg/scan/scanner/manager.go | 2 +- src/testing/pkg/scheduler/scheduler.go | 2 +- src/testing/pkg/securityhub/manager.go | 2 +- src/testing/pkg/systemartifact/cleanup/selector.go | 2 +- src/testing/pkg/systemartifact/dao/dao.go | 2 +- src/testing/pkg/systemartifact/manager.go | 2 +- src/testing/pkg/tag/manager.go | 2 +- src/testing/pkg/task/execution_manager.go | 2 +- src/testing/pkg/task/manager.go | 2 +- src/testing/pkg/user/dao/dao.go | 2 +- src/testing/pkg/user/manager.go | 2 +- src/testing/pkg/usergroup/fake_usergroup_manager.go | 2 +- src/testing/registryctl/client.go | 2 +- 115 files changed, 115 insertions(+), 115 deletions(-) diff --git a/Makefile b/Makefile index cf22a464b4b..be475644775 100644 --- a/Makefile +++ b/Makefile @@ -312,7 +312,7 @@ gen_apis: lint_apis MOCKERY_IMAGENAME=$(IMAGENAMESPACE)/mockery -MOCKERY_VERSION=v2.43.2 +MOCKERY_VERSION=v2.46.2 MOCKERY=$(RUNCONTAINER)/src ${MOCKERY_IMAGENAME}:${MOCKERY_VERSION} MOCKERY_IMAGE_BUILD_CMD=${DOCKERBUILD} -f ${TOOLSPATH}/mockery/Dockerfile --build-arg GOLANG=${GOBUILDIMAGE} --build-arg MOCKERY_VERSION=${MOCKERY_VERSION} -t ${MOCKERY_IMAGENAME}:$(MOCKERY_VERSION) . diff --git a/src/controller/replication/flow/mock_adapter_factory_test.go b/src/controller/replication/flow/mock_adapter_factory_test.go index 05d63df3fa6..450c10b1a48 100644 --- a/src/controller/replication/flow/mock_adapter_factory_test.go +++ b/src/controller/replication/flow/mock_adapter_factory_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package flow diff --git a/src/controller/replication/flow/mock_adapter_test.go b/src/controller/replication/flow/mock_adapter_test.go index 5f7f07bcb26..78d8dad3ae3 100644 --- a/src/controller/replication/flow/mock_adapter_test.go +++ b/src/controller/replication/flow/mock_adapter_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package flow diff --git a/src/controller/replication/mock_flow_controller_test.go b/src/controller/replication/mock_flow_controller_test.go index 672aa710ff9..badcc57b2ef 100644 --- a/src/controller/replication/mock_flow_controller_test.go +++ b/src/controller/replication/mock_flow_controller_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package replication diff --git a/src/jobservice/mgt/mock_manager.go b/src/jobservice/mgt/mock_manager.go index 71e516cbf1f..57258d08ea3 100644 --- a/src/jobservice/mgt/mock_manager.go +++ b/src/jobservice/mgt/mock_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package mgt diff --git a/src/jobservice/period/mock_scheduler.go b/src/jobservice/period/mock_scheduler.go index 556fe2a7315..e323dbb593c 100644 --- a/src/jobservice/period/mock_scheduler.go +++ b/src/jobservice/period/mock_scheduler.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package period diff --git a/src/lib/cache/mock_cache_test.go b/src/lib/cache/mock_cache_test.go index b990522fa59..de83992f00f 100644 --- a/src/lib/cache/mock_cache_test.go +++ b/src/lib/cache/mock_cache_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package cache diff --git a/src/pkg/scheduler/mock_dao_test.go b/src/pkg/scheduler/mock_dao_test.go index e875cb40d1a..84d68dcc819 100644 --- a/src/pkg/scheduler/mock_dao_test.go +++ b/src/pkg/scheduler/mock_dao_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scheduler diff --git a/src/pkg/task/mock_execution_dao_test.go b/src/pkg/task/mock_execution_dao_test.go index 155b959ea82..fa2a4b69469 100644 --- a/src/pkg/task/mock_execution_dao_test.go +++ b/src/pkg/task/mock_execution_dao_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/pkg/task/mock_jobservice_client_test.go b/src/pkg/task/mock_jobservice_client_test.go index 06f58aff750..b0ff4aa7629 100644 --- a/src/pkg/task/mock_jobservice_client_test.go +++ b/src/pkg/task/mock_jobservice_client_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/pkg/task/mock_sweep_manager_test.go b/src/pkg/task/mock_sweep_manager_test.go index 5bd1a622762..f4d7161bfc0 100644 --- a/src/pkg/task/mock_sweep_manager_test.go +++ b/src/pkg/task/mock_sweep_manager_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/pkg/task/mock_task_dao_test.go b/src/pkg/task/mock_task_dao_test.go index 00a810c63bc..f737fe44ca9 100644 --- a/src/pkg/task/mock_task_dao_test.go +++ b/src/pkg/task/mock_task_dao_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/pkg/task/mock_task_manager_test.go b/src/pkg/task/mock_task_manager_test.go index 9f9c358511d..6e80df078e2 100644 --- a/src/pkg/task/mock_task_manager_test.go +++ b/src/pkg/task/mock_task_manager_test.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/testing/common/security/context.go b/src/testing/common/security/context.go index f277d19d7c2..29fbf99a744 100644 --- a/src/testing/common/security/context.go +++ b/src/testing/common/security/context.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package security diff --git a/src/testing/controller/artifact/controller.go b/src/testing/controller/artifact/controller.go index 3ec563103d5..85c37c31038 100644 --- a/src/testing/controller/artifact/controller.go +++ b/src/testing/controller/artifact/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package artifact diff --git a/src/testing/controller/blob/controller.go b/src/testing/controller/blob/controller.go index ba8fcc706b1..f4bc8eddf49 100644 --- a/src/testing/controller/blob/controller.go +++ b/src/testing/controller/blob/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package blob diff --git a/src/testing/controller/config/controller.go b/src/testing/controller/config/controller.go index 0b6205200f4..e564efcbf24 100644 --- a/src/testing/controller/config/controller.go +++ b/src/testing/controller/config/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package config diff --git a/src/testing/controller/jobservice/scheduler_controller.go b/src/testing/controller/jobservice/scheduler_controller.go index 1d9eea5c968..58e46472673 100644 --- a/src/testing/controller/jobservice/scheduler_controller.go +++ b/src/testing/controller/jobservice/scheduler_controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobservice diff --git a/src/testing/controller/project/controller.go b/src/testing/controller/project/controller.go index c95d0679127..eefa8a94b83 100644 --- a/src/testing/controller/project/controller.go +++ b/src/testing/controller/project/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package project diff --git a/src/testing/controller/proxy/remote_interface.go b/src/testing/controller/proxy/remote_interface.go index dbe085f70d9..b25fcd6b4ff 100644 --- a/src/testing/controller/proxy/remote_interface.go +++ b/src/testing/controller/proxy/remote_interface.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package proxy diff --git a/src/testing/controller/purge/controller.go b/src/testing/controller/purge/controller.go index 08416914bc9..935b8e0d5b6 100644 --- a/src/testing/controller/purge/controller.go +++ b/src/testing/controller/purge/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package purge diff --git a/src/testing/controller/quota/controller.go b/src/testing/controller/quota/controller.go index 14dbd1412b2..406451e6c6e 100644 --- a/src/testing/controller/quota/controller.go +++ b/src/testing/controller/quota/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package quota diff --git a/src/testing/controller/replication/controller.go b/src/testing/controller/replication/controller.go index 8d4dc5ab289..4654cbf662d 100644 --- a/src/testing/controller/replication/controller.go +++ b/src/testing/controller/replication/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package replication diff --git a/src/testing/controller/repository/controller.go b/src/testing/controller/repository/controller.go index 445bc5872f5..bfd0561c5a5 100644 --- a/src/testing/controller/repository/controller.go +++ b/src/testing/controller/repository/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package repository diff --git a/src/testing/controller/retention/controller.go b/src/testing/controller/retention/controller.go index 907b9019638..29dfdbb8a28 100644 --- a/src/testing/controller/retention/controller.go +++ b/src/testing/controller/retention/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package retention diff --git a/src/testing/controller/robot/controller.go b/src/testing/controller/robot/controller.go index 735f5df09e4..442c7fb91ab 100644 --- a/src/testing/controller/robot/controller.go +++ b/src/testing/controller/robot/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package robot diff --git a/src/testing/controller/scan/checker.go b/src/testing/controller/scan/checker.go index 7af46b09bd8..66d2a8ece3e 100644 --- a/src/testing/controller/scan/checker.go +++ b/src/testing/controller/scan/checker.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scan diff --git a/src/testing/controller/scan/controller.go b/src/testing/controller/scan/controller.go index dad2b5dbf7d..70af6fd8738 100644 --- a/src/testing/controller/scan/controller.go +++ b/src/testing/controller/scan/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scan diff --git a/src/testing/controller/scandataexport/controller.go b/src/testing/controller/scandataexport/controller.go index 4fdf81b269f..b63e8f13d1d 100644 --- a/src/testing/controller/scandataexport/controller.go +++ b/src/testing/controller/scandataexport/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scandataexport diff --git a/src/testing/controller/scanner/controller.go b/src/testing/controller/scanner/controller.go index 403f4d807b9..64eaf4c3dab 100644 --- a/src/testing/controller/scanner/controller.go +++ b/src/testing/controller/scanner/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scanner diff --git a/src/testing/controller/securityhub/controller.go b/src/testing/controller/securityhub/controller.go index 7df0998274f..714df1427f0 100644 --- a/src/testing/controller/securityhub/controller.go +++ b/src/testing/controller/securityhub/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package securityhub diff --git a/src/testing/controller/systemartifact/controller.go b/src/testing/controller/systemartifact/controller.go index d533c629c13..9d72db40c7e 100644 --- a/src/testing/controller/systemartifact/controller.go +++ b/src/testing/controller/systemartifact/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package systemartifact diff --git a/src/testing/controller/task/controller.go b/src/testing/controller/task/controller.go index 7a6072832d8..f296b68ed40 100644 --- a/src/testing/controller/task/controller.go +++ b/src/testing/controller/task/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/testing/controller/task/execution_controller.go b/src/testing/controller/task/execution_controller.go index 9488a76f09a..1b634b60afa 100644 --- a/src/testing/controller/task/execution_controller.go +++ b/src/testing/controller/task/execution_controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/testing/controller/user/controller.go b/src/testing/controller/user/controller.go index a0325fa2bc1..5177d9d7b2b 100644 --- a/src/testing/controller/user/controller.go +++ b/src/testing/controller/user/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package user diff --git a/src/testing/controller/webhook/controller.go b/src/testing/controller/webhook/controller.go index e265fb0338a..aeb7a105cdc 100644 --- a/src/testing/controller/webhook/controller.go +++ b/src/testing/controller/webhook/controller.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package webhook diff --git a/src/testing/lib/cache/cache.go b/src/testing/lib/cache/cache.go index 2faca2d6c8c..3193798f595 100644 --- a/src/testing/lib/cache/cache.go +++ b/src/testing/lib/cache/cache.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package cache diff --git a/src/testing/lib/cache/iterator.go b/src/testing/lib/cache/iterator.go index 65daab83354..d57732cc2ce 100644 --- a/src/testing/lib/cache/iterator.go +++ b/src/testing/lib/cache/iterator.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package cache diff --git a/src/testing/lib/config/manager.go b/src/testing/lib/config/manager.go index c692e3a3f31..c81aafd85a5 100644 --- a/src/testing/lib/config/manager.go +++ b/src/testing/lib/config/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package config diff --git a/src/testing/lib/orm/creator.go b/src/testing/lib/orm/creator.go index c05dbf761f9..818eb25b402 100644 --- a/src/testing/lib/orm/creator.go +++ b/src/testing/lib/orm/creator.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package orm diff --git a/src/testing/pkg/accessory/dao/dao.go b/src/testing/pkg/accessory/dao/dao.go index d7a109b6870..3a7d9944897 100644 --- a/src/testing/pkg/accessory/dao/dao.go +++ b/src/testing/pkg/accessory/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/accessory/manager.go b/src/testing/pkg/accessory/manager.go index f3688f78455..777d4aebbb1 100644 --- a/src/testing/pkg/accessory/manager.go +++ b/src/testing/pkg/accessory/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package accessory diff --git a/src/testing/pkg/accessory/model/accessory.go b/src/testing/pkg/accessory/model/accessory.go index c0ee08fa967..22169f1fcf4 100644 --- a/src/testing/pkg/accessory/model/accessory.go +++ b/src/testing/pkg/accessory/model/accessory.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package model diff --git a/src/testing/pkg/allowlist/dao/dao.go b/src/testing/pkg/allowlist/dao/dao.go index 850201b8f87..9da59fae707 100644 --- a/src/testing/pkg/allowlist/dao/dao.go +++ b/src/testing/pkg/allowlist/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/allowlist/manager.go b/src/testing/pkg/allowlist/manager.go index 00cfcae31fb..69aef79dd26 100644 --- a/src/testing/pkg/allowlist/manager.go +++ b/src/testing/pkg/allowlist/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package allowlist diff --git a/src/testing/pkg/artifact/manager.go b/src/testing/pkg/artifact/manager.go index a189685cc65..502e2ed7f2b 100644 --- a/src/testing/pkg/artifact/manager.go +++ b/src/testing/pkg/artifact/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package artifact diff --git a/src/testing/pkg/artifactrash/manager.go b/src/testing/pkg/artifactrash/manager.go index de70e91a2fc..5d96bbea7dc 100644 --- a/src/testing/pkg/artifactrash/manager.go +++ b/src/testing/pkg/artifactrash/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package artifactrash diff --git a/src/testing/pkg/audit/dao/dao.go b/src/testing/pkg/audit/dao/dao.go index b90655034b6..f95e34b5b52 100644 --- a/src/testing/pkg/audit/dao/dao.go +++ b/src/testing/pkg/audit/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/audit/manager.go b/src/testing/pkg/audit/manager.go index cf3524c02a3..3002c9d76b2 100644 --- a/src/testing/pkg/audit/manager.go +++ b/src/testing/pkg/audit/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package audit diff --git a/src/testing/pkg/blob/manager.go b/src/testing/pkg/blob/manager.go index 01bc657423e..6828e1a3cf0 100644 --- a/src/testing/pkg/blob/manager.go +++ b/src/testing/pkg/blob/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package blob diff --git a/src/testing/pkg/cached/manifest/redis/cached_manager.go b/src/testing/pkg/cached/manifest/redis/cached_manager.go index 86f17e74939..ae81c2ba896 100644 --- a/src/testing/pkg/cached/manifest/redis/cached_manager.go +++ b/src/testing/pkg/cached/manifest/redis/cached_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package redis diff --git a/src/testing/pkg/chart/operator.go b/src/testing/pkg/chart/operator.go index 4ed9e281613..132a83380a1 100644 --- a/src/testing/pkg/chart/operator.go +++ b/src/testing/pkg/chart/operator.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package chart diff --git a/src/testing/pkg/distribution/manifest.go b/src/testing/pkg/distribution/manifest.go index 7d96ca80e65..2379f920d14 100644 --- a/src/testing/pkg/distribution/manifest.go +++ b/src/testing/pkg/distribution/manifest.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package distribution diff --git a/src/testing/pkg/immutable/dao/dao.go b/src/testing/pkg/immutable/dao/dao.go index 07776e6001d..ba91b1446e7 100644 --- a/src/testing/pkg/immutable/dao/dao.go +++ b/src/testing/pkg/immutable/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/immutable/matcher.go b/src/testing/pkg/immutable/matcher.go index f14c04e2fa0..43681a69d5b 100644 --- a/src/testing/pkg/immutable/matcher.go +++ b/src/testing/pkg/immutable/matcher.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package immutable diff --git a/src/testing/pkg/joblog/dao/dao.go b/src/testing/pkg/joblog/dao/dao.go index e010d2309ee..d9887e7b42f 100644 --- a/src/testing/pkg/joblog/dao/dao.go +++ b/src/testing/pkg/joblog/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/joblog/manager.go b/src/testing/pkg/joblog/manager.go index 0e4204da681..9bb4581df02 100644 --- a/src/testing/pkg/joblog/manager.go +++ b/src/testing/pkg/joblog/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package joblog diff --git a/src/testing/pkg/jobmonitor/job_service_monitor_client.go b/src/testing/pkg/jobmonitor/job_service_monitor_client.go index 567942c61dd..d3f3c636fa0 100644 --- a/src/testing/pkg/jobmonitor/job_service_monitor_client.go +++ b/src/testing/pkg/jobmonitor/job_service_monitor_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobmonitor diff --git a/src/testing/pkg/jobmonitor/pool_manager.go b/src/testing/pkg/jobmonitor/pool_manager.go index b2a8eb3afe0..ca08ec63e76 100644 --- a/src/testing/pkg/jobmonitor/pool_manager.go +++ b/src/testing/pkg/jobmonitor/pool_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobmonitor diff --git a/src/testing/pkg/jobmonitor/queue_manager.go b/src/testing/pkg/jobmonitor/queue_manager.go index 2bf71c5f8f4..cc960ce49cf 100644 --- a/src/testing/pkg/jobmonitor/queue_manager.go +++ b/src/testing/pkg/jobmonitor/queue_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobmonitor diff --git a/src/testing/pkg/jobmonitor/redis_client.go b/src/testing/pkg/jobmonitor/redis_client.go index 099b41db7a3..5d270c48a65 100644 --- a/src/testing/pkg/jobmonitor/redis_client.go +++ b/src/testing/pkg/jobmonitor/redis_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobmonitor diff --git a/src/testing/pkg/jobmonitor/worker_manager.go b/src/testing/pkg/jobmonitor/worker_manager.go index 5fef25392f6..ede27cbbe54 100644 --- a/src/testing/pkg/jobmonitor/worker_manager.go +++ b/src/testing/pkg/jobmonitor/worker_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package jobmonitor diff --git a/src/testing/pkg/label/dao/dao.go b/src/testing/pkg/label/dao/dao.go index c552f751be4..b63c90278cf 100644 --- a/src/testing/pkg/label/dao/dao.go +++ b/src/testing/pkg/label/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/label/manager.go b/src/testing/pkg/label/manager.go index dff40d983b8..aa2fcb8b1e3 100644 --- a/src/testing/pkg/label/manager.go +++ b/src/testing/pkg/label/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package label diff --git a/src/testing/pkg/ldap/manager.go b/src/testing/pkg/ldap/manager.go index aeb7ff7d5a8..966128b308c 100644 --- a/src/testing/pkg/ldap/manager.go +++ b/src/testing/pkg/ldap/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package ldap diff --git a/src/testing/pkg/member/fake_member_manager.go b/src/testing/pkg/member/fake_member_manager.go index 6fe7aac32d8..c959a2670fb 100644 --- a/src/testing/pkg/member/fake_member_manager.go +++ b/src/testing/pkg/member/fake_member_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package member diff --git a/src/testing/pkg/notification/policy/dao/dao.go b/src/testing/pkg/notification/policy/dao/dao.go index 6c3061e2507..3fe86a8d49d 100644 --- a/src/testing/pkg/notification/policy/dao/dao.go +++ b/src/testing/pkg/notification/policy/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/notification/policy/manager.go b/src/testing/pkg/notification/policy/manager.go index 4b41766e55d..35a73149540 100644 --- a/src/testing/pkg/notification/policy/manager.go +++ b/src/testing/pkg/notification/policy/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package policy diff --git a/src/testing/pkg/oidc/dao/meta_dao.go b/src/testing/pkg/oidc/dao/meta_dao.go index 1a2e1fbbedf..f6181268bc4 100644 --- a/src/testing/pkg/oidc/dao/meta_dao.go +++ b/src/testing/pkg/oidc/dao/meta_dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/oidc/meta_manager.go b/src/testing/pkg/oidc/meta_manager.go index 350fdef1c2f..c88c14f6c05 100644 --- a/src/testing/pkg/oidc/meta_manager.go +++ b/src/testing/pkg/oidc/meta_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package oidc diff --git a/src/testing/pkg/p2p/preheat/instance/manager.go b/src/testing/pkg/p2p/preheat/instance/manager.go index 6e0e5233b18..b08bd3f8022 100644 --- a/src/testing/pkg/p2p/preheat/instance/manager.go +++ b/src/testing/pkg/p2p/preheat/instance/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package instance diff --git a/src/testing/pkg/p2p/preheat/policy/manager.go b/src/testing/pkg/p2p/preheat/policy/manager.go index 7c79fcfb383..c7df12e17c8 100644 --- a/src/testing/pkg/p2p/preheat/policy/manager.go +++ b/src/testing/pkg/p2p/preheat/policy/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package policy diff --git a/src/testing/pkg/parser/parser.go b/src/testing/pkg/parser/parser.go index f533da44e8f..065d4441cfb 100644 --- a/src/testing/pkg/parser/parser.go +++ b/src/testing/pkg/parser/parser.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package parser diff --git a/src/testing/pkg/processor/processor.go b/src/testing/pkg/processor/processor.go index 9f7896a70b5..67a186ec34f 100644 --- a/src/testing/pkg/processor/processor.go +++ b/src/testing/pkg/processor/processor.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package processor diff --git a/src/testing/pkg/project/manager.go b/src/testing/pkg/project/manager.go index b9ec7051b28..98ac8e668de 100644 --- a/src/testing/pkg/project/manager.go +++ b/src/testing/pkg/project/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package project diff --git a/src/testing/pkg/project/metadata/manager.go b/src/testing/pkg/project/metadata/manager.go index 774f4d78bb5..1f77f170e1b 100644 --- a/src/testing/pkg/project/metadata/manager.go +++ b/src/testing/pkg/project/metadata/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package metadata diff --git a/src/testing/pkg/queuestatus/manager.go b/src/testing/pkg/queuestatus/manager.go index d2942cabe3a..f8f52dea90f 100644 --- a/src/testing/pkg/queuestatus/manager.go +++ b/src/testing/pkg/queuestatus/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package queuestatus diff --git a/src/testing/pkg/quota/driver/driver.go b/src/testing/pkg/quota/driver/driver.go index 9bfb32728ea..564ed3a47f8 100644 --- a/src/testing/pkg/quota/driver/driver.go +++ b/src/testing/pkg/quota/driver/driver.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package driver diff --git a/src/testing/pkg/quota/manager.go b/src/testing/pkg/quota/manager.go index 71df09fcef5..4cd95058cef 100644 --- a/src/testing/pkg/quota/manager.go +++ b/src/testing/pkg/quota/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package quota diff --git a/src/testing/pkg/rbac/dao/dao.go b/src/testing/pkg/rbac/dao/dao.go index 379e5c0bce7..f18b5cbfbe9 100644 --- a/src/testing/pkg/rbac/dao/dao.go +++ b/src/testing/pkg/rbac/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/rbac/manager.go b/src/testing/pkg/rbac/manager.go index 98ea998064d..ead3d4717c1 100644 --- a/src/testing/pkg/rbac/manager.go +++ b/src/testing/pkg/rbac/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package rbac diff --git a/src/testing/pkg/reg/adapter/adapter.go b/src/testing/pkg/reg/adapter/adapter.go index 4b18309df8a..96541781066 100644 --- a/src/testing/pkg/reg/adapter/adapter.go +++ b/src/testing/pkg/reg/adapter/adapter.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package adapter diff --git a/src/testing/pkg/reg/dao/dao.go b/src/testing/pkg/reg/dao/dao.go index e70de513f89..61432f9c879 100644 --- a/src/testing/pkg/reg/dao/dao.go +++ b/src/testing/pkg/reg/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/reg/manager.go b/src/testing/pkg/reg/manager.go index 1ead2cc1651..4476d09e4df 100644 --- a/src/testing/pkg/reg/manager.go +++ b/src/testing/pkg/reg/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package reg diff --git a/src/testing/pkg/registry/fake_registry_client.go b/src/testing/pkg/registry/fake_registry_client.go index e0b99787af1..53e84de4aaa 100644 --- a/src/testing/pkg/registry/fake_registry_client.go +++ b/src/testing/pkg/registry/fake_registry_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package registry diff --git a/src/testing/pkg/replication/dao/dao.go b/src/testing/pkg/replication/dao/dao.go index bcfe17c1780..f44d94edbc2 100644 --- a/src/testing/pkg/replication/dao/dao.go +++ b/src/testing/pkg/replication/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/replication/manager.go b/src/testing/pkg/replication/manager.go index a22c831fbb4..ae39aa6ede6 100644 --- a/src/testing/pkg/replication/manager.go +++ b/src/testing/pkg/replication/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package replication diff --git a/src/testing/pkg/repository/dao/dao.go b/src/testing/pkg/repository/dao/dao.go index 865fed0ee2a..6e59fe8705e 100644 --- a/src/testing/pkg/repository/dao/dao.go +++ b/src/testing/pkg/repository/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/repository/manager.go b/src/testing/pkg/repository/manager.go index 8f25fc36f4d..667d26f2aef 100644 --- a/src/testing/pkg/repository/manager.go +++ b/src/testing/pkg/repository/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package repository diff --git a/src/testing/pkg/robot/dao/dao.go b/src/testing/pkg/robot/dao/dao.go index 7b9c86106ad..b14222569aa 100644 --- a/src/testing/pkg/robot/dao/dao.go +++ b/src/testing/pkg/robot/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/robot/manager.go b/src/testing/pkg/robot/manager.go index b49aa8a386a..ca2c881226b 100644 --- a/src/testing/pkg/robot/manager.go +++ b/src/testing/pkg/robot/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package robot diff --git a/src/testing/pkg/scan/export/artifact_digest_calculator.go b/src/testing/pkg/scan/export/artifact_digest_calculator.go index 0b007f1ebc5..2be3e00ecf7 100644 --- a/src/testing/pkg/scan/export/artifact_digest_calculator.go +++ b/src/testing/pkg/scan/export/artifact_digest_calculator.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package export diff --git a/src/testing/pkg/scan/export/filter_processor.go b/src/testing/pkg/scan/export/filter_processor.go index 6f35bb4b11f..40713013887 100644 --- a/src/testing/pkg/scan/export/filter_processor.go +++ b/src/testing/pkg/scan/export/filter_processor.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package export diff --git a/src/testing/pkg/scan/export/manager.go b/src/testing/pkg/scan/export/manager.go index c39505276ac..7200b659597 100644 --- a/src/testing/pkg/scan/export/manager.go +++ b/src/testing/pkg/scan/export/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package export diff --git a/src/testing/pkg/scan/handler.go b/src/testing/pkg/scan/handler.go index 8e0a953bdd7..5d9ba6b8b6f 100644 --- a/src/testing/pkg/scan/handler.go +++ b/src/testing/pkg/scan/handler.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scan diff --git a/src/testing/pkg/scan/postprocessors/native_scan_report_converter.go b/src/testing/pkg/scan/postprocessors/native_scan_report_converter.go index 377f6f29e02..8137b0224e9 100644 --- a/src/testing/pkg/scan/postprocessors/native_scan_report_converter.go +++ b/src/testing/pkg/scan/postprocessors/native_scan_report_converter.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package postprocessors diff --git a/src/testing/pkg/scan/report/manager.go b/src/testing/pkg/scan/report/manager.go index a3f18870a1b..bbdbe68b3c9 100644 --- a/src/testing/pkg/scan/report/manager.go +++ b/src/testing/pkg/scan/report/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package report diff --git a/src/testing/pkg/scan/rest/v1/client.go b/src/testing/pkg/scan/rest/v1/client.go index 1b718adf82e..e658452930d 100644 --- a/src/testing/pkg/scan/rest/v1/client.go +++ b/src/testing/pkg/scan/rest/v1/client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package v1 diff --git a/src/testing/pkg/scan/rest/v1/client_pool.go b/src/testing/pkg/scan/rest/v1/client_pool.go index 9a6eb3f6174..319d1b2c6c6 100644 --- a/src/testing/pkg/scan/rest/v1/client_pool.go +++ b/src/testing/pkg/scan/rest/v1/client_pool.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package v1 diff --git a/src/testing/pkg/scan/rest/v1/request_resolver.go b/src/testing/pkg/scan/rest/v1/request_resolver.go index 75fb726a134..3fd73505f63 100644 --- a/src/testing/pkg/scan/rest/v1/request_resolver.go +++ b/src/testing/pkg/scan/rest/v1/request_resolver.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package v1 diff --git a/src/testing/pkg/scan/rest/v1/response_handler.go b/src/testing/pkg/scan/rest/v1/response_handler.go index 3bd7c77c143..1e18c27e0bb 100644 --- a/src/testing/pkg/scan/rest/v1/response_handler.go +++ b/src/testing/pkg/scan/rest/v1/response_handler.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package v1 diff --git a/src/testing/pkg/scan/sbom/manager.go b/src/testing/pkg/scan/sbom/manager.go index e3be4bf423a..11c195ae560 100644 --- a/src/testing/pkg/scan/sbom/manager.go +++ b/src/testing/pkg/scan/sbom/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package sbom diff --git a/src/testing/pkg/scan/scanner/manager.go b/src/testing/pkg/scan/scanner/manager.go index 561f3811079..b406661c692 100644 --- a/src/testing/pkg/scan/scanner/manager.go +++ b/src/testing/pkg/scan/scanner/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scanner diff --git a/src/testing/pkg/scheduler/scheduler.go b/src/testing/pkg/scheduler/scheduler.go index 4f64e3dfac1..6b0451308a6 100644 --- a/src/testing/pkg/scheduler/scheduler.go +++ b/src/testing/pkg/scheduler/scheduler.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package scheduler diff --git a/src/testing/pkg/securityhub/manager.go b/src/testing/pkg/securityhub/manager.go index 27d4f581873..7773334226a 100644 --- a/src/testing/pkg/securityhub/manager.go +++ b/src/testing/pkg/securityhub/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package securityhub diff --git a/src/testing/pkg/systemartifact/cleanup/selector.go b/src/testing/pkg/systemartifact/cleanup/selector.go index f7ebecd2b22..b2fbb960250 100644 --- a/src/testing/pkg/systemartifact/cleanup/selector.go +++ b/src/testing/pkg/systemartifact/cleanup/selector.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package cleanup diff --git a/src/testing/pkg/systemartifact/dao/dao.go b/src/testing/pkg/systemartifact/dao/dao.go index aa6a01a2abe..e897f442873 100644 --- a/src/testing/pkg/systemartifact/dao/dao.go +++ b/src/testing/pkg/systemartifact/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/systemartifact/manager.go b/src/testing/pkg/systemartifact/manager.go index c2ccccdb1fc..b3ea0e1f6ce 100644 --- a/src/testing/pkg/systemartifact/manager.go +++ b/src/testing/pkg/systemartifact/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package systemartifact diff --git a/src/testing/pkg/tag/manager.go b/src/testing/pkg/tag/manager.go index 23af9f07c29..42f82dc5de6 100644 --- a/src/testing/pkg/tag/manager.go +++ b/src/testing/pkg/tag/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package tag diff --git a/src/testing/pkg/task/execution_manager.go b/src/testing/pkg/task/execution_manager.go index 92a6ff4f012..bd2b7988831 100644 --- a/src/testing/pkg/task/execution_manager.go +++ b/src/testing/pkg/task/execution_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/testing/pkg/task/manager.go b/src/testing/pkg/task/manager.go index acc81589845..a9cfbdb954d 100644 --- a/src/testing/pkg/task/manager.go +++ b/src/testing/pkg/task/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package task diff --git a/src/testing/pkg/user/dao/dao.go b/src/testing/pkg/user/dao/dao.go index b9ee65ab5ea..d7d6e651482 100644 --- a/src/testing/pkg/user/dao/dao.go +++ b/src/testing/pkg/user/dao/dao.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package dao diff --git a/src/testing/pkg/user/manager.go b/src/testing/pkg/user/manager.go index 18a642ad378..6abbb353055 100644 --- a/src/testing/pkg/user/manager.go +++ b/src/testing/pkg/user/manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package user diff --git a/src/testing/pkg/usergroup/fake_usergroup_manager.go b/src/testing/pkg/usergroup/fake_usergroup_manager.go index b6b9007ea3b..a3e5691bb67 100644 --- a/src/testing/pkg/usergroup/fake_usergroup_manager.go +++ b/src/testing/pkg/usergroup/fake_usergroup_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package usergroup diff --git a/src/testing/registryctl/client.go b/src/testing/registryctl/client.go index eca5728f165..2f5dc04f626 100644 --- a/src/testing/registryctl/client.go +++ b/src/testing/registryctl/client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.43.2. DO NOT EDIT. +// Code generated by mockery v2.46.2. DO NOT EDIT. package registryctl From 890ee80988613c506d5db77efbdbf7fd290f26b1 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 15:39:03 +0800 Subject: [PATCH 05/16] fix mocky Signed-off-by: wang yan --- .../pkg/scan/export/filter_processor.go | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/testing/pkg/scan/export/filter_processor.go b/src/testing/pkg/scan/export/filter_processor.go index 40713013887..22f68d0819c 100644 --- a/src/testing/pkg/scan/export/filter_processor.go +++ b/src/testing/pkg/scan/export/filter_processor.go @@ -45,9 +45,9 @@ func (_m *FilterProcessor) ProcessLabelFilter(ctx context.Context, labelIDs []in return r0, r1 } -// ProcessRepositoryFilter provides a mock function with given fields: ctx, filter, projectIds -func (_m *FilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter string, projectIds []int64) ([]int64, error) { - ret := _m.Called(ctx, filter, projectIds) +// ProcessRepositoryFilter provides a mock function with given fields: ctx, filter, projectIDs +func (_m *FilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter string, projectIDs []int64) ([]int64, error) { + ret := _m.Called(ctx, filter, projectIDs) if len(ret) == 0 { panic("no return value specified for ProcessRepositoryFilter") @@ -56,10 +56,10 @@ func (_m *FilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter s var r0 []int64 var r1 error if rf, ok := ret.Get(0).(func(context.Context, string, []int64) ([]int64, error)); ok { - return rf(ctx, filter, projectIds) + return rf(ctx, filter, projectIDs) } if rf, ok := ret.Get(0).(func(context.Context, string, []int64) []int64); ok { - r0 = rf(ctx, filter, projectIds) + r0 = rf(ctx, filter, projectIDs) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]int64) @@ -67,7 +67,7 @@ func (_m *FilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter s } if rf, ok := ret.Get(1).(func(context.Context, string, []int64) error); ok { - r1 = rf(ctx, filter, projectIds) + r1 = rf(ctx, filter, projectIDs) } else { r1 = ret.Error(1) } @@ -75,9 +75,9 @@ func (_m *FilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter s return r0, r1 } -// ProcessTagFilter provides a mock function with given fields: ctx, filter, repositoryIds -func (_m *FilterProcessor) ProcessTagFilter(ctx context.Context, filter string, repositoryIds []int64) ([]*artifact.Artifact, error) { - ret := _m.Called(ctx, filter, repositoryIds) +// ProcessTagFilter provides a mock function with given fields: ctx, filter, repositoryIDs +func (_m *FilterProcessor) ProcessTagFilter(ctx context.Context, filter string, repositoryIDs []int64) ([]*artifact.Artifact, error) { + ret := _m.Called(ctx, filter, repositoryIDs) if len(ret) == 0 { panic("no return value specified for ProcessTagFilter") @@ -86,10 +86,10 @@ func (_m *FilterProcessor) ProcessTagFilter(ctx context.Context, filter string, var r0 []*artifact.Artifact var r1 error if rf, ok := ret.Get(0).(func(context.Context, string, []int64) ([]*artifact.Artifact, error)); ok { - return rf(ctx, filter, repositoryIds) + return rf(ctx, filter, repositoryIDs) } if rf, ok := ret.Get(0).(func(context.Context, string, []int64) []*artifact.Artifact); ok { - r0 = rf(ctx, filter, repositoryIds) + r0 = rf(ctx, filter, repositoryIDs) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*artifact.Artifact) @@ -97,7 +97,7 @@ func (_m *FilterProcessor) ProcessTagFilter(ctx context.Context, filter string, } if rf, ok := ret.Get(1).(func(context.Context, string, []int64) error); ok { - r1 = rf(ctx, filter, repositoryIds) + r1 = rf(ctx, filter, repositoryIDs) } else { r1 = ret.Error(1) } @@ -117,4 +117,4 @@ func NewFilterProcessor(t interface { t.Cleanup(func() { mock.AssertExpectations(t) }) return mock -} +} \ No newline at end of file From 50a3fadb6d54bcd850b1fe3faf882c3a6eb2554b Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 16:34:55 +0800 Subject: [PATCH 06/16] continue updating mock failures Signed-off-by: wang yan --- src/testing/controller/blob/controller.go | 46 +++++++++---------- src/testing/controller/quota/controller.go | 36 +++++++-------- src/testing/pkg/blob/manager.go | 33 +++++++------ src/testing/pkg/quota/manager.go | 38 +++++++-------- .../pkg/scan/export/filter_processor.go | 2 +- 5 files changed, 79 insertions(+), 76 deletions(-) diff --git a/src/testing/controller/blob/controller.go b/src/testing/controller/blob/controller.go index f4bc8eddf49..de097f96eef 100644 --- a/src/testing/controller/blob/controller.go +++ b/src/testing/controller/blob/controller.go @@ -11,7 +11,7 @@ import ( mock "github.com/stretchr/testify/mock" - models "github.com/goharbor/harbor/src/pkg/blob/models" + pkgblob "github.com/goharbor/harbor/src/pkg/blob" q "github.com/goharbor/harbor/src/lib/q" ) @@ -213,7 +213,7 @@ func (_m *Controller) Exist(ctx context.Context, digest string, options ...blob. } // Fail provides a mock function with given fields: ctx, _a1 -func (_m *Controller) Fail(ctx context.Context, _a1 *models.Blob) error { +func (_m *Controller) Fail(ctx context.Context, _a1 *pkgblob.Blob) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -221,7 +221,7 @@ func (_m *Controller) Fail(ctx context.Context, _a1 *models.Blob) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Blob) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *pkgblob.Blob) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) @@ -231,27 +231,27 @@ func (_m *Controller) Fail(ctx context.Context, _a1 *models.Blob) error { } // FindMissingAssociationsForProject provides a mock function with given fields: ctx, projectID, blobs -func (_m *Controller) FindMissingAssociationsForProject(ctx context.Context, projectID int64, blobs []*models.Blob) ([]*models.Blob, error) { +func (_m *Controller) FindMissingAssociationsForProject(ctx context.Context, projectID int64, blobs []*pkgblob.Blob) ([]*pkgblob.Blob, error) { ret := _m.Called(ctx, projectID, blobs) if len(ret) == 0 { panic("no return value specified for FindMissingAssociationsForProject") } - var r0 []*models.Blob + var r0 []*pkgblob.Blob var r1 error - if rf, ok := ret.Get(0).(func(context.Context, int64, []*models.Blob) ([]*models.Blob, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64, []*pkgblob.Blob) ([]*pkgblob.Blob, error)); ok { return rf(ctx, projectID, blobs) } - if rf, ok := ret.Get(0).(func(context.Context, int64, []*models.Blob) []*models.Blob); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64, []*pkgblob.Blob) []*pkgblob.Blob); ok { r0 = rf(ctx, projectID, blobs) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*models.Blob) + r0 = ret.Get(0).([]*pkgblob.Blob) } } - if rf, ok := ret.Get(1).(func(context.Context, int64, []*models.Blob) error); ok { + if rf, ok := ret.Get(1).(func(context.Context, int64, []*pkgblob.Blob) error); ok { r1 = rf(ctx, projectID, blobs) } else { r1 = ret.Error(1) @@ -261,7 +261,7 @@ func (_m *Controller) FindMissingAssociationsForProject(ctx context.Context, pro } // Get provides a mock function with given fields: ctx, digest, options -func (_m *Controller) Get(ctx context.Context, digest string, options ...blob.Option) (*models.Blob, error) { +func (_m *Controller) Get(ctx context.Context, digest string, options ...blob.Option) (*pkgblob.Blob, error) { _va := make([]interface{}, len(options)) for _i := range options { _va[_i] = options[_i] @@ -275,16 +275,16 @@ func (_m *Controller) Get(ctx context.Context, digest string, options ...blob.Op panic("no return value specified for Get") } - var r0 *models.Blob + var r0 *pkgblob.Blob var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, ...blob.Option) (*models.Blob, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, ...blob.Option) (*pkgblob.Blob, error)); ok { return rf(ctx, digest, options...) } - if rf, ok := ret.Get(0).(func(context.Context, string, ...blob.Option) *models.Blob); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, ...blob.Option) *pkgblob.Blob); ok { r0 = rf(ctx, digest, options...) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Blob) + r0 = ret.Get(0).(*pkgblob.Blob) } } @@ -326,23 +326,23 @@ func (_m *Controller) GetAcceptedBlobSize(ctx context.Context, sessionID string) } // List provides a mock function with given fields: ctx, query -func (_m *Controller) List(ctx context.Context, query *q.Query) ([]*models.Blob, error) { +func (_m *Controller) List(ctx context.Context, query *q.Query) ([]*pkgblob.Blob, error) { ret := _m.Called(ctx, query) if len(ret) == 0 { panic("no return value specified for List") } - var r0 []*models.Blob + var r0 []*pkgblob.Blob var r1 error - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*models.Blob, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*pkgblob.Blob, error)); ok { return rf(ctx, query) } - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*models.Blob); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*pkgblob.Blob); ok { r0 = rf(ctx, query) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*models.Blob) + r0 = ret.Get(0).([]*pkgblob.Blob) } } @@ -392,7 +392,7 @@ func (_m *Controller) Sync(ctx context.Context, references []distribution.Descri } // Touch provides a mock function with given fields: ctx, _a1 -func (_m *Controller) Touch(ctx context.Context, _a1 *models.Blob) error { +func (_m *Controller) Touch(ctx context.Context, _a1 *pkgblob.Blob) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -400,7 +400,7 @@ func (_m *Controller) Touch(ctx context.Context, _a1 *models.Blob) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Blob) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *pkgblob.Blob) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) @@ -410,7 +410,7 @@ func (_m *Controller) Touch(ctx context.Context, _a1 *models.Blob) error { } // Update provides a mock function with given fields: ctx, _a1 -func (_m *Controller) Update(ctx context.Context, _a1 *models.Blob) error { +func (_m *Controller) Update(ctx context.Context, _a1 *pkgblob.Blob) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -418,7 +418,7 @@ func (_m *Controller) Update(ctx context.Context, _a1 *models.Blob) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Blob) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *pkgblob.Blob) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) diff --git a/src/testing/controller/quota/controller.go b/src/testing/controller/quota/controller.go index 406451e6c6e..911d34fcb9c 100644 --- a/src/testing/controller/quota/controller.go +++ b/src/testing/controller/quota/controller.go @@ -5,7 +5,7 @@ package quota import ( context "context" - models "github.com/goharbor/harbor/src/pkg/quota/models" + pkgquota "github.com/goharbor/harbor/src/pkg/quota" mock "github.com/stretchr/testify/mock" q "github.com/goharbor/harbor/src/lib/q" @@ -102,7 +102,7 @@ func (_m *Controller) Delete(ctx context.Context, id int64) error { } // Get provides a mock function with given fields: ctx, id, options -func (_m *Controller) Get(ctx context.Context, id int64, options ...quota.Option) (*models.Quota, error) { +func (_m *Controller) Get(ctx context.Context, id int64, options ...quota.Option) (*pkgquota.Quota, error) { _va := make([]interface{}, len(options)) for _i := range options { _va[_i] = options[_i] @@ -116,16 +116,16 @@ func (_m *Controller) Get(ctx context.Context, id int64, options ...quota.Option panic("no return value specified for Get") } - var r0 *models.Quota + var r0 *pkgquota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, int64, ...quota.Option) (*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64, ...quota.Option) (*pkgquota.Quota, error)); ok { return rf(ctx, id, options...) } - if rf, ok := ret.Get(0).(func(context.Context, int64, ...quota.Option) *models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64, ...quota.Option) *pkgquota.Quota); ok { r0 = rf(ctx, id, options...) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Quota) + r0 = ret.Get(0).(*pkgquota.Quota) } } @@ -139,7 +139,7 @@ func (_m *Controller) Get(ctx context.Context, id int64, options ...quota.Option } // GetByRef provides a mock function with given fields: ctx, reference, referenceID, options -func (_m *Controller) GetByRef(ctx context.Context, reference string, referenceID string, options ...quota.Option) (*models.Quota, error) { +func (_m *Controller) GetByRef(ctx context.Context, reference string, referenceID string, options ...quota.Option) (*pkgquota.Quota, error) { _va := make([]interface{}, len(options)) for _i := range options { _va[_i] = options[_i] @@ -153,16 +153,16 @@ func (_m *Controller) GetByRef(ctx context.Context, reference string, referenceI panic("no return value specified for GetByRef") } - var r0 *models.Quota + var r0 *pkgquota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, ...quota.Option) (*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, string, ...quota.Option) (*pkgquota.Quota, error)); ok { return rf(ctx, reference, referenceID, options...) } - if rf, ok := ret.Get(0).(func(context.Context, string, string, ...quota.Option) *models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, string, ...quota.Option) *pkgquota.Quota); ok { r0 = rf(ctx, reference, referenceID, options...) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Quota) + r0 = ret.Get(0).(*pkgquota.Quota) } } @@ -204,7 +204,7 @@ func (_m *Controller) IsEnabled(ctx context.Context, reference string, reference } // List provides a mock function with given fields: ctx, query, options -func (_m *Controller) List(ctx context.Context, query *q.Query, options ...quota.Option) ([]*models.Quota, error) { +func (_m *Controller) List(ctx context.Context, query *q.Query, options ...quota.Option) ([]*pkgquota.Quota, error) { _va := make([]interface{}, len(options)) for _i := range options { _va[_i] = options[_i] @@ -218,16 +218,16 @@ func (_m *Controller) List(ctx context.Context, query *q.Query, options ...quota panic("no return value specified for List") } - var r0 []*models.Quota + var r0 []*pkgquota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, *q.Query, ...quota.Option) ([]*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query, ...quota.Option) ([]*pkgquota.Quota, error)); ok { return rf(ctx, query, options...) } - if rf, ok := ret.Get(0).(func(context.Context, *q.Query, ...quota.Option) []*models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query, ...quota.Option) []*pkgquota.Quota); ok { r0 = rf(ctx, query, options...) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*models.Quota) + r0 = ret.Get(0).([]*pkgquota.Quota) } } @@ -284,7 +284,7 @@ func (_m *Controller) Request(ctx context.Context, reference string, referenceID } // Update provides a mock function with given fields: ctx, _a1 -func (_m *Controller) Update(ctx context.Context, _a1 *models.Quota) error { +func (_m *Controller) Update(ctx context.Context, _a1 *pkgquota.Quota) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -292,7 +292,7 @@ func (_m *Controller) Update(ctx context.Context, _a1 *models.Quota) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Quota) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *pkgquota.Quota) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) diff --git a/src/testing/pkg/blob/manager.go b/src/testing/pkg/blob/manager.go index 6828e1a3cf0..78de29daceb 100644 --- a/src/testing/pkg/blob/manager.go +++ b/src/testing/pkg/blob/manager.go @@ -5,9 +5,12 @@ package blob import ( context "context" - models "github.com/goharbor/harbor/src/pkg/blob/models" + blob "github.com/goharbor/harbor/src/pkg/blob" + mock "github.com/stretchr/testify/mock" + models "github.com/goharbor/harbor/src/pkg/blob/models" + q "github.com/goharbor/harbor/src/lib/q" ) @@ -147,7 +150,7 @@ func (_m *Manager) CleanupAssociationsForArtifact(ctx context.Context, artifactD } // CleanupAssociationsForProject provides a mock function with given fields: ctx, projectID, blobs -func (_m *Manager) CleanupAssociationsForProject(ctx context.Context, projectID int64, blobs []*models.Blob) error { +func (_m *Manager) CleanupAssociationsForProject(ctx context.Context, projectID int64, blobs []*blob.Blob) error { ret := _m.Called(ctx, projectID, blobs) if len(ret) == 0 { @@ -155,7 +158,7 @@ func (_m *Manager) CleanupAssociationsForProject(ctx context.Context, projectID } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, int64, []*models.Blob) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64, []*blob.Blob) error); ok { r0 = rf(ctx, projectID, blobs) } else { r0 = ret.Error(0) @@ -241,23 +244,23 @@ func (_m *Manager) FindBlobsShouldUnassociatedWithProject(ctx context.Context, p } // Get provides a mock function with given fields: ctx, digest -func (_m *Manager) Get(ctx context.Context, digest string) (*models.Blob, error) { +func (_m *Manager) Get(ctx context.Context, digest string) (*blob.Blob, error) { ret := _m.Called(ctx, digest) if len(ret) == 0 { panic("no return value specified for Get") } - var r0 *models.Blob + var r0 *blob.Blob var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string) (*models.Blob, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) (*blob.Blob, error)); ok { return rf(ctx, digest) } - if rf, ok := ret.Get(0).(func(context.Context, string) *models.Blob); ok { + if rf, ok := ret.Get(0).(func(context.Context, string) *blob.Blob); ok { r0 = rf(ctx, digest) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Blob) + r0 = ret.Get(0).(*blob.Blob) } } @@ -301,23 +304,23 @@ func (_m *Manager) GetByArt(ctx context.Context, digest string) ([]*models.Blob, } // List provides a mock function with given fields: ctx, query -func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*models.Blob, error) { +func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*blob.Blob, error) { ret := _m.Called(ctx, query) if len(ret) == 0 { panic("no return value specified for List") } - var r0 []*models.Blob + var r0 []*blob.Blob var r1 error - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*models.Blob, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*blob.Blob, error)); ok { return rf(ctx, query) } - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*models.Blob); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*blob.Blob); ok { r0 = rf(ctx, query) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*models.Blob) + r0 = ret.Get(0).([]*blob.Blob) } } @@ -331,7 +334,7 @@ func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*models.Blob, er } // Update provides a mock function with given fields: ctx, _a1 -func (_m *Manager) Update(ctx context.Context, _a1 *models.Blob) error { +func (_m *Manager) Update(ctx context.Context, _a1 *blob.Blob) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -339,7 +342,7 @@ func (_m *Manager) Update(ctx context.Context, _a1 *models.Blob) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Blob) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *blob.Blob) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) diff --git a/src/testing/pkg/quota/manager.go b/src/testing/pkg/quota/manager.go index 4cd95058cef..eef3b37375b 100644 --- a/src/testing/pkg/quota/manager.go +++ b/src/testing/pkg/quota/manager.go @@ -5,10 +5,10 @@ package quota import ( context "context" - models "github.com/goharbor/harbor/src/pkg/quota/models" + q "github.com/goharbor/harbor/src/lib/q" mock "github.com/stretchr/testify/mock" - q "github.com/goharbor/harbor/src/lib/q" + quota "github.com/goharbor/harbor/src/pkg/quota" types "github.com/goharbor/harbor/src/pkg/quota/types" ) @@ -100,23 +100,23 @@ func (_m *Manager) Delete(ctx context.Context, id int64) error { } // Get provides a mock function with given fields: ctx, id -func (_m *Manager) Get(ctx context.Context, id int64) (*models.Quota, error) { +func (_m *Manager) Get(ctx context.Context, id int64) (*quota.Quota, error) { ret := _m.Called(ctx, id) if len(ret) == 0 { panic("no return value specified for Get") } - var r0 *models.Quota + var r0 *quota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, int64) (*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64) (*quota.Quota, error)); ok { return rf(ctx, id) } - if rf, ok := ret.Get(0).(func(context.Context, int64) *models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, int64) *quota.Quota); ok { r0 = rf(ctx, id) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Quota) + r0 = ret.Get(0).(*quota.Quota) } } @@ -130,23 +130,23 @@ func (_m *Manager) Get(ctx context.Context, id int64) (*models.Quota, error) { } // GetByRef provides a mock function with given fields: ctx, reference, referenceID -func (_m *Manager) GetByRef(ctx context.Context, reference string, referenceID string) (*models.Quota, error) { +func (_m *Manager) GetByRef(ctx context.Context, reference string, referenceID string) (*quota.Quota, error) { ret := _m.Called(ctx, reference, referenceID) if len(ret) == 0 { panic("no return value specified for GetByRef") } - var r0 *models.Quota + var r0 *quota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string) (*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, string) (*quota.Quota, error)); ok { return rf(ctx, reference, referenceID) } - if rf, ok := ret.Get(0).(func(context.Context, string, string) *models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, string, string) *quota.Quota); ok { r0 = rf(ctx, reference, referenceID) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*models.Quota) + r0 = ret.Get(0).(*quota.Quota) } } @@ -160,23 +160,23 @@ func (_m *Manager) GetByRef(ctx context.Context, reference string, referenceID s } // List provides a mock function with given fields: ctx, query -func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*models.Quota, error) { +func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*quota.Quota, error) { ret := _m.Called(ctx, query) if len(ret) == 0 { panic("no return value specified for List") } - var r0 []*models.Quota + var r0 []*quota.Quota var r1 error - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*models.Quota, error)); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) ([]*quota.Quota, error)); ok { return rf(ctx, query) } - if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*models.Quota); ok { + if rf, ok := ret.Get(0).(func(context.Context, *q.Query) []*quota.Quota); ok { r0 = rf(ctx, query) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).([]*models.Quota) + r0 = ret.Get(0).([]*quota.Quota) } } @@ -190,7 +190,7 @@ func (_m *Manager) List(ctx context.Context, query *q.Query) ([]*models.Quota, e } // Update provides a mock function with given fields: ctx, _a1 -func (_m *Manager) Update(ctx context.Context, _a1 *models.Quota) error { +func (_m *Manager) Update(ctx context.Context, _a1 *quota.Quota) error { ret := _m.Called(ctx, _a1) if len(ret) == 0 { @@ -198,7 +198,7 @@ func (_m *Manager) Update(ctx context.Context, _a1 *models.Quota) error { } var r0 error - if rf, ok := ret.Get(0).(func(context.Context, *models.Quota) error); ok { + if rf, ok := ret.Get(0).(func(context.Context, *quota.Quota) error); ok { r0 = rf(ctx, _a1) } else { r0 = ret.Error(0) diff --git a/src/testing/pkg/scan/export/filter_processor.go b/src/testing/pkg/scan/export/filter_processor.go index 22f68d0819c..e73648c39f4 100644 --- a/src/testing/pkg/scan/export/filter_processor.go +++ b/src/testing/pkg/scan/export/filter_processor.go @@ -117,4 +117,4 @@ func NewFilterProcessor(t interface { t.Cleanup(func() { mock.AssertExpectations(t) }) return mock -} \ No newline at end of file +} From ea0fb0a949cb4672e984af0497c94a8712ce1ebc Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 17:00:20 +0800 Subject: [PATCH 07/16] fix lint Signed-off-by: wang yan --- src/common/rbac/system/evaluator.go | 2 +- src/controller/scan/base_controller.go | 3 +-- src/controller/scanner/base_controller.go | 2 +- src/core/auth/authenticator.go | 2 +- src/pkg/scan/export/filter_processor.go | 8 ++++---- src/pkg/token/token.go | 4 +--- src/server/middleware/blob/put_manifest.go | 2 +- src/server/middleware/quota/quota.go | 2 +- src/server/v2.0/handler/project.go | 2 +- src/server/v2.0/handler/scanexport.go | 2 +- 10 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/common/rbac/system/evaluator.go b/src/common/rbac/system/evaluator.go index 9d4af05fd2d..02d33e2cf9d 100644 --- a/src/common/rbac/system/evaluator.go +++ b/src/common/rbac/system/evaluator.go @@ -25,7 +25,7 @@ import ( // NewEvaluator create evaluator for the system func NewEvaluator(username string, policies []*types.Policy) evaluator.Evaluator { - return namespace.New(NamespaceKind, func(_ context.Context, ns types.Namespace) evaluator.Evaluator { + return namespace.New(NamespaceKind, func(_ context.Context, _ types.Namespace) evaluator.Evaluator { return rbac.New(&rbacUser{ username: username, policies: policies, diff --git a/src/controller/scan/base_controller.go b/src/controller/scan/base_controller.go index 04213eb4c3c..691f4da3962 100644 --- a/src/controller/scan/base_controller.go +++ b/src/controller/scan/base_controller.go @@ -376,8 +376,7 @@ func (bc *basicController) Stop(ctx context.Context, artifact *ar.Artifact, capT } if len(executions) == 0 { - message := fmt.Sprintf("no scan job for artifact digest=%v", artifact.Digest) - return errors.BadRequestError(nil).WithMessage(message) + return errors.BadRequestError(nil).WithMessage("no scan job for artifact digest=%v", artifact.Digest) } execution := executions[0] return bc.execMgr.Stop(ctx, execution.ID) diff --git a/src/controller/scanner/base_controller.go b/src/controller/scanner/base_controller.go index b6197f3b21d..155f5438cab 100644 --- a/src/controller/scanner/base_controller.go +++ b/src/controller/scanner/base_controller.go @@ -402,7 +402,7 @@ type MetadataResult struct { func (m *MetadataResult) Unpack() (*v1.ScannerAdapterMetadata, error) { var err error if m.Error != "" { - err = errors.New(nil).WithMessage(m.Error) + err = errors.New(m.Error) } return m.Metadata, err diff --git a/src/core/auth/authenticator.go b/src/core/auth/authenticator.go index f36da85f26b..5509608ef31 100644 --- a/src/core/auth/authenticator.go +++ b/src/core/auth/authenticator.go @@ -222,7 +222,7 @@ func SearchAndOnBoardUser(ctx context.Context, username string) (int, error) { return 0, err } if user == nil { - return 0, libErrors.NotFoundError(nil).WithMessage(fmt.Sprintf("user %s is not found", username)) + return 0, libErrors.NotFoundError(nil).WithMessage("user %s is not found", username) } err = OnBoardUser(ctx, user) if err != nil { diff --git a/src/pkg/scan/export/filter_processor.go b/src/pkg/scan/export/filter_processor.go index 331762f3587..4353e847971 100644 --- a/src/pkg/scan/export/filter_processor.go +++ b/src/pkg/scan/export/filter_processor.go @@ -52,12 +52,12 @@ func NewFilterProcessor() FilterProcessor { } } -func (dfp *DefaultFilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter string, projectIds []int64) ([]int64, error) { +func (dfp *DefaultFilterProcessor) ProcessRepositoryFilter(ctx context.Context, filter string, projectIDs []int64) ([]int64, error) { sel := doublestar.New(doublestar.RepoMatches, filter, "") candidates := make([]*selector.Candidate, 0) allRepoIDs := make([]int64, 0) - for _, projectID := range projectIds { + for _, projectID := range projectIDs { query := q.New(q.KeyWords{"ProjectID": projectID}) allRepos, err := dfp.repoMgr.List(ctx, query) if err != nil { @@ -87,7 +87,7 @@ func (dfp *DefaultFilterProcessor) ProcessRepositoryFilter(ctx context.Context, return repoIDs, nil } -func (dfp *DefaultFilterProcessor) ProcessTagFilter(ctx context.Context, filter string, repositoryIds []int64) ([]*artifact.Artifact, error) { +func (dfp *DefaultFilterProcessor) ProcessTagFilter(ctx context.Context, filter string, repositoryIDs []int64) ([]*artifact.Artifact, error) { arts := make([]*artifact.Artifact, 0) opts := &artifact.Option{ WithTag: true, @@ -96,7 +96,7 @@ func (dfp *DefaultFilterProcessor) ProcessTagFilter(ctx context.Context, filter // WithAccessory: true } // list all artifacts by repository id - for _, repoID := range repositoryIds { + for _, repoID := range repositoryIDs { repoArts, err := dfp.artCtl.List(ctx, q.New(q.KeyWords{"RepositoryID": repoID}), opts) if err != nil { return nil, err diff --git a/src/pkg/token/token.go b/src/pkg/token/token.go index 76398f1a56a..63759178ae0 100644 --- a/src/pkg/token/token.go +++ b/src/pkg/token/token.go @@ -18,8 +18,6 @@ import ( "crypto/ecdsa" "crypto/rsa" "errors" - "fmt" - "github.com/golang-jwt/jwt/v5" "github.com/goharbor/harbor/src/common" @@ -83,7 +81,7 @@ func Parse(opt *Options, rawToken string, claims jwt.Claims) (*Token, error) { } if !token.Valid { - log.Errorf(fmt.Sprintf("invalid jwt token, %v", token)) + log.Errorf("invalid jwt token, %v", token) return nil, errors.New("invalid jwt token") } return &Token{ diff --git a/src/server/middleware/blob/put_manifest.go b/src/server/middleware/blob/put_manifest.go index e44aac57be1..1bb3fbeb8e8 100644 --- a/src/server/middleware/blob/put_manifest.go +++ b/src/server/middleware/blob/put_manifest.go @@ -49,7 +49,7 @@ func PutManifestMiddleware() func(http.Handler) http.Handler { return probeBlob(r, descriptor.Digest.String()) }) - after := middleware.AfterResponse(func(w http.ResponseWriter, r *http.Request, statusCode int) error { + after := middleware.AfterResponse(func(_ http.ResponseWriter, r *http.Request, statusCode int) error { if statusCode != http.StatusCreated { return nil } diff --git a/src/server/middleware/quota/quota.go b/src/server/middleware/quota/quota.go index 1213ea21fc3..f4d9b3c406c 100644 --- a/src/server/middleware/quota/quota.go +++ b/src/server/middleware/quota/quota.go @@ -191,7 +191,7 @@ type RefreshConfig struct { // RefreshMiddleware middleware which refresh the quota usage after the response success func RefreshMiddleware(config RefreshConfig, skipers ...middleware.Skipper) func(http.Handler) http.Handler { - return middleware.AfterResponse(func(w http.ResponseWriter, r *http.Request, statusCode int) error { + return middleware.AfterResponse(func(_ http.ResponseWriter, r *http.Request, statusCode int) error { // skip to refresh quota usage when response is not success if !isSuccess(statusCode) { return nil diff --git a/src/server/v2.0/handler/project.go b/src/server/v2.0/handler/project.go index 0479929540c..2e823210e9d 100644 --- a/src/server/v2.0/handler/project.go +++ b/src/server/v2.0/handler/project.go @@ -578,7 +578,7 @@ func (a *projectAPI) UpdateProject(ctx context.Context, params operation.UpdateP } if rid, ok := md["retention_id"]; !ok || rid != ridParam { errMsg := "the retention_id in the request's payload when updating a project should be omitted, alternatively passing the one that has already been associated to this project" - return a.SendError(ctx, errors.BadRequestError(fmt.Errorf(errMsg))) + return a.SendError(ctx, errors.New(nil).WithMessage(errMsg).WithCode(errors.BadRequestCode)) } } diff --git a/src/server/v2.0/handler/scanexport.go b/src/server/v2.0/handler/scanexport.go index f5a59bdbb86..09c5e0580c2 100644 --- a/src/server/v2.0/handler/scanexport.go +++ b/src/server/v2.0/handler/scanexport.go @@ -202,7 +202,7 @@ func (se *scanDataExportAPI) DownloadScanData(ctx context.Context, params operat } log.Infof("reading data from file : %s", repositoryName) - return middleware.ResponderFunc(func(writer http.ResponseWriter, producer runtime.Producer) { + return middleware.ResponderFunc(func(writer http.ResponseWriter, _ runtime.Producer) { defer se.cleanUpArtifact(ctx, repositoryName, execution.ExportDataDigest, params.ExecutionID, file) writer.Header().Set("Content-Type", "text/csv") From 2905b82832db1066619bada0062fc47b575c2772 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 17:22:04 +0800 Subject: [PATCH 08/16] fix gocilint Signed-off-by: wang yan --- src/lib/http/error.go | 4 ++-- src/pkg/label/dao/dao.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/http/error.go b/src/lib/http/error.go index c3abd94ba5e..a8995e8ab17 100644 --- a/src/lib/http/error.go +++ b/src/lib/http/error.go @@ -77,12 +77,12 @@ func apiError(err error) (statusCode int, errPayload, stackTrace string) { // So we needed to convert the format to the internal error response format. code = int(openAPIErr.Code()) errCode := strings.Replace(strings.ToUpper(http.StatusText(code)), " ", "_", -1) - err = errors.New(nil).WithCode(errCode).WithMessage(openAPIErr.Error()) + err = errors.New(openAPIErr).WithCode(errCode) } else if legacyErr, ok := err.(*commonhttp.Error); ok { // make sure the legacy error format is align with the new one code = legacyErr.Code errCode := strings.Replace(strings.ToUpper(http.StatusText(code)), " ", "_", -1) - err = errors.New(nil).WithCode(errCode).WithMessage(legacyErr.Message) + err = errors.New(legacyErr).WithCode(errCode) } else { code = codeMap[errors.ErrCode(err)] } diff --git a/src/pkg/label/dao/dao.go b/src/pkg/label/dao/dao.go index b0fab3a00a4..94d2a5e333a 100644 --- a/src/pkg/label/dao/dao.go +++ b/src/pkg/label/dao/dao.go @@ -166,7 +166,7 @@ func (d *defaultDAO) CreateReference(ctx context.Context, ref *model.Reference) err = e } else if e := orm.AsForeignKeyError(err, "the reference tries to refer a non existing label %d or artifact %d", ref.LabelID, ref.ArtifactID); e != nil { - err = errors.New(e).WithCode(errors.NotFoundCode).WithMessage(e.Message) + err = errors.New(e).WithCode(errors.NotFoundCode) } } return id, err From f3073db8bfc862982ec57bd0cb677f42b501ee49 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 17:29:56 +0800 Subject: [PATCH 09/16] fix lint Signed-off-by: wang yan --- src/controller/retention/controller.go | 2 -- src/pkg/registry/auth/bearer/authorizer.go | 3 +-- src/pkg/registry/client.go | 3 +-- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/src/controller/retention/controller.go b/src/controller/retention/controller.go index 179d8c151be..dae3bbeeafc 100644 --- a/src/controller/retention/controller.go +++ b/src/controller/retention/controller.go @@ -36,8 +36,6 @@ import ( "github.com/goharbor/harbor/src/pkg/task" ) -// go:generate mockery -name Controller -case snake - // Controller to handle the requests related with retention type Controller interface { GetRetention(ctx context.Context, id int64) (*policy.Metadata, error) diff --git a/src/pkg/registry/auth/bearer/authorizer.go b/src/pkg/registry/auth/bearer/authorizer.go index 114f495efcb..5f8ff730131 100644 --- a/src/pkg/registry/auth/bearer/authorizer.go +++ b/src/pkg/registry/auth/bearer/authorizer.go @@ -125,7 +125,6 @@ func (a *authorizer) fetchToken(scopes []*scope) (*token, error) { return nil, err } if resp.StatusCode != http.StatusOK { - message := fmt.Sprintf("http status code: %d, body: %s", resp.StatusCode, string(body)) code := errors.GeneralCode switch resp.StatusCode { case http.StatusUnauthorized: @@ -134,7 +133,7 @@ func (a *authorizer) fetchToken(scopes []*scope) (*token, error) { code = errors.ForbiddenCode } return nil, errors.New(nil).WithCode(code). - WithMessage(message) + WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) } token := &token{} if err = json.Unmarshal(body, token); err != nil { diff --git a/src/pkg/registry/client.go b/src/pkg/registry/client.go index af3d9518663..850a2432565 100644 --- a/src/pkg/registry/client.go +++ b/src/pkg/registry/client.go @@ -669,7 +669,6 @@ func (c *client) do(req *http.Request) (*http.Response, error) { if err != nil { return nil, err } - message := fmt.Sprintf("http status code: %d, body: %s", resp.StatusCode, string(body)) code := errors.GeneralCode switch resp.StatusCode { case http.StatusUnauthorized: @@ -682,7 +681,7 @@ func (c *client) do(req *http.Request) (*http.Response, error) { code = errors.RateLimitCode } return nil, errors.New(nil).WithCode(code). - WithMessage(message) + WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) } return resp, nil } From 1b9caf812592f91bacdf8ec753af651fc3d0ef62 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 17:52:58 +0800 Subject: [PATCH 10/16] fix cilint Signed-off-by: wang yan --- src/registryctl/api/base.go | 2 +- src/registryctl/client/client.go | 3 +-- src/server/middleware/blob/head_blob.go | 7 +++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/registryctl/api/base.go b/src/registryctl/api/base.go index d40711e1387..29a2681df32 100644 --- a/src/registryctl/api/base.go +++ b/src/registryctl/api/base.go @@ -42,7 +42,7 @@ func HandleBadRequest(w http.ResponseWriter, err error) { // HandleError ... func HandleError(w http.ResponseWriter, err error) { if _, ok := err.(driver.PathNotFoundError); ok { - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage(err.Error()) + err = errors.New(err).WithCode(errors.NotFoundCode) } lib_http.SendError(w, err) } diff --git a/src/registryctl/client/client.go b/src/registryctl/client/client.go index f43e46f619c..ae29fa112b3 100644 --- a/src/registryctl/client/client.go +++ b/src/registryctl/client/client.go @@ -124,7 +124,6 @@ func (c *client) do(req *http.Request) (*http.Response, error) { if err != nil { return nil, err } - message := fmt.Sprintf("http status code: %d, body: %s", resp.StatusCode, string(body)) code := errors.GeneralCode switch resp.StatusCode { case http.StatusUnauthorized: @@ -135,7 +134,7 @@ func (c *client) do(req *http.Request) (*http.Response, error) { code = errors.NotFoundCode } return nil, errors.New(nil).WithCode(code). - WithMessage(message) + WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) } return resp, nil } diff --git a/src/server/middleware/blob/head_blob.go b/src/server/middleware/blob/head_blob.go index 67710fb4551..412b5a6bbb2 100644 --- a/src/server/middleware/blob/head_blob.go +++ b/src/server/middleware/blob/head_blob.go @@ -15,7 +15,6 @@ package blob import ( - "fmt" "net/http" "time" @@ -70,11 +69,11 @@ func handleHead(req *http.Request) error { return errors.Wrapf(err, "the request id is: %s", req.Header.Get(requestid.HeaderXRequestID)) } } - return errors.New(nil).WithMessage(fmt.Sprintf("the asking blob is in GC, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID))).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessage("the asking blob is in GC, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) case blob_models.StatusDeleteFailed: - return errors.New(nil).WithMessage(fmt.Sprintf("the asking blob is delete failed, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID))).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessage("the asking blob is delete failed, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) default: - return errors.New(nil).WithMessage(fmt.Sprintf("wrong blob status, %s", bb.Status)) + return errors.New(nil).WithMessage("wrong blob status, %s", bb.Status) } return nil } From 641d2668d40964b71a84cf79b31c00536d42b111 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 18:22:00 +0800 Subject: [PATCH 11/16] fix lint Signed-off-by: wang yan --- .../artifact/annotation/v1alpha1.go | 4 +- src/controller/artifact/controller.go | 4 +- .../artifact/processor/base/index.go | 2 +- .../artifact/processor/base/manifest.go | 2 +- .../artifact/processor/chart/chart.go | 2 +- src/controller/artifact/processor/default.go | 2 +- .../artifact/processor/image/manifest_v1.go | 2 +- .../artifact/processor/image/manifest_v2.go | 2 +- .../artifact/processor/sbom/sbom.go | 2 +- .../artifact/processor/wasm/wasm.go | 2 +- src/controller/blob/controller.go | 10 ++--- src/controller/config/controller.go | 8 ++-- src/controller/gc/controller.go | 8 ++-- src/controller/icon/controller.go | 2 +- src/controller/jobservice/schedule.go | 4 +- src/controller/member/controller.go | 20 ++++----- src/controller/p2p/preheat/controller.go | 4 +- src/controller/project/controller.go | 2 +- src/controller/quota/controller.go | 2 +- src/controller/quota/driver/project/util.go | 2 +- src/controller/registry/controller.go | 12 ++--- src/controller/replication/execution.go | 6 +-- src/controller/replication/flow/stage.go | 6 +-- src/controller/replication/model/model.go | 16 +++---- src/controller/robot/controller.go | 6 +-- src/controller/scan/base_controller.go | 18 ++++---- src/controller/scanner/base_controller.go | 6 +-- src/controller/tag/controller.go | 4 +- src/controller/user/controller.go | 10 ++--- src/controller/usergroup/controller.go | 8 ++-- src/controller/webhook/controller.go | 2 +- src/core/api/internal.go | 2 +- src/core/auth/authenticator.go | 6 +-- src/core/auth/ldap/ldap.go | 4 +- .../job/impl/gc/garbage_collection.go | 2 +- src/jobservice/job/impl/gc/util_test.go | 6 +-- src/lib/endpoint.go | 6 +-- src/lib/errors/errors.go | 10 ++++- src/lib/errors/errors_test.go | 12 ++--- src/lib/http/error.go | 2 +- src/lib/http/error_test.go | 8 ++-- src/lib/orm/error.go | 6 +-- src/lib/q/builder.go | 4 +- src/pkg/accessory/dao/dao.go | 2 +- src/pkg/artifact/dao/dao.go | 20 ++++----- src/pkg/artifactrash/dao/dao.go | 2 +- src/pkg/audit/dao/dao.go | 2 +- src/pkg/blob/dao/dao.go | 2 +- src/pkg/blob/manager.go | 2 +- src/pkg/immutable/dao/dao.go | 6 +-- src/pkg/label/dao/dao.go | 4 +- src/pkg/label/manager.go | 2 +- src/pkg/label/model/model.go | 4 +- src/pkg/member/manager.go | 2 +- src/pkg/notification/policy/dao/dao.go | 2 +- src/pkg/oidc/dao/meta.go | 2 +- src/pkg/oidc/metamanager.go | 4 +- src/pkg/p2p/preheat/dao/policy/dao.go | 4 +- src/pkg/p2p/preheat/models/policy/policy.go | 4 +- src/pkg/project/manager.go | 8 ++-- src/pkg/queuestatus/dao/dao.go | 2 +- src/pkg/rbac/dao/dao.go | 6 +-- src/pkg/reg/adapter/googlegcr/adapter.go | 2 +- src/pkg/reg/dao/dao.go | 4 +- src/pkg/reg/model/policy.go | 14 +++--- src/pkg/reg/util/util.go | 2 +- src/pkg/registry/auth/bearer/authorizer.go | 2 +- src/pkg/registry/client.go | 6 +-- src/pkg/replication/dao/dao.go | 4 +- src/pkg/repository/dao/dao.go | 6 +-- src/pkg/repository/manager.go | 2 +- src/pkg/retention/policy/models.go | 2 +- src/pkg/robot/dao/dao.go | 4 +- src/pkg/scan/dao/scanner/registration.go | 2 +- .../scan/postprocessors/report_converters.go | 2 +- src/pkg/scan/sbom/sbom.go | 4 +- src/pkg/scan/vulnerability/vul.go | 6 +-- src/pkg/scheduler/dao.go | 4 +- src/pkg/scheduler/scheduler.go | 2 +- src/pkg/tag/dao/dao.go | 4 +- src/pkg/task/dao/execution.go | 4 +- src/pkg/task/dao/task.go | 4 +- src/pkg/task/execution.go | 4 +- src/pkg/task/hook.go | 2 +- src/pkg/token/token.go | 1 + src/pkg/user/dao/dao.go | 4 +- src/pkg/user/manager.go | 4 +- src/pkg/user/manager_test.go | 2 +- src/pkg/usergroup/dao/dao.go | 2 +- src/registryctl/client/client.go | 2 +- src/server/middleware/blob/copy_artifact.go | 2 +- src/server/middleware/blob/head_blob.go | 6 +-- src/server/middleware/blob/util.go | 3 +- .../middleware/contenttrust/contentrust.go | 4 +- src/server/middleware/quota/copy_artifact.go | 2 +- .../middleware/quota/put_blob_upload_test.go | 2 +- .../middleware/quota/put_manifest_test.go | 2 +- src/server/middleware/readonly/readonly.go | 2 +- src/server/middleware/v2auth/auth.go | 2 +- .../middleware/vulnerable/vulnerable.go | 6 +-- src/server/registry/catalog.go | 4 +- src/server/registry/util/util.go | 2 +- src/server/v2.0/handler/artifact.go | 12 ++--- src/server/v2.0/handler/auditlog.go | 2 +- src/server/v2.0/handler/base.go | 4 +- src/server/v2.0/handler/config.go | 2 +- src/server/v2.0/handler/gc.go | 8 ++-- src/server/v2.0/handler/label.go | 8 ++-- src/server/v2.0/handler/member.go | 10 ++--- src/server/v2.0/handler/oidc.go | 2 +- src/server/v2.0/handler/permissions.go | 2 +- src/server/v2.0/handler/project.go | 18 ++++---- src/server/v2.0/handler/project_metadata.go | 10 ++--- src/server/v2.0/handler/purge.go | 4 +- src/server/v2.0/handler/quota.go | 4 +- src/server/v2.0/handler/registry.go | 4 +- src/server/v2.0/handler/replication.go | 2 +- src/server/v2.0/handler/retention.go | 10 ++--- src/server/v2.0/handler/robot.go | 38 ++++++++-------- src/server/v2.0/handler/robotV1.go | 8 ++-- src/server/v2.0/handler/scan.go | 2 +- src/server/v2.0/handler/scan_all.go | 12 ++--- src/server/v2.0/handler/scanner.go | 16 +++---- src/server/v2.0/handler/schedule.go | 2 +- src/server/v2.0/handler/user.go | 44 +++++++++---------- src/server/v2.0/handler/usergroup.go | 8 ++-- src/server/v2.0/handler/webhook.go | 12 ++--- 127 files changed, 358 insertions(+), 352 deletions(-) diff --git a/src/controller/artifact/annotation/v1alpha1.go b/src/controller/artifact/annotation/v1alpha1.go index 6ca4605e13c..e465a5514bf 100644 --- a/src/controller/artifact/annotation/v1alpha1.go +++ b/src/controller/artifact/annotation/v1alpha1.go @@ -97,7 +97,7 @@ func parseV1alpha1Icon(artifact *artifact.Artifact, manifest *v1.Manifest, reg r data, err := io.ReadAll(io.LimitReader(icon, 1<<20)) if err != nil { if err == io.EOF { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the maximum size of the icon is 1MB") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the maximum size of the icon is 1MB") } return err } @@ -106,7 +106,7 @@ func parseV1alpha1Icon(artifact *artifact.Artifact, manifest *v1.Manifest, reg r switch contentType { case GIF, PNG, JPEG: default: - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("unsupported content type: %s", contentType) + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("unsupported content type: %s", contentType) } artifact.Icon = iconDigest return nil diff --git a/src/controller/artifact/controller.go b/src/controller/artifact/controller.go index 4bcea401f16..98fd0991d2f 100644 --- a/src/controller/artifact/controller.go +++ b/src/controller/artifact/controller.go @@ -307,7 +307,7 @@ func (c *controller) getByTag(ctx context.Context, repository, tag string, optio } if len(tags) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("artifact %s:%s not found", repository, tag) + WithMessagef("artifact %s:%s not found", repository, tag) } return c.Get(ctx, tags[0].ArtifactID, option) } @@ -351,7 +351,7 @@ func (c *controller) deleteDeeply(ctx context.Context, id int64, isRoot, isAcces // the root artifact is referenced by other artifacts if isRoot { return errors.New(nil).WithCode(errors.ViolateForeignKeyConstraintCode). - WithMessage("the deleting artifact is referenced by others") + WithMessagef("the deleting artifact is referenced by others") } // the child artifact is referenced by other artifacts, skip return nil diff --git a/src/controller/artifact/processor/base/index.go b/src/controller/artifact/processor/base/index.go index 985e5c78216..3262b41ce1a 100644 --- a/src/controller/artifact/processor/base/index.go +++ b/src/controller/artifact/processor/base/index.go @@ -44,7 +44,7 @@ func (m *IndexProcessor) AbstractMetadata(_ context.Context, _ *artifact.Artifac // AbstractAddition abstracts the addition of artifact func (m *IndexProcessor) AbstractAddition(_ context.Context, _ *artifact.Artifact, addition string) (*processor.Addition, error) { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported", addition) + WithMessagef("addition %s isn't supported", addition) } // GetArtifactType returns the artifact type diff --git a/src/controller/artifact/processor/base/manifest.go b/src/controller/artifact/processor/base/manifest.go index 2b7d960e87c..ad6e7cda1f2 100644 --- a/src/controller/artifact/processor/base/manifest.go +++ b/src/controller/artifact/processor/base/manifest.go @@ -66,7 +66,7 @@ func (m *ManifestProcessor) AbstractMetadata(ctx context.Context, artifact *arti // AbstractAddition abstracts the addition of artifact func (m *ManifestProcessor) AbstractAddition(_ context.Context, _ *artifact.Artifact, addition string) (*processor.Addition, error) { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported", addition) + WithMessagef("addition %s isn't supported", addition) } // GetArtifactType returns the artifact type diff --git a/src/controller/artifact/processor/chart/chart.go b/src/controller/artifact/processor/chart/chart.go index e7df72b562e..131ed7298b5 100644 --- a/src/controller/artifact/processor/chart/chart.go +++ b/src/controller/artifact/processor/chart/chart.go @@ -61,7 +61,7 @@ type processor struct { func (p *processor) AbstractAddition(_ context.Context, artifact *artifact.Artifact, addition string) (*ps.Addition, error) { if addition != AdditionTypeValues && addition != AdditionTypeReadme && addition != AdditionTypeDependencies { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported for %s", addition, ArtifactTypeChart) + WithMessagef("addition %s isn't supported for %s", addition, ArtifactTypeChart) } m, _, err := p.RegCli.PullManifest(artifact.RepositoryName, artifact.Digest) diff --git a/src/controller/artifact/processor/default.go b/src/controller/artifact/processor/default.go index af97b1b0f54..5cb2ad17591 100644 --- a/src/controller/artifact/processor/default.go +++ b/src/controller/artifact/processor/default.go @@ -132,5 +132,5 @@ func (d *defaultProcessor) AbstractAddition(_ context.Context, artifact *artifac // It will be support in the future. // return error directly return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the processor for artifact %s not found, cannot get the addition", artifact.Type) + WithMessagef("the processor for artifact %s not found, cannot get the addition", artifact.Type) } diff --git a/src/controller/artifact/processor/image/manifest_v1.go b/src/controller/artifact/processor/image/manifest_v1.go index 3b03876b7dc..8179ad81e3e 100644 --- a/src/controller/artifact/processor/image/manifest_v1.go +++ b/src/controller/artifact/processor/image/manifest_v1.go @@ -52,7 +52,7 @@ func (m *manifestV1Processor) AbstractMetadata(_ context.Context, artifact *arti func (m *manifestV1Processor) AbstractAddition(_ context.Context, _ *artifact.Artifact, addition string) (*processor.Addition, error) { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported for %s(manifest version 1)", addition, ArtifactTypeImage) + WithMessagef("addition %s isn't supported for %s(manifest version 1)", addition, ArtifactTypeImage) } func (m *manifestV1Processor) GetArtifactType(_ context.Context, _ *artifact.Artifact) string { diff --git a/src/controller/artifact/processor/image/manifest_v2.go b/src/controller/artifact/processor/image/manifest_v2.go index 2948dac74f4..b88c2c2b49b 100644 --- a/src/controller/artifact/processor/image/manifest_v2.go +++ b/src/controller/artifact/processor/image/manifest_v2.go @@ -87,7 +87,7 @@ func (m *manifestV2Processor) AbstractMetadata(ctx context.Context, artifact *ar func (m *manifestV2Processor) AbstractAddition(ctx context.Context, artifact *artifact.Artifact, addition string) (*processor.Addition, error) { if addition != AdditionTypeBuildHistory { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported for %s(manifest version 2)", addition, ArtifactTypeImage) + WithMessagef("addition %s isn't supported for %s(manifest version 2)", addition, ArtifactTypeImage) } mani, _, err := m.RegCli.PullManifest(artifact.RepositoryName, artifact.Digest) diff --git a/src/controller/artifact/processor/sbom/sbom.go b/src/controller/artifact/processor/sbom/sbom.go index 4eb11f4bd2e..a6e46101cf6 100644 --- a/src/controller/artifact/processor/sbom/sbom.go +++ b/src/controller/artifact/processor/sbom/sbom.go @@ -65,7 +65,7 @@ func (m *Processor) AbstractAddition(_ context.Context, art *artifact.Artifact, } // SBOM artifact should only have one layer if len(manifest.Layers) != 1 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("The sbom is not found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("The sbom is not found") } layerDgst := manifest.Layers[0].Digest.String() _, blob, err := m.RegCli.PullBlob(art.RepositoryName, layerDgst) diff --git a/src/controller/artifact/processor/wasm/wasm.go b/src/controller/artifact/processor/wasm/wasm.go index be6cba8e405..1118ef470b8 100644 --- a/src/controller/artifact/processor/wasm/wasm.go +++ b/src/controller/artifact/processor/wasm/wasm.go @@ -103,7 +103,7 @@ func (m *Processor) AbstractMetadata(ctx context.Context, art *artifact.Artifact func (m *Processor) AbstractAddition(ctx context.Context, artifact *artifact.Artifact, addition string) (*processor.Addition, error) { if addition != AdditionTypeBuildHistory { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("addition %s isn't supported for %s(manifest version 2)", addition, ArtifactTypeWASM) + WithMessagef("addition %s isn't supported for %s(manifest version 2)", addition, ArtifactTypeWASM) } mani, _, err := m.RegCli.PullManifest(artifact.RepositoryName, artifact.Digest) diff --git a/src/controller/blob/controller.go b/src/controller/blob/controller.go index 1adbf80f44a..054e5aeef5a 100644 --- a/src/controller/blob/controller.go +++ b/src/controller/blob/controller.go @@ -167,7 +167,7 @@ func (c *controller) Ensure(ctx context.Context, digest string, contentType stri func (c *controller) Exist(ctx context.Context, digest string, options ...Option) (bool, error) { if digest == "" { - return false, errors.BadRequestError(nil).WithMessage("exist blob require digest") + return false, errors.BadRequestError(nil).WithMessagef("exist blob require digest") } _, err := c.Get(ctx, digest, options...) @@ -220,7 +220,7 @@ func (c *controller) FindMissingAssociationsForProject(ctx context.Context, proj func (c *controller) Get(ctx context.Context, digest string, options ...Option) (*blob.Blob, error) { if digest == "" { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("require digest") + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("require digest") } opts := newOptions(options...) @@ -248,7 +248,7 @@ func (c *controller) Get(ctx context.Context, digest string, options ...Option) if err != nil { return nil, err } else if len(blobs) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("blob %s not found", digest) + return nil, errors.NotFoundError(nil).WithMessagef("blob %s not found", digest) } return blobs[0], nil @@ -363,7 +363,7 @@ func (c *controller) Touch(ctx context.Context, blob *blob.Blob) error { return err } if count == 0 { - return errors.New(nil).WithMessage("no blob item is updated to StatusNone, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("no blob item is updated to StatusNone, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) } return nil } @@ -375,7 +375,7 @@ func (c *controller) Fail(ctx context.Context, blob *blob.Blob) error { return err } if count == 0 { - return errors.New(nil).WithMessage("no blob item is updated to StatusDeleteFailed, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("no blob item is updated to StatusDeleteFailed, id:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) } return nil } diff --git a/src/controller/config/controller.go b/src/controller/config/controller.go index f4ddcb783c4..8c54b3569d0 100644 --- a/src/controller/config/controller.go +++ b/src/controller/config/controller.go @@ -78,7 +78,7 @@ func (c *controller) AllConfigs(ctx context.Context) (map[string]interface{}, er func (c *controller) UpdateUserConfigs(ctx context.Context, conf map[string]interface{}) error { if readOnlyForAll { - return errors.ForbiddenError(nil).WithMessage("current config is init by env variable: CONFIG_OVERWRITE_JSON, it cannot be updated") + return errors.ForbiddenError(nil).WithMessagef("current config is init by env variable: CONFIG_OVERWRITE_JSON, it cannot be updated") } mgr := config.GetCfgManager(ctx) err := mgr.Load(ctx) @@ -124,7 +124,7 @@ func (c *controller) validateCfg(ctx context.Context, cfgs map[string]interface{ } if !canBeModified { return errors.BadRequestError(nil). - WithMessage("the auth mode cannot be modified as new users have been inserted into database") + WithMessagef("the auth mode cannot be modified as new users have been inserted into database") } } } @@ -182,11 +182,11 @@ func verifyValueLengthCfg(_ context.Context, cfgs map[string]interface{}) error // the cfgs is unmarshal from json string, the number type will be float64 if vf, ok := v.(float64); ok { if vf <= 0 { - return errors.BadRequestError(nil).WithMessage("the %s value must be positive", c) + return errors.BadRequestError(nil).WithMessagef("the %s value must be positive", c) } if int64(vf) > maxValue { - return errors.BadRequestError(nil).WithMessage("the %s value is over the limit value: %d", c, maxValue) + return errors.BadRequestError(nil).WithMessagef("the %s value is over the limit value: %d", c, maxValue) } } } diff --git a/src/controller/gc/controller.go b/src/controller/gc/controller.go index 8ade07f3fc8..e22cac0b3c5 100644 --- a/src/controller/gc/controller.go +++ b/src/controller/gc/controller.go @@ -139,7 +139,7 @@ func (c *controller) GetExecution(ctx context.Context, id int64) (*Execution, er } if len(execs) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("garbage collection execution %d not found", id) + WithMessagef("garbage collection execution %d not found", id) } return convertExecution(execs[0]), nil } @@ -157,7 +157,7 @@ func (c *controller) GetTask(ctx context.Context, id int64) (*Task, error) { } if len(tasks) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("garbage collection task %d not found", id) + WithMessagef("garbage collection task %d not found", id) } return convertTask(tasks[0]), nil } @@ -193,10 +193,10 @@ func (c *controller) GetSchedule(ctx context.Context) (*scheduler.Schedule, erro return nil, err } if len(sch) == 0 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no gc schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no gc schedule is found") } if sch[0] == nil { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no gc schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no gc schedule is found") } return sch[0], nil } diff --git a/src/controller/icon/controller.go b/src/controller/icon/controller.go index c2f950544c0..f9787ce9090 100644 --- a/src/controller/icon/controller.go +++ b/src/controller/icon/controller.go @@ -143,7 +143,7 @@ func (c *controller) Get(ctx context.Context, digest string) (*Icon, error) { } if len(artifacts) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("the icon %s not found", digest) + WithMessagef("the icon %s not found", digest) } _, iconFile, err = c.regCli.PullBlob(artifacts[0].RepositoryName, digest) if err != nil { diff --git a/src/controller/jobservice/schedule.go b/src/controller/jobservice/schedule.go index e0f9ea19c2f..82d5a4a2b6d 100644 --- a/src/controller/jobservice/schedule.go +++ b/src/controller/jobservice/schedule.go @@ -67,10 +67,10 @@ func (s *schedulerController) Get(ctx context.Context, vendorType string) (*sche return nil, err } if len(sch) == 0 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no schedule is found") } if sch[0] == nil { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no schedule is found") } return sch[0], nil } diff --git a/src/controller/member/controller.go b/src/controller/member/controller.go index c53d49232d3..f5fc7e1c7f4 100644 --- a/src/controller/member/controller.go +++ b/src/controller/member/controller.go @@ -72,10 +72,10 @@ type UserGroup struct { } // ErrDuplicateProjectMember ... -var ErrDuplicateProjectMember = errors.ConflictError(nil).WithMessage("The project member specified already exist") +var ErrDuplicateProjectMember = errors.ConflictError(nil).WithMessagef("The project member specified already exist") // ErrInvalidRole ... -var ErrInvalidRole = errors.BadRequestError(nil).WithMessage("Failed to update project member, role is not in 1,2,3") +var ErrInvalidRole = errors.BadRequestError(nil).WithMessagef("Failed to update project member, role is not in 1,2,3") type controller struct { userManager user.Manager @@ -103,7 +103,7 @@ func (c *controller) UpdateRole(ctx context.Context, projectNameOrID interface{} return err } if p == nil { - return errors.BadRequestError(nil).WithMessage("project is not found") + return errors.BadRequestError(nil).WithMessagef("project is not found") } return c.mgr.UpdateRole(ctx, p.ProjectID, memberID, role) } @@ -114,7 +114,7 @@ func (c *controller) Get(ctx context.Context, projectNameOrID interface{}, membe return nil, err } if p == nil { - return nil, errors.BadRequestError(nil).WithMessage("project is not found") + return nil, errors.BadRequestError(nil).WithMessagef("project is not found") } return c.mgr.Get(ctx, p.ProjectID, memberID) } @@ -125,7 +125,7 @@ func (c *controller) Create(ctx context.Context, projectNameOrID interface{}, re return 0, err } if p == nil { - return 0, errors.BadRequestError(nil).WithMessage("project is not found") + return 0, errors.BadRequestError(nil).WithMessagef("project is not found") } var member models.Member member.ProjectID = p.ProjectID @@ -135,20 +135,20 @@ func (c *controller) Create(ctx context.Context, projectNameOrID interface{}, re if req.MemberUser.UserID > 0 { user, err := c.userManager.Get(ctx, req.MemberUser.UserID) if err != nil { - return 0, errors.BadRequestError(nil).WithMessage("Failed to get user %d: %v", req.MemberUser.UserID, err) + return 0, errors.BadRequestError(nil).WithMessagef("Failed to get user %d: %v", req.MemberUser.UserID, err) } if user == nil { - return 0, errors.BadRequestError(nil).WithMessage("User %d not found", req.MemberUser.UserID) + return 0, errors.BadRequestError(nil).WithMessagef("User %d not found", req.MemberUser.UserID) } member.EntityID = req.MemberUser.UserID member.EntityType = common.UserMember } else if req.MemberGroup.ID > 0 { g, err := c.groupManager.Get(ctx, req.MemberGroup.ID) if err != nil { - return 0, errors.BadRequestError(nil).WithMessage("Failed to get group %d: %v", req.MemberGroup.ID, err) + return 0, errors.BadRequestError(nil).WithMessagef("Failed to get group %d: %v", req.MemberGroup.ID, err) } if g == nil { - return 0, errors.BadRequestError(nil).WithMessage("Group %d not found", req.MemberGroup.ID) + return 0, errors.BadRequestError(nil).WithMessagef("Group %d not found", req.MemberGroup.ID) } member.EntityID = req.MemberGroup.ID } else if len(req.MemberUser.Username) > 0 { @@ -245,7 +245,7 @@ func (c *controller) List(ctx context.Context, projectNameOrID interface{}, enti return nil, err } if p == nil { - return nil, errors.BadRequestError(nil).WithMessage("project is not found") + return nil, errors.BadRequestError(nil).WithMessagef("project is not found") } pm := models.Member{ ProjectID: p.ProjectID, diff --git a/src/controller/p2p/preheat/controller.go b/src/controller/p2p/preheat/controller.go index e1e50e187da..65f80ebf161 100644 --- a/src/controller/p2p/preheat/controller.go +++ b/src/controller/p2p/preheat/controller.go @@ -219,7 +219,7 @@ func (c *controller) DeleteInstance(ctx context.Context, id int64) error { if len(policies) > 0 { return errors.New(nil). WithCode(errors.PreconditionCode). - WithMessage("Provider [%s] cannot be deleted as some preheat policies are using it", ins.Name) + WithMessagef("Provider [%s] cannot be deleted as some preheat policies are using it", ins.Name) } return c.iManager.Delete(ctx, id) @@ -246,7 +246,7 @@ func (c *controller) UpdateInstance(ctx context.Context, instance *providerModel if len(policies) > 0 { return errors.New(nil). WithCode(errors.PreconditionCode). - WithMessage("Provider [%s] cannot be disabled as some preheat policies are using it", oldIns.Name) + WithMessagef("Provider [%s] cannot be disabled as some preheat policies are using it", oldIns.Name) } } diff --git a/src/controller/project/controller.go b/src/controller/project/controller.go index f068cb71a37..56dd073726d 100644 --- a/src/controller/project/controller.go +++ b/src/controller/project/controller.go @@ -170,7 +170,7 @@ func (c *controller) Get(ctx context.Context, projectIDOrName interface{}, optio func (c *controller) GetByName(ctx context.Context, projectName string, options ...Option) (*models.Project, error) { if projectName == "" { - return nil, errors.BadRequestError(nil).WithMessage("project name required") + return nil, errors.BadRequestError(nil).WithMessagef("project name required") } p, err := c.projectMgr.Get(ctx, projectName) diff --git a/src/controller/quota/controller.go b/src/controller/quota/controller.go index 150258cefb2..a04894c66c6 100644 --- a/src/controller/quota/controller.go +++ b/src/controller/quota/controller.go @@ -488,7 +488,7 @@ func reserveResources(resources types.ResourceList) func(hardLimits, used types. newUsed := types.Add(used, resources) if err := quota.IsSafe(hardLimits, used, newUsed, false); err != nil { - return nil, errors.DeniedError(err).WithMessage("Quota exceeded when processing the request of %v", err) + return nil, errors.DeniedError(err).WithMessagef("Quota exceeded when processing the request of %v", err) } return newUsed, nil diff --git a/src/controller/quota/driver/project/util.go b/src/controller/quota/driver/project/util.go index ffc85ec4a4d..9efaa68f033 100644 --- a/src/controller/quota/driver/project/util.go +++ b/src/controller/quota/driver/project/util.go @@ -75,7 +75,7 @@ func getProjectsBatchFn(ctx context.Context, keys dataloader.Keys) []*dataloader for _, projectID := range projectIDs { project, ok := projectsMap[projectID] if !ok { - err := errors.NotFoundError(nil).WithMessage("project %d not found", projectID) + err := errors.NotFoundError(nil).WithMessagef("project %d not found", projectID) return handleError(err) } diff --git a/src/controller/registry/controller.go b/src/controller/registry/controller.go index b6da7720916..856f0d6fd32 100644 --- a/src/controller/registry/controller.go +++ b/src/controller/registry/controller.go @@ -84,10 +84,10 @@ func (c *controller) Create(ctx context.Context, registry *model.Registry) (int6 func (c *controller) validate(ctx context.Context, registry *model.Registry) error { if len(registry.Name) == 0 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("name cannot be empty") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("name cannot be empty") } if len(registry.Name) > 64 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the max length of name is 64") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the max length of name is 64") } url, err := lib.ValidateHTTPURL(registry.URL) if err != nil { @@ -100,7 +100,7 @@ func (c *controller) validate(ctx context.Context, registry *model.Registry) err return err } if !healthy { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the registry is unhealthy") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the registry is unhealthy") } registry.Status = model.Healthy return nil @@ -136,7 +136,7 @@ func (c *controller) Delete(ctx context.Context, id int64) error { return err } if count > 0 { - return errors.New(nil).WithCode(errors.PreconditionCode).WithMessage("the registry %d is referenced by replication policies, cannot delete it", id) + return errors.New(nil).WithCode(errors.PreconditionCode).WithMessagef("the registry %d is referenced by replication policies, cannot delete it", id) } // referenced by replication policy as destination registry count, err = c.repMgr.Count(ctx, &q.Query{ @@ -148,7 +148,7 @@ func (c *controller) Delete(ctx context.Context, id int64) error { return err } if count > 0 { - return errors.New(nil).WithCode(errors.PreconditionCode).WithMessage("the registry %d is referenced by replication policies, cannot delete it", id) + return errors.New(nil).WithCode(errors.PreconditionCode).WithMessagef("the registry %d is referenced by replication policies, cannot delete it", id) } // referenced by proxy cache project count, err = c.proMgr.Count(ctx, &q.Query{ @@ -160,7 +160,7 @@ func (c *controller) Delete(ctx context.Context, id int64) error { return err } if count > 0 { - return errors.New(nil).WithCode(errors.PreconditionCode).WithMessage("the registry %d is referenced by proxy cache project, cannot delete it", id) + return errors.New(nil).WithCode(errors.PreconditionCode).WithMessagef("the registry %d is referenced by proxy cache project, cannot delete it", id) } return c.regMgr.Delete(ctx, id) diff --git a/src/controller/replication/execution.go b/src/controller/replication/execution.go index 95136d9d849..3c92250946f 100644 --- a/src/controller/replication/execution.go +++ b/src/controller/replication/execution.go @@ -102,7 +102,7 @@ func (c *controller) Start(ctx context.Context, policy *replicationmodel.Policy, logger := log.GetLogger(ctx) if !policy.Enabled { return 0, errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("the policy %d is disabled", policy.ID) + WithMessagef("the policy %d is disabled", policy.ID) } // create an execution record extra := make(map[string]interface{}) @@ -213,7 +213,7 @@ func (c *controller) GetExecution(ctx context.Context, id int64) (*Execution, er } if len(execs) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("replication execution %d not found", id) + WithMessagef("replication execution %d not found", id) } return convertExecution(execs[0]), nil } @@ -250,7 +250,7 @@ func (c *controller) GetTask(ctx context.Context, id int64) (*Task, error) { } if len(tasks) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("replication task %d not found", id) + WithMessagef("replication task %d not found", id) } return convertTask(tasks[0]), nil } diff --git a/src/controller/replication/flow/stage.go b/src/controller/replication/flow/stage.go index c2ad07d72c8..3778767b42e 100644 --- a/src/controller/replication/flow/stage.go +++ b/src/controller/replication/flow/stage.go @@ -203,7 +203,7 @@ func replaceNamespace(repository string, namespace string, replaceCount int8, ds dstRepoPrefix = namespace case int(replaceCount) > srcLength-1: // invalid replace count return "", errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the source repository %q contains only %d path components %v excepting the last one, but the destination namespace flattening level is %d", + WithMessagef("the source repository %q contains only %d path components %v excepting the last one, but the destination namespace flattening level is %d", repository, srcLength-1, srcRepoPathComponents[:srcLength-1], replaceCount) default: dstRepoPrefix = namespace + "/" + strings.Join(srcRepoPathComponents[replaceCount:srcLength-1], "/") @@ -216,12 +216,12 @@ func replaceNamespace(repository string, namespace string, replaceCount int8, ds switch dstRepoComponentPathType { case model.RepositoryPathComponentTypeOnlyTwo: if dstLength != 2 { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the destination repository %q contains %d path components %v, but the destination registry only supports 2", + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the destination repository %q contains %d path components %v, but the destination registry only supports 2", dstRepo, dstLength, dstRepoPathComponents) } case model.RepositoryPathComponentTypeAtLeastTwo: if dstLength < 2 { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the destination repository %q contains only %d path components %v, but the destination registry requires at least 2", + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the destination repository %q contains only %d path components %v, but the destination registry requires at least 2", dstRepo, dstLength, dstRepoPathComponents) } } diff --git a/src/controller/replication/model/model.go b/src/controller/replication/model/model.go index a257687a72a..a201b96a057 100644 --- a/src/controller/replication/model/model.go +++ b/src/controller/replication/model/model.go @@ -63,7 +63,7 @@ func (p *Policy) IsScheduledTrigger() bool { // Validate the policy func (p *Policy) Validate() error { if len(p.Name) == 0 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("empty name") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("empty name") } var srcRegistryID, dstRegistryID int64 if p.SrcRegistry != nil { @@ -77,7 +77,7 @@ func (p *Policy) Validate() error { if srcRegistryID != 0 && dstRegistryID != 0 || srcRegistryID == 0 && dstRegistryID == 0 { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("either src_registry or dest_registry should be empty and the other one shouldn't be empty") + WithMessagef("either src_registry or dest_registry should be empty and the other one shouldn't be empty") } // valid the filters @@ -91,7 +91,7 @@ func (p *Policy) Validate() error { if len(p.DestNamespace) > 0 { if !lib.RepositoryNameRe.MatchString(p.DestNamespace) { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid destination namespace: %s", p.DestNamespace) + WithMessagef("invalid destination namespace: %s", p.DestNamespace) } } @@ -102,22 +102,22 @@ func (p *Policy) Validate() error { case model.TriggerTypeScheduled: if p.Trigger.Settings == nil || len(p.Trigger.Settings.Cron) == 0 { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the cron string cannot be empty when the trigger type is %s", model.TriggerTypeScheduled) + WithMessagef("the cron string cannot be empty when the trigger type is %s", model.TriggerTypeScheduled) } if _, err := utils.CronParser().Parse(p.Trigger.Settings.Cron); err != nil { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled trigger: %s", p.Trigger.Settings.Cron) + WithMessagef("invalid cron string for scheduled trigger: %s", p.Trigger.Settings.Cron) } cronParts := strings.Split(p.Trigger.Settings.Cron, " ") if cronParts[0] != "0" { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the 1st field (indicating Seconds of time) of the cron setting must be 0") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the 1st field (indicating Seconds of time) of the cron setting must be 0") } if cronParts[1] == "*" { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("* is not allowed for the Minutes field of the cron setting of replication policy") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("* is not allowed for the Minutes field of the cron setting of replication policy") } default: return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid trigger type") + WithMessagef("invalid trigger type") } } return nil diff --git a/src/controller/robot/controller.go b/src/controller/robot/controller.go index 0132eba5cd4..f6f304a10dc 100644 --- a/src/controller/robot/controller.go +++ b/src/controller/robot/controller.go @@ -358,7 +358,7 @@ func (d *controller) toScope(ctx context.Context, p *Permission) (string, error) switch p.Kind { case LEVELSYSTEM: if p.Namespace != "/" { - return "", errors.New(nil).WithMessage("unknown namespace").WithCode(errors.BadRequestCode) + return "", errors.New(nil).WithMessagef("unknown namespace").WithCode(errors.BadRequestCode) } return SCOPESYSTEM, nil case LEVELPROJECT: @@ -371,7 +371,7 @@ func (d *controller) toScope(ctx context.Context, p *Permission) (string, error) } return fmt.Sprintf("/project/%d", pro.ProjectID), nil } - return "", errors.New(nil).WithMessage("unknown robot kind").WithCode(errors.BadRequestCode) + return "", errors.New(nil).WithMessagef("unknown robot kind").WithCode(errors.BadRequestCode) } // set the project info if it's a project level robot @@ -404,7 +404,7 @@ func CreateSec(salt ...string) (string, string, string, error) { if err := retry.Retry(func() error { pwd = utils.GenerateRandomString() if !IsValidSec(pwd) { - return errors.New(nil).WithMessage("invalid secret format") + return errors.New(nil).WithMessagef("invalid secret format") } return nil }, options...); err != nil { diff --git a/src/controller/scan/base_controller.go b/src/controller/scan/base_controller.go index 691f4da3962..4f59480e226 100644 --- a/src/controller/scan/base_controller.go +++ b/src/controller/scan/base_controller.go @@ -243,12 +243,12 @@ func (bc *basicController) Scan(ctx context.Context, artifact *ar.Artifact, opti // In case it does not exist if r == nil { - return errors.PreconditionFailedError(nil).WithMessage("no available scanner for project: %d", artifact.ProjectID) + return errors.PreconditionFailedError(nil).WithMessagef("no available scanner for project: %d", artifact.ProjectID) } // Check if it is disabled if r.Disabled { - return errors.PreconditionFailedError(nil).WithMessage("scanner %s is deactivated", r.Name) + return errors.PreconditionFailedError(nil).WithMessagef("scanner %s is deactivated", r.Name) } artifacts, scannable, err := bc.collectScanningArtifacts(ctx, r, artifact) @@ -266,7 +266,7 @@ func (bc *basicController) Scan(ctx context.Context, artifact *ar.Artifact, opti // skip to return err for event related scan return nil } - return errors.BadRequestError(nil).WithMessage("the configured scanner %s does not support scanning artifact with mime type %s", r.Name, artifact.ManifestMediaType) + return errors.BadRequestError(nil).WithMessagef("the configured scanner %s does not support scanning artifact with mime type %s", r.Name, artifact.ManifestMediaType) } var ( @@ -376,7 +376,7 @@ func (bc *basicController) Stop(ctx context.Context, artifact *ar.Artifact, capT } if len(executions) == 0 { - return errors.BadRequestError(nil).WithMessage("no scan job for artifact digest=%v", artifact.Digest) + return errors.BadRequestError(nil).WithMessagef("no scan job for artifact digest=%v", artifact.Digest) } execution := executions[0] return bc.execMgr.Stop(ctx, execution.ID) @@ -589,7 +589,7 @@ func (bc *basicController) GetReport(ctx context.Context, artifact *ar.Artifact, } if r == nil { - return nil, errors.NotFoundError(nil).WithMessage("no scanner registration configured for project: %d", artifact.ProjectID) + return nil, errors.NotFoundError(nil).WithMessagef("no scanner registration configured for project: %d", artifact.ProjectID) } artifacts, scannable, err := bc.collectScanningArtifacts(ctx, r, artifact) @@ -598,7 +598,7 @@ func (bc *basicController) GetReport(ctx context.Context, artifact *ar.Artifact, } if !scannable { - return nil, errors.NotFoundError(nil).WithMessage("report not found for %s@%s", artifact.RepositoryName, artifact.Digest) + return nil, errors.NotFoundError(nil).WithMessagef("report not found for %s@%s", artifact.RepositoryName, artifact.Digest) } groupReports := make([][]*scan.Report, len(artifacts)) @@ -680,7 +680,7 @@ func (bc *basicController) GetScanLog(ctx context.Context, artifact *ar.Artifact reportUUIDToTasks := map[string]*task.Task{} for _, t := range tasks { if !scanTaskForArtifacts(t, artifactMap) { - return nil, errors.NotFoundError(nil).WithMessage("scan log with uuid: %s not found", uuid) + return nil, errors.NotFoundError(nil).WithMessagef("scan log with uuid: %s not found", uuid) } for _, reportUUID := range GetReportUUIDs(t.ExtraAttrs) { reportUUIDToTasks[reportUUID] = t @@ -788,7 +788,7 @@ func (bc *basicController) GetVulnerable(ctx context.Context, artifact *ar.Artif } if len(reports) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("report not found") + return nil, errors.NotFoundError(nil).WithMessagef("report not found") } scanStatus := reports[0].Status @@ -1042,7 +1042,7 @@ func (bc *basicController) getScanTask(ctx context.Context, reportUUID string) ( } if len(tasks) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("task for report %s not found", reportUUID) + return nil, errors.NotFoundError(nil).WithMessagef("task for report %s not found", reportUUID) } return tasks[0], nil diff --git a/src/controller/scanner/base_controller.go b/src/controller/scanner/base_controller.go index 155f5438cab..92082c6ad67 100644 --- a/src/controller/scanner/base_controller.go +++ b/src/controller/scanner/base_controller.go @@ -98,7 +98,7 @@ func (bc *basicController) GetTotalOfRegistrations(ctx context.Context, query *q // CreateRegistration ... func (bc *basicController) CreateRegistration(ctx context.Context, registration *scanner.Registration) (string, error) { if isReservedName(registration.Name) { - return "", errors.BadRequestError(nil).WithMessage(`name "%s" is reserved, please try a different name`, registration.Name) + return "", errors.BadRequestError(nil).WithMessagef(`name "%s" is reserved, please try a different name`, registration.Name) } // Check if the registration is available @@ -168,7 +168,7 @@ func (bc *basicController) UpdateRegistration(ctx context.Context, registration } if isReservedName(registration.Name) { - return errors.BadRequestError(nil).WithMessage(`name "%s" is reserved, please try a different name`, registration.Name) + return errors.BadRequestError(nil).WithMessagef(`name "%s" is reserved, please try a different name`, registration.Name) } return bc.manager.Update(ctx, registration) @@ -343,7 +343,7 @@ func (bc *basicController) GetMetadata(ctx context.Context, registrationUUID str } if r == nil { - return nil, errors.NotFoundError(nil).WithMessage("registration %s not found", registrationUUID) + return nil, errors.NotFoundError(nil).WithMessagef("registration %s not found", registrationUUID) } return bc.Ping(ctx, r) diff --git a/src/controller/tag/controller.go b/src/controller/tag/controller.go index 4fab9fb6b3a..5e20419df4b 100644 --- a/src/controller/tag/controller.go +++ b/src/controller/tag/controller.go @@ -97,7 +97,7 @@ func (c *controller) Ensure(ctx context.Context, repositoryID, artifactID int64, // existing tag must check the immutable status and signature if tag.Immutable { return 0, errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("the tag %s configured as immutable, cannot be updated", tag.Name) + WithMessagef("the tag %s configured as immutable, cannot be updated", tag.Name) } // the tag exists under the repository, but it is attached to other artifact // update it to point to the provided artifact @@ -189,7 +189,7 @@ func (c *controller) Delete(ctx context.Context, id int64) (err error) { } if tag.Immutable { return errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("the tag %s configured as immutable, cannot be deleted", tag.Name) + WithMessagef("the tag %s configured as immutable, cannot be deleted", tag.Name) } return c.tagMgr.Delete(ctx, id) } diff --git a/src/controller/user/controller.go b/src/controller/user/controller.go index 1d0901206b4..a600737de32 100644 --- a/src/controller/user/controller.go +++ b/src/controller/user/controller.go @@ -107,10 +107,10 @@ func (c *controller) UpdateOIDCMeta(ctx context.Context, ou *commonmodels.OIDCUs func (c *controller) OnboardOIDCUser(ctx context.Context, u *commonmodels.User) error { if u == nil { - return errors.BadRequestError(nil).WithMessage("user model is nil") + return errors.BadRequestError(nil).WithMessagef("user model is nil") } if u.OIDCUserMeta == nil { - return errors.BadRequestError(nil).WithMessage("OIDC meta of the user model is empty") + return errors.BadRequestError(nil).WithMessagef("OIDC meta of the user model is empty") } uid, err := c.mgr.Create(ctx, u) if err != nil { @@ -178,17 +178,17 @@ func (c *controller) Count(ctx context.Context, query *q.Query) (int64, error) { func (c *controller) Delete(ctx context.Context, id int) error { // cleanup project member with the user if err := c.memberMgr.DeleteMemberByUserID(ctx, id); err != nil { - return errors.UnknownError(err).WithMessage("delete user failed, user id: %v, cannot delete project user member, error:%v", id, err) + return errors.UnknownError(err).WithMessagef("delete user failed, user id: %v, cannot delete project user member, error:%v", id, err) } // delete oidc metadata under the user if lib.GetAuthMode(ctx) == common.OIDCAuth { if err := c.oidcMetaMgr.DeleteByUserID(ctx, id); err != nil { - return errors.UnknownError(err).WithMessage("delete user failed, user id: %v, cannot delete oidc user, error:%v", id, err) + return errors.UnknownError(err).WithMessagef("delete user failed, user id: %v, cannot delete oidc user, error:%v", id, err) } } gdprSetting, err := config.GDPRSetting(ctx) if err != nil { - return errors.UnknownError(err).WithMessage("failed to load GDPR setting: %v", err) + return errors.UnknownError(err).WithMessagef("failed to load GDPR setting: %v", err) } if gdprSetting.AuditLogs { diff --git a/src/controller/usergroup/controller.go b/src/controller/usergroup/controller.go index 13bc31c823f..8aae0871f51 100644 --- a/src/controller/usergroup/controller.go +++ b/src/controller/usergroup/controller.go @@ -81,7 +81,7 @@ func (c *controller) Update(ctx context.Context, id int, groupName string) error return err } if len(ug) == 0 { - return errors.NotFoundError(nil).WithMessage("the user group with id %v is not found", id) + return errors.NotFoundError(nil).WithMessagef("the user group with id %v is not found", id) } return c.mgr.UpdateName(ctx, id, groupName) } @@ -90,10 +90,10 @@ func (c *controller) Create(ctx context.Context, group model.UserGroup) (int, er if group.GroupType == common.LDAPGroupType { ldapGroup, err := auth.SearchGroup(ctx, group.LdapGroupDN) if err == ldap.ErrNotFound || ldapGroup == nil { - return 0, errors.BadRequestError(nil).WithMessage("LDAP Group DN is not found: DN:%v", group.LdapGroupDN) + return 0, errors.BadRequestError(nil).WithMessagef("LDAP Group DN is not found: DN:%v", group.LdapGroupDN) } if err == ldap.ErrDNSyntax { - return 0, errors.BadRequestError(nil).WithMessage("invalid DN syntax. DN: %v", group.LdapGroupDN) + return 0, errors.BadRequestError(nil).WithMessagef("invalid DN syntax. DN: %v", group.LdapGroupDN) } if err != nil { return 0, err @@ -102,7 +102,7 @@ func (c *controller) Create(ctx context.Context, group model.UserGroup) (int, er id, err := c.mgr.Create(ctx, group) if err != nil && err == usergroup.ErrDupUserGroup { return 0, errors.ConflictError(nil). - WithMessage("duplicate user group, group name:%v, group type: %v, ldap group DN: %v", + WithMessagef("duplicate user group, group name:%v, group type: %v, ldap group DN: %v", group.GroupName, group.GroupType, group.LdapGroupDN) } diff --git a/src/controller/webhook/controller.go b/src/controller/webhook/controller.go index cae172a25c2..3e8f50f7fdd 100644 --- a/src/controller/webhook/controller.go +++ b/src/controller/webhook/controller.go @@ -146,7 +146,7 @@ func (c *controller) GetTask(ctx context.Context, taskID int64) (*task.Task, err if len(tasks) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("webhook task %d not found", taskID) + WithMessagef("webhook task %d not found", taskID) } return tasks[0], nil } diff --git a/src/core/api/internal.go b/src/core/api/internal.go index fbe6ee4ff92..3ee3c2e0243 100644 --- a/src/core/api/internal.go +++ b/src/core/api/internal.go @@ -75,7 +75,7 @@ func (ia *InternalAPI) RenameAdmin() { // SyncQuota ... func (ia *InternalAPI) SyncQuota() { if !config.QuotaPerProjectEnable(orm.Context()) { - ia.SendError(errors.ForbiddenError(nil).WithMessage("quota per project is deactivated")) + ia.SendError(errors.ForbiddenError(nil).WithMessagef("quota per project is deactivated")) return } ctx := orm.Context() diff --git a/src/core/auth/authenticator.go b/src/core/auth/authenticator.go index 5509608ef31..6d00d4d3d6f 100644 --- a/src/core/auth/authenticator.go +++ b/src/core/auth/authenticator.go @@ -102,7 +102,7 @@ func (d *DefaultAuthenticateHelper) OnBoardUser(_ context.Context, _ *models.Use // SearchUser - Get user information from account repository func (d *DefaultAuthenticateHelper) SearchUser(_ context.Context, username string) (*models.User, error) { log.Errorf("Not support searching user, username: %s", username) - return nil, libErrors.NotFoundError(ErrNotSupported).WithMessage("%s not found", username) + return nil, libErrors.NotFoundError(ErrNotSupported).WithMessagef("%s not found", username) } // PostAuthenticate - Update user information after authenticate, such as OnBoard or sync info etc @@ -118,7 +118,7 @@ func (d *DefaultAuthenticateHelper) OnBoardGroup(_ context.Context, _ *model.Use // SearchGroup - Search ldap group by group key, groupKey is the unique attribute of group in authenticator, for LDAP, the key is group DN func (d *DefaultAuthenticateHelper) SearchGroup(_ context.Context, groupKey string) (*model.UserGroup, error) { log.Errorf("Not support searching group, group key: %s", groupKey) - return nil, libErrors.NotFoundError(ErrNotSupported).WithMessage("%s not found", groupKey) + return nil, libErrors.NotFoundError(ErrNotSupported).WithMessagef("%s not found", groupKey) } var registry = make(map[string]AuthenticateHelper) @@ -222,7 +222,7 @@ func SearchAndOnBoardUser(ctx context.Context, username string) (int, error) { return 0, err } if user == nil { - return 0, libErrors.NotFoundError(nil).WithMessage("user %s is not found", username) + return 0, libErrors.NotFoundError(nil).WithMessagef("user %s is not found", username) } err = OnBoardUser(ctx, user) if err != nil { diff --git a/src/core/auth/ldap/ldap.go b/src/core/auth/ldap/ldap.go index 56533b28754..62f85aa1573 100644 --- a/src/core/auth/ldap/ldap.go +++ b/src/core/auth/ldap/ldap.go @@ -262,7 +262,7 @@ func (l *Auth) SearchUser(ctx context.Context, username string) (*models.User, e log.Debugf("Found ldap user %v", user) } else { - return nil, errors.NotFoundError(nil).WithMessage("no user found: %v", username) + return nil, errors.NotFoundError(nil).WithMessagef("no user found: %v", username) } return &user, nil @@ -292,7 +292,7 @@ func (l *Auth) SearchGroup(ctx context.Context, groupKey string) (*ugModel.UserG } if len(userGroupList) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("failed to searh ldap group with groupDN:%v", groupKey) + return nil, errors.NotFoundError(nil).WithMessagef("failed to searh ldap group with groupDN:%v", groupKey) } userGroup := ugModel.UserGroup{ GroupName: userGroupList[0].Name, diff --git a/src/jobservice/job/impl/gc/garbage_collection.go b/src/jobservice/job/impl/gc/garbage_collection.go index 7968a1020f5..eabe9e80eb4 100644 --- a/src/jobservice/job/impl/gc/garbage_collection.go +++ b/src/jobservice/job/impl/gc/garbage_collection.go @@ -713,7 +713,7 @@ func (gc *GarbageCollector) markDeleteFailed(ctx job.Context, blob *blobModels.B return errors.Wrapf(err, "failed to mark gc candidate delete failed: %s, %s", blob.Digest, blob.Status) } if count == 0 { - return errors.New(nil).WithMessage("no blob found to mark delete failed, ID:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("no blob found to mark delete failed, ID:%d, digest:%s", blob.ID, blob.Digest).WithCode(errors.NotFoundCode) } return nil } diff --git a/src/jobservice/job/impl/gc/util_test.go b/src/jobservice/job/impl/gc/util_test.go index b290aac2ebd..2aaca923141 100644 --- a/src/jobservice/job/impl/gc/util_test.go +++ b/src/jobservice/job/impl/gc/util_test.go @@ -16,15 +16,15 @@ func TestIgnoreNotFound(t *testing.T) { } assert.Nil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessage("my error") + return errors.New(nil).WithMessagef("my error") } assert.NotNil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessage("my error").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("my error").WithCode(errors.BadRequestCode) } assert.NotNil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessage("my error").WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("my error").WithCode(errors.NotFoundCode) } assert.Nil(t, ignoreNotFound(f)) } diff --git a/src/lib/endpoint.go b/src/lib/endpoint.go index 07945068a26..f073ef33005 100644 --- a/src/lib/endpoint.go +++ b/src/lib/endpoint.go @@ -28,17 +28,17 @@ func ValidateHTTPURL(s string) (string, error) { s = strings.Trim(s, " ") s = strings.TrimRight(s, "/") if len(s) == 0 { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("empty string") + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("empty string") } if !strings.Contains(s, "://") { s = "http://" + s } url, err := url.Parse(s) if err != nil { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid URL: %s", err.Error()) + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid URL: %s", err.Error()) } if url.Scheme != "http" && url.Scheme != "https" { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid HTTP scheme: %s", url.Scheme) + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid HTTP scheme: %s", url.Scheme) } // To avoid SSRF security issue, refer to #3755 for more detail return fmt.Sprintf("%s://%s%s", url.Scheme, url.Host, url.Path), nil diff --git a/src/lib/errors/errors.go b/src/lib/errors/errors.go index a44c7f2ac08..71d1074b258 100644 --- a/src/lib/errors/errors.go +++ b/src/lib/errors/errors.go @@ -63,12 +63,18 @@ func (e *Error) MarshalJSON() ([]byte, error) { }) } -// WithMessage ... -func (e *Error) WithMessage(format string, v ...interface{}) *Error { +// WithMessagef ... +func (e *Error) WithMessagef(format string, v ...interface{}) *Error { e.Message = fmt.Sprintf(format, v...) return e } +// WithMessage ... +func (e *Error) WithMessage(message string) *Error { + e.Message = message + return e +} + // WithCode ... func (e *Error) WithCode(code string) *Error { e.Code = code diff --git a/src/lib/errors/errors_test.go b/src/lib/errors/errors_test.go index 330ef4ea34c..6998b22bba1 100644 --- a/src/lib/errors/errors_test.go +++ b/src/lib/errors/errors_test.go @@ -63,7 +63,7 @@ func caller2() error { func caller3() error { err := caller4() - return New(nil).WithMessage("it's caller 3.").WithCause(err) + return New(nil).WithMessagef("it's caller 3.").WithCause(err) } func caller4() error { @@ -113,7 +113,7 @@ func (suite *ErrorTestSuite) TestNew() { func (suite *ErrorTestSuite) TestWithMessage() { cause := New("root") - err := cause.WithMessage("append message").WithMessage("append message2") + err := cause.WithMessagef("append message").WithMessagef("append message2") suite.Equal("append message2", err.Error()) } @@ -125,7 +125,7 @@ func (suite *ErrorTestSuite) TestWithCause() { func (suite *ErrorTestSuite) TestWithCauseMessage() { cause := errors.New("stdErr") - err := New("root").WithCause(cause).WithMessage("With Message") + err := New("root").WithCause(cause).WithMessagef("With Message") suite.Equal("With Message: stdErr", err.Error()) } @@ -172,7 +172,7 @@ func (suite *ErrorTestSuite) TestNilErr() { } func (suite *ErrorTestSuite) TestNilWithMessage() { - nilErr := New(nil).WithMessage("it's a nil error") + nilErr := New(nil).WithMessagef("it's a nil error") suite.Equal("it's a nil error", nilErr.Error()) } @@ -223,7 +223,7 @@ func (suite *ErrorTestSuite) TestNotFoundError() { suite.Equal(`resource not found: something is not found`, err.Error()) root = errors.New("something is not found") - err = NotFoundError(root).WithMessage("asset not found") + err = NotFoundError(root).WithMessagef("asset not found") suite.Equal(`asset not found: something is not found`, err.Error()) } @@ -276,7 +276,7 @@ func (suite *ErrorTestSuite) TestErrors() { err2 := Wrap(err, "append message").WithCode(ConflictCode) suite.Equal(`{"errors":[{"code":"CONFLICT","message":"append message: root: stdErr"}]}`, NewErrs(err2).Error()) - err = New(nil).WithCode(GeneralCode).WithMessage("internal server error") + err = New(nil).WithCode(GeneralCode).WithMessagef("internal server error") suite.Equal(`{"errors":[{"code":"UNKNOWN","message":"internal server error"}]}`, NewErrs(err).Error()) } diff --git a/src/lib/http/error.go b/src/lib/http/error.go index a8995e8ab17..54c97b98d82 100644 --- a/src/lib/http/error.go +++ b/src/lib/http/error.go @@ -55,7 +55,7 @@ func SendError(w http.ResponseWriter, err error) { // the error detail is logged only, and will not be sent to the client to avoid leaking server information if statusCode >= http.StatusInternalServerError { log.Errorf("%s %s", errPayload, stackTrace) - err = errors.New(nil).WithCode(errors.GeneralCode).WithMessage("internal server error") + err = errors.New(nil).WithCode(errors.GeneralCode).WithMessagef("internal server error") errPayload = errors.NewErrs(err).Error() } else { // only log the error whose status code < 500 when debugging to avoid log flooding diff --git a/src/lib/http/error_test.go b/src/lib/http/error_test.go index 927e5fad5b6..542efe7fc50 100644 --- a/src/lib/http/error_test.go +++ b/src/lib/http/error_test.go @@ -30,21 +30,21 @@ import ( func TestSendError(t *testing.T) { // unauthorized error rw := httptest.NewRecorder() - err := errors.New(nil).WithCode(errors.UnAuthorizedCode).WithMessage("unauthorized") + err := errors.New(nil).WithCode(errors.UnAuthorizedCode).WithMessagef("unauthorized") SendError(rw, err) assert.Equal(t, http.StatusUnauthorized, rw.Code) assert.Equal(t, `{"errors":[{"code":"UNAUTHORIZED","message":"unauthorized"}]}`+"\n", rw.Body.String()) // internal server error rw = httptest.NewRecorder() - err = errors.New(nil).WithCode(errors.GeneralCode).WithMessage("unknown") + err = errors.New(nil).WithCode(errors.GeneralCode).WithMessagef("unknown") SendError(rw, err) assert.Equal(t, http.StatusInternalServerError, rw.Code) assert.Equal(t, `{"errors":[{"code":"UNKNOWN","message":"internal server error"}]}`+"\n", rw.Body.String()) // not internal server error rw = httptest.NewRecorder() - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("object not found") + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("object not found") SendError(rw, err) assert.Equal(t, http.StatusNotFound, rw.Code) assert.Equal(t, `{"errors":[{"code":"NOT_FOUND","message":"object not found"}]}`+"\n", rw.Body.String()) @@ -70,7 +70,7 @@ func TestAPIError(t *testing.T) { assert.Contains(t, stacktrace, `http.apiError`) // errors.Error - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("resource not found") + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("resource not found") statusCode, payload, stacktrace = apiError(err) assert.Equal(t, http.StatusNotFound, statusCode) assert.Equal(t, `{"errors":[{"code":"NOT_FOUND","message":"resource not found"}]}`, payload) diff --git a/src/lib/orm/error.go b/src/lib/orm/error.go index 0d8ea034d5f..315a413271f 100644 --- a/src/lib/orm/error.go +++ b/src/lib/orm/error.go @@ -53,7 +53,7 @@ func AsNotFoundError(err error, messageFormat string, args ...interface{}) *erro if errors.Is(err, orm.ErrNoRows) { e := errors.NotFoundError(nil) if len(messageFormat) > 0 { - _ = e.WithMessage(messageFormat, args...) + _ = e.WithMessagef(messageFormat, args...) } return e } @@ -66,7 +66,7 @@ func AsConflictError(err error, messageFormat string, args ...interface{}) *erro if IsDuplicateKeyError(err) { e := errors.New(err). WithCode(errors.ConflictCode). - WithMessage(messageFormat, args...) + WithMessagef(messageFormat, args...) return e } return nil @@ -78,7 +78,7 @@ func AsForeignKeyError(err error, messageFormat string, args ...interface{}) *er if isViolatingForeignKeyConstraintError(err) { e := errors.New(err). WithCode(errors.ViolateForeignKeyConstraintCode). - WithMessage(messageFormat, args...) + WithMessagef(messageFormat, args...) return e } return nil diff --git a/src/lib/q/builder.go b/src/lib/q/builder.go index 3e4a50c4ab1..acc5ad54aac 100644 --- a/src/lib/q/builder.go +++ b/src/lib/q/builder.go @@ -64,13 +64,13 @@ func parseKeywords(q string) (map[string]interface{}, error) { if len(strs) != 2 || len(strs[0]) == 0 || len(strs[1]) == 0 { return nil, errors.New(nil). WithCode(errors.BadRequestCode). - WithMessage(`the query string must contain "=" and the key/value cannot be empty`) + WithMessagef(`the query string must contain "=" and the key/value cannot be empty`) } value, err := parsePattern(strs[1]) if err != nil { return nil, errors.New(err). WithCode(errors.BadRequestCode). - WithMessage("invalid query string value: %s", strs[1]) + WithMessagef("invalid query string value: %s", strs[1]) } keywords[strs[0]] = value } diff --git a/src/pkg/accessory/dao/dao.go b/src/pkg/accessory/dao/dao.go index 96e63e05ba8..b51dc12b9eb 100644 --- a/src/pkg/accessory/dao/dao.go +++ b/src/pkg/accessory/dao/dao.go @@ -132,7 +132,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("accessory %d not found", id) + return errors.NotFoundError(nil).WithMessagef("accessory %d not found", id) } return nil } diff --git a/src/pkg/artifact/dao/dao.go b/src/pkg/artifact/dao/dao.go index c59baeb7f58..f1edf6dabe6 100644 --- a/src/pkg/artifact/dao/dao.go +++ b/src/pkg/artifact/dao/dao.go @@ -146,7 +146,7 @@ func (d *dao) GetByDigest(ctx context.Context, repository, digest string) (*Arti } if len(artifacts) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("artifact %s@%s not found", repository, digest) + WithMessagef("artifact %s@%s not found", repository, digest) } return artifacts[0], nil } @@ -181,7 +181,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("artifact %d not found", id) + return errors.NotFoundError(nil).WithMessagef("artifact %d not found", id) } return nil @@ -197,7 +197,7 @@ func (d *dao) Update(ctx context.Context, artifact *Artifact, props ...string) e return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("artifact %d not found", artifact.ID) + return errors.NotFoundError(nil).WithMessagef("artifact %d not found", artifact.ID) } return nil } @@ -261,7 +261,7 @@ func (d *dao) DeleteReference(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("artifact reference %d not found", id) + return errors.NotFoundError(nil).WithMessagef("artifact reference %d not found", id) } return nil } @@ -304,7 +304,7 @@ func (d *dao) ListWithLatest(ctx context.Context, query *q.Query) (artifacts []* var pid interface{} if pid, ok = query.Keywords["ProjectID"]; !ok { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "ProjectID" must be set`) + WithMessagef(`the value of "ProjectID" must be set`) } queryParam = append(queryParam, pid) @@ -317,7 +317,7 @@ func (d *dao) ListWithLatest(ctx context.Context, query *q.Query) (artifacts []* if attributionValue == "" { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "media_type" or "artifact_type" must be set`) + WithMessagef(`the value of "media_type" or "artifact_type" must be set`) } queryParam = append(queryParam, attributionValue) @@ -372,7 +372,7 @@ func setBaseQuery(qs beegoorm.QuerySeter, query *q.Query) (beegoorm.QuerySeter, b, ok := base.(string) if !ok || b != "*" { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "base" query can only be exact match value with "*"`) + WithMessagef(`the value of "base" query can only be exact match value with "*"`) } // the base is specified as "*" return qs, nil @@ -430,7 +430,7 @@ func setTagQuery(ctx context.Context, qs beegoorm.QuerySeter, query *q.Query) (b return qs, nil } return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "tags" query can only be fuzzy match value or exact match value`) + WithMessagef(`the value of "tags" query can only be fuzzy match value or exact match value`) } // handle query string: q=labels=(1 2 3) @@ -448,14 +448,14 @@ func setLabelQuery(qs beegoorm.QuerySeter, query *q.Query) (beegoorm.QuerySeter, al, ok := labels.(*q.AndList) if !ok { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "labels" query can only be integer list with intersetion relationship`) + WithMessagef(`the value of "labels" query can only be integer list with intersetion relationship`) } var collections []string for _, value := range al.Values { labelID, ok := value.(int64) if !ok { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage(`the value of "labels" query can only be integer list with intersetion relationship`) + WithMessagef(`the value of "labels" query can only be integer list with intersetion relationship`) } // param "labelID" is integer, no need to sanitize collections = append(collections, fmt.Sprintf(`SELECT artifact_id FROM label_reference WHERE label_id=%d`, labelID)) diff --git a/src/pkg/artifactrash/dao/dao.go b/src/pkg/artifactrash/dao/dao.go index f10beba4f42..1fad8ef994b 100644 --- a/src/pkg/artifactrash/dao/dao.go +++ b/src/pkg/artifactrash/dao/dao.go @@ -73,7 +73,7 @@ func (d *dao) Delete(ctx context.Context, id int64) (err error) { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("artifact trash %d not found", id) + return errors.NotFoundError(nil).WithMessagef("artifact trash %d not found", id) } return nil } diff --git a/src/pkg/audit/dao/dao.go b/src/pkg/audit/dao/dao.go index 3a816b6c458..09e87c5ee7e 100644 --- a/src/pkg/audit/dao/dao.go +++ b/src/pkg/audit/dao/dao.go @@ -207,7 +207,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("access %d not found", id) + return errors.NotFoundError(nil).WithMessagef("access %d not found", id) } return nil } diff --git a/src/pkg/blob/dao/dao.go b/src/pkg/blob/dao/dao.go index 16361622015..ba5aa67a1fa 100644 --- a/src/pkg/blob/dao/dao.go +++ b/src/pkg/blob/dao/dao.go @@ -385,7 +385,7 @@ func (d *dao) DeleteBlob(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("blob %d not found", id) + return errors.NotFoundError(nil).WithMessagef("blob %d not found", id) } return nil } diff --git a/src/pkg/blob/manager.go b/src/pkg/blob/manager.go index 54cc371dfb5..07bd097c547 100644 --- a/src/pkg/blob/manager.go +++ b/src/pkg/blob/manager.go @@ -140,7 +140,7 @@ func (m *manager) Update(ctx context.Context, blob *Blob) error { func (m *manager) UpdateBlobStatus(ctx context.Context, blob *models.Blob) (int64, error) { _, exist := models.StatusMap[blob.Status] if !exist { - return -1, errors.New(nil).WithMessage("cannot update blob status, as the status is unknown. digest: %s, status: %s", blob.Digest, blob.Status) + return -1, errors.New(nil).WithMessagef("cannot update blob status, as the status is unknown. digest: %s, status: %s", blob.Digest, blob.Status) } return m.dao.UpdateBlobStatus(ctx, blob) } diff --git a/src/pkg/immutable/dao/dao.go b/src/pkg/immutable/dao/dao.go index e957895c9c4..84e31237a14 100644 --- a/src/pkg/immutable/dao/dao.go +++ b/src/pkg/immutable/dao/dao.go @@ -69,7 +69,7 @@ func (i *iDao) UpdateImmutableRule(ctx context.Context, projectID int64, ir *mod return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("immutable %d not found", ir.ID) + return errors.NotFoundError(nil).WithMessagef("immutable %d not found", ir.ID) } return nil } @@ -86,7 +86,7 @@ func (i *iDao) ToggleImmutableRule(ctx context.Context, id int64, status bool) e return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("immutable %d not found", ir.ID) + return errors.NotFoundError(nil).WithMessagef("immutable %d not found", ir.ID) } return nil } @@ -142,7 +142,7 @@ func (i *iDao) DeleteImmutableRule(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("immutable rule %d not found", id) + return errors.NotFoundError(nil).WithMessagef("immutable rule %d not found", id) } return nil } diff --git a/src/pkg/label/dao/dao.go b/src/pkg/label/dao/dao.go index 94d2a5e333a..efd5480814c 100644 --- a/src/pkg/label/dao/dao.go +++ b/src/pkg/label/dao/dao.go @@ -123,7 +123,7 @@ func (d *defaultDAO) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("label %d not found", id) + return errors.NotFoundError(nil).WithMessagef("label %d not found", id) } return nil } @@ -184,7 +184,7 @@ func (d *defaultDAO) DeleteReference(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("label reference %d not found", id) + return errors.NotFoundError(nil).WithMessagef("label reference %d not found", id) } return nil } diff --git a/src/pkg/label/manager.go b/src/pkg/label/manager.go index 2886b316792..224a47e56b6 100644 --- a/src/pkg/label/manager.go +++ b/src/pkg/label/manager.go @@ -114,7 +114,7 @@ func (m *manager) RemoveFrom(ctx context.Context, labelID int64, artifactID int6 return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("reference with label %d and artifact %d not found", labelID, artifactID) + return errors.NotFoundError(nil).WithMessagef("reference with label %d and artifact %d not found", labelID, artifactID) } return nil } diff --git a/src/pkg/label/model/model.go b/src/pkg/label/model/model.go index e4444ee8025..b6e731de6e2 100644 --- a/src/pkg/label/model/model.go +++ b/src/pkg/label/model/model.go @@ -52,9 +52,9 @@ func (l *Label) Valid() error { } if l.Scope != common.LabelScopeGlobal && l.Scope != common.LabelScopeProject { - return errors.New(nil).WithMessage("invalid: %s", l.Scope).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("invalid: %s", l.Scope).WithCode(errors.BadRequestCode) } else if l.Scope == common.LabelScopeProject && l.ProjectID <= 0 { - return errors.New(nil).WithMessage("invalid: %d", l.ProjectID).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("invalid: %d", l.ProjectID).WithCode(errors.BadRequestCode) } return nil } diff --git a/src/pkg/member/manager.go b/src/pkg/member/manager.go index d1a748fe626..6fe8ebb0131 100644 --- a/src/pkg/member/manager.go +++ b/src/pkg/member/manager.go @@ -67,7 +67,7 @@ func (m *manager) Get(ctx context.Context, projectID int64, memberID int) (*mode } if len(pm) == 0 { return nil, errors.NotFoundError(nil). - WithMessage("the project member is not found, project id %v, member id %v", projectID, memberID) + WithMessagef("the project member is not found, project id %v, member id %v", projectID, memberID) } return pm[0], nil } diff --git a/src/pkg/notification/policy/dao/dao.go b/src/pkg/notification/policy/dao/dao.go index badd5b9d1fb..b744b0aa308 100644 --- a/src/pkg/notification/policy/dao/dao.go +++ b/src/pkg/notification/policy/dao/dao.go @@ -150,7 +150,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("notificationPolicy %d not found", id) + return errors.NotFoundError(nil).WithMessagef("notificationPolicy %d not found", id) } return nil } diff --git a/src/pkg/oidc/dao/meta.go b/src/pkg/oidc/dao/meta.go index 43efc3c44e6..37afec31eaa 100644 --- a/src/pkg/oidc/dao/meta.go +++ b/src/pkg/oidc/dao/meta.go @@ -80,7 +80,7 @@ func (md *metaDAO) Update(ctx context.Context, oidcUser *models.OIDCUser, props return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("oidc user data with id %d not found", oidcUser.ID) + return errors.NotFoundError(nil).WithMessagef("oidc user data with id %d not found", oidcUser.ID) } return nil } diff --git a/src/pkg/oidc/metamanager.go b/src/pkg/oidc/metamanager.go index c20b7806c82..301d3503aca 100644 --- a/src/pkg/oidc/metamanager.go +++ b/src/pkg/oidc/metamanager.go @@ -60,7 +60,7 @@ func (m *metaManager) GetBySubIss(ctx context.Context, sub, iss string) (*models return nil, err } if len(l) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("oidc info for user with issuer %s, subject %s not found", iss, sub) + return nil, errors.NotFoundError(nil).WithMessagef("oidc info for user with issuer %s, subject %s not found", iss, sub) } if len(l) > 1 { logger.Warningf("Multiple oidc info records found for issuer %s, subject %s", iss, sub) @@ -79,7 +79,7 @@ func (m *metaManager) GetByUserID(ctx context.Context, uid int) (*models.OIDCUse return nil, err } if len(l) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("oidc info for user %d not found", uid) + return nil, errors.NotFoundError(nil).WithMessagef("oidc info for user %d not found", uid) } if len(l) > 1 { logger.Warningf("%d records of oidc user Info found for user %d", len(l), uid) diff --git a/src/pkg/p2p/preheat/dao/policy/dao.go b/src/pkg/p2p/preheat/dao/policy/dao.go index 25b44b460b3..4de480bad46 100644 --- a/src/pkg/p2p/preheat/dao/policy/dao.go +++ b/src/pkg/p2p/preheat/dao/policy/dao.go @@ -91,7 +91,7 @@ func (d *dao) Update(ctx context.Context, schema *policy.Schema, props ...string } if id == 0 { - return errors.NotFoundError(nil).WithMessage("policy %d not found", schema.ID) + return errors.NotFoundError(nil).WithMessagef("policy %d not found", schema.ID) } return nil @@ -148,7 +148,7 @@ func (d *dao) Delete(ctx context.Context, id int64) (err error) { } if n == 0 { - return errors.NotFoundError(nil).WithMessage("policy %d not found", id) + return errors.NotFoundError(nil).WithMessagef("policy %d not found", id) } return nil diff --git a/src/pkg/p2p/preheat/models/policy/policy.go b/src/pkg/p2p/preheat/models/policy/policy.go index b9e410b1c25..2ac1b2a82fc 100644 --- a/src/pkg/p2p/preheat/models/policy/policy.go +++ b/src/pkg/p2p/preheat/models/policy/policy.go @@ -132,13 +132,13 @@ func (s *Schema) ValidatePreheatPolicy() error { if s.Trigger != nil && s.Trigger.Type == TriggerTypeScheduled && len(s.Trigger.Settings.Cron) > 0 { if err := utils.ValidateCronString(s.Trigger.Settings.Cron); err != nil { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled preheat: %s, error: %v", s.Trigger.Settings.Cron, err) + WithMessagef("invalid cron string for scheduled preheat: %s, error: %v", s.Trigger.Settings.Cron, err) } } // validate preheat scope if s.Scope != "" && s.Scope != ScopeTypeSinglePeer && s.Scope != ScopeTypeAllPeers { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid scope for preheat policy: %s", s.Scope) + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid scope for preheat policy: %s", s.Scope) } return nil diff --git a/src/pkg/project/manager.go b/src/pkg/project/manager.go index aa4d55bdb9f..5588a666e88 100644 --- a/src/pkg/project/manager.go +++ b/src/pkg/project/manager.go @@ -71,17 +71,17 @@ type manager struct { // Create creates project instance func (m *manager) Create(ctx context.Context, project *models.Project) (int64, error) { if project.OwnerID <= 0 { - return 0, errors.BadRequestError(nil).WithMessage("Owner is missing when creating project %s", project.Name) + return 0, errors.BadRequestError(nil).WithMessagef("Owner is missing when creating project %s", project.Name) } if utils.IsIllegalLength(project.Name, projectNameMinLen, projectNameMaxLen) { format := "Project name %s is illegal in length. (greater than %d or less than %d)" - return 0, errors.BadRequestError(nil).WithMessage(format, project.Name, projectNameMaxLen, projectNameMinLen) + return 0, errors.BadRequestError(nil).WithMessagef(format, project.Name, projectNameMaxLen, projectNameMinLen) } legal := validProjectName.MatchString(project.Name) if !legal { - return 0, errors.BadRequestError(nil).WithMessage("project name is not in lower case or contains illegal characters") + return 0, errors.BadRequestError(nil).WithMessagef("project name is not in lower case or contains illegal characters") } return m.dao.Create(ctx, project) @@ -107,7 +107,7 @@ func (m *manager) Get(ctx context.Context, idOrName interface{}) (*models.Projec if ok { // check white space in project name if strings.Contains(name, " ") { - return nil, errors.BadRequestError(nil).WithMessage("invalid project name: '%s'", name) + return nil, errors.BadRequestError(nil).WithMessagef("invalid project name: '%s'", name) } return m.dao.GetByName(ctx, name) } diff --git a/src/pkg/queuestatus/dao/dao.go b/src/pkg/queuestatus/dao/dao.go index 3d09c3b7a61..50826609ca4 100644 --- a/src/pkg/queuestatus/dao/dao.go +++ b/src/pkg/queuestatus/dao/dao.go @@ -24,7 +24,7 @@ import ( ) // ErrQueueTypeDup ... -var ErrQueueTypeDup = errors.ConflictError(nil).WithMessage("duplicated queue type") +var ErrQueueTypeDup = errors.ConflictError(nil).WithMessagef("duplicated queue type") func init() { orm.RegisterModel( diff --git a/src/pkg/rbac/dao/dao.go b/src/pkg/rbac/dao/dao.go index 1678a522c14..0c05b8388a5 100644 --- a/src/pkg/rbac/dao/dao.go +++ b/src/pkg/rbac/dao/dao.go @@ -74,7 +74,7 @@ func (d *dao) DeletePermission(ctx context.Context, id int64) (err error) { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("role permission %d not found", id) + return errors.NotFoundError(nil).WithMessagef("role permission %d not found", id) } return nil } @@ -106,7 +106,7 @@ func (d *dao) DeletePermissionsByRole(ctx context.Context, roleType string, role return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("role permission %s:%d not found", roleType, roleID) + return errors.NotFoundError(nil).WithMessagef("role permission %s:%d not found", roleType, roleID) } return err } @@ -132,7 +132,7 @@ func (d *dao) DeleteRbacPolicy(ctx context.Context, id int64) (err error) { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("rbac policy %d not found", id) + return errors.NotFoundError(nil).WithMessagef("rbac policy %d not found", id) } return nil } diff --git a/src/pkg/reg/adapter/googlegcr/adapter.go b/src/pkg/reg/adapter/googlegcr/adapter.go index 43d80722fd5..75a33665c9f 100644 --- a/src/pkg/reg/adapter/googlegcr/adapter.go +++ b/src/pkg/reg/adapter/googlegcr/adapter.go @@ -212,7 +212,7 @@ func (a adapter) DeleteManifest(repository, reference string) error { if d == "" { return errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("%s:%s not found", repository, reference) + WithMessagef("%s:%s not found", repository, reference) } for _, t := range append(tags, d) { req, err := http.NewRequest(http.MethodDelete, buildManifestURL(a.registry.URL, repository, t), nil) diff --git a/src/pkg/reg/dao/dao.go b/src/pkg/reg/dao/dao.go index afdd941acf5..c1ab4acad00 100644 --- a/src/pkg/reg/dao/dao.go +++ b/src/pkg/reg/dao/dao.go @@ -109,7 +109,7 @@ func (d *dao) Update(ctx context.Context, registry *Registry, props ...string) e return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("registry %d not found", registry.ID) + return errors.NotFoundError(nil).WithMessagef("registry %d not found", registry.ID) } return nil } @@ -126,7 +126,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("registry %d not found", id) + return errors.NotFoundError(nil).WithMessagef("registry %d not found", id) } return nil } diff --git a/src/pkg/reg/model/policy.go b/src/pkg/reg/model/policy.go index e7352c16fb9..80ea5a415b2 100644 --- a/src/pkg/reg/model/policy.go +++ b/src/pkg/reg/model/policy.go @@ -46,42 +46,42 @@ func (f *Filter) Validate() error { value, ok := f.Value.(string) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the type of filter value isn't string") + WithMessagef("the type of filter value isn't string") } if f.Type == FilterTypeResource { rt := value if !(rt == ResourceTypeArtifact || rt == ResourceTypeImage) { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid resource filter: %s", value) + WithMessagef("invalid resource filter: %s", value) } } if f.Type == FilterTypeName || f.Type == FilterTypeResource { if f.Decoration != "" { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("only tag and label filter support decoration") + WithMessagef("only tag and label filter support decoration") } } case FilterTypeLabel: labels, ok := f.Value.([]interface{}) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the type of label filter value isn't string slice") + WithMessagef("the type of label filter value isn't string slice") } for _, label := range labels { _, ok := label.(string) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("the type of label filter value isn't string slice") + WithMessagef("the type of label filter value isn't string slice") } } default: return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid filter type") + WithMessagef("invalid filter type") } if f.Decoration != "" && f.Decoration != Matches && f.Decoration != Excludes { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid filter decoration, :%s", f.Decoration) + WithMessagef("invalid filter decoration, :%s", f.Decoration) } return nil diff --git a/src/pkg/reg/util/util.go b/src/pkg/reg/util/util.go index 4c628871d44..ca94ce6419b 100644 --- a/src/pkg/reg/util/util.go +++ b/src/pkg/reg/util/util.go @@ -49,7 +49,7 @@ func Ping(registry *model.Registry) (string, string, error) { return challenge.Parameters["realm"], challenge.Parameters["service"], nil } } - return "", "", errors.New(nil).WithCode(errors.ChallengesUnsupportedCode).WithMessage("bearer auth scheme isn't supported: %v", challenges) + return "", "", errors.New(nil).WithCode(errors.ChallengesUnsupportedCode).WithMessagef("bearer auth scheme isn't supported: %v", challenges) } // ParseRepository parses the "repository" provided into two parts: namespace and the rest diff --git a/src/pkg/registry/auth/bearer/authorizer.go b/src/pkg/registry/auth/bearer/authorizer.go index 5f8ff730131..402632b745b 100644 --- a/src/pkg/registry/auth/bearer/authorizer.go +++ b/src/pkg/registry/auth/bearer/authorizer.go @@ -133,7 +133,7 @@ func (a *authorizer) fetchToken(scopes []*scope) (*token, error) { code = errors.ForbiddenCode } return nil, errors.New(nil).WithCode(code). - WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) + WithMessagef("http status code: %d, body: %s", resp.StatusCode, string(body)) } token := &token{} if err = json.Unmarshal(body, token); err != nil { diff --git a/src/pkg/registry/client.go b/src/pkg/registry/client.go index 850a2432565..cc5af14ea36 100644 --- a/src/pkg/registry/client.go +++ b/src/pkg/registry/client.go @@ -340,7 +340,7 @@ func (c *client) DeleteManifest(repository, reference string) error { } if !exist { return errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("%s:%s not found", repository, reference) + WithMessagef("%s:%s not found", repository, reference) } reference = string(desc.Digest) } @@ -597,7 +597,7 @@ func (c *client) Copy(srcRepo, srcRef, dstRepo, dstRef string, override bool) er // the same name artifact exists, but not allowed to override if !override { return errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("the same name but different digest artifact exists, but the override is set to false") + WithMessagef("the same name but different digest artifact exists, but the override is set to false") } } @@ -681,7 +681,7 @@ func (c *client) do(req *http.Request) (*http.Response, error) { code = errors.RateLimitCode } return nil, errors.New(nil).WithCode(code). - WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) + WithMessagef("http status code: %d, body: %s", resp.StatusCode, string(body)) } return resp, nil } diff --git a/src/pkg/replication/dao/dao.go b/src/pkg/replication/dao/dao.go index 6beb2ad56f2..f5c736c88e4 100644 --- a/src/pkg/replication/dao/dao.go +++ b/src/pkg/replication/dao/dao.go @@ -109,7 +109,7 @@ func (d *dao) Update(ctx context.Context, policy *model.Policy, props ...string) } if n == 0 { - return errors.NotFoundError(nil).WithMessage("replication policy %d not found", policy.ID) + return errors.NotFoundError(nil).WithMessagef("replication policy %d not found", policy.ID) } return nil } @@ -126,7 +126,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("replication policy %d not found", id) + return errors.NotFoundError(nil).WithMessagef("replication policy %d not found", id) } return nil } diff --git a/src/pkg/repository/dao/dao.go b/src/pkg/repository/dao/dao.go index 864761ef728..4c814730e1e 100644 --- a/src/pkg/repository/dao/dao.go +++ b/src/pkg/repository/dao/dao.go @@ -113,7 +113,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("repository %d not found", id) + return errors.NotFoundError(nil).WithMessagef("repository %d not found", id) } return nil } @@ -128,7 +128,7 @@ func (d *dao) Update(ctx context.Context, repository *model.RepoRecord, props .. return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("repository %d not found", repository.RepositoryID) + return errors.NotFoundError(nil).WithMessagef("repository %d not found", repository.RepositoryID) } return nil } @@ -147,7 +147,7 @@ func (d *dao) AddPullCount(ctx context.Context, id int64, count uint64) error { return err } if num == 0 { - return errors.New(nil).WithMessage("failed to increase repository pull count: %d", id) + return errors.New(nil).WithMessagef("failed to increase repository pull count: %d", id) } return nil } diff --git a/src/pkg/repository/manager.go b/src/pkg/repository/manager.go index a27260ea397..4e36821dc0d 100644 --- a/src/pkg/repository/manager.go +++ b/src/pkg/repository/manager.go @@ -83,7 +83,7 @@ func (m *manager) GetByName(ctx context.Context, name string) (repository *model } if len(repositories) == 0 { return nil, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("repository %s not found", name) + WithMessagef("repository %s not found", name) } return repositories[0], nil } diff --git a/src/pkg/retention/policy/models.go b/src/pkg/retention/policy/models.go index 14e7630f446..7e5e8d0b9fc 100644 --- a/src/pkg/retention/policy/models.go +++ b/src/pkg/retention/policy/models.go @@ -69,7 +69,7 @@ func (m *Metadata) ValidateRetentionPolicy() error { if ok && len(cronItem.(string)) > 0 { if err := utils.ValidateCronString(cronItem.(string)); err != nil { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled tag retention: %s, error: %v", cronItem.(string), err) + WithMessagef("invalid cron string for scheduled tag retention: %s, error: %v", cronItem.(string), err) } } } diff --git a/src/pkg/robot/dao/dao.go b/src/pkg/robot/dao/dao.go index c8bb7abb147..b2f9608263d 100644 --- a/src/pkg/robot/dao/dao.go +++ b/src/pkg/robot/dao/dao.go @@ -78,7 +78,7 @@ func (d *dao) Update(ctx context.Context, r *model.Robot, props ...string) error return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("robot %d not found", r.ID) + return errors.NotFoundError(nil).WithMessagef("robot %d not found", r.ID) } return nil } @@ -117,7 +117,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("robot account %d not found", id) + return errors.NotFoundError(nil).WithMessagef("robot account %d not found", id) } return nil } diff --git a/src/pkg/scan/dao/scanner/registration.go b/src/pkg/scan/dao/scanner/registration.go index 4b1190e0bac..038b6af32de 100644 --- a/src/pkg/scan/dao/scanner/registration.go +++ b/src/pkg/scan/dao/scanner/registration.go @@ -154,7 +154,7 @@ func SetDefaultRegistration(ctx context.Context, UUID string) error { return err } if count == 0 { - return errors.NotFoundError(nil).WithMessage("registration %s not found", UUID) + return errors.NotFoundError(nil).WithMessagef("registration %s not found", UUID) } qt2 := o.QueryTable(new(Registration)) diff --git a/src/pkg/scan/postprocessors/report_converters.go b/src/pkg/scan/postprocessors/report_converters.go index 0a91f41ad38..c2603220151 100644 --- a/src/pkg/scan/postprocessors/report_converters.go +++ b/src/pkg/scan/postprocessors/report_converters.go @@ -339,7 +339,7 @@ func (c *nativeToRelationalSchemaConverter) updateReport(ctx context.Context, vu return err } if len(reports) == 0 { - return errors.New(nil).WithMessage("report not found, uuid:%v", reportUUID) + return errors.New(nil).WithMessagef("report not found, uuid:%v", reportUUID) } r := reports[0] diff --git a/src/pkg/scan/sbom/sbom.go b/src/pkg/scan/sbom/sbom.go index b58057f9e32..29ba54cbe92 100644 --- a/src/pkg/scan/sbom/sbom.go +++ b/src/pkg/scan/sbom/sbom.go @@ -233,7 +233,7 @@ func (h *scanHandler) delete(ctx context.Context, art *artifact.Artifact, mimeTy taskMgr := h.TaskMgrFunc() for _, rpt := range sbomReports { if !taskMgr.IsTaskFinished(ctx, rpt.UUID) { - return errors.ConflictError(nil).WithMessage("a previous sbom generate process is running") + return errors.ConflictError(nil).WithMessagef("a previous sbom generate process is running") } } @@ -287,7 +287,7 @@ func (h *scanHandler) GetPlaceHolder(ctx context.Context, artRepo string, artDig } if len(rpts) == 0 { logger.Errorf("No report found for artifact %s@%s of mimetype %s, error %v", artRepo, artDigest, mimeType, err) - return nil, errors.NotFoundError(nil).WithMessage("no report found to update data") + return nil, errors.NotFoundError(nil).WithMessagef("no report found to update data") } return &scanModel.Report{ UUID: rpts[0].UUID, diff --git a/src/pkg/scan/vulnerability/vul.go b/src/pkg/scan/vulnerability/vul.go index 3a9cb5d0cf6..60b63a58ca7 100644 --- a/src/pkg/scan/vulnerability/vul.go +++ b/src/pkg/scan/vulnerability/vul.go @@ -73,7 +73,7 @@ func (h *scanHandler) MakePlaceHolder(ctx context.Context, art *artifact.Artifac if len(oldReports) > 0 { for _, oldReport := range oldReports { if !job.Status(oldReport.Status).Final() { - return nil, errors.ConflictError(nil).WithMessage("a previous scan process is %s", oldReport.Status) + return nil, errors.ConflictError(nil).WithMessagef("a previous scan process is %s", oldReport.Status) } } @@ -203,7 +203,7 @@ func (h *scanHandler) getScanTask(ctx context.Context, reportUUID string) (*task } if len(tasks) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("task for report %s not found", reportUUID) + return nil, errors.NotFoundError(nil).WithMessagef("task for report %s not found", reportUUID) } return tasks[0], nil @@ -219,7 +219,7 @@ func (h *scanHandler) GetPlaceHolder(ctx context.Context, _ string, artDigest, s } if len(reports) == 0 { logger.Errorf("no report found for artifact %s of mimetype %s, error %v", artDigest, mimeType, err) - return nil, errors.NotFoundError(nil).WithMessage("no report found to update data") + return nil, errors.NotFoundError(nil).WithMessagef("no report found to update data") } return reports[0], nil } diff --git a/src/pkg/scheduler/dao.go b/src/pkg/scheduler/dao.go index e061d7ed7bd..1f56e7fdb62 100644 --- a/src/pkg/scheduler/dao.go +++ b/src/pkg/scheduler/dao.go @@ -114,7 +114,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("schedule %d not found", id) + return errors.NotFoundError(nil).WithMessagef("schedule %d not found", id) } return nil @@ -132,7 +132,7 @@ func (d *dao) Update(ctx context.Context, schedule *schedule, props ...string) e return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("schedule %d not found", schedule.ID) + return errors.NotFoundError(nil).WithMessagef("schedule %d not found", schedule.ID) } return nil } diff --git a/src/pkg/scheduler/scheduler.go b/src/pkg/scheduler/scheduler.go index 27227bb47b5..be065e6d6ab 100644 --- a/src/pkg/scheduler/scheduler.go +++ b/src/pkg/scheduler/scheduler.go @@ -99,7 +99,7 @@ func (s *scheduler) Schedule(ctx context.Context, vendorType string, vendorID in } if _, err := utils.CronParser().Parse(cron); err != nil { return 0, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron %s: %v", cron, err) + WithMessagef("invalid cron %s: %v", cron, err) } if !callbackFuncExist(callbackFuncName) { return 0, fmt.Errorf("callback function %s not found", callbackFuncName) diff --git a/src/pkg/tag/dao/dao.go b/src/pkg/tag/dao/dao.go index 79acf00de9b..26103e21a48 100644 --- a/src/pkg/tag/dao/dao.go +++ b/src/pkg/tag/dao/dao.go @@ -119,7 +119,7 @@ func (d *dao) Update(ctx context.Context, tag *tag.Tag, props ...string) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("tag %d not found", tag.ID) + return errors.NotFoundError(nil).WithMessagef("tag %d not found", tag.ID) } return nil } @@ -135,7 +135,7 @@ func (d *dao) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("tag %d not found", id) + return errors.NotFoundError(nil).WithMessagef("tag %d not found", id) } return nil } diff --git a/src/pkg/task/dao/execution.go b/src/pkg/task/dao/execution.go index 6775a7f3ac8..54128742d18 100644 --- a/src/pkg/task/dao/execution.go +++ b/src/pkg/task/dao/execution.go @@ -161,7 +161,7 @@ func (e *executionDAO) Update(ctx context.Context, execution *Execution, props . return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("execution %d not found", execution.ID) + return errors.NotFoundError(nil).WithMessagef("execution %d not found", execution.ID) } return nil } @@ -182,7 +182,7 @@ func (e *executionDAO) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("execution %d not found", id) + return errors.NotFoundError(nil).WithMessagef("execution %d not found", id) } return nil } diff --git a/src/pkg/task/dao/task.go b/src/pkg/task/dao/task.go index 6bdcec19944..6bead6283ba 100644 --- a/src/pkg/task/dao/task.go +++ b/src/pkg/task/dao/task.go @@ -166,7 +166,7 @@ func (t *taskDAO) Update(ctx context.Context, task *Task, props ...string) error return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("task %d not found", task.ID) + return errors.NotFoundError(nil).WithMessagef("task %d not found", task.ID) } return nil } @@ -217,7 +217,7 @@ func (t *taskDAO) Delete(ctx context.Context, id int64) error { return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("task %d not found", id) + return errors.NotFoundError(nil).WithMessagef("task %d not found", id) } return nil } diff --git a/src/pkg/task/execution.go b/src/pkg/task/execution.go index e2160cd8982..31c993e36e2 100644 --- a/src/pkg/task/execution.go +++ b/src/pkg/task/execution.go @@ -275,7 +275,7 @@ func (e *executionManager) Delete(ctx context.Context, id int64) error { for _, task := range tasks { if !job.Status(task.Status).Final() { return errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("the execution %d has tasks that aren't in final status, stop the tasks first", id) + WithMessagef("the execution %d has tasks that aren't in final status, stop the tasks first", id) } log.Debugf("delete task %d as execution %d has been deleted", task.ID, task.ExecutionID) @@ -305,7 +305,7 @@ func (e *executionManager) DeleteByVendor(ctx context.Context, vendorType string for _, execution := range executions { if !job.Status(execution.Status).Final() { return errors.New(nil).WithCode(errors.PreconditionCode). - WithMessage("contains executions that aren't in final status, stop the execution first") + WithMessagef("contains executions that aren't in final status, stop the execution first") } } // delete the executions diff --git a/src/pkg/task/hook.go b/src/pkg/task/hook.go index 829a49156d8..46ca8e91517 100644 --- a/src/pkg/task/hook.go +++ b/src/pkg/task/hook.go @@ -78,7 +78,7 @@ func (h *HookHandler) Handle(ctx context.Context, sc *job.StatusChange) error { } if len(tasks) == 0 { return errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("task with job ID %s not found", sc.JobID) + WithMessagef("task with job ID %s not found", sc.JobID) } task := tasks[0] execution, err := h.executionDAO.Get(ctx, task.ExecutionID) diff --git a/src/pkg/token/token.go b/src/pkg/token/token.go index 63759178ae0..61fc9885bab 100644 --- a/src/pkg/token/token.go +++ b/src/pkg/token/token.go @@ -18,6 +18,7 @@ import ( "crypto/ecdsa" "crypto/rsa" "errors" + "github.com/golang-jwt/jwt/v5" "github.com/goharbor/harbor/src/common" diff --git a/src/pkg/user/dao/dao.go b/src/pkg/user/dao/dao.go index f93bdb21206..13faf96be2c 100644 --- a/src/pkg/user/dao/dao.go +++ b/src/pkg/user/dao/dao.go @@ -71,7 +71,7 @@ func (d *dao) Count(ctx context.Context, query *q.Query) (int64, error) { func (d *dao) Create(ctx context.Context, user *commonmodels.User) (int, error) { if user.UserID > 0 { - return 0, errors.BadRequestError(nil).WithMessage("user ID is set when creating user: %d", user.UserID) + return 0, errors.BadRequestError(nil).WithMessagef("user ID is set when creating user: %d", user.UserID) } ormer, err := orm.FromContext(ctx) if err != nil { @@ -94,7 +94,7 @@ func (d *dao) Update(ctx context.Context, user *commonmodels.User, props ...stri return err } if n == 0 { - return errors.NotFoundError(nil).WithMessage("user with id %d not found", user.UserID) + return errors.NotFoundError(nil).WithMessagef("user with id %d not found", user.UserID) } return nil } diff --git a/src/pkg/user/manager.go b/src/pkg/user/manager.go index 5efb05578ff..85206b67058 100644 --- a/src/pkg/user/manager.go +++ b/src/pkg/user/manager.go @@ -182,7 +182,7 @@ func (m *manager) Get(ctx context.Context, id int) (*commonmodels.User, error) { } if len(users) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("user %d not found", id) + return nil, errors.NotFoundError(nil).WithMessagef("user %d not found", id) } return users[0], nil @@ -196,7 +196,7 @@ func (m *manager) GetByName(ctx context.Context, username string) (*commonmodels } if len(users) == 0 { - return nil, errors.NotFoundError(nil).WithMessage("user %s not found", username) + return nil, errors.NotFoundError(nil).WithMessagef("user %s not found", username) } return users[0], nil diff --git a/src/pkg/user/manager_test.go b/src/pkg/user/manager_test.go index 166513149b7..bad8d399b53 100644 --- a/src/pkg/user/manager_test.go +++ b/src/pkg/user/manager_test.go @@ -91,7 +91,7 @@ func (m *mgrTestSuite) TestOnboard() { m.dao.On("Create", mock.Anything, testifymock.MatchedBy( func(u *models.User) bool { return u.Username == "existing" - })).Return(0, errors.ConflictError(nil).WithMessage("username exists")) + })).Return(0, errors.ConflictError(nil).WithMessagef("username exists")) m.dao.On("Create", mock.Anything, testifymock.MatchedBy( func(u *models.User) bool { return u.Username != "existing" && u.Username != "dup-but-not-existing" diff --git a/src/pkg/usergroup/dao/dao.go b/src/pkg/usergroup/dao/dao.go index e6c15fc4bbb..b2e97a24d9d 100644 --- a/src/pkg/usergroup/dao/dao.go +++ b/src/pkg/usergroup/dao/dao.go @@ -60,7 +60,7 @@ func New() DAO { } // ErrGroupNameDup ... -var ErrGroupNameDup = errors.ConflictError(nil).WithMessage("duplicated user group name") +var ErrGroupNameDup = errors.ConflictError(nil).WithMessagef("duplicated user group name") // Add - Add User Group func (d *dao) Add(ctx context.Context, userGroup model.UserGroup) (int, error) { diff --git a/src/registryctl/client/client.go b/src/registryctl/client/client.go index ae29fa112b3..348d90012d6 100644 --- a/src/registryctl/client/client.go +++ b/src/registryctl/client/client.go @@ -134,7 +134,7 @@ func (c *client) do(req *http.Request) (*http.Response, error) { code = errors.NotFoundCode } return nil, errors.New(nil).WithCode(code). - WithMessage("http status code: %d, body: %s", resp.StatusCode, string(body)) + WithMessagef("http status code: %d, body: %s", resp.StatusCode, string(body)) } return resp, nil } diff --git a/src/server/middleware/blob/copy_artifact.go b/src/server/middleware/blob/copy_artifact.go index 2b39e4dbf28..ea3884b6e5f 100644 --- a/src/server/middleware/blob/copy_artifact.go +++ b/src/server/middleware/blob/copy_artifact.go @@ -49,7 +49,7 @@ func CopyArtifactMiddleware() func(http.Handler) http.Handler { art, err := artifactController.GetByReference(ctx, repository, reference, &artifact.Option{WithAccessory: true}) if errors.IsNotFoundErr(err) { // artifact not found, discontinue the API request - return errors.BadRequestError(nil).WithMessage("artifact %s not found", from) + return errors.BadRequestError(nil).WithMessagef("artifact %s not found", from) } else if err != nil { logger.Errorf("get artifact %s failed, error: %v", from, err) return err diff --git a/src/server/middleware/blob/head_blob.go b/src/server/middleware/blob/head_blob.go index 412b5a6bbb2..f2ac625f47f 100644 --- a/src/server/middleware/blob/head_blob.go +++ b/src/server/middleware/blob/head_blob.go @@ -69,11 +69,11 @@ func handleHead(req *http.Request) error { return errors.Wrapf(err, "the request id is: %s", req.Header.Get(requestid.HeaderXRequestID)) } } - return errors.New(nil).WithMessage("the asking blob is in GC, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("the asking blob is in GC, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) case blob_models.StatusDeleteFailed: - return errors.New(nil).WithMessage("the asking blob is delete failed, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("the asking blob is delete failed, mark it as non existing, request id: %s", req.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) default: - return errors.New(nil).WithMessage("wrong blob status, %s", bb.Status) + return errors.New(nil).WithMessagef("wrong blob status, %s", bb.Status) } return nil } diff --git a/src/server/middleware/blob/util.go b/src/server/middleware/blob/util.go index 6742d78f1e5..dc606d8cf4b 100644 --- a/src/server/middleware/blob/util.go +++ b/src/server/middleware/blob/util.go @@ -15,7 +15,6 @@ package blob import ( - "fmt" "net/http" "time" @@ -57,7 +56,7 @@ func probeBlob(r *http.Request, digest string) error { // StatusDeleteFailed => StatusNone, and then let the proxy to handle manifest upload return probeBlob(r, digest) } - return errors.New(nil).WithMessage(fmt.Sprintf("the asking blob is in GC, mark it as non existing, request id: %s", r.Header.Get(requestid.HeaderXRequestID))).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("the asking blob is in GC, mark it as non existing, request id: %s", r.Header.Get(requestid.HeaderXRequestID)).WithCode(errors.NotFoundCode) default: return nil } diff --git a/src/server/middleware/contenttrust/contentrust.go b/src/server/middleware/contenttrust/contentrust.go index e3eabcdc156..847ded5df33 100644 --- a/src/server/middleware/contenttrust/contentrust.go +++ b/src/server/middleware/contenttrust/contentrust.go @@ -47,7 +47,7 @@ func ContentTrust() func(http.Handler) http.Handler { if pro.ContentTrustCosignEnabled() { if err := signatureChecking(ctx, r, af, pro.ProjectID, model.TypeCosignSignature); err != nil { if errors.IsErr(err, errors.PROJECTPOLICYVIOLATION) { - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage("The image is not signed by cosign.") + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef("The image is not signed by cosign.") } return err } @@ -55,7 +55,7 @@ func ContentTrust() func(http.Handler) http.Handler { if pro.ContentTrustEnabled() { if err := signatureChecking(ctx, r, af, pro.ProjectID, model.TypeNotationSignature); err != nil { if errors.IsErr(err, errors.PROJECTPOLICYVIOLATION) { - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage("The image is not signed by notation.") + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef("The image is not signed by notation.") } return err } diff --git a/src/server/middleware/quota/copy_artifact.go b/src/server/middleware/quota/copy_artifact.go index b5630907d7b..a8e49432c06 100644 --- a/src/server/middleware/quota/copy_artifact.go +++ b/src/server/middleware/quota/copy_artifact.go @@ -88,7 +88,7 @@ func copyArtifactResources(r *http.Request, _, referenceID string) (types.Resour }) if errors.IsNotFoundErr(err) { // artifact not found, discontinue the API request - return nil, errors.BadRequestError(nil).WithMessage("artifact %s not found", from) + return nil, errors.BadRequestError(nil).WithMessagef("artifact %s not found", from) } else if err != nil { logger.Errorf("get artifact %s failed, error: %v", from, err) return nil, err diff --git a/src/server/middleware/quota/put_blob_upload_test.go b/src/server/middleware/quota/put_blob_upload_test.go index d0d37eae34b..25125689d19 100644 --- a/src/server/middleware/quota/put_blob_upload_test.go +++ b/src/server/middleware/quota/put_blob_upload_test.go @@ -140,7 +140,7 @@ func (suite *PutBlobUploadMiddlewareTestSuite) TestResourcesExceeded() { var errs quota.Errors errs = errs.Add(quota.NewResourceOverflowError(types.ResourceStorage, 100, 100, 110)) - err := errors.DeniedError(errs).WithMessage("Quota exceeded when processing the request of %v", errs) + err := errors.DeniedError(errs).WithMessagef("Quota exceeded when processing the request of %v", errs) mock.OnAnything(suite.quotaController, "Request").Return(err).Once() req := suite.makeRequest(100) diff --git a/src/server/middleware/quota/put_manifest_test.go b/src/server/middleware/quota/put_manifest_test.go index 62c98060382..f7539157f36 100644 --- a/src/server/middleware/quota/put_manifest_test.go +++ b/src/server/middleware/quota/put_manifest_test.go @@ -213,7 +213,7 @@ func (suite *PutManifestMiddlewareTestSuite) TestResourcesExceeded() { var errs quota.Errors errs = errs.Add(quota.NewResourceOverflowError(types.ResourceStorage, 100, 100, 110)) - err := errors.DeniedError(errs).WithMessage("Quota exceeded when processing the request of %v", errs) + err := errors.DeniedError(errs).WithMessagef("Quota exceeded when processing the request of %v", errs) mock.OnAnything(suite.quotaController, "Request").Return(err).Once() req := httptest.NewRequest(http.MethodPut, "/v2/library/photon/manifests/2.0", nil) diff --git a/src/server/middleware/readonly/readonly.go b/src/server/middleware/readonly/readonly.go index cde12074cbb..31cdd8ba7f5 100644 --- a/src/server/middleware/readonly/readonly.go +++ b/src/server/middleware/readonly/readonly.go @@ -69,7 +69,7 @@ func MiddlewareWithConfig(config Config, skippers ...middleware.Skipper) func(ht return middleware.New(func(w http.ResponseWriter, r *http.Request, next http.Handler) { if config.ReadOnly(r) { - pkgE := errors.New(nil).WithCode(errors.DENIED).WithMessage("The system is in read only mode. Any modification is prohibited.") + pkgE := errors.New(nil).WithCode(errors.DENIED).WithMessagef("The system is in read only mode. Any modification is prohibited.") lib_http.SendError(w, pkgE) return } diff --git a/src/server/middleware/v2auth/auth.go b/src/server/middleware/v2auth/auth.go index a64fcf0ac97..fa1a7e4076c 100644 --- a/src/server/middleware/v2auth/auth.go +++ b/src/server/middleware/v2auth/auth.go @@ -164,7 +164,7 @@ func Middleware() func(http.Handler) http.Handler { // the header is needed for "docker manifest" commands: https://github.com/docker/cli/issues/989 rw.Header().Set("Docker-Distribution-Api-Version", "registry/2.0") rw.Header().Set("Www-Authenticate", challenge) - lib_http.SendError(rw, errors.UnauthorizedError(err).WithMessage(err.Error())) + lib_http.SendError(rw, errors.UnauthorizedError(err).WithMessagef(err.Error())) return } next.ServeHTTP(rw, req) diff --git a/src/server/middleware/vulnerable/vulnerable.go b/src/server/middleware/vulnerable/vulnerable.go index 5fbd52ebb11..d3c238c1b92 100644 --- a/src/server/middleware/vulnerable/vulnerable.go +++ b/src/server/middleware/vulnerable/vulnerable.go @@ -100,7 +100,7 @@ func Middleware() func(http.Handler) http.Handler { // No report yet? msg := fmt.Sprintf(`current image without vulnerability scanning cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator for help.`, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) } logger.Errorf("get vulnerability summary of the artifact %s@%s failed, error: %v", art.RepositoryName, art.Digest, err) @@ -122,7 +122,7 @@ func Middleware() func(http.Handler) http.Handler { if !vulnerable.IsScanSuccess() { msg := fmt.Sprintf(`current image with "%s" status of vulnerability scanning cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator for help.`, vulnerable.ScanStatus, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) } // Do judgement @@ -134,7 +134,7 @@ func Middleware() func(http.Handler) http.Handler { msg := fmt.Sprintf(`current image with %d %s cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator to exempt matched vulnerabilities through configuring the CVE allowlist.`, vulnerable.VulnerabilitiesCount, thing, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) } // Print scannerPull CVE list diff --git a/src/server/registry/catalog.go b/src/server/registry/catalog.go index 71971a5841c..5000e7757b1 100644 --- a/src/server/registry/catalog.go +++ b/src/server/registry/catalog.go @@ -48,7 +48,7 @@ func (r *repositoryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) if withN { maxEntries, err = strconv.Atoi(reqQ.Get("n")) if err != nil || maxEntries < 0 { - err := errors.New(err).WithCode(errors.BadRequestCode).WithMessage("the N must be a positive int type") + err := errors.New(err).WithCode(errors.BadRequestCode).WithMessagef("the N must be a positive int type") lib_http.SendError(w, err) return } @@ -82,7 +82,7 @@ func (r *repositoryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) if lastEntry != "" { lastEntryIndex := util.IndexString(repoNames, lastEntry) if lastEntryIndex == -1 { - err := errors.New(nil).WithCode(errors.BadRequestCode).WithMessage(fmt.Sprintf("the last: %s should be a valid repository name.", lastEntry)) + err := errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef(fmt.Sprintf("the last: %s should be a valid repository name.", lastEntry)) lib_http.SendError(w, err) return } diff --git a/src/server/registry/util/util.go b/src/server/registry/util/util.go index 2915da71e85..4be46548b59 100644 --- a/src/server/registry/util/util.go +++ b/src/server/registry/util/util.go @@ -67,7 +67,7 @@ func ParseNAndLastParameters(r *http.Request) (*int, string, error) { if q.Get("n") != "" { value, err := strconv.Atoi(q.Get("n")) if err != nil || value < 0 { - return nil, "", errors.New(err).WithCode(errors.BadRequestCode).WithMessage("the N must be a positive int type") + return nil, "", errors.New(err).WithCode(errors.BadRequestCode).WithMessagef("the N must be a positive int type") } n = &value diff --git a/src/server/v2.0/handler/artifact.go b/src/server/v2.0/handler/artifact.go index 64fff3f32c4..725baa9e52a 100644 --- a/src/server/v2.0/handler/artifact.go +++ b/src/server/v2.0/handler/artifact.go @@ -190,7 +190,7 @@ func (a *artifactAPI) CopyArtifact(ctx context.Context, params operation.CopyArt return a.SendError(ctx, err) } if len(accs) >= 1 && accs[0].IsHard() { - return a.SendError(ctx, errors.New(nil).WithCode(errors.DENIED).WithMessage("the operation isn't supported for an artifact accessory")) + return a.SendError(ctx, errors.New(nil).WithCode(errors.DENIED).WithMessagef("the operation isn't supported for an artifact accessory")) } dstRepo := fmt.Sprintf("%s/%s", params.ProjectName, params.RepositoryName) @@ -212,7 +212,7 @@ func parse(s string) (string, string, error) { matches := reference.ReferenceRegexp.FindStringSubmatch(s) if matches == nil { return "", "", errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid input: %s", s) + WithMessagef("invalid input: %s", s) } repository := matches[1] reference := matches[2] @@ -220,7 +220,7 @@ func parse(s string) (string, string, error) { _, err := digest.Parse(matches[3]) if err != nil { return "", "", errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid input: %s", s) + WithMessagef("invalid input: %s", s) } reference = matches[3] } @@ -270,7 +270,7 @@ func (a *artifactAPI) requireNonProxyCacheProject(ctx context.Context, name stri } if pro.IsProxy() { return errors.New(nil).WithCode(errors.MethodNotAllowedCode). - WithMessage("the operation isn't supported for a proxy cache project") + WithMessagef("the operation isn't supported for a proxy cache project") } return nil } @@ -295,7 +295,7 @@ func (a *artifactAPI) DeleteTag(ctx context.Context, params operation.DeleteTagP } // the tag not found if id == 0 { - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage( + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef( "tag %s attached to artifact %d not found", params.TagName, artifact.ID) return a.SendError(ctx, err) } @@ -496,7 +496,7 @@ func (a *artifactAPI) RequireLabelInProject(ctx context.Context, projectID, labe return err } if l.Scope == common.LabelScopeProject && l.ProjectID != projectID { - return errors.NotFoundError(nil).WithMessage("project id %d, label %d not found", projectID, labelID) + return errors.NotFoundError(nil).WithMessagef("project id %d, label %d not found", projectID, labelID) } return nil } diff --git a/src/server/v2.0/handler/auditlog.go b/src/server/v2.0/handler/auditlog.go index 22540b1aec2..982258055e7 100644 --- a/src/server/v2.0/handler/auditlog.go +++ b/src/server/v2.0/handler/auditlog.go @@ -51,7 +51,7 @@ func (a *auditlogAPI) ListAuditLogs(ctx context.Context, params auditlog.ListAud return a.SendError(ctx, errors.UnauthorizedError(errors.New("security context not found"))) } if !secCtx.IsAuthenticated() { - return a.SendError(ctx, errors.UnauthorizedError(nil).WithMessage(secCtx.GetUsername())) + return a.SendError(ctx, errors.UnauthorizedError(nil).WithMessagef(secCtx.GetUsername())) } query, err := a.BuildQuery(ctx, params.Q, params.Sort, params.Page, params.PageSize) if err != nil { diff --git a/src/server/v2.0/handler/base.go b/src/server/v2.0/handler/base.go index ed166392b5a..a21d0678e7d 100644 --- a/src/server/v2.0/handler/base.go +++ b/src/server/v2.0/handler/base.go @@ -130,7 +130,7 @@ func (b *BaseAPI) RequireSystemAccess(ctx context.Context, action rbac.Action, s } resource := system.NewNamespace().Resource(subresource...) if !secCtx.Can(ctx, action, resource) { - return errors.ForbiddenError(nil).WithMessage(secCtx.GetUsername()) + return errors.ForbiddenError(nil).WithMessagef(secCtx.GetUsername()) } return nil } @@ -151,7 +151,7 @@ func (b *BaseAPI) RequireAuthenticated(ctx context.Context) error { func (b *BaseAPI) RequireSolutionUserAccess(ctx context.Context) error { sec, exist := security.FromContext(ctx) if !exist || !sec.IsSolutionUser() { - return errors.UnauthorizedError(nil).WithMessage("only internal service is allowed to call this API") + return errors.UnauthorizedError(nil).WithMessagef("only internal service is allowed to call this API") } return nil } diff --git a/src/server/v2.0/handler/config.go b/src/server/v2.0/handler/config.go index b0e4e6958ab..bdb136fb9a4 100644 --- a/src/server/v2.0/handler/config.go +++ b/src/server/v2.0/handler/config.go @@ -77,7 +77,7 @@ func (c *configAPI) UpdateConfigurations(ctx context.Context, params configure.U return c.SendError(ctx, err) } if params.Configurations == nil { - return c.SendError(ctx, errors.BadRequestError(nil).WithMessage("Missing configure item")) + return c.SendError(ctx, errors.BadRequestError(nil).WithMessagef("Missing configure item")) } conf := params.Configurations cfgMap, err := toCfgMap(conf) diff --git a/src/server/v2.0/handler/gc.go b/src/server/v2.0/handler/gc.go index 5e5c3669759..41d53734c8d 100644 --- a/src/server/v2.0/handler/gc.go +++ b/src/server/v2.0/handler/gc.go @@ -106,7 +106,7 @@ func (g *gcAPI) kick(ctx context.Context, scheType string, cron string, paramete return 0, errors.BadRequestError(fmt.Errorf("workers should be integer format")) } if !validateWorkers(int(wInt)) { - return 0, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("Error: Invalid number of workers:%s. Workers must be greater than 0 and less than or equal to 5.", workers) + return 0, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("Error: Invalid number of workers:%s. Workers must be greater than 0 and less than or equal to 5.", workers) } policy.Workers = int(wInt) } @@ -130,7 +130,7 @@ func (g *gcAPI) kick(ctx context.Context, scheType string, cron string, paramete return 0, errors.BadRequestError(fmt.Errorf("workers should be integer format")) } if !validateWorkers(int(wInt)) { - return 0, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("Error: Invalid number of workers:%s. Workers must be greater than 0 and less than or equal to 5.", workers) + return 0, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("Error: Invalid number of workers:%s. Workers must be greater than 0 and less than or equal to 5.", workers) } policy.Workers = int(wInt) } @@ -150,7 +150,7 @@ func (g *gcAPI) createSchedule(ctx context.Context, cronType, cron string, polic func (g *gcAPI) updateSchedule(ctx context.Context, cronType, cron string, policy gc.Policy) error { if err := utils.ValidateCronString(cron); err != nil { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled gc: %s, error: %v", cron, err) + WithMessagef("invalid cron string for scheduled gc: %s, error: %v", cron, err) } if err := g.gcCtr.DeleteSchedule(ctx); err != nil { return err @@ -262,7 +262,7 @@ func (g *gcAPI) GetGCLog(ctx context.Context, params operation.GetGCLogParams) m return g.SendError(ctx, err) } if len(tasks) == 0 { - return g.SendError(ctx, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("garbage collection %d log is not found", params.GCID)) + return g.SendError(ctx, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("garbage collection %d log is not found", params.GCID)) } log, err := g.gcCtr.GetTaskLog(ctx, tasks[0].ID) if err != nil { diff --git a/src/server/v2.0/handler/label.go b/src/server/v2.0/handler/label.go index 2c9299cbf6d..7237f71156b 100644 --- a/src/server/v2.0/handler/label.go +++ b/src/server/v2.0/handler/label.go @@ -78,7 +78,7 @@ func (lAPI *labelAPI) GetLabelByID(ctx context.Context, params operation.GetLabe return lAPI.SendError(ctx, err) } if label == nil || label.Deleted { - return lAPI.SendError(ctx, errors.New(nil).WithMessage("label %d not found", params.LabelID).WithCode(errors.NotFoundCode)) + return lAPI.SendError(ctx, errors.New(nil).WithMessagef("label %d not found", params.LabelID).WithCode(errors.NotFoundCode)) } if err := lAPI.requireAccess(ctx, label, rbac.ActionRead); err != nil { @@ -96,7 +96,7 @@ func (lAPI *labelAPI) ListLabels(ctx context.Context, params operation.ListLabel scope := lib.StringValue(params.Scope) if scope != common.LabelScopeGlobal && scope != common.LabelScopeProject { - return lAPI.SendError(ctx, errors.New(nil).WithMessage("invalid scope: %s", scope).WithCode(errors.BadRequestCode)) + return lAPI.SendError(ctx, errors.New(nil).WithMessagef("invalid scope: %s", scope).WithCode(errors.BadRequestCode)) } query.Keywords["Level"] = common.LabelLevelUser query.Keywords["Scope"] = scope @@ -107,7 +107,7 @@ func (lAPI *labelAPI) ListLabels(ctx context.Context, params operation.ListLabel if scope == common.LabelScopeProject { pid := lib.Int64Value(params.ProjectID) if pid == 0 { - return lAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("must with project ID when to query project labels")) + return lAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("must with project ID when to query project labels")) } if err := lAPI.RequireProjectAccess(ctx, pid, rbac.ActionList, rbac.ResourceLabel); err != nil { return lAPI.SendError(ctx, err) @@ -148,7 +148,7 @@ func (lAPI *labelAPI) UpdateLabel(ctx context.Context, params operation.UpdateLa return lAPI.SendError(ctx, err) } if label == nil || label.Deleted { - return lAPI.SendError(ctx, errors.New(nil).WithMessage("label %d not found", params.LabelID).WithCode(errors.NotFoundCode)) + return lAPI.SendError(ctx, errors.New(nil).WithMessagef("label %d not found", params.LabelID).WithCode(errors.NotFoundCode)) } if err := lAPI.requireAccess(ctx, label, rbac.ActionUpdate); err != nil { diff --git a/src/server/v2.0/handler/member.go b/src/server/v2.0/handler/member.go index 06caa50e1de..dccde9b60db 100644 --- a/src/server/v2.0/handler/member.go +++ b/src/server/v2.0/handler/member.go @@ -45,7 +45,7 @@ func (m *memberAPI) CreateProjectMember(ctx context.Context, params operation.Cr return m.SendError(ctx, err) } if params.ProjectMember == nil { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the project member should provide")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the project member should provide")) } req, err := toMemberReq(params.ProjectMember) if err != nil { @@ -78,7 +78,7 @@ func (m *memberAPI) DeleteProjectMember(ctx context.Context, params operation.De return m.SendError(ctx, err) } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the project member id is required.")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the project member id is required.")) } err := m.ctl.Delete(ctx, projectNameOrID, int(params.Mid)) if err != nil { @@ -94,7 +94,7 @@ func (m *memberAPI) GetProjectMember(ctx context.Context, params operation.GetPr } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the member id can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the member id can not be empty!")) } member, err := m.ctl.Get(ctx, projectNameOrID, int(params.Mid)) @@ -159,10 +159,10 @@ func (m *memberAPI) UpdateProjectMember(ctx context.Context, params operation.Up return m.SendError(ctx, err) } if params.Role == nil { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("role can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("role can not be empty!")) } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("member id can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("member id can not be empty!")) } err := m.ctl.UpdateRole(ctx, projectNameOrID, int(params.Mid), int(params.Role.RoleID)) diff --git a/src/server/v2.0/handler/oidc.go b/src/server/v2.0/handler/oidc.go index 7ed4ebd3ce0..b70a95e9664 100644 --- a/src/server/v2.0/handler/oidc.go +++ b/src/server/v2.0/handler/oidc.go @@ -45,7 +45,7 @@ func (o oidcAPI) PingOIDC(ctx context.Context, params oidc.PingOIDCParams) middl if err != nil { log.Errorf("Failed to verify connection: %+v, err: %v", params.Endpoint, err) - return o.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("failed to verify connection")) + return o.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("failed to verify connection")) } return oidc.NewPingOIDCOK() } diff --git a/src/server/v2.0/handler/permissions.go b/src/server/v2.0/handler/permissions.go index 192e88a2758..d1d10a9404d 100644 --- a/src/server/v2.0/handler/permissions.go +++ b/src/server/v2.0/handler/permissions.go @@ -49,7 +49,7 @@ func (p *permissionsAPI) GetPermissions(ctx context.Context, _ permissions.GetPe return p.SendError(ctx, errors.UnauthorizedError(errors.New("security context not found"))) } if !secCtx.IsAuthenticated() { - return p.SendError(ctx, errors.UnauthorizedError(nil).WithMessage(secCtx.GetUsername())) + return p.SendError(ctx, errors.UnauthorizedError(nil).WithMessagef(secCtx.GetUsername())) } var isSystemAdmin bool diff --git a/src/server/v2.0/handler/project.go b/src/server/v2.0/handler/project.go index 2e823210e9d..f453c9ae995 100644 --- a/src/server/v2.0/handler/project.go +++ b/src/server/v2.0/handler/project.go @@ -108,17 +108,17 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP secCtx, _ := security.FromContext(ctx) if r, ok := secCtx.(*robotSec.SecurityContext); ok && !r.User().IsSysLevel() { log.Errorf("Only system level robot can create project") - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system level robot can create project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system level robot can create project")) } if onlyAdmin && !(a.isSysAdmin(ctx, rbac.ActionCreate) || secCtx.IsSolutionUser()) { log.Errorf("Only sys admin can create project") - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system admin can create project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system admin can create project")) } req := params.Project if req.RegistryID != nil && !a.isSysAdmin(ctx, rbac.ActionCreate) { - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system admin can create proxy cache project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system admin can create proxy cache project")) } // populate storage limit @@ -155,7 +155,7 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP // validate metadata.public value, should only be "true" or "false" if p := req.Metadata.Public; p != "" { if p != "true" && p != "false" { - return a.SendError(ctx, errors.BadRequestError(nil).WithMessage(fmt.Sprintf("metadata.public should only be 'true' or 'false', but got: '%s'", p))) + return a.SendError(ctx, errors.BadRequestError(nil).WithMessagef(fmt.Sprintf("metadata.public should only be 'true' or 'false', but got: '%s'", p))) } } @@ -196,7 +196,7 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP return a.SendError(ctx, err) } if len(admins) == 0 { - return a.SendError(ctx, errors.New(nil).WithMessage("cannot create project as no system admin found")) + return a.SendError(ctx, errors.New(nil).WithMessagef("cannot create project as no system admin found")) } ownerID = admins[0].UserID } else { @@ -548,11 +548,11 @@ func (a *projectAPI) UpdateProject(ctx context.Context, params operation.UpdateP params.Project.CVEAllowlist.ProjectID = p.ProjectID } else if params.Project.CVEAllowlist.ProjectID != p.ProjectID { return a.SendError(ctx, errors.BadRequestError(nil). - WithMessage("project_id in cve_allowlist must be %d but it's %d", p.ProjectID, params.Project.CVEAllowlist.ProjectID)) + WithMessagef("project_id in cve_allowlist must be %d but it's %d", p.ProjectID, params.Project.CVEAllowlist.ProjectID)) } if err := lib.JSONCopy(&p.CVEAllowlist, params.Project.CVEAllowlist); err != nil { - return a.SendError(ctx, errors.UnknownError(nil).WithMessage("failed to process cve_allowlist, error: %v", err)) + return a.SendError(ctx, errors.UnknownError(nil).WithMessagef("failed to process cve_allowlist, error: %v", err)) } } @@ -578,7 +578,7 @@ func (a *projectAPI) UpdateProject(ctx context.Context, params operation.UpdateP } if rid, ok := md["retention_id"]; !ok || rid != ridParam { errMsg := "the retention_id in the request's payload when updating a project should be omitted, alternatively passing the one that has already been associated to this project" - return a.SendError(ctx, errors.New(nil).WithMessage(errMsg).WithCode(errors.BadRequestCode)) + return a.SendError(ctx, errors.New(nil).WithMessagef(errMsg).WithCode(errors.BadRequestCode)) } } @@ -806,7 +806,7 @@ func (a *projectAPI) validateProjectReq(ctx context.Context, req *models.Project // validate metadata.proxy_speed_kb. It should be an int32 if ps := req.Metadata.ProxySpeedKb; ps != nil { if _, err := strconv.ParseInt(*ps, 10, 32); err != nil { - return errors.BadRequestError(nil).WithMessage(fmt.Sprintf("metadata.proxy_speed_kb should by an int32, but got: '%s', err: %s", *ps, err)) + return errors.BadRequestError(nil).WithMessagef(fmt.Sprintf("metadata.proxy_speed_kb should by an int32, but got: '%s', err: %s", *ps, err)) } } } diff --git a/src/server/v2.0/handler/project_metadata.go b/src/server/v2.0/handler/project_metadata.go index 7fa297b7238..9b8a55bda97 100644 --- a/src/server/v2.0/handler/project_metadata.go +++ b/src/server/v2.0/handler/project_metadata.go @@ -134,7 +134,7 @@ func (p *projectMetadataAPI) UpdateProjectMetadata(ctx context.Context, params o func (p *projectMetadataAPI) validate(metas map[string]string) (map[string]string, error) { if len(metas) != 1 { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("only allow one key/value pair") + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("only allow one key/value pair") } key, value := "", "" @@ -146,23 +146,23 @@ func (p *projectMetadataAPI) validate(metas map[string]string) (map[string]strin proModels.ProMetaAutoSBOMGen, proModels.ProMetaPreventVul, proModels.ProMetaAutoScan, proModels.ProMetaReuseSysCVEAllowlist: v, err := strconv.ParseBool(value) if err != nil { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid value: %s", value) + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid value: %s", value) } metas[key] = strconv.FormatBool(v) case proModels.ProMetaSeverity: severity := vuln.ParseSeverityVersion3(strings.ToLower(value)) if severity == vuln.Unknown { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid value: %s", value) + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid value: %s", value) } metas[proModels.ProMetaSeverity] = strings.ToLower(severity.String()) case proModels.ProMetaProxySpeed: v, err := strconv.ParseInt(value, 10, 32) if err != nil { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid value: %s", value) + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid value: %s", value) } metas[proModels.ProMetaProxySpeed] = strconv.FormatInt(v, 10) default: - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("invalid key: %s", key) + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("invalid key: %s", key) } return metas, nil } diff --git a/src/server/v2.0/handler/purge.go b/src/server/v2.0/handler/purge.go index 64d117aedb0..209418a9eb0 100644 --- a/src/server/v2.0/handler/purge.go +++ b/src/server/v2.0/handler/purge.go @@ -143,7 +143,7 @@ func (p *purgeAPI) kick(ctx context.Context, vendorType string, scheType string, func (p *purgeAPI) updateSchedule(ctx context.Context, vendorType, cronType, cron string, policy pg.JobPolicy, extraParams map[string]interface{}) error { if err := utils.ValidateCronString(cron); err != nil { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled log rotation purge: %s, error: %v", cron, err) + WithMessagef("invalid cron string for scheduled log rotation purge: %s, error: %v", cron, err) } if err := p.schedulerCtl.Delete(ctx, vendorType); err != nil { return err @@ -247,7 +247,7 @@ func (p *purgeAPI) GetPurgeJobLog(ctx context.Context, params purge.GetPurgeJobL if len(tasks) == 0 { return p.SendError(ctx, errors.New(nil).WithCode(errors.NotFoundCode). - WithMessage("purge job with execution ID: %d taskLog is not found", params.PurgeID)) + WithMessagef("purge job with execution ID: %d taskLog is not found", params.PurgeID)) } taskLog, err := p.taskCtl.GetLog(ctx, tasks[0].ID) if err != nil { diff --git a/src/server/v2.0/handler/quota.go b/src/server/v2.0/handler/quota.go index f4ea42e28dd..d17dfd351e2 100644 --- a/src/server/v2.0/handler/quota.go +++ b/src/server/v2.0/handler/quota.go @@ -95,7 +95,7 @@ func (qa *quotaAPI) UpdateQuota(ctx context.Context, params operation.UpdateQuot } if params.Hard == nil || len(params.Hard.Hard) == 0 { - return qa.SendError(ctx, errors.BadRequestError(nil).WithMessage("hard required in body")) + return qa.SendError(ctx, errors.BadRequestError(nil).WithMessagef("hard required in body")) } q, err := qa.quotaCtl.Get(ctx, params.ID) @@ -109,7 +109,7 @@ func (qa *quotaAPI) UpdateQuota(ctx context.Context, params operation.UpdateQuot } if err := quota.Validate(ctx, q.Reference, hard); err != nil { - return qa.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) + return qa.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) } q.SetHard(hard) diff --git a/src/server/v2.0/handler/registry.go b/src/server/v2.0/handler/registry.go index 1cc22528609..1bc82241fa9 100644 --- a/src/server/v2.0/handler/registry.go +++ b/src/server/v2.0/handler/registry.go @@ -256,7 +256,7 @@ func (r *registryAPI) PingRegistry(ctx context.Context, params operation.PingReg } if len(registry.Type) == 0 || len(registry.URL) == 0 { - return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("type or url cannot be empty")) + return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("type or url cannot be empty")) } healthy, err := r.ctl.IsHealthy(ctx, registry) @@ -265,7 +265,7 @@ func (r *registryAPI) PingRegistry(ctx context.Context, params operation.PingReg } if !healthy { - return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the registry is unhealthy")) + return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the registry is unhealthy")) } return operation.NewPingRegistryOK() diff --git a/src/server/v2.0/handler/replication.go b/src/server/v2.0/handler/replication.go index e9c64c43954..c5c700f679b 100644 --- a/src/server/v2.0/handler/replication.go +++ b/src/server/v2.0/handler/replication.go @@ -421,7 +421,7 @@ func (r *replicationAPI) GetReplicationLog(ctx context.Context, params operation if execution.ID != task.ExecutionID { return r.SendError(ctx, errors.New(nil). WithCode(errors.NotFoundCode). - WithMessage("execution %d contains no task with ID %d", params.ID, params.TaskID)) + WithMessagef("execution %d contains no task with ID %d", params.ID, params.TaskID)) } log, err := r.ctl.GetTaskLog(ctx, params.TaskID) if err != nil { diff --git a/src/server/v2.0/handler/retention.go b/src/server/v2.0/handler/retention.go index afe207abed0..033e085abb6 100644 --- a/src/server/v2.0/handler/retention.go +++ b/src/server/v2.0/handler/retention.go @@ -438,13 +438,13 @@ func (r *retentionAPI) requireExecutionInProject(ctx context.Context, p *policy. return err } if exec == nil { - return errors.New(nil).WithMessage("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) } if exec.PolicyID != p.ID { - return errors.New(nil).WithMessage("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) } if exec.Type != job.RetentionVendorType { - return errors.New(nil).WithMessage("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) } return nil } @@ -458,10 +458,10 @@ func (r *retentionAPI) requireTaskInProject(ctx context.Context, p *policy.Metad return err } if task == nil { - return errors.New(nil).WithMessage("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) } if task.ExecutionID != executionID { - return errors.New(nil).WithMessage("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessagef("project: %d, execution id %d not found", p.Scope.Reference, executionID).WithCode(errors.NotFoundCode) } return nil } diff --git a/src/server/v2.0/handler/robot.go b/src/server/v2.0/handler/robot.go index 119c29fce23..a0468e21ecd 100644 --- a/src/server/v2.0/handler/robot.go +++ b/src/server/v2.0/handler/robot.go @@ -89,7 +89,7 @@ func (rAPI *robotAPI) CreateRobot(ctx context.Context, params operation.CreateRo case *robotSc.SecurityContext: creatorRef = s.User().ID default: - return rAPI.SendError(ctx, errors.New(nil).WithMessage("invalid security context")) + return rAPI.SendError(ctx, errors.New(nil).WithMessagef("invalid security context")) } r.CreatorType = sc.Name() r.CreatorRef = creatorRef @@ -117,7 +117,7 @@ func (rAPI *robotAPI) CreateRobot(ctx context.Context, params operation.CreateRo } if !isValidPermissionScope(params.Robot.Permissions, creatorRobots[0].Permissions) { - return rAPI.SendError(ctx, errors.New(nil).WithMessage("permission scope is invalid. It must be equal to or more restrictive than the creator robot's permissions: %s", creatorRobots[0].Name).WithCode(errors.DENIED)) + return rAPI.SendError(ctx, errors.New(nil).WithMessagef("permission scope is invalid. It must be equal to or more restrictive than the creator robot's permissions: %s", creatorRobots[0].Name).WithCode(errors.DENIED)) } } @@ -181,16 +181,16 @@ func (rAPI *robotAPI) ListRobot(ctx context.Context, params operation.ListRobotP // GET /api/v2.0/robots?level=project&project_id=1 if _, ok := query.Keywords["Level"]; ok { if !isValidLevel(query.Keywords["Level"].(string)) { - return rAPI.SendError(ctx, errors.New(nil).WithMessage("bad request error level input").WithCode(errors.BadRequestCode)) + return rAPI.SendError(ctx, errors.New(nil).WithMessagef("bad request error level input").WithCode(errors.BadRequestCode)) } level = query.Keywords["Level"].(string) if level == robot.LEVELPROJECT { if _, ok := query.Keywords["ProjectID"]; !ok { - return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("must with project ID when to query project robots")) + return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("must with project ID when to query project robots")) } pid, err := strconv.ParseInt(query.Keywords["ProjectID"].(string), 10, 64) if err != nil { - return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("Project ID must be int type.")) + return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("Project ID must be int type.")) } projectID = pid } @@ -262,7 +262,7 @@ func (rAPI *robotAPI) UpdateRobot(ctx context.Context, params operation.UpdateRo } if !r.Editable { - err = errors.DeniedError(nil).WithMessage("editing of legacy robot is not allowed") + err = errors.DeniedError(nil).WithMessagef("editing of legacy robot is not allowed") } else { err = rAPI.updateV2Robot(ctx, params, r) } @@ -333,26 +333,26 @@ func (rAPI *robotAPI) requireAccess(ctx context.Context, r *robot.Robot, action // more validation func (rAPI *robotAPI) validate(d int64, level string, permissions []*models.RobotPermission) error { if !isValidDuration(d) { - return errors.New(nil).WithMessage("bad request error duration input: %d, duration must be either -1(Never) or a positive integer", d).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request error duration input: %d, duration must be either -1(Never) or a positive integer", d).WithCode(errors.BadRequestCode) } if !isValidLevel(level) { - return errors.New(nil).WithMessage("bad request error level input: %s", level).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request error level input: %s", level).WithCode(errors.BadRequestCode) } if len(permissions) == 0 { - return errors.New(nil).WithMessage("bad request empty permission").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request empty permission").WithCode(errors.BadRequestCode) } for _, perm := range permissions { if len(perm.Access) == 0 { - return errors.New(nil).WithMessage("bad request empty access").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request empty access").WithCode(errors.BadRequestCode) } } // to create a project robot, the permission must be only one project scope. if level == robot.LEVELPROJECT && len(permissions) > 1 { - return errors.New(nil).WithMessage("bad request permission").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request permission").WithCode(errors.BadRequestCode) } provider := rbac.GetPermissionProvider() @@ -362,18 +362,18 @@ func (rAPI *robotAPI) validate(d int64, level string, permissions []*models.Robo polices := provider.GetPermissions(rbac.ScopeSystem) for _, acc := range perm.Access { if !containsAccess(polices, acc) { - return errors.New(nil).WithMessage("bad request permission: %s:%s", acc.Resource, acc.Action).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request permission: %s:%s", acc.Resource, acc.Action).WithCode(errors.BadRequestCode) } } } else if perm.Kind == robot.LEVELPROJECT { polices := provider.GetPermissions(rbac.ScopeProject) for _, acc := range perm.Access { if !containsAccess(polices, acc) { - return errors.New(nil).WithMessage("bad request permission: %s:%s", acc.Resource, acc.Action).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request permission: %s:%s", acc.Resource, acc.Action).WithCode(errors.BadRequestCode) } } } else { - return errors.New(nil).WithMessage("bad request permission level: %s", perm.Kind).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request permission level: %s", perm.Kind).WithCode(errors.BadRequestCode) } } @@ -393,7 +393,7 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return err } if r.ProjectID != projectID { - return errors.BadRequestError(nil).WithMessage("cannot update the project id of robot") + return errors.BadRequestError(nil).WithMessagef("cannot update the project id of robot") } } r.ProjectNameOrID = params.Robot.Permissions[0].Namespace @@ -401,7 +401,7 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return err } if params.Robot.Level != r.Level || params.Robot.Name != r.Name { - return errors.BadRequestError(nil).WithMessage("cannot update the level or name of robot") + return errors.BadRequestError(nil).WithMessagef("cannot update the level or name of robot") } if r.Duration != *params.Robot.Duration { @@ -448,12 +448,12 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return errors.DeniedError(nil) } if scRobots[0].ID != creatorRobot.ID && scRobots[0].ID != r.ID { - return errors.New(nil).WithMessage("as for a nested robot account, only person who has the right permission or the creator robot or nested robot itself has the permission to update").WithCode(errors.DENIED) + return errors.New(nil).WithMessagef("as for a nested robot account, only person who has the right permission or the creator robot or nested robot itself has the permission to update").WithCode(errors.DENIED) } } if !isValidPermissionScope(params.Robot.Permissions, creatorRobot.Permissions) { - return errors.New(nil).WithMessage("permission scope is invalid. It must be equal to or more restrictive than the creator robot's permissions: %s", creatorRobot.Name).WithCode(errors.DENIED) + return errors.New(nil).WithMessagef("permission scope is invalid. It must be equal to or more restrictive than the creator robot's permissions: %s", creatorRobot.Name).WithCode(errors.DENIED) } } @@ -478,7 +478,7 @@ func validateName(name string) error { robotNameReg := `^[a-z0-9]+(?:[._-][a-z0-9]+)*$` legal := regexp.MustCompile(robotNameReg).MatchString(name) if !legal { - return errors.BadRequestError(nil).WithMessage("robot name is not in lower case or contains illegal characters") + return errors.BadRequestError(nil).WithMessagef("robot name is not in lower case or contains illegal characters") } return nil } diff --git a/src/server/v2.0/handler/robotV1.go b/src/server/v2.0/handler/robotV1.go index f8ce74b109f..b527fc3a6f1 100644 --- a/src/server/v2.0/handler/robotV1.go +++ b/src/server/v2.0/handler/robotV1.go @@ -249,10 +249,10 @@ func (rAPI *robotV1API) UpdateRobotV1(ctx context.Context, params operation.Upda func (rAPI *robotV1API) validate(ctx context.Context, params operation.CreateRobotV1Params) error { if params.Robot == nil { - return errors.New(nil).WithMessage("bad request no robot").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request no robot").WithCode(errors.BadRequestCode) } if len(params.Robot.Access) == 0 { - return errors.New(nil).WithMessage("bad request no access").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("bad request no access").WithCode(errors.BadRequestCode) } projectNameOrID := parseProjectNameOrID(params.ProjectNameOrID, params.XIsResourceName) @@ -274,7 +274,7 @@ func (rAPI *robotV1API) validate(ctx context.Context, params operation.CreateRob log.Warningf("failed to call JSONCopy on robot access policy when validate, error: %v", err) } if !mp[p.String()] { - return errors.New(nil).WithMessage("%s action of %s resource not exist in project %s", policy.Action, policy.Resource, projectNameOrID).WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessagef("%s action of %s resource not exist in project %s", policy.Action, policy.Resource, projectNameOrID).WithCode(errors.BadRequestCode) } } @@ -286,7 +286,7 @@ func getRawResource(resource string) (string, error) { resourceReg := regexp.MustCompile("^/project/[0-9]+/(?P[a-z-]+)$") matches := resourceReg.FindStringSubmatch(resource) if len(matches) <= 1 { - return "", errors.New(nil).WithMessage("bad resource %s", resource).WithCode(errors.BadRequestCode) + return "", errors.New(nil).WithMessagef("bad resource %s", resource).WithCode(errors.BadRequestCode) } return matches[1], nil } diff --git a/src/server/v2.0/handler/scan.go b/src/server/v2.0/handler/scan.go index a22eaaaede2..e3c74d6c2c4 100644 --- a/src/server/v2.0/handler/scan.go +++ b/src/server/v2.0/handler/scan.go @@ -123,7 +123,7 @@ func (s *scanAPI) GetReportLog(ctx context.Context, params operation.GetReportLo if bytes == nil { // Not found - return s.SendError(ctx, errors.NotFoundError(nil).WithMessage("report with uuid %s does not exist", params.ReportID)) + return s.SendError(ctx, errors.NotFoundError(nil).WithMessagef("report with uuid %s does not exist", params.ReportID)) } return operation.NewGetReportLogOK().WithPayload(string(bytes)) diff --git a/src/server/v2.0/handler/scan_all.go b/src/server/v2.0/handler/scan_all.go index 3e9ed1bf017..ca91a7cdecc 100644 --- a/src/server/v2.0/handler/scan_all.go +++ b/src/server/v2.0/handler/scan_all.go @@ -73,7 +73,7 @@ func (s *scanAllAPI) StopScanAll(ctx context.Context, _ operation.StopScanAllPar return s.SendError(ctx, err) } if execution == nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage("no scan all job is found currently")) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef("no scan all job is found currently")) } if err = s.scanCtl.StopScanAll(s.makeCtx(), execution.ID, true); err != nil { @@ -102,7 +102,7 @@ func (s *scanAllAPI) CreateScanAllSchedule(ctx context.Context, params operation if execution != nil && execution.IsOnGoing() { message := fmt.Sprintf("a previous scan all job aleady exits, its status is %s", execution.Status) - return s.SendError(ctx, errors.ConflictError(nil).WithMessage(message)) + return s.SendError(ctx, errors.ConflictError(nil).WithMessagef(message)) } if _, err := s.scanCtl.ScanAll(ctx, task.ExecutionTriggerManual, true); err != nil { @@ -116,7 +116,7 @@ func (s *scanAllAPI) CreateScanAllSchedule(ctx context.Context, params operation if schedule != nil { message := "fail to set schedule for scan all as always had one, please delete it firstly then to re-schedule" - return s.SendError(ctx, errors.PreconditionFailedError(nil).WithMessage(message)) + return s.SendError(ctx, errors.PreconditionFailedError(nil).WithMessagef(message)) } if _, err := s.createOrUpdateScanAllSchedule(ctx, req.Schedule.Type, req.Schedule.Cron, nil); err != nil { @@ -135,7 +135,7 @@ func (s *scanAllAPI) UpdateScanAllSchedule(ctx context.Context, params operation if req.Schedule.Type == ScheduleManual { message := fmt.Sprintf("fail to update scan all schedule as wrong schedule type: %s", req.Schedule.Type) - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(message)) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(message)) } schedule, err := s.getScanAllSchedule(ctx) @@ -197,7 +197,7 @@ func (s *scanAllAPI) GetLatestScheduledScanAllMetrics(ctx context.Context, _ ope func (s *scanAllAPI) createOrUpdateScanAllSchedule(ctx context.Context, cronType, cron string, previous *scheduler.Schedule) (int64, error) { if err := utils.ValidateCronString(cron); err != nil { return 0, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessage("invalid cron string for scheduled scan all: %s, error: %v", cron, err) + WithMessagef("invalid cron string for scheduled scan all: %s, error: %v", cron, err) } if previous != nil { if cronType == previous.CRONType && cron == previous.CRON { @@ -303,7 +303,7 @@ func (s *scanAllAPI) requireScanEnabled(ctx context.Context) error { } if len(l) == 0 { - return errors.PreconditionFailedError(nil).WithMessage("no scanner is configured, it's not possible to scan") + return errors.PreconditionFailedError(nil).WithMessagef("no scanner is configured, it's not possible to scan") } return nil diff --git a/src/server/v2.0/handler/scanner.go b/src/server/v2.0/handler/scanner.go index 3b5be4f452c..19810781b2b 100644 --- a/src/server/v2.0/handler/scanner.go +++ b/src/server/v2.0/handler/scanner.go @@ -51,7 +51,7 @@ func (s *scannerAPI) CreateScanner(ctx context.Context, params operation.CreateS copyToScannerRegistration(r, params.Registration) if err := r.Validate(false); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) } uuid, err := s.scannerCtl.CreateRegistration(ctx, r) @@ -74,13 +74,13 @@ func (s *scannerAPI) DeleteScanner(ctx context.Context, params operation.DeleteS } if r == nil { - return s.SendError(ctx, errors.NotFoundError(nil).WithMessage("scanner %s not found", params.RegistrationID)) + return s.SendError(ctx, errors.NotFoundError(nil).WithMessagef("scanner %s not found", params.RegistrationID)) } // Immutable registration is not allowed if r.Immutable { format := "registration %s is not allowed to delete as it is immutable: scanner API: delete" - return s.SendError(ctx, errors.ForbiddenError(nil).WithMessage(format, r.Name)) + return s.SendError(ctx, errors.ForbiddenError(nil).WithMessagef(format, r.Name)) } deleted, err := s.scannerCtl.DeleteRegistration(ctx, r.UUID) @@ -102,7 +102,7 @@ func (s *scannerAPI) GetScanner(ctx context.Context, params operation.GetScanner } if r == nil { - return s.SendError(ctx, errors.NotFoundError(nil).WithMessage("scanner %s not found", params.RegistrationID)) + return s.SendError(ctx, errors.NotFoundError(nil).WithMessagef("scanner %s not found", params.RegistrationID)) } return operation.NewGetScannerOK().WithPayload(model.NewScannerRegistration(r).ToSwagger(ctx)) @@ -179,7 +179,7 @@ func (s *scannerAPI) PingScanner(ctx context.Context, params operation.PingScann } if err := r.Validate(false); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) } if _, err := s.scannerCtl.Ping(ctx, r); err != nil { @@ -214,19 +214,19 @@ func (s *scannerAPI) UpdateScanner(ctx context.Context, params operation.UpdateS } if r == nil { - return s.SendError(ctx, errors.NotFoundError(nil).WithMessage("scanner %s not found", params.RegistrationID)) + return s.SendError(ctx, errors.NotFoundError(nil).WithMessagef("scanner %s not found", params.RegistrationID)) } // Immutable registration is not allowed if r.Immutable { format := "registration %s is not allowed to update as it is immutable: scanner API: update" - return s.SendError(ctx, errors.ForbiddenError(nil).WithMessage(format, r.Name)) + return s.SendError(ctx, errors.ForbiddenError(nil).WithMessagef(format, r.Name)) } copyToScannerRegistration(r, params.Registration) if err := r.Validate(true); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) } if err := s.scannerCtl.UpdateRegistration(ctx, r); err != nil { diff --git a/src/server/v2.0/handler/schedule.go b/src/server/v2.0/handler/schedule.go index 7111af35318..5d0a458d122 100644 --- a/src/server/v2.0/handler/schedule.go +++ b/src/server/v2.0/handler/schedule.go @@ -45,7 +45,7 @@ func (s *scheduleAPI) GetSchedulePaused(ctx context.Context, params schedule.Get return s.SendError(ctx, err) } if !strings.EqualFold(params.JobType, all) { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessage("job_type can only be 'all'")) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef("job_type can only be 'all'")) } paused, err := s.jobServiceCtl.Paused(ctx) if err != nil { diff --git a/src/server/v2.0/handler/user.go b/src/server/v2.0/handler/user.go index 1bbe3b7ad32..69aedbe427d 100644 --- a/src/server/v2.0/handler/user.go +++ b/src/server/v2.0/handler/user.go @@ -200,7 +200,7 @@ func (u *usersAPI) GetCurrentUserInfo(ctx context.Context, _ operation.GetCurren sctx, _ := security.FromContext(ctx) lsc, ok := sctx.(*local.SecurityContext) if !ok { - return u.SendError(ctx, errors.PreconditionFailedError(nil).WithMessage("get current user not available for security context: %s", sctx.Name())) + return u.SendError(ctx, errors.PreconditionFailedError(nil).WithMessagef("get current user not available for security context: %s", sctx.Name())) } resp, err := u.getUserByID(ctx, lsc.User().UserID) if err != nil { @@ -307,10 +307,10 @@ func (u *usersAPI) UpdateUserPassword(ctx context.Context, params operation.Upda ok, err := u.ctl.VerifyPassword(ctx, sctx.GetUsername(), params.Password.OldPassword) if err != nil { log.G(ctx).Errorf("Failed to verify password for user: %s, error: %v", sctx.GetUsername(), err) - return u.SendError(ctx, errors.UnknownError(nil).WithMessage("Failed to verify password")) + return u.SendError(ctx, errors.UnknownError(nil).WithMessagef("Failed to verify password")) } if !ok { - return u.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Current password is incorrect")) + return u.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Current password is incorrect")) } } newPwd := params.Password.NewPassword @@ -325,10 +325,10 @@ func (u *usersAPI) UpdateUserPassword(ctx context.Context, params operation.Upda ok, err := u.ctl.VerifyPassword(ctx, user.Username, newPwd) if err != nil { log.G(ctx).Errorf("Failed to verify password for user: %s, error: %v", sctx.GetUsername(), err) - return u.SendError(ctx, errors.UnknownError(nil).WithMessage("Failed to verify password")) + return u.SendError(ctx, errors.UnknownError(nil).WithMessagef("Failed to verify password")) } if ok { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("New password is identical to old password")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("New password is identical to old password")) } err2 := u.ctl.UpdatePassword(ctx, uid, params.Password.NewPassword) if err2 != nil { @@ -356,14 +356,14 @@ func (u *usersAPI) requireForCLISecret(ctx context.Context, id int) error { return err } if a != common.OIDCAuth { - return errors.PreconditionFailedError(nil).WithMessage("unable to update CLI secret under authmode: %s", a) + return errors.PreconditionFailedError(nil).WithMessagef("unable to update CLI secret under authmode: %s", a) } sctx, ok := security.FromContext(ctx) if !ok || !sctx.IsAuthenticated() { return errors.UnauthorizedError(nil) } if !matchUserID(sctx, id) && !sctx.Can(ctx, rbac.ActionUpdate, rbac.ResourceUser) { - return errors.ForbiddenError(nil).WithMessage("Not authorized to update the CLI secret for user: %d", id) + return errors.ForbiddenError(nil).WithMessagef("Not authorized to update the CLI secret for user: %d", id) } return nil } @@ -375,7 +375,7 @@ func (u *usersAPI) requireCreatable(ctx context.Context) error { return err } if a != common.DBAuth { - return errors.ForbiddenError(nil).WithMessage("creating local user is not allowed under auth mode: %s", a) + return errors.ForbiddenError(nil).WithMessagef("creating local user is not allowed under auth mode: %s", a) } sr, err := config.SelfRegistration(ctx) if err != nil { @@ -387,7 +387,7 @@ func (u *usersAPI) requireCreatable(ctx context.Context) error { return accessErr } if accessErr != nil && !lib.GetCarrySession(ctx) { - return errors.ForbiddenError(nil).WithMessage("self-registration cannot be triggered via API") + return errors.ForbiddenError(nil).WithMessagef("self-registration cannot be triggered via API") } return nil } @@ -398,7 +398,7 @@ func (u *usersAPI) requireReadable(ctx context.Context, id int) error { return errors.UnauthorizedError(nil) } if !matchUserID(sctx, id) && !sctx.Can(ctx, rbac.ActionRead, rbac.ResourceUser) { - return errors.ForbiddenError(nil).WithMessage("Not authorized to read user: %d", id) + return errors.ForbiddenError(nil).WithMessagef("Not authorized to read user: %d", id) } return nil } @@ -409,10 +409,10 @@ func (u *usersAPI) requireDeletable(ctx context.Context, id int) error { return errors.UnauthorizedError(nil) } if !sctx.Can(ctx, rbac.ActionDelete, rbac.ResourceUser) { - return errors.ForbiddenError(nil).WithMessage("Not authorized to delete users") + return errors.ForbiddenError(nil).WithMessagef("Not authorized to delete users") } if matchUserID(sctx, id) || id == 1 { - return errors.ForbiddenError(nil).WithMessage("User with ID %d cannot be deleted", id) + return errors.ForbiddenError(nil).WithMessagef("User with ID %d cannot be deleted", id) } return nil } @@ -427,7 +427,7 @@ func (u *usersAPI) requireModifiable(ctx context.Context, id int) error { return errors.UnauthorizedError(nil) } if !modifiable(ctx, a, id) { - return errors.ForbiddenError(nil).WithMessage("User with ID %d can't be updated", id) + return errors.ForbiddenError(nil).WithMessagef("User with ID %d can't be updated", id) } return nil } @@ -456,7 +456,7 @@ func requireValidSecret(in string) error { if len(in) >= 8 && len(in) <= 128 && hasLower.MatchString(in) && hasUpper.MatchString(in) && hasNumber.MatchString(in) { return nil } - return errors.BadRequestError(nil).WithMessage("the password or secret must be 8-128, inclusively, characters long with at least 1 uppercase letter, 1 lowercase letter and 1 number") + return errors.BadRequestError(nil).WithMessagef("the password or secret must be 8-128, inclusively, characters long with at least 1 uppercase letter, 1 lowercase letter and 1 number") } func getRandomSecret() (string, error) { @@ -473,7 +473,7 @@ func getRandomSecret() (string, error) { if err := retry.Retry(func() error { cliSecret = utils.GenerateRandomStringWithLen(9) if err := requireValidSecret(cliSecret); err != nil { - return errors.New(nil).WithMessage("invalid cli secret format") + return errors.New(nil).WithMessagef("invalid cli secret format") } return nil }, options...); err != nil { @@ -485,22 +485,22 @@ func getRandomSecret() (string, error) { func validateUserProfile(user *commonmodels.User, create bool) error { if len(user.Email) > 0 { if m, _ := regexp.MatchString(`^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$`, user.Email); !m { - return errors.BadRequestError(nil).WithMessage("email with illegal format") + return errors.BadRequestError(nil).WithMessagef("email with illegal format") } } else { - return errors.BadRequestError(nil).WithMessage("email can't be empty") + return errors.BadRequestError(nil).WithMessagef("email can't be empty") } if utils.IsIllegalLength(user.Realname, 1, 255) { - return errors.BadRequestError(nil).WithMessage("realname with illegal length") + return errors.BadRequestError(nil).WithMessagef("realname with illegal length") } if strings.ContainsAny(user.Realname, common.IllegalCharsInUsername) { - return errors.BadRequestError(nil).WithMessage("realname contains illegal characters") + return errors.BadRequestError(nil).WithMessagef("realname contains illegal characters") } if utils.IsIllegalLength(user.Comment, -1, 30) { - return errors.BadRequestError(nil).WithMessage("comment with illegal length") + return errors.BadRequestError(nil).WithMessagef("comment with illegal length") } // skip to validate username for update because username is empty in the request @@ -509,11 +509,11 @@ func validateUserProfile(user *commonmodels.User, create bool) error { } if utils.IsIllegalLength(user.Username, 1, 255) { - return errors.BadRequestError(nil).WithMessage("username with illegal length") + return errors.BadRequestError(nil).WithMessagef("username with illegal length") } if strings.ContainsAny(user.Username, common.IllegalCharsInUsername) { - return errors.BadRequestError(nil).WithMessage("username contains illegal characters") + return errors.BadRequestError(nil).WithMessagef("username contains illegal characters") } return nil diff --git a/src/server/v2.0/handler/usergroup.go b/src/server/v2.0/handler/usergroup.go index 187bc0b59ff..e5a76f5b248 100644 --- a/src/server/v2.0/handler/usergroup.go +++ b/src/server/v2.0/handler/usergroup.go @@ -71,7 +71,7 @@ func (u *userGroupAPI) DeleteUserGroup(ctx context.Context, params operation.Del return u.SendError(ctx, err) } if params.GroupID <= 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("the group id should be provided")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the group id should be provided")) } err := u.ctl.Delete(ctx, int(params.GroupID)) if err != nil { @@ -85,14 +85,14 @@ func (u *userGroupAPI) GetUserGroup(ctx context.Context, params operation.GetUse return u.SendError(ctx, err) } if params.GroupID <= 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("the group id should be provided")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the group id should be provided")) } ug, err := u.ctl.Get(ctx, int(params.GroupID)) if err != nil { return u.SendError(ctx, err) } if ug == nil { - return u.SendError(ctx, errors.NotFoundError(nil).WithMessage("the user group with id %v is not found", params.GroupID)) + return u.SendError(ctx, errors.NotFoundError(nil).WithMessagef("the user group with id %v is not found", params.GroupID)) } userGroup := &models.UserGroup{ GroupName: ug.GroupName, @@ -194,7 +194,7 @@ func (u *userGroupAPI) SearchUserGroups(ctx context.Context, params operation.Se return u.SendError(ctx, err) } if len(params.Groupname) == 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("need to provide groupname to search user group")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("need to provide groupname to search user group")) } query.Keywords["GroupName"] = &q.FuzzyMatchValue{Value: params.Groupname} total, err := u.ctl.Count(ctx, query) diff --git a/src/server/v2.0/handler/webhook.go b/src/server/v2.0/handler/webhook.go index 773864b9fb7..814c8a23d23 100644 --- a/src/server/v2.0/handler/webhook.go +++ b/src/server/v2.0/handler/webhook.go @@ -404,7 +404,7 @@ func (n *webhookAPI) GetSupportedEventTypes(ctx context.Context, params webhook. func (n *webhookAPI) validateTargets(policy *policy_model.Policy) (bool, error) { if len(policy.Targets) == 0 { - return false, errors.New(nil).WithMessage("empty notification target with policy %s", policy.Name).WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("empty notification target with policy %s", policy.Name).WithCode(errors.BadRequestCode) } for i, target := range policy.Targets { url, err := utils.ParseEndpoint(target.Address) @@ -415,16 +415,16 @@ func (n *webhookAPI) validateTargets(policy *policy_model.Policy) (bool, error) target.Address = url.Scheme + "://" + url.Host + url.Path if !isNotifyTypeSupported(target.Type) { - return false, errors.New(nil).WithMessage("unsupported target type %s with policy %s", target.Type, policy.Name).WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("unsupported target type %s with policy %s", target.Type, policy.Name).WithCode(errors.BadRequestCode) } // don't allow set the payload format for slack type // slack should be migrated as a kind of payload in the future if len(target.PayloadFormat) > 0 && target.Type == "slack" { - return false, errors.New(nil).WithMessage("set payload format is not allowed for slack").WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("set payload format is not allowed for slack").WithCode(errors.BadRequestCode) } if len(target.PayloadFormat) > 0 && !isPayloadFormatSupported(target.PayloadFormat) { - return false, errors.New(nil).WithMessage("unsupported payload format type: %s", target.PayloadFormat).WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("unsupported payload format type: %s", target.PayloadFormat).WithCode(errors.BadRequestCode) } // set payload format to Default is not specified when the type is http if len(target.PayloadFormat) == 0 && target.Type == "http" { @@ -436,11 +436,11 @@ func (n *webhookAPI) validateTargets(policy *policy_model.Policy) (bool, error) func (n *webhookAPI) validateEventTypes(policy *policy_model.Policy) (bool, error) { if len(policy.EventTypes) == 0 { - return false, errors.New(nil).WithMessage("empty event type").WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("empty event type").WithCode(errors.BadRequestCode) } for _, eventType := range policy.EventTypes { if !isEventTypeSupported(eventType) { - return false, errors.New(nil).WithMessage("unsupported event type %s", eventType).WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessagef("unsupported event type %s", eventType).WithCode(errors.BadRequestCode) } } return true, nil From 04ad795e217271e333c69fb9b6331c56100858cd Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 18:35:39 +0800 Subject: [PATCH 12/16] fix lint Signed-off-by: wang yan --- src/server/middleware/v2auth/auth.go | 2 +- src/server/middleware/vulnerable/vulnerable.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/middleware/v2auth/auth.go b/src/server/middleware/v2auth/auth.go index fa1a7e4076c..a64fcf0ac97 100644 --- a/src/server/middleware/v2auth/auth.go +++ b/src/server/middleware/v2auth/auth.go @@ -164,7 +164,7 @@ func Middleware() func(http.Handler) http.Handler { // the header is needed for "docker manifest" commands: https://github.com/docker/cli/issues/989 rw.Header().Set("Docker-Distribution-Api-Version", "registry/2.0") rw.Header().Set("Www-Authenticate", challenge) - lib_http.SendError(rw, errors.UnauthorizedError(err).WithMessagef(err.Error())) + lib_http.SendError(rw, errors.UnauthorizedError(err).WithMessage(err.Error())) return } next.ServeHTTP(rw, req) diff --git a/src/server/middleware/vulnerable/vulnerable.go b/src/server/middleware/vulnerable/vulnerable.go index d3c238c1b92..5fbd52ebb11 100644 --- a/src/server/middleware/vulnerable/vulnerable.go +++ b/src/server/middleware/vulnerable/vulnerable.go @@ -100,7 +100,7 @@ func Middleware() func(http.Handler) http.Handler { // No report yet? msg := fmt.Sprintf(`current image without vulnerability scanning cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator for help.`, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) } logger.Errorf("get vulnerability summary of the artifact %s@%s failed, error: %v", art.RepositoryName, art.Digest, err) @@ -122,7 +122,7 @@ func Middleware() func(http.Handler) http.Handler { if !vulnerable.IsScanSuccess() { msg := fmt.Sprintf(`current image with "%s" status of vulnerability scanning cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator for help.`, vulnerable.ScanStatus, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) } // Do judgement @@ -134,7 +134,7 @@ func Middleware() func(http.Handler) http.Handler { msg := fmt.Sprintf(`current image with %d %s cannot be pulled due to configured policy in 'Prevent images with vulnerability severity of "%s" or higher from running.' `+ `To continue with pull, please contact your project administrator to exempt matched vulnerabilities through configuring the CVE allowlist.`, vulnerable.VulnerabilitiesCount, thing, projectSeverity) - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef(msg) + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage(msg) } // Print scannerPull CVE list From 39cd75c25d800ad7c3a038e3f6739ad01e033467 Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 19:21:32 +0800 Subject: [PATCH 13/16] fix lint Signed-off-by: wang yan --- .../artifact/annotation/v1alpha1.go | 2 +- src/controller/artifact/controller.go | 2 +- .../artifact/processor/sbom/sbom.go | 2 +- src/controller/blob/controller.go | 4 +-- src/controller/config/controller.go | 2 +- src/controller/gc/controller.go | 4 +-- src/controller/jobservice/schedule.go | 4 +-- src/controller/member/controller.go | 12 ++++---- src/controller/project/controller.go | 2 +- src/controller/registry/controller.go | 6 ++-- src/controller/replication/model/model.go | 10 +++---- src/controller/robot/controller.go | 6 ++-- src/controller/scan/base_controller.go | 2 +- src/controller/scanner/base_controller.go | 2 +- src/controller/user/controller.go | 4 +-- src/core/api/internal.go | 2 +- src/jobservice/job/impl/gc/util_test.go | 6 ++-- src/lib/endpoint.go | 2 +- src/lib/errors/errors_test.go | 6 ++-- src/lib/http/error.go | 6 ++-- src/lib/http/error_test.go | 6 ++-- src/lib/q/builder.go | 2 +- src/pkg/artifact/dao/dao.go | 12 ++++---- src/pkg/project/manager.go | 2 +- src/pkg/queuestatus/dao/dao.go | 2 +- src/pkg/reg/model/policy.go | 10 +++---- src/pkg/registry/client.go | 2 +- src/pkg/scan/sbom/sbom.go | 4 +-- src/pkg/user/manager_test.go | 2 +- src/pkg/usergroup/dao/dao.go | 2 +- src/registryctl/api/base.go | 2 +- .../middleware/contenttrust/contentrust.go | 4 +-- src/server/middleware/readonly/readonly.go | 2 +- src/server/registry/catalog.go | 5 ++-- src/server/registry/util/util.go | 2 +- src/server/v2.0/handler/artifact.go | 2 +- src/server/v2.0/handler/auditlog.go | 2 +- src/server/v2.0/handler/base.go | 4 +-- src/server/v2.0/handler/config.go | 2 +- src/server/v2.0/handler/label.go | 2 +- src/server/v2.0/handler/member.go | 10 +++---- src/server/v2.0/handler/oidc.go | 2 +- src/server/v2.0/handler/permissions.go | 2 +- src/server/v2.0/handler/project.go | 12 ++++---- src/server/v2.0/handler/project_metadata.go | 2 +- src/server/v2.0/handler/quota.go | 4 +-- src/server/v2.0/handler/registry.go | 4 +-- src/server/v2.0/handler/robot.go | 22 +++++++------- src/server/v2.0/handler/robotV1.go | 4 +-- src/server/v2.0/handler/scan_all.go | 4 +-- src/server/v2.0/handler/scanner.go | 6 ++-- src/server/v2.0/handler/schedule.go | 2 +- src/server/v2.0/handler/user.go | 30 +++++++++---------- src/server/v2.0/handler/usergroup.go | 6 ++-- src/server/v2.0/handler/webhook.go | 4 +-- 55 files changed, 135 insertions(+), 136 deletions(-) diff --git a/src/controller/artifact/annotation/v1alpha1.go b/src/controller/artifact/annotation/v1alpha1.go index e465a5514bf..df88e42ee1e 100644 --- a/src/controller/artifact/annotation/v1alpha1.go +++ b/src/controller/artifact/annotation/v1alpha1.go @@ -97,7 +97,7 @@ func parseV1alpha1Icon(artifact *artifact.Artifact, manifest *v1.Manifest, reg r data, err := io.ReadAll(io.LimitReader(icon, 1<<20)) if err != nil { if err == io.EOF { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the maximum size of the icon is 1MB") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the maximum size of the icon is 1MB") } return err } diff --git a/src/controller/artifact/controller.go b/src/controller/artifact/controller.go index 98fd0991d2f..f7c7cfd26e8 100644 --- a/src/controller/artifact/controller.go +++ b/src/controller/artifact/controller.go @@ -351,7 +351,7 @@ func (c *controller) deleteDeeply(ctx context.Context, id int64, isRoot, isAcces // the root artifact is referenced by other artifacts if isRoot { return errors.New(nil).WithCode(errors.ViolateForeignKeyConstraintCode). - WithMessagef("the deleting artifact is referenced by others") + WithMessage("the deleting artifact is referenced by others") } // the child artifact is referenced by other artifacts, skip return nil diff --git a/src/controller/artifact/processor/sbom/sbom.go b/src/controller/artifact/processor/sbom/sbom.go index a6e46101cf6..4eb11f4bd2e 100644 --- a/src/controller/artifact/processor/sbom/sbom.go +++ b/src/controller/artifact/processor/sbom/sbom.go @@ -65,7 +65,7 @@ func (m *Processor) AbstractAddition(_ context.Context, art *artifact.Artifact, } // SBOM artifact should only have one layer if len(manifest.Layers) != 1 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("The sbom is not found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("The sbom is not found") } layerDgst := manifest.Layers[0].Digest.String() _, blob, err := m.RegCli.PullBlob(art.RepositoryName, layerDgst) diff --git a/src/controller/blob/controller.go b/src/controller/blob/controller.go index 054e5aeef5a..46df973e331 100644 --- a/src/controller/blob/controller.go +++ b/src/controller/blob/controller.go @@ -167,7 +167,7 @@ func (c *controller) Ensure(ctx context.Context, digest string, contentType stri func (c *controller) Exist(ctx context.Context, digest string, options ...Option) (bool, error) { if digest == "" { - return false, errors.BadRequestError(nil).WithMessagef("exist blob require digest") + return false, errors.BadRequestError(nil).WithMessage("exist blob require digest") } _, err := c.Get(ctx, digest, options...) @@ -220,7 +220,7 @@ func (c *controller) FindMissingAssociationsForProject(ctx context.Context, proj func (c *controller) Get(ctx context.Context, digest string, options ...Option) (*blob.Blob, error) { if digest == "" { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("require digest") + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("require digest") } opts := newOptions(options...) diff --git a/src/controller/config/controller.go b/src/controller/config/controller.go index 8c54b3569d0..7ce5ab75ce5 100644 --- a/src/controller/config/controller.go +++ b/src/controller/config/controller.go @@ -124,7 +124,7 @@ func (c *controller) validateCfg(ctx context.Context, cfgs map[string]interface{ } if !canBeModified { return errors.BadRequestError(nil). - WithMessagef("the auth mode cannot be modified as new users have been inserted into database") + WithMessage("the auth mode cannot be modified as new users have been inserted into database") } } } diff --git a/src/controller/gc/controller.go b/src/controller/gc/controller.go index e22cac0b3c5..5de9be5e5fb 100644 --- a/src/controller/gc/controller.go +++ b/src/controller/gc/controller.go @@ -193,10 +193,10 @@ func (c *controller) GetSchedule(ctx context.Context) (*scheduler.Schedule, erro return nil, err } if len(sch) == 0 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no gc schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no gc schedule is found") } if sch[0] == nil { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no gc schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no gc schedule is found") } return sch[0], nil } diff --git a/src/controller/jobservice/schedule.go b/src/controller/jobservice/schedule.go index 82d5a4a2b6d..e0f9ea19c2f 100644 --- a/src/controller/jobservice/schedule.go +++ b/src/controller/jobservice/schedule.go @@ -67,10 +67,10 @@ func (s *schedulerController) Get(ctx context.Context, vendorType string) (*sche return nil, err } if len(sch) == 0 { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no schedule is found") } if sch[0] == nil { - return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("no schedule is found") + return nil, errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("no schedule is found") } return sch[0], nil } diff --git a/src/controller/member/controller.go b/src/controller/member/controller.go index f5fc7e1c7f4..0ad32164e5a 100644 --- a/src/controller/member/controller.go +++ b/src/controller/member/controller.go @@ -72,10 +72,10 @@ type UserGroup struct { } // ErrDuplicateProjectMember ... -var ErrDuplicateProjectMember = errors.ConflictError(nil).WithMessagef("The project member specified already exist") +var ErrDuplicateProjectMember = errors.ConflictError(nil).WithMessage("The project member specified already exist") // ErrInvalidRole ... -var ErrInvalidRole = errors.BadRequestError(nil).WithMessagef("Failed to update project member, role is not in 1,2,3") +var ErrInvalidRole = errors.BadRequestError(nil).WithMessage("Failed to update project member, role is not in 1,2,3") type controller struct { userManager user.Manager @@ -103,7 +103,7 @@ func (c *controller) UpdateRole(ctx context.Context, projectNameOrID interface{} return err } if p == nil { - return errors.BadRequestError(nil).WithMessagef("project is not found") + return errors.BadRequestError(nil).WithMessage("project is not found") } return c.mgr.UpdateRole(ctx, p.ProjectID, memberID, role) } @@ -114,7 +114,7 @@ func (c *controller) Get(ctx context.Context, projectNameOrID interface{}, membe return nil, err } if p == nil { - return nil, errors.BadRequestError(nil).WithMessagef("project is not found") + return nil, errors.BadRequestError(nil).WithMessage("project is not found") } return c.mgr.Get(ctx, p.ProjectID, memberID) } @@ -125,7 +125,7 @@ func (c *controller) Create(ctx context.Context, projectNameOrID interface{}, re return 0, err } if p == nil { - return 0, errors.BadRequestError(nil).WithMessagef("project is not found") + return 0, errors.BadRequestError(nil).WithMessage("project is not found") } var member models.Member member.ProjectID = p.ProjectID @@ -245,7 +245,7 @@ func (c *controller) List(ctx context.Context, projectNameOrID interface{}, enti return nil, err } if p == nil { - return nil, errors.BadRequestError(nil).WithMessagef("project is not found") + return nil, errors.BadRequestError(nil).WithMessage("project is not found") } pm := models.Member{ ProjectID: p.ProjectID, diff --git a/src/controller/project/controller.go b/src/controller/project/controller.go index 56dd073726d..f068cb71a37 100644 --- a/src/controller/project/controller.go +++ b/src/controller/project/controller.go @@ -170,7 +170,7 @@ func (c *controller) Get(ctx context.Context, projectIDOrName interface{}, optio func (c *controller) GetByName(ctx context.Context, projectName string, options ...Option) (*models.Project, error) { if projectName == "" { - return nil, errors.BadRequestError(nil).WithMessagef("project name required") + return nil, errors.BadRequestError(nil).WithMessage("project name required") } p, err := c.projectMgr.Get(ctx, projectName) diff --git a/src/controller/registry/controller.go b/src/controller/registry/controller.go index 856f0d6fd32..9b40e27e535 100644 --- a/src/controller/registry/controller.go +++ b/src/controller/registry/controller.go @@ -84,10 +84,10 @@ func (c *controller) Create(ctx context.Context, registry *model.Registry) (int6 func (c *controller) validate(ctx context.Context, registry *model.Registry) error { if len(registry.Name) == 0 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("name cannot be empty") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("name cannot be empty") } if len(registry.Name) > 64 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the max length of name is 64") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the max length of name is 64") } url, err := lib.ValidateHTTPURL(registry.URL) if err != nil { @@ -100,7 +100,7 @@ func (c *controller) validate(ctx context.Context, registry *model.Registry) err return err } if !healthy { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the registry is unhealthy") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the registry is unhealthy") } registry.Status = model.Healthy return nil diff --git a/src/controller/replication/model/model.go b/src/controller/replication/model/model.go index a201b96a057..63202d17973 100644 --- a/src/controller/replication/model/model.go +++ b/src/controller/replication/model/model.go @@ -63,7 +63,7 @@ func (p *Policy) IsScheduledTrigger() bool { // Validate the policy func (p *Policy) Validate() error { if len(p.Name) == 0 { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("empty name") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("empty name") } var srcRegistryID, dstRegistryID int64 if p.SrcRegistry != nil { @@ -77,7 +77,7 @@ func (p *Policy) Validate() error { if srcRegistryID != 0 && dstRegistryID != 0 || srcRegistryID == 0 && dstRegistryID == 0 { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("either src_registry or dest_registry should be empty and the other one shouldn't be empty") + WithMessage("either src_registry or dest_registry should be empty and the other one shouldn't be empty") } // valid the filters @@ -110,14 +110,14 @@ func (p *Policy) Validate() error { } cronParts := strings.Split(p.Trigger.Settings.Cron, " ") if cronParts[0] != "0" { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the 1st field (indicating Seconds of time) of the cron setting must be 0") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the 1st field (indicating Seconds of time) of the cron setting must be 0") } if cronParts[1] == "*" { - return errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("* is not allowed for the Minutes field of the cron setting of replication policy") + return errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("* is not allowed for the Minutes field of the cron setting of replication policy") } default: return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("invalid trigger type") + WithMessage("invalid trigger type") } } return nil diff --git a/src/controller/robot/controller.go b/src/controller/robot/controller.go index f6f304a10dc..0132eba5cd4 100644 --- a/src/controller/robot/controller.go +++ b/src/controller/robot/controller.go @@ -358,7 +358,7 @@ func (d *controller) toScope(ctx context.Context, p *Permission) (string, error) switch p.Kind { case LEVELSYSTEM: if p.Namespace != "/" { - return "", errors.New(nil).WithMessagef("unknown namespace").WithCode(errors.BadRequestCode) + return "", errors.New(nil).WithMessage("unknown namespace").WithCode(errors.BadRequestCode) } return SCOPESYSTEM, nil case LEVELPROJECT: @@ -371,7 +371,7 @@ func (d *controller) toScope(ctx context.Context, p *Permission) (string, error) } return fmt.Sprintf("/project/%d", pro.ProjectID), nil } - return "", errors.New(nil).WithMessagef("unknown robot kind").WithCode(errors.BadRequestCode) + return "", errors.New(nil).WithMessage("unknown robot kind").WithCode(errors.BadRequestCode) } // set the project info if it's a project level robot @@ -404,7 +404,7 @@ func CreateSec(salt ...string) (string, string, string, error) { if err := retry.Retry(func() error { pwd = utils.GenerateRandomString() if !IsValidSec(pwd) { - return errors.New(nil).WithMessagef("invalid secret format") + return errors.New(nil).WithMessage("invalid secret format") } return nil }, options...); err != nil { diff --git a/src/controller/scan/base_controller.go b/src/controller/scan/base_controller.go index 4f59480e226..448e25e278d 100644 --- a/src/controller/scan/base_controller.go +++ b/src/controller/scan/base_controller.go @@ -788,7 +788,7 @@ func (bc *basicController) GetVulnerable(ctx context.Context, artifact *ar.Artif } if len(reports) == 0 { - return nil, errors.NotFoundError(nil).WithMessagef("report not found") + return nil, errors.NotFoundError(nil).WithMessage("report not found") } scanStatus := reports[0].Status diff --git a/src/controller/scanner/base_controller.go b/src/controller/scanner/base_controller.go index 92082c6ad67..25ae5820d58 100644 --- a/src/controller/scanner/base_controller.go +++ b/src/controller/scanner/base_controller.go @@ -402,7 +402,7 @@ type MetadataResult struct { func (m *MetadataResult) Unpack() (*v1.ScannerAdapterMetadata, error) { var err error if m.Error != "" { - err = errors.New(m.Error) + err = errors.New(nil).WithMessage(m.Error) } return m.Metadata, err diff --git a/src/controller/user/controller.go b/src/controller/user/controller.go index a600737de32..928d9fa89f7 100644 --- a/src/controller/user/controller.go +++ b/src/controller/user/controller.go @@ -107,10 +107,10 @@ func (c *controller) UpdateOIDCMeta(ctx context.Context, ou *commonmodels.OIDCUs func (c *controller) OnboardOIDCUser(ctx context.Context, u *commonmodels.User) error { if u == nil { - return errors.BadRequestError(nil).WithMessagef("user model is nil") + return errors.BadRequestError(nil).WithMessage("user model is nil") } if u.OIDCUserMeta == nil { - return errors.BadRequestError(nil).WithMessagef("OIDC meta of the user model is empty") + return errors.BadRequestError(nil).WithMessage("OIDC meta of the user model is empty") } uid, err := c.mgr.Create(ctx, u) if err != nil { diff --git a/src/core/api/internal.go b/src/core/api/internal.go index 3ee3c2e0243..fbe6ee4ff92 100644 --- a/src/core/api/internal.go +++ b/src/core/api/internal.go @@ -75,7 +75,7 @@ func (ia *InternalAPI) RenameAdmin() { // SyncQuota ... func (ia *InternalAPI) SyncQuota() { if !config.QuotaPerProjectEnable(orm.Context()) { - ia.SendError(errors.ForbiddenError(nil).WithMessagef("quota per project is deactivated")) + ia.SendError(errors.ForbiddenError(nil).WithMessage("quota per project is deactivated")) return } ctx := orm.Context() diff --git a/src/jobservice/job/impl/gc/util_test.go b/src/jobservice/job/impl/gc/util_test.go index 2aaca923141..b290aac2ebd 100644 --- a/src/jobservice/job/impl/gc/util_test.go +++ b/src/jobservice/job/impl/gc/util_test.go @@ -16,15 +16,15 @@ func TestIgnoreNotFound(t *testing.T) { } assert.Nil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessagef("my error") + return errors.New(nil).WithMessage("my error") } assert.NotNil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessagef("my error").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("my error").WithCode(errors.BadRequestCode) } assert.NotNil(t, ignoreNotFound(f)) f = func() error { - return errors.New(nil).WithMessagef("my error").WithCode(errors.NotFoundCode) + return errors.New(nil).WithMessage("my error").WithCode(errors.NotFoundCode) } assert.Nil(t, ignoreNotFound(f)) } diff --git a/src/lib/endpoint.go b/src/lib/endpoint.go index f073ef33005..95e6d612391 100644 --- a/src/lib/endpoint.go +++ b/src/lib/endpoint.go @@ -28,7 +28,7 @@ func ValidateHTTPURL(s string) (string, error) { s = strings.Trim(s, " ") s = strings.TrimRight(s, "/") if len(s) == 0 { - return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("empty string") + return "", errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("empty string") } if !strings.Contains(s, "://") { s = "http://" + s diff --git a/src/lib/errors/errors_test.go b/src/lib/errors/errors_test.go index 6998b22bba1..725f3de8312 100644 --- a/src/lib/errors/errors_test.go +++ b/src/lib/errors/errors_test.go @@ -63,7 +63,7 @@ func caller2() error { func caller3() error { err := caller4() - return New(nil).WithMessagef("it's caller 3.").WithCause(err) + return New(nil).WithMessage("it's caller 3.").WithCause(err) } func caller4() error { @@ -113,7 +113,7 @@ func (suite *ErrorTestSuite) TestNew() { func (suite *ErrorTestSuite) TestWithMessage() { cause := New("root") - err := cause.WithMessagef("append message").WithMessagef("append message2") + err := cause.WithMessagef("append message").WithMessage("append message2") suite.Equal("append message2", err.Error()) } @@ -125,7 +125,7 @@ func (suite *ErrorTestSuite) TestWithCause() { func (suite *ErrorTestSuite) TestWithCauseMessage() { cause := errors.New("stdErr") - err := New("root").WithCause(cause).WithMessagef("With Message") + err := New("root").WithCause(cause).WithMessage("With Message") suite.Equal("With Message: stdErr", err.Error()) } diff --git a/src/lib/http/error.go b/src/lib/http/error.go index 54c97b98d82..c3abd94ba5e 100644 --- a/src/lib/http/error.go +++ b/src/lib/http/error.go @@ -55,7 +55,7 @@ func SendError(w http.ResponseWriter, err error) { // the error detail is logged only, and will not be sent to the client to avoid leaking server information if statusCode >= http.StatusInternalServerError { log.Errorf("%s %s", errPayload, stackTrace) - err = errors.New(nil).WithCode(errors.GeneralCode).WithMessagef("internal server error") + err = errors.New(nil).WithCode(errors.GeneralCode).WithMessage("internal server error") errPayload = errors.NewErrs(err).Error() } else { // only log the error whose status code < 500 when debugging to avoid log flooding @@ -77,12 +77,12 @@ func apiError(err error) (statusCode int, errPayload, stackTrace string) { // So we needed to convert the format to the internal error response format. code = int(openAPIErr.Code()) errCode := strings.Replace(strings.ToUpper(http.StatusText(code)), " ", "_", -1) - err = errors.New(openAPIErr).WithCode(errCode) + err = errors.New(nil).WithCode(errCode).WithMessage(openAPIErr.Error()) } else if legacyErr, ok := err.(*commonhttp.Error); ok { // make sure the legacy error format is align with the new one code = legacyErr.Code errCode := strings.Replace(strings.ToUpper(http.StatusText(code)), " ", "_", -1) - err = errors.New(legacyErr).WithCode(errCode) + err = errors.New(nil).WithCode(errCode).WithMessage(legacyErr.Message) } else { code = codeMap[errors.ErrCode(err)] } diff --git a/src/lib/http/error_test.go b/src/lib/http/error_test.go index 542efe7fc50..68cdd15e374 100644 --- a/src/lib/http/error_test.go +++ b/src/lib/http/error_test.go @@ -30,21 +30,21 @@ import ( func TestSendError(t *testing.T) { // unauthorized error rw := httptest.NewRecorder() - err := errors.New(nil).WithCode(errors.UnAuthorizedCode).WithMessagef("unauthorized") + err := errors.New(nil).WithCode(errors.UnAuthorizedCode).WithMessage("unauthorized") SendError(rw, err) assert.Equal(t, http.StatusUnauthorized, rw.Code) assert.Equal(t, `{"errors":[{"code":"UNAUTHORIZED","message":"unauthorized"}]}`+"\n", rw.Body.String()) // internal server error rw = httptest.NewRecorder() - err = errors.New(nil).WithCode(errors.GeneralCode).WithMessagef("unknown") + err = errors.New(nil).WithCode(errors.GeneralCode).WithMessage("unknown") SendError(rw, err) assert.Equal(t, http.StatusInternalServerError, rw.Code) assert.Equal(t, `{"errors":[{"code":"UNKNOWN","message":"internal server error"}]}`+"\n", rw.Body.String()) // not internal server error rw = httptest.NewRecorder() - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("object not found") + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("object not found") SendError(rw, err) assert.Equal(t, http.StatusNotFound, rw.Code) assert.Equal(t, `{"errors":[{"code":"NOT_FOUND","message":"object not found"}]}`+"\n", rw.Body.String()) diff --git a/src/lib/q/builder.go b/src/lib/q/builder.go index acc5ad54aac..98a885ead16 100644 --- a/src/lib/q/builder.go +++ b/src/lib/q/builder.go @@ -64,7 +64,7 @@ func parseKeywords(q string) (map[string]interface{}, error) { if len(strs) != 2 || len(strs[0]) == 0 || len(strs[1]) == 0 { return nil, errors.New(nil). WithCode(errors.BadRequestCode). - WithMessagef(`the query string must contain "=" and the key/value cannot be empty`) + WithMessage(`the query string must contain "=" and the key/value cannot be empty`) } value, err := parsePattern(strs[1]) if err != nil { diff --git a/src/pkg/artifact/dao/dao.go b/src/pkg/artifact/dao/dao.go index f1edf6dabe6..e22e23091a5 100644 --- a/src/pkg/artifact/dao/dao.go +++ b/src/pkg/artifact/dao/dao.go @@ -304,7 +304,7 @@ func (d *dao) ListWithLatest(ctx context.Context, query *q.Query) (artifacts []* var pid interface{} if pid, ok = query.Keywords["ProjectID"]; !ok { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "ProjectID" must be set`) + WithMessage(`the value of "ProjectID" must be set`) } queryParam = append(queryParam, pid) @@ -317,7 +317,7 @@ func (d *dao) ListWithLatest(ctx context.Context, query *q.Query) (artifacts []* if attributionValue == "" { return nil, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "media_type" or "artifact_type" must be set`) + WithMessage(`the value of "media_type" or "artifact_type" must be set`) } queryParam = append(queryParam, attributionValue) @@ -372,7 +372,7 @@ func setBaseQuery(qs beegoorm.QuerySeter, query *q.Query) (beegoorm.QuerySeter, b, ok := base.(string) if !ok || b != "*" { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "base" query can only be exact match value with "*"`) + WithMessage(`the value of "base" query can only be exact match value with "*"`) } // the base is specified as "*" return qs, nil @@ -430,7 +430,7 @@ func setTagQuery(ctx context.Context, qs beegoorm.QuerySeter, query *q.Query) (b return qs, nil } return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "tags" query can only be fuzzy match value or exact match value`) + WithMessage(`the value of "tags" query can only be fuzzy match value or exact match value`) } // handle query string: q=labels=(1 2 3) @@ -448,14 +448,14 @@ func setLabelQuery(qs beegoorm.QuerySeter, query *q.Query) (beegoorm.QuerySeter, al, ok := labels.(*q.AndList) if !ok { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "labels" query can only be integer list with intersetion relationship`) + WithMessage(`the value of "labels" query can only be integer list with intersetion relationship`) } var collections []string for _, value := range al.Values { labelID, ok := value.(int64) if !ok { return qs, errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef(`the value of "labels" query can only be integer list with intersetion relationship`) + WithMessage(`the value of "labels" query can only be integer list with intersetion relationship`) } // param "labelID" is integer, no need to sanitize collections = append(collections, fmt.Sprintf(`SELECT artifact_id FROM label_reference WHERE label_id=%d`, labelID)) diff --git a/src/pkg/project/manager.go b/src/pkg/project/manager.go index 5588a666e88..b030061afdd 100644 --- a/src/pkg/project/manager.go +++ b/src/pkg/project/manager.go @@ -81,7 +81,7 @@ func (m *manager) Create(ctx context.Context, project *models.Project) (int64, e legal := validProjectName.MatchString(project.Name) if !legal { - return 0, errors.BadRequestError(nil).WithMessagef("project name is not in lower case or contains illegal characters") + return 0, errors.BadRequestError(nil).WithMessage("project name is not in lower case or contains illegal characters") } return m.dao.Create(ctx, project) diff --git a/src/pkg/queuestatus/dao/dao.go b/src/pkg/queuestatus/dao/dao.go index 50826609ca4..3d09c3b7a61 100644 --- a/src/pkg/queuestatus/dao/dao.go +++ b/src/pkg/queuestatus/dao/dao.go @@ -24,7 +24,7 @@ import ( ) // ErrQueueTypeDup ... -var ErrQueueTypeDup = errors.ConflictError(nil).WithMessagef("duplicated queue type") +var ErrQueueTypeDup = errors.ConflictError(nil).WithMessage("duplicated queue type") func init() { orm.RegisterModel( diff --git a/src/pkg/reg/model/policy.go b/src/pkg/reg/model/policy.go index 80ea5a415b2..3b7260b77dc 100644 --- a/src/pkg/reg/model/policy.go +++ b/src/pkg/reg/model/policy.go @@ -46,7 +46,7 @@ func (f *Filter) Validate() error { value, ok := f.Value.(string) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("the type of filter value isn't string") + WithMessage("the type of filter value isn't string") } if f.Type == FilterTypeResource { rt := value @@ -58,25 +58,25 @@ func (f *Filter) Validate() error { if f.Type == FilterTypeName || f.Type == FilterTypeResource { if f.Decoration != "" { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("only tag and label filter support decoration") + WithMessage("only tag and label filter support decoration") } } case FilterTypeLabel: labels, ok := f.Value.([]interface{}) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("the type of label filter value isn't string slice") + WithMessage("the type of label filter value isn't string slice") } for _, label := range labels { _, ok := label.(string) if !ok { return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("the type of label filter value isn't string slice") + WithMessage("the type of label filter value isn't string slice") } } default: return errors.New(nil).WithCode(errors.BadRequestCode). - WithMessagef("invalid filter type") + WithMessage("invalid filter type") } if f.Decoration != "" && f.Decoration != Matches && f.Decoration != Excludes { diff --git a/src/pkg/registry/client.go b/src/pkg/registry/client.go index cc5af14ea36..23bb148270c 100644 --- a/src/pkg/registry/client.go +++ b/src/pkg/registry/client.go @@ -597,7 +597,7 @@ func (c *client) Copy(srcRepo, srcRef, dstRepo, dstRef string, override bool) er // the same name artifact exists, but not allowed to override if !override { return errors.New(nil).WithCode(errors.PreconditionCode). - WithMessagef("the same name but different digest artifact exists, but the override is set to false") + WithMessage("the same name but different digest artifact exists, but the override is set to false") } } diff --git a/src/pkg/scan/sbom/sbom.go b/src/pkg/scan/sbom/sbom.go index 29ba54cbe92..b58057f9e32 100644 --- a/src/pkg/scan/sbom/sbom.go +++ b/src/pkg/scan/sbom/sbom.go @@ -233,7 +233,7 @@ func (h *scanHandler) delete(ctx context.Context, art *artifact.Artifact, mimeTy taskMgr := h.TaskMgrFunc() for _, rpt := range sbomReports { if !taskMgr.IsTaskFinished(ctx, rpt.UUID) { - return errors.ConflictError(nil).WithMessagef("a previous sbom generate process is running") + return errors.ConflictError(nil).WithMessage("a previous sbom generate process is running") } } @@ -287,7 +287,7 @@ func (h *scanHandler) GetPlaceHolder(ctx context.Context, artRepo string, artDig } if len(rpts) == 0 { logger.Errorf("No report found for artifact %s@%s of mimetype %s, error %v", artRepo, artDigest, mimeType, err) - return nil, errors.NotFoundError(nil).WithMessagef("no report found to update data") + return nil, errors.NotFoundError(nil).WithMessage("no report found to update data") } return &scanModel.Report{ UUID: rpts[0].UUID, diff --git a/src/pkg/user/manager_test.go b/src/pkg/user/manager_test.go index bad8d399b53..166513149b7 100644 --- a/src/pkg/user/manager_test.go +++ b/src/pkg/user/manager_test.go @@ -91,7 +91,7 @@ func (m *mgrTestSuite) TestOnboard() { m.dao.On("Create", mock.Anything, testifymock.MatchedBy( func(u *models.User) bool { return u.Username == "existing" - })).Return(0, errors.ConflictError(nil).WithMessagef("username exists")) + })).Return(0, errors.ConflictError(nil).WithMessage("username exists")) m.dao.On("Create", mock.Anything, testifymock.MatchedBy( func(u *models.User) bool { return u.Username != "existing" && u.Username != "dup-but-not-existing" diff --git a/src/pkg/usergroup/dao/dao.go b/src/pkg/usergroup/dao/dao.go index b2e97a24d9d..e6c15fc4bbb 100644 --- a/src/pkg/usergroup/dao/dao.go +++ b/src/pkg/usergroup/dao/dao.go @@ -60,7 +60,7 @@ func New() DAO { } // ErrGroupNameDup ... -var ErrGroupNameDup = errors.ConflictError(nil).WithMessagef("duplicated user group name") +var ErrGroupNameDup = errors.ConflictError(nil).WithMessage("duplicated user group name") // Add - Add User Group func (d *dao) Add(ctx context.Context, userGroup model.UserGroup) (int, error) { diff --git a/src/registryctl/api/base.go b/src/registryctl/api/base.go index 29a2681df32..d40711e1387 100644 --- a/src/registryctl/api/base.go +++ b/src/registryctl/api/base.go @@ -42,7 +42,7 @@ func HandleBadRequest(w http.ResponseWriter, err error) { // HandleError ... func HandleError(w http.ResponseWriter, err error) { if _, ok := err.(driver.PathNotFoundError); ok { - err = errors.New(err).WithCode(errors.NotFoundCode) + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage(err.Error()) } lib_http.SendError(w, err) } diff --git a/src/server/middleware/contenttrust/contentrust.go b/src/server/middleware/contenttrust/contentrust.go index 847ded5df33..e3eabcdc156 100644 --- a/src/server/middleware/contenttrust/contentrust.go +++ b/src/server/middleware/contenttrust/contentrust.go @@ -47,7 +47,7 @@ func ContentTrust() func(http.Handler) http.Handler { if pro.ContentTrustCosignEnabled() { if err := signatureChecking(ctx, r, af, pro.ProjectID, model.TypeCosignSignature); err != nil { if errors.IsErr(err, errors.PROJECTPOLICYVIOLATION) { - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef("The image is not signed by cosign.") + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage("The image is not signed by cosign.") } return err } @@ -55,7 +55,7 @@ func ContentTrust() func(http.Handler) http.Handler { if pro.ContentTrustEnabled() { if err := signatureChecking(ctx, r, af, pro.ProjectID, model.TypeNotationSignature); err != nil { if errors.IsErr(err, errors.PROJECTPOLICYVIOLATION) { - return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessagef("The image is not signed by notation.") + return errors.New(nil).WithCode(errors.PROJECTPOLICYVIOLATION).WithMessage("The image is not signed by notation.") } return err } diff --git a/src/server/middleware/readonly/readonly.go b/src/server/middleware/readonly/readonly.go index 31cdd8ba7f5..cde12074cbb 100644 --- a/src/server/middleware/readonly/readonly.go +++ b/src/server/middleware/readonly/readonly.go @@ -69,7 +69,7 @@ func MiddlewareWithConfig(config Config, skippers ...middleware.Skipper) func(ht return middleware.New(func(w http.ResponseWriter, r *http.Request, next http.Handler) { if config.ReadOnly(r) { - pkgE := errors.New(nil).WithCode(errors.DENIED).WithMessagef("The system is in read only mode. Any modification is prohibited.") + pkgE := errors.New(nil).WithCode(errors.DENIED).WithMessage("The system is in read only mode. Any modification is prohibited.") lib_http.SendError(w, pkgE) return } diff --git a/src/server/registry/catalog.go b/src/server/registry/catalog.go index 5000e7757b1..3326af698b1 100644 --- a/src/server/registry/catalog.go +++ b/src/server/registry/catalog.go @@ -16,7 +16,6 @@ package registry import ( "encoding/json" - "fmt" "net/http" "sort" "strconv" @@ -48,7 +47,7 @@ func (r *repositoryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) if withN { maxEntries, err = strconv.Atoi(reqQ.Get("n")) if err != nil || maxEntries < 0 { - err := errors.New(err).WithCode(errors.BadRequestCode).WithMessagef("the N must be a positive int type") + err := errors.New(err).WithCode(errors.BadRequestCode).WithMessage("the N must be a positive int type") lib_http.SendError(w, err) return } @@ -82,7 +81,7 @@ func (r *repositoryHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) if lastEntry != "" { lastEntryIndex := util.IndexString(repoNames, lastEntry) if lastEntryIndex == -1 { - err := errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef(fmt.Sprintf("the last: %s should be a valid repository name.", lastEntry)) + err := errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the last: %s should be a valid repository name.", lastEntry) lib_http.SendError(w, err) return } diff --git a/src/server/registry/util/util.go b/src/server/registry/util/util.go index 4be46548b59..2915da71e85 100644 --- a/src/server/registry/util/util.go +++ b/src/server/registry/util/util.go @@ -67,7 +67,7 @@ func ParseNAndLastParameters(r *http.Request) (*int, string, error) { if q.Get("n") != "" { value, err := strconv.Atoi(q.Get("n")) if err != nil || value < 0 { - return nil, "", errors.New(err).WithCode(errors.BadRequestCode).WithMessagef("the N must be a positive int type") + return nil, "", errors.New(err).WithCode(errors.BadRequestCode).WithMessage("the N must be a positive int type") } n = &value diff --git a/src/server/v2.0/handler/artifact.go b/src/server/v2.0/handler/artifact.go index 725baa9e52a..c5ee8311402 100644 --- a/src/server/v2.0/handler/artifact.go +++ b/src/server/v2.0/handler/artifact.go @@ -190,7 +190,7 @@ func (a *artifactAPI) CopyArtifact(ctx context.Context, params operation.CopyArt return a.SendError(ctx, err) } if len(accs) >= 1 && accs[0].IsHard() { - return a.SendError(ctx, errors.New(nil).WithCode(errors.DENIED).WithMessagef("the operation isn't supported for an artifact accessory")) + return a.SendError(ctx, errors.New(nil).WithCode(errors.DENIED).WithMessage("the operation isn't supported for an artifact accessory")) } dstRepo := fmt.Sprintf("%s/%s", params.ProjectName, params.RepositoryName) diff --git a/src/server/v2.0/handler/auditlog.go b/src/server/v2.0/handler/auditlog.go index 982258055e7..22540b1aec2 100644 --- a/src/server/v2.0/handler/auditlog.go +++ b/src/server/v2.0/handler/auditlog.go @@ -51,7 +51,7 @@ func (a *auditlogAPI) ListAuditLogs(ctx context.Context, params auditlog.ListAud return a.SendError(ctx, errors.UnauthorizedError(errors.New("security context not found"))) } if !secCtx.IsAuthenticated() { - return a.SendError(ctx, errors.UnauthorizedError(nil).WithMessagef(secCtx.GetUsername())) + return a.SendError(ctx, errors.UnauthorizedError(nil).WithMessage(secCtx.GetUsername())) } query, err := a.BuildQuery(ctx, params.Q, params.Sort, params.Page, params.PageSize) if err != nil { diff --git a/src/server/v2.0/handler/base.go b/src/server/v2.0/handler/base.go index a21d0678e7d..ed166392b5a 100644 --- a/src/server/v2.0/handler/base.go +++ b/src/server/v2.0/handler/base.go @@ -130,7 +130,7 @@ func (b *BaseAPI) RequireSystemAccess(ctx context.Context, action rbac.Action, s } resource := system.NewNamespace().Resource(subresource...) if !secCtx.Can(ctx, action, resource) { - return errors.ForbiddenError(nil).WithMessagef(secCtx.GetUsername()) + return errors.ForbiddenError(nil).WithMessage(secCtx.GetUsername()) } return nil } @@ -151,7 +151,7 @@ func (b *BaseAPI) RequireAuthenticated(ctx context.Context) error { func (b *BaseAPI) RequireSolutionUserAccess(ctx context.Context) error { sec, exist := security.FromContext(ctx) if !exist || !sec.IsSolutionUser() { - return errors.UnauthorizedError(nil).WithMessagef("only internal service is allowed to call this API") + return errors.UnauthorizedError(nil).WithMessage("only internal service is allowed to call this API") } return nil } diff --git a/src/server/v2.0/handler/config.go b/src/server/v2.0/handler/config.go index bdb136fb9a4..b0e4e6958ab 100644 --- a/src/server/v2.0/handler/config.go +++ b/src/server/v2.0/handler/config.go @@ -77,7 +77,7 @@ func (c *configAPI) UpdateConfigurations(ctx context.Context, params configure.U return c.SendError(ctx, err) } if params.Configurations == nil { - return c.SendError(ctx, errors.BadRequestError(nil).WithMessagef("Missing configure item")) + return c.SendError(ctx, errors.BadRequestError(nil).WithMessage("Missing configure item")) } conf := params.Configurations cfgMap, err := toCfgMap(conf) diff --git a/src/server/v2.0/handler/label.go b/src/server/v2.0/handler/label.go index 7237f71156b..80bc1b1ec3f 100644 --- a/src/server/v2.0/handler/label.go +++ b/src/server/v2.0/handler/label.go @@ -107,7 +107,7 @@ func (lAPI *labelAPI) ListLabels(ctx context.Context, params operation.ListLabel if scope == common.LabelScopeProject { pid := lib.Int64Value(params.ProjectID) if pid == 0 { - return lAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("must with project ID when to query project labels")) + return lAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("must with project ID when to query project labels")) } if err := lAPI.RequireProjectAccess(ctx, pid, rbac.ActionList, rbac.ResourceLabel); err != nil { return lAPI.SendError(ctx, err) diff --git a/src/server/v2.0/handler/member.go b/src/server/v2.0/handler/member.go index dccde9b60db..2243cca82f6 100644 --- a/src/server/v2.0/handler/member.go +++ b/src/server/v2.0/handler/member.go @@ -45,7 +45,7 @@ func (m *memberAPI) CreateProjectMember(ctx context.Context, params operation.Cr return m.SendError(ctx, err) } if params.ProjectMember == nil { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the project member should provide")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the project member should provide")) } req, err := toMemberReq(params.ProjectMember) if err != nil { @@ -78,7 +78,7 @@ func (m *memberAPI) DeleteProjectMember(ctx context.Context, params operation.De return m.SendError(ctx, err) } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the project member id is required.")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the project member id is required.")) } err := m.ctl.Delete(ctx, projectNameOrID, int(params.Mid)) if err != nil { @@ -94,7 +94,7 @@ func (m *memberAPI) GetProjectMember(ctx context.Context, params operation.GetPr } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the member id can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("the member id can not be empty!")) } member, err := m.ctl.Get(ctx, projectNameOrID, int(params.Mid)) @@ -159,10 +159,10 @@ func (m *memberAPI) UpdateProjectMember(ctx context.Context, params operation.Up return m.SendError(ctx, err) } if params.Role == nil { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("role can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("role can not be empty")) } if params.Mid == 0 { - return m.SendError(ctx, errors.BadRequestError(nil).WithMessagef("member id can not be empty!")) + return m.SendError(ctx, errors.BadRequestError(nil).WithMessage("member id can not be empty")) } err := m.ctl.UpdateRole(ctx, projectNameOrID, int(params.Mid), int(params.Role.RoleID)) diff --git a/src/server/v2.0/handler/oidc.go b/src/server/v2.0/handler/oidc.go index b70a95e9664..7ed4ebd3ce0 100644 --- a/src/server/v2.0/handler/oidc.go +++ b/src/server/v2.0/handler/oidc.go @@ -45,7 +45,7 @@ func (o oidcAPI) PingOIDC(ctx context.Context, params oidc.PingOIDCParams) middl if err != nil { log.Errorf("Failed to verify connection: %+v, err: %v", params.Endpoint, err) - return o.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("failed to verify connection")) + return o.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("failed to verify connection")) } return oidc.NewPingOIDCOK() } diff --git a/src/server/v2.0/handler/permissions.go b/src/server/v2.0/handler/permissions.go index d1d10a9404d..192e88a2758 100644 --- a/src/server/v2.0/handler/permissions.go +++ b/src/server/v2.0/handler/permissions.go @@ -49,7 +49,7 @@ func (p *permissionsAPI) GetPermissions(ctx context.Context, _ permissions.GetPe return p.SendError(ctx, errors.UnauthorizedError(errors.New("security context not found"))) } if !secCtx.IsAuthenticated() { - return p.SendError(ctx, errors.UnauthorizedError(nil).WithMessagef(secCtx.GetUsername())) + return p.SendError(ctx, errors.UnauthorizedError(nil).WithMessage(secCtx.GetUsername())) } var isSystemAdmin bool diff --git a/src/server/v2.0/handler/project.go b/src/server/v2.0/handler/project.go index f453c9ae995..44e2354be91 100644 --- a/src/server/v2.0/handler/project.go +++ b/src/server/v2.0/handler/project.go @@ -108,17 +108,17 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP secCtx, _ := security.FromContext(ctx) if r, ok := secCtx.(*robotSec.SecurityContext); ok && !r.User().IsSysLevel() { log.Errorf("Only system level robot can create project") - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system level robot can create project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system level robot can create project")) } if onlyAdmin && !(a.isSysAdmin(ctx, rbac.ActionCreate) || secCtx.IsSolutionUser()) { log.Errorf("Only sys admin can create project") - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system admin can create project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system admin can create project")) } req := params.Project if req.RegistryID != nil && !a.isSysAdmin(ctx, rbac.ActionCreate) { - return a.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Only system admin can create proxy cache project")) + return a.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Only system admin can create proxy cache project")) } // populate storage limit @@ -155,7 +155,7 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP // validate metadata.public value, should only be "true" or "false" if p := req.Metadata.Public; p != "" { if p != "true" && p != "false" { - return a.SendError(ctx, errors.BadRequestError(nil).WithMessagef(fmt.Sprintf("metadata.public should only be 'true' or 'false', but got: '%s'", p))) + return a.SendError(ctx, errors.BadRequestError(nil).WithMessagef("metadata.public should only be 'true' or 'false', but got: '%s'", p)) } } @@ -196,7 +196,7 @@ func (a *projectAPI) CreateProject(ctx context.Context, params operation.CreateP return a.SendError(ctx, err) } if len(admins) == 0 { - return a.SendError(ctx, errors.New(nil).WithMessagef("cannot create project as no system admin found")) + return a.SendError(ctx, errors.New(nil).WithMessage("cannot create project as no system admin found")) } ownerID = admins[0].UserID } else { @@ -578,7 +578,7 @@ func (a *projectAPI) UpdateProject(ctx context.Context, params operation.UpdateP } if rid, ok := md["retention_id"]; !ok || rid != ridParam { errMsg := "the retention_id in the request's payload when updating a project should be omitted, alternatively passing the one that has already been associated to this project" - return a.SendError(ctx, errors.New(nil).WithMessagef(errMsg).WithCode(errors.BadRequestCode)) + return a.SendError(ctx, errors.New(nil).WithMessage(errMsg).WithCode(errors.BadRequestCode)) } } diff --git a/src/server/v2.0/handler/project_metadata.go b/src/server/v2.0/handler/project_metadata.go index 9b8a55bda97..b58c59ffa66 100644 --- a/src/server/v2.0/handler/project_metadata.go +++ b/src/server/v2.0/handler/project_metadata.go @@ -134,7 +134,7 @@ func (p *projectMetadataAPI) UpdateProjectMetadata(ctx context.Context, params o func (p *projectMetadataAPI) validate(metas map[string]string) (map[string]string, error) { if len(metas) != 1 { - return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("only allow one key/value pair") + return nil, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("only allow one key/value pair") } key, value := "", "" diff --git a/src/server/v2.0/handler/quota.go b/src/server/v2.0/handler/quota.go index d17dfd351e2..f4ea42e28dd 100644 --- a/src/server/v2.0/handler/quota.go +++ b/src/server/v2.0/handler/quota.go @@ -95,7 +95,7 @@ func (qa *quotaAPI) UpdateQuota(ctx context.Context, params operation.UpdateQuot } if params.Hard == nil || len(params.Hard.Hard) == 0 { - return qa.SendError(ctx, errors.BadRequestError(nil).WithMessagef("hard required in body")) + return qa.SendError(ctx, errors.BadRequestError(nil).WithMessage("hard required in body")) } q, err := qa.quotaCtl.Get(ctx, params.ID) @@ -109,7 +109,7 @@ func (qa *quotaAPI) UpdateQuota(ctx context.Context, params operation.UpdateQuot } if err := quota.Validate(ctx, q.Reference, hard); err != nil { - return qa.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) + return qa.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) } q.SetHard(hard) diff --git a/src/server/v2.0/handler/registry.go b/src/server/v2.0/handler/registry.go index 1bc82241fa9..1cc22528609 100644 --- a/src/server/v2.0/handler/registry.go +++ b/src/server/v2.0/handler/registry.go @@ -256,7 +256,7 @@ func (r *registryAPI) PingRegistry(ctx context.Context, params operation.PingReg } if len(registry.Type) == 0 || len(registry.URL) == 0 { - return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("type or url cannot be empty")) + return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("type or url cannot be empty")) } healthy, err := r.ctl.IsHealthy(ctx, registry) @@ -265,7 +265,7 @@ func (r *registryAPI) PingRegistry(ctx context.Context, params operation.PingReg } if !healthy { - return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessagef("the registry is unhealthy")) + return r.SendError(ctx, errors.New(nil).WithCode(errors.BadRequestCode).WithMessage("the registry is unhealthy")) } return operation.NewPingRegistryOK() diff --git a/src/server/v2.0/handler/robot.go b/src/server/v2.0/handler/robot.go index a0468e21ecd..197f86fa7d6 100644 --- a/src/server/v2.0/handler/robot.go +++ b/src/server/v2.0/handler/robot.go @@ -89,7 +89,7 @@ func (rAPI *robotAPI) CreateRobot(ctx context.Context, params operation.CreateRo case *robotSc.SecurityContext: creatorRef = s.User().ID default: - return rAPI.SendError(ctx, errors.New(nil).WithMessagef("invalid security context")) + return rAPI.SendError(ctx, errors.New(nil).WithMessage("invalid security context")) } r.CreatorType = sc.Name() r.CreatorRef = creatorRef @@ -181,16 +181,16 @@ func (rAPI *robotAPI) ListRobot(ctx context.Context, params operation.ListRobotP // GET /api/v2.0/robots?level=project&project_id=1 if _, ok := query.Keywords["Level"]; ok { if !isValidLevel(query.Keywords["Level"].(string)) { - return rAPI.SendError(ctx, errors.New(nil).WithMessagef("bad request error level input").WithCode(errors.BadRequestCode)) + return rAPI.SendError(ctx, errors.New(nil).WithMessage("bad request error level input").WithCode(errors.BadRequestCode)) } level = query.Keywords["Level"].(string) if level == robot.LEVELPROJECT { if _, ok := query.Keywords["ProjectID"]; !ok { - return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("must with project ID when to query project robots")) + return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("must with project ID when to query project robots")) } pid, err := strconv.ParseInt(query.Keywords["ProjectID"].(string), 10, 64) if err != nil { - return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessagef("Project ID must be int type.")) + return rAPI.SendError(ctx, errors.BadRequestError(nil).WithMessage("Project ID must be int type.")) } projectID = pid } @@ -262,7 +262,7 @@ func (rAPI *robotAPI) UpdateRobot(ctx context.Context, params operation.UpdateRo } if !r.Editable { - err = errors.DeniedError(nil).WithMessagef("editing of legacy robot is not allowed") + err = errors.DeniedError(nil).WithMessage("editing of legacy robot is not allowed") } else { err = rAPI.updateV2Robot(ctx, params, r) } @@ -341,18 +341,18 @@ func (rAPI *robotAPI) validate(d int64, level string, permissions []*models.Robo } if len(permissions) == 0 { - return errors.New(nil).WithMessagef("bad request empty permission").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("bad request empty permission").WithCode(errors.BadRequestCode) } for _, perm := range permissions { if len(perm.Access) == 0 { - return errors.New(nil).WithMessagef("bad request empty access").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("bad request empty access").WithCode(errors.BadRequestCode) } } // to create a project robot, the permission must be only one project scope. if level == robot.LEVELPROJECT && len(permissions) > 1 { - return errors.New(nil).WithMessagef("bad request permission").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("bad request permission").WithCode(errors.BadRequestCode) } provider := rbac.GetPermissionProvider() @@ -393,7 +393,7 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return err } if r.ProjectID != projectID { - return errors.BadRequestError(nil).WithMessagef("cannot update the project id of robot") + return errors.BadRequestError(nil).WithMessage("cannot update the project id of robot") } } r.ProjectNameOrID = params.Robot.Permissions[0].Namespace @@ -401,7 +401,7 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return err } if params.Robot.Level != r.Level || params.Robot.Name != r.Name { - return errors.BadRequestError(nil).WithMessagef("cannot update the level or name of robot") + return errors.BadRequestError(nil).WithMessage("cannot update the level or name of robot") } if r.Duration != *params.Robot.Duration { @@ -478,7 +478,7 @@ func validateName(name string) error { robotNameReg := `^[a-z0-9]+(?:[._-][a-z0-9]+)*$` legal := regexp.MustCompile(robotNameReg).MatchString(name) if !legal { - return errors.BadRequestError(nil).WithMessagef("robot name is not in lower case or contains illegal characters") + return errors.BadRequestError(nil).WithMessage("robot name is not in lower case or contains illegal characters") } return nil } diff --git a/src/server/v2.0/handler/robotV1.go b/src/server/v2.0/handler/robotV1.go index b527fc3a6f1..885e96e32ce 100644 --- a/src/server/v2.0/handler/robotV1.go +++ b/src/server/v2.0/handler/robotV1.go @@ -249,10 +249,10 @@ func (rAPI *robotV1API) UpdateRobotV1(ctx context.Context, params operation.Upda func (rAPI *robotV1API) validate(ctx context.Context, params operation.CreateRobotV1Params) error { if params.Robot == nil { - return errors.New(nil).WithMessagef("bad request no robot").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("bad request no robot").WithCode(errors.BadRequestCode) } if len(params.Robot.Access) == 0 { - return errors.New(nil).WithMessagef("bad request no access").WithCode(errors.BadRequestCode) + return errors.New(nil).WithMessage("bad request no access").WithCode(errors.BadRequestCode) } projectNameOrID := parseProjectNameOrID(params.ProjectNameOrID, params.XIsResourceName) diff --git a/src/server/v2.0/handler/scan_all.go b/src/server/v2.0/handler/scan_all.go index ca91a7cdecc..1f7e303bbb7 100644 --- a/src/server/v2.0/handler/scan_all.go +++ b/src/server/v2.0/handler/scan_all.go @@ -116,7 +116,7 @@ func (s *scanAllAPI) CreateScanAllSchedule(ctx context.Context, params operation if schedule != nil { message := "fail to set schedule for scan all as always had one, please delete it firstly then to re-schedule" - return s.SendError(ctx, errors.PreconditionFailedError(nil).WithMessagef(message)) + return s.SendError(ctx, errors.PreconditionFailedError(nil).WithMessage(message)) } if _, err := s.createOrUpdateScanAllSchedule(ctx, req.Schedule.Type, req.Schedule.Cron, nil); err != nil { @@ -303,7 +303,7 @@ func (s *scanAllAPI) requireScanEnabled(ctx context.Context) error { } if len(l) == 0 { - return errors.PreconditionFailedError(nil).WithMessagef("no scanner is configured, it's not possible to scan") + return errors.PreconditionFailedError(nil).WithMessage("no scanner is configured, it's not possible to scan") } return nil diff --git a/src/server/v2.0/handler/scanner.go b/src/server/v2.0/handler/scanner.go index 19810781b2b..89f67497469 100644 --- a/src/server/v2.0/handler/scanner.go +++ b/src/server/v2.0/handler/scanner.go @@ -51,7 +51,7 @@ func (s *scannerAPI) CreateScanner(ctx context.Context, params operation.CreateS copyToScannerRegistration(r, params.Registration) if err := r.Validate(false); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) } uuid, err := s.scannerCtl.CreateRegistration(ctx, r) @@ -179,7 +179,7 @@ func (s *scannerAPI) PingScanner(ctx context.Context, params operation.PingScann } if err := r.Validate(false); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) } if _, err := s.scannerCtl.Ping(ctx, r); err != nil { @@ -226,7 +226,7 @@ func (s *scannerAPI) UpdateScanner(ctx context.Context, params operation.UpdateS copyToScannerRegistration(r, params.Registration) if err := r.Validate(true); err != nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(err.Error())) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessage(err.Error())) } if err := s.scannerCtl.UpdateRegistration(ctx, r); err != nil { diff --git a/src/server/v2.0/handler/schedule.go b/src/server/v2.0/handler/schedule.go index 5d0a458d122..7111af35318 100644 --- a/src/server/v2.0/handler/schedule.go +++ b/src/server/v2.0/handler/schedule.go @@ -45,7 +45,7 @@ func (s *scheduleAPI) GetSchedulePaused(ctx context.Context, params schedule.Get return s.SendError(ctx, err) } if !strings.EqualFold(params.JobType, all) { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef("job_type can only be 'all'")) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessage("job_type can only be 'all'")) } paused, err := s.jobServiceCtl.Paused(ctx) if err != nil { diff --git a/src/server/v2.0/handler/user.go b/src/server/v2.0/handler/user.go index 69aedbe427d..05b1e51dbed 100644 --- a/src/server/v2.0/handler/user.go +++ b/src/server/v2.0/handler/user.go @@ -307,10 +307,10 @@ func (u *usersAPI) UpdateUserPassword(ctx context.Context, params operation.Upda ok, err := u.ctl.VerifyPassword(ctx, sctx.GetUsername(), params.Password.OldPassword) if err != nil { log.G(ctx).Errorf("Failed to verify password for user: %s, error: %v", sctx.GetUsername(), err) - return u.SendError(ctx, errors.UnknownError(nil).WithMessagef("Failed to verify password")) + return u.SendError(ctx, errors.UnknownError(nil).WithMessage("Failed to verify password")) } if !ok { - return u.SendError(ctx, errors.ForbiddenError(nil).WithMessagef("Current password is incorrect")) + return u.SendError(ctx, errors.ForbiddenError(nil).WithMessage("Current password is incorrect")) } } newPwd := params.Password.NewPassword @@ -325,10 +325,10 @@ func (u *usersAPI) UpdateUserPassword(ctx context.Context, params operation.Upda ok, err := u.ctl.VerifyPassword(ctx, user.Username, newPwd) if err != nil { log.G(ctx).Errorf("Failed to verify password for user: %s, error: %v", sctx.GetUsername(), err) - return u.SendError(ctx, errors.UnknownError(nil).WithMessagef("Failed to verify password")) + return u.SendError(ctx, errors.UnknownError(nil).WithMessage("Failed to verify password")) } if ok { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("New password is identical to old password")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("New password is identical to old password")) } err2 := u.ctl.UpdatePassword(ctx, uid, params.Password.NewPassword) if err2 != nil { @@ -387,7 +387,7 @@ func (u *usersAPI) requireCreatable(ctx context.Context) error { return accessErr } if accessErr != nil && !lib.GetCarrySession(ctx) { - return errors.ForbiddenError(nil).WithMessagef("self-registration cannot be triggered via API") + return errors.ForbiddenError(nil).WithMessage("self-registration cannot be triggered via API") } return nil } @@ -409,7 +409,7 @@ func (u *usersAPI) requireDeletable(ctx context.Context, id int) error { return errors.UnauthorizedError(nil) } if !sctx.Can(ctx, rbac.ActionDelete, rbac.ResourceUser) { - return errors.ForbiddenError(nil).WithMessagef("Not authorized to delete users") + return errors.ForbiddenError(nil).WithMessage("Not authorized to delete users") } if matchUserID(sctx, id) || id == 1 { return errors.ForbiddenError(nil).WithMessagef("User with ID %d cannot be deleted", id) @@ -456,7 +456,7 @@ func requireValidSecret(in string) error { if len(in) >= 8 && len(in) <= 128 && hasLower.MatchString(in) && hasUpper.MatchString(in) && hasNumber.MatchString(in) { return nil } - return errors.BadRequestError(nil).WithMessagef("the password or secret must be 8-128, inclusively, characters long with at least 1 uppercase letter, 1 lowercase letter and 1 number") + return errors.BadRequestError(nil).WithMessage("the password or secret must be 8-128, inclusively, characters long with at least 1 uppercase letter, 1 lowercase letter and 1 number") } func getRandomSecret() (string, error) { @@ -473,7 +473,7 @@ func getRandomSecret() (string, error) { if err := retry.Retry(func() error { cliSecret = utils.GenerateRandomStringWithLen(9) if err := requireValidSecret(cliSecret); err != nil { - return errors.New(nil).WithMessagef("invalid cli secret format") + return errors.New(nil).WithMessage("invalid cli secret format") } return nil }, options...); err != nil { @@ -485,22 +485,22 @@ func getRandomSecret() (string, error) { func validateUserProfile(user *commonmodels.User, create bool) error { if len(user.Email) > 0 { if m, _ := regexp.MatchString(`^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$`, user.Email); !m { - return errors.BadRequestError(nil).WithMessagef("email with illegal format") + return errors.BadRequestError(nil).WithMessage("email with illegal format") } } else { - return errors.BadRequestError(nil).WithMessagef("email can't be empty") + return errors.BadRequestError(nil).WithMessage("email can't be empty") } if utils.IsIllegalLength(user.Realname, 1, 255) { - return errors.BadRequestError(nil).WithMessagef("realname with illegal length") + return errors.BadRequestError(nil).WithMessage("realname with illegal length") } if strings.ContainsAny(user.Realname, common.IllegalCharsInUsername) { - return errors.BadRequestError(nil).WithMessagef("realname contains illegal characters") + return errors.BadRequestError(nil).WithMessage("realname contains illegal characters") } if utils.IsIllegalLength(user.Comment, -1, 30) { - return errors.BadRequestError(nil).WithMessagef("comment with illegal length") + return errors.BadRequestError(nil).WithMessage("comment with illegal length") } // skip to validate username for update because username is empty in the request @@ -509,11 +509,11 @@ func validateUserProfile(user *commonmodels.User, create bool) error { } if utils.IsIllegalLength(user.Username, 1, 255) { - return errors.BadRequestError(nil).WithMessagef("username with illegal length") + return errors.BadRequestError(nil).WithMessage("username with illegal length") } if strings.ContainsAny(user.Username, common.IllegalCharsInUsername) { - return errors.BadRequestError(nil).WithMessagef("username contains illegal characters") + return errors.BadRequestError(nil).WithMessage("username contains illegal characters") } return nil diff --git a/src/server/v2.0/handler/usergroup.go b/src/server/v2.0/handler/usergroup.go index e5a76f5b248..f2a5f26eaf5 100644 --- a/src/server/v2.0/handler/usergroup.go +++ b/src/server/v2.0/handler/usergroup.go @@ -71,7 +71,7 @@ func (u *userGroupAPI) DeleteUserGroup(ctx context.Context, params operation.Del return u.SendError(ctx, err) } if params.GroupID <= 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the group id should be provided")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("the group id should be provided")) } err := u.ctl.Delete(ctx, int(params.GroupID)) if err != nil { @@ -85,7 +85,7 @@ func (u *userGroupAPI) GetUserGroup(ctx context.Context, params operation.GetUse return u.SendError(ctx, err) } if params.GroupID <= 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("the group id should be provided")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("the group id should be provided")) } ug, err := u.ctl.Get(ctx, int(params.GroupID)) if err != nil { @@ -194,7 +194,7 @@ func (u *userGroupAPI) SearchUserGroups(ctx context.Context, params operation.Se return u.SendError(ctx, err) } if len(params.Groupname) == 0 { - return u.SendError(ctx, errors.BadRequestError(nil).WithMessagef("need to provide groupname to search user group")) + return u.SendError(ctx, errors.BadRequestError(nil).WithMessage("need to provide groupname to search user group")) } query.Keywords["GroupName"] = &q.FuzzyMatchValue{Value: params.Groupname} total, err := u.ctl.Count(ctx, query) diff --git a/src/server/v2.0/handler/webhook.go b/src/server/v2.0/handler/webhook.go index 814c8a23d23..a77a30a0149 100644 --- a/src/server/v2.0/handler/webhook.go +++ b/src/server/v2.0/handler/webhook.go @@ -420,7 +420,7 @@ func (n *webhookAPI) validateTargets(policy *policy_model.Policy) (bool, error) // don't allow set the payload format for slack type // slack should be migrated as a kind of payload in the future if len(target.PayloadFormat) > 0 && target.Type == "slack" { - return false, errors.New(nil).WithMessagef("set payload format is not allowed for slack").WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessage("set payload format is not allowed for slack").WithCode(errors.BadRequestCode) } if len(target.PayloadFormat) > 0 && !isPayloadFormatSupported(target.PayloadFormat) { @@ -436,7 +436,7 @@ func (n *webhookAPI) validateTargets(policy *policy_model.Policy) (bool, error) func (n *webhookAPI) validateEventTypes(policy *policy_model.Policy) (bool, error) { if len(policy.EventTypes) == 0 { - return false, errors.New(nil).WithMessagef("empty event type").WithCode(errors.BadRequestCode) + return false, errors.New(nil).WithMessage("empty event type").WithCode(errors.BadRequestCode) } for _, eventType := range policy.EventTypes { if !isEventTypeSupported(eventType) { From 528690d184581ccc071554c60e175aa69362a24f Mon Sep 17 00:00:00 2001 From: wang yan Date: Wed, 9 Oct 2024 19:35:25 +0800 Subject: [PATCH 14/16] fix lint Signed-off-by: wang yan --- src/controller/config/controller.go | 2 +- src/lib/errors/errors_test.go | 8 ++++---- src/lib/http/error_test.go | 2 +- src/pkg/label/dao/dao.go | 2 +- src/pkg/scan/vulnerability/vul.go | 2 +- src/server/v2.0/handler/robot.go | 2 +- src/server/v2.0/handler/scan_all.go | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/controller/config/controller.go b/src/controller/config/controller.go index 7ce5ab75ce5..5302804aa14 100644 --- a/src/controller/config/controller.go +++ b/src/controller/config/controller.go @@ -78,7 +78,7 @@ func (c *controller) AllConfigs(ctx context.Context) (map[string]interface{}, er func (c *controller) UpdateUserConfigs(ctx context.Context, conf map[string]interface{}) error { if readOnlyForAll { - return errors.ForbiddenError(nil).WithMessagef("current config is init by env variable: CONFIG_OVERWRITE_JSON, it cannot be updated") + return errors.ForbiddenError(nil).WithMessage("current config is init by env variable: CONFIG_OVERWRITE_JSON, it cannot be updated") } mgr := config.GetCfgManager(ctx) err := mgr.Load(ctx) diff --git a/src/lib/errors/errors_test.go b/src/lib/errors/errors_test.go index 725f3de8312..330ef4ea34c 100644 --- a/src/lib/errors/errors_test.go +++ b/src/lib/errors/errors_test.go @@ -113,7 +113,7 @@ func (suite *ErrorTestSuite) TestNew() { func (suite *ErrorTestSuite) TestWithMessage() { cause := New("root") - err := cause.WithMessagef("append message").WithMessage("append message2") + err := cause.WithMessage("append message").WithMessage("append message2") suite.Equal("append message2", err.Error()) } @@ -172,7 +172,7 @@ func (suite *ErrorTestSuite) TestNilErr() { } func (suite *ErrorTestSuite) TestNilWithMessage() { - nilErr := New(nil).WithMessagef("it's a nil error") + nilErr := New(nil).WithMessage("it's a nil error") suite.Equal("it's a nil error", nilErr.Error()) } @@ -223,7 +223,7 @@ func (suite *ErrorTestSuite) TestNotFoundError() { suite.Equal(`resource not found: something is not found`, err.Error()) root = errors.New("something is not found") - err = NotFoundError(root).WithMessagef("asset not found") + err = NotFoundError(root).WithMessage("asset not found") suite.Equal(`asset not found: something is not found`, err.Error()) } @@ -276,7 +276,7 @@ func (suite *ErrorTestSuite) TestErrors() { err2 := Wrap(err, "append message").WithCode(ConflictCode) suite.Equal(`{"errors":[{"code":"CONFLICT","message":"append message: root: stdErr"}]}`, NewErrs(err2).Error()) - err = New(nil).WithCode(GeneralCode).WithMessagef("internal server error") + err = New(nil).WithCode(GeneralCode).WithMessage("internal server error") suite.Equal(`{"errors":[{"code":"UNKNOWN","message":"internal server error"}]}`, NewErrs(err).Error()) } diff --git a/src/lib/http/error_test.go b/src/lib/http/error_test.go index 68cdd15e374..927e5fad5b6 100644 --- a/src/lib/http/error_test.go +++ b/src/lib/http/error_test.go @@ -70,7 +70,7 @@ func TestAPIError(t *testing.T) { assert.Contains(t, stacktrace, `http.apiError`) // errors.Error - err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessagef("resource not found") + err = errors.New(nil).WithCode(errors.NotFoundCode).WithMessage("resource not found") statusCode, payload, stacktrace = apiError(err) assert.Equal(t, http.StatusNotFound, statusCode) assert.Equal(t, `{"errors":[{"code":"NOT_FOUND","message":"resource not found"}]}`, payload) diff --git a/src/pkg/label/dao/dao.go b/src/pkg/label/dao/dao.go index efd5480814c..8a00e2b25af 100644 --- a/src/pkg/label/dao/dao.go +++ b/src/pkg/label/dao/dao.go @@ -166,7 +166,7 @@ func (d *defaultDAO) CreateReference(ctx context.Context, ref *model.Reference) err = e } else if e := orm.AsForeignKeyError(err, "the reference tries to refer a non existing label %d or artifact %d", ref.LabelID, ref.ArtifactID); e != nil { - err = errors.New(e).WithCode(errors.NotFoundCode) + err = errors.New(e).WithCode(errors.NotFoundCode).WithMessage(e.Message) } } return id, err diff --git a/src/pkg/scan/vulnerability/vul.go b/src/pkg/scan/vulnerability/vul.go index 60b63a58ca7..26fe7ab1ae1 100644 --- a/src/pkg/scan/vulnerability/vul.go +++ b/src/pkg/scan/vulnerability/vul.go @@ -219,7 +219,7 @@ func (h *scanHandler) GetPlaceHolder(ctx context.Context, _ string, artDigest, s } if len(reports) == 0 { logger.Errorf("no report found for artifact %s of mimetype %s, error %v", artDigest, mimeType, err) - return nil, errors.NotFoundError(nil).WithMessagef("no report found to update data") + return nil, errors.NotFoundError(nil).WithMessage("no report found to update data") } return reports[0], nil } diff --git a/src/server/v2.0/handler/robot.go b/src/server/v2.0/handler/robot.go index 197f86fa7d6..5b9cac637c2 100644 --- a/src/server/v2.0/handler/robot.go +++ b/src/server/v2.0/handler/robot.go @@ -448,7 +448,7 @@ func (rAPI *robotAPI) updateV2Robot(ctx context.Context, params operation.Update return errors.DeniedError(nil) } if scRobots[0].ID != creatorRobot.ID && scRobots[0].ID != r.ID { - return errors.New(nil).WithMessagef("as for a nested robot account, only person who has the right permission or the creator robot or nested robot itself has the permission to update").WithCode(errors.DENIED) + return errors.New(nil).WithMessage("as for a nested robot account, only person who has the right permission or the creator robot or nested robot itself has the permission to update").WithCode(errors.DENIED) } } diff --git a/src/server/v2.0/handler/scan_all.go b/src/server/v2.0/handler/scan_all.go index 1f7e303bbb7..bb3d8678b43 100644 --- a/src/server/v2.0/handler/scan_all.go +++ b/src/server/v2.0/handler/scan_all.go @@ -73,7 +73,7 @@ func (s *scanAllAPI) StopScanAll(ctx context.Context, _ operation.StopScanAllPar return s.SendError(ctx, err) } if execution == nil { - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef("no scan all job is found currently")) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessage("no scan all job is found currently")) } if err = s.scanCtl.StopScanAll(s.makeCtx(), execution.ID, true); err != nil { From b5a0bc5e544c11c07686c7807c1e9548f1fd635f Mon Sep 17 00:00:00 2001 From: wang yan Date: Thu, 10 Oct 2024 10:34:02 +0800 Subject: [PATCH 15/16] fix lint Signed-off-by: wang yan --- src/server/v2.0/handler/project.go | 2 +- src/server/v2.0/handler/scan_all.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/server/v2.0/handler/project.go b/src/server/v2.0/handler/project.go index 44e2354be91..57e1dfb7fab 100644 --- a/src/server/v2.0/handler/project.go +++ b/src/server/v2.0/handler/project.go @@ -806,7 +806,7 @@ func (a *projectAPI) validateProjectReq(ctx context.Context, req *models.Project // validate metadata.proxy_speed_kb. It should be an int32 if ps := req.Metadata.ProxySpeedKb; ps != nil { if _, err := strconv.ParseInt(*ps, 10, 32); err != nil { - return errors.BadRequestError(nil).WithMessagef(fmt.Sprintf("metadata.proxy_speed_kb should by an int32, but got: '%s', err: %s", *ps, err)) + return errors.BadRequestError(nil).WithMessagef("metadata.proxy_speed_kb should by an int32, but got: '%s', err: %s", *ps, err) } } } diff --git a/src/server/v2.0/handler/scan_all.go b/src/server/v2.0/handler/scan_all.go index bb3d8678b43..c51315b2616 100644 --- a/src/server/v2.0/handler/scan_all.go +++ b/src/server/v2.0/handler/scan_all.go @@ -102,7 +102,7 @@ func (s *scanAllAPI) CreateScanAllSchedule(ctx context.Context, params operation if execution != nil && execution.IsOnGoing() { message := fmt.Sprintf("a previous scan all job aleady exits, its status is %s", execution.Status) - return s.SendError(ctx, errors.ConflictError(nil).WithMessagef(message)) + return s.SendError(ctx, errors.ConflictError(nil).WithMessage(message)) } if _, err := s.scanCtl.ScanAll(ctx, task.ExecutionTriggerManual, true); err != nil { From 0f91f77bd0ee7443e356051d168dc6f06488156d Mon Sep 17 00:00:00 2001 From: wang yan Date: Thu, 10 Oct 2024 11:02:06 +0800 Subject: [PATCH 16/16] fix lint Signed-off-by: wang yan --- src/server/v2.0/handler/scan_all.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/server/v2.0/handler/scan_all.go b/src/server/v2.0/handler/scan_all.go index c51315b2616..469e3520b68 100644 --- a/src/server/v2.0/handler/scan_all.go +++ b/src/server/v2.0/handler/scan_all.go @@ -134,8 +134,7 @@ func (s *scanAllAPI) UpdateScanAllSchedule(ctx context.Context, params operation req := params.Schedule if req.Schedule.Type == ScheduleManual { - message := fmt.Sprintf("fail to update scan all schedule as wrong schedule type: %s", req.Schedule.Type) - return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef(message)) + return s.SendError(ctx, errors.BadRequestError(nil).WithMessagef("fail to update scan all schedule as wrong schedule type: %s", req.Schedule.Type)) } schedule, err := s.getScanAllSchedule(ctx)