Skip to content

Commit 3362620

Browse files
fnetXOtto RichterGiteaBot
authored
Fix api error message if fork exists (#24487)
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 <otto@codeberg.org> Co-authored-by: Giteabot <teabot@gitea.io>
1 parent 8be6da3 commit 3362620

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

routers/api/v1/repo/fork.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ func CreateFork(ctx *context.APIContext) {
141141
Description: repo.Description,
142142
})
143143
if err != nil {
144-
if repo_model.IsErrReachLimitOfRepo(err) || repo_model.IsErrRepoAlreadyExist(err) {
144+
if repo_service.IsErrForkAlreadyExist(err) || repo_model.IsErrRepoAlreadyExist(err) || repo_model.IsErrReachLimitOfRepo(err) {
145145
ctx.Error(http.StatusConflict, "ForkRepository", err)
146146
} else {
147147
ctx.Error(http.StatusInternalServerError, "ForkRepository", err)

0 commit comments

Comments
 (0)