From 8aee07a0641d345ada5622cb7d345badca503929 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Wed, 23 Apr 2025 17:42:50 +0800 Subject: [PATCH] Improve "not found" error messages for API (#34267) Make the message clear, for example: #34266 --- routers/api/v1/repo/commits.go | 4 ++-- routers/api/v1/repo/issue_tracked_time.go | 3 +-- routers/api/v1/repo/notes.go | 2 +- routers/api/v1/repo/tag.go | 2 +- services/context/api.go | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/routers/api/v1/repo/commits.go b/routers/api/v1/repo/commits.go index 34a81bd7f3..20258064a0 100644 --- a/routers/api/v1/repo/commits.go +++ b/routers/api/v1/repo/commits.go @@ -75,7 +75,7 @@ func getCommit(ctx *context.APIContext, identifier string, toCommitOpts convert. commit, err := ctx.Repo.GitRepo.GetCommit(identifier) if err != nil { if git.IsErrNotExist(err) { - ctx.APIErrorNotFound(identifier) + ctx.APIErrorNotFound("commit doesn't exist: " + identifier) return } ctx.APIErrorInternal(err) @@ -310,7 +310,7 @@ func DownloadCommitDiffOrPatch(ctx *context.APIContext) { if err := git.GetRawDiff(ctx.Repo.GitRepo, sha, diffType, ctx.Resp); err != nil { if git.IsErrNotExist(err) { - ctx.APIErrorNotFound(sha) + ctx.APIErrorNotFound("commit doesn't exist: " + sha) return } ctx.APIErrorInternal(err) diff --git a/routers/api/v1/repo/issue_tracked_time.go b/routers/api/v1/repo/issue_tracked_time.go index 49531f1824..dd6abf94c6 100644 --- a/routers/api/v1/repo/issue_tracked_time.go +++ b/routers/api/v1/repo/issue_tracked_time.go @@ -5,7 +5,6 @@ package repo import ( "errors" - "fmt" "net/http" "time" @@ -367,7 +366,7 @@ func DeleteTime(ctx *context.APIContext) { return } if time.Deleted { - ctx.APIErrorNotFound(fmt.Errorf("tracked time [%d] already deleted", time.ID)) + ctx.APIErrorNotFound("tracked time was already deleted") return } diff --git a/routers/api/v1/repo/notes.go b/routers/api/v1/repo/notes.go index eb048df6fe..87efb1caf2 100644 --- a/routers/api/v1/repo/notes.go +++ b/routers/api/v1/repo/notes.go @@ -79,7 +79,7 @@ func getNote(ctx *context.APIContext, identifier string) { var note git.Note if err := git.GetNote(ctx, ctx.Repo.GitRepo, commitID.String(), ¬e); err != nil { if git.IsErrNotExist(err) { - ctx.APIErrorNotFound(identifier) + ctx.APIErrorNotFound("commit doesn't exist: " + identifier) return } ctx.APIErrorInternal(err) diff --git a/routers/api/v1/repo/tag.go b/routers/api/v1/repo/tag.go index e71c6fb443..9e77637282 100644 --- a/routers/api/v1/repo/tag.go +++ b/routers/api/v1/repo/tag.go @@ -150,7 +150,7 @@ func GetTag(ctx *context.APIContext) { tag, err := ctx.Repo.GitRepo.GetTag(tagName) if err != nil { - ctx.APIErrorNotFound(tagName) + ctx.APIErrorNotFound("tag doesn't exist: " + tagName) return } ctx.JSON(http.StatusOK, convert.ToTag(ctx.Repo.Repository, tag)) diff --git a/services/context/api.go b/services/context/api.go index 041e69ee64..d43e15bf24 100644 --- a/services/context/api.go +++ b/services/context/api.go @@ -313,7 +313,7 @@ func RepoRefForAPI(next http.Handler) http.Handler { ctx.Repo.Commit, err = ctx.Repo.GitRepo.GetCommit(refName) } if ctx.Repo.Commit == nil || errors.Is(err, util.ErrNotExist) { - ctx.APIErrorNotFound(fmt.Errorf("not exist: '%s'", ctx.PathParam("*"))) + ctx.APIErrorNotFound("unable to find a git ref") return } else if err != nil { ctx.APIErrorInternal(err)