diff options
author | Giteabot <teabot@gitea.io> | 2023-05-03 08:15:56 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-03 08:15:56 -0400 |
commit | 4dccac3dbf60521e25e19295cead990c7ef7bacd (patch) | |
tree | e8b5576a70de8fab212a4c4e8b71ce1c7ebe1a39 | |
parent | 73e70f3c44108a8f581b3a18fcbc45a8d693e8b8 (diff) | |
download | gitea-4dccac3dbf60521e25e19295cead990c7ef7bacd.tar.gz gitea-4dccac3dbf60521e25e19295cead990c7ef7bacd.zip |
Fix api error message if fork exists (#24487) (#24493)
Backport #24487 by @fnetX
On the @Forgejo instance of Codeberg, we discovered that forking a repo
which is already forked now returns a 500 Internal Server Error, which
is unexpected. This is an attempt at fixing this.
The error message in the log:
~~~
2023/05/02 08:36:30 .../api/v1/repo/fork.go:147:CreateFork() [E]
[6450cb8e-113] ForkRepository: repository is already forked by user
[uname: ...., repo path: .../..., fork path: .../...]
~~~
The service that is used for forking returns a custom error message
which is not checked against.
About the order of options:
The case that the fork already exists should be more common, followed by
the case that a repo with the same name already exists for other
reasons. The case that the global repo limit is hit is probably not the
likeliest.
---------
Co-authored-by: Otto Richter (fnetX) <git@fralix.ovh>
-rw-r--r-- | routers/api/v1/repo/fork.go | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/routers/api/v1/repo/fork.go b/routers/api/v1/repo/fork.go index 5b564a8066..e1e79c0e78 100644 --- a/routers/api/v1/repo/fork.go +++ b/routers/api/v1/repo/fork.go @@ -141,7 +141,7 @@ func CreateFork(ctx *context.APIContext) { Description: repo.Description, }) if err != nil { - if repo_model.IsErrReachLimitOfRepo(err) || repo_model.IsErrRepoAlreadyExist(err) { + if repo_service.IsErrForkAlreadyExist(err) || repo_model.IsErrRepoAlreadyExist(err) || repo_model.IsErrReachLimitOfRepo(err) { ctx.Error(http.StatusConflict, "ForkRepository", err) } else { ctx.Error(http.StatusInternalServerError, "ForkRepository", err) |