mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-03 12:26:05 +01:00 
			
		
		
		
	Add IsErrRepoFilesAlreadyExist check when fork repo (#24678)
Before:  After: 
This commit is contained in:
		@@ -5,6 +5,7 @@
 | 
			
		||||
package repo
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"errors"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
@@ -15,6 +16,7 @@ import (
 | 
			
		||||
	user_model "code.gitea.io/gitea/models/user"
 | 
			
		||||
	"code.gitea.io/gitea/modules/context"
 | 
			
		||||
	api "code.gitea.io/gitea/modules/structs"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
	"code.gitea.io/gitea/modules/web"
 | 
			
		||||
	"code.gitea.io/gitea/routers/api/v1/utils"
 | 
			
		||||
	"code.gitea.io/gitea/services/convert"
 | 
			
		||||
@@ -141,7 +143,7 @@ func CreateFork(ctx *context.APIContext) {
 | 
			
		||||
		Description: repo.Description,
 | 
			
		||||
	})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		if repo_service.IsErrForkAlreadyExist(err) || repo_model.IsErrRepoAlreadyExist(err) || repo_model.IsErrReachLimitOfRepo(err) {
 | 
			
		||||
		if errors.Is(err, util.ErrAlreadyExist) || repo_model.IsErrReachLimitOfRepo(err) {
 | 
			
		||||
			ctx.Error(http.StatusConflict, "ForkRepository", err)
 | 
			
		||||
		} else {
 | 
			
		||||
			ctx.Error(http.StatusInternalServerError, "ForkRepository", err)
 | 
			
		||||
 
 | 
			
		||||
@@ -272,6 +272,17 @@ func ForkPost(ctx *context.Context) {
 | 
			
		||||
			ctx.RenderWithErr(msg, tplFork, &form)
 | 
			
		||||
		case repo_model.IsErrRepoAlreadyExist(err):
 | 
			
		||||
			ctx.RenderWithErr(ctx.Tr("repo.settings.new_owner_has_same_repo"), tplFork, &form)
 | 
			
		||||
		case repo_model.IsErrRepoFilesAlreadyExist(err):
 | 
			
		||||
			switch {
 | 
			
		||||
			case ctx.IsUserSiteAdmin() || (setting.Repository.AllowAdoptionOfUnadoptedRepositories && setting.Repository.AllowDeleteOfUnadoptedRepositories):
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.adopt_or_delete"), tplFork, form)
 | 
			
		||||
			case setting.Repository.AllowAdoptionOfUnadoptedRepositories:
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.adopt"), tplFork, form)
 | 
			
		||||
			case setting.Repository.AllowDeleteOfUnadoptedRepositories:
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist.delete"), tplFork, form)
 | 
			
		||||
			default:
 | 
			
		||||
				ctx.RenderWithErr(ctx.Tr("form.repository_files_already_exist"), tplFork, form)
 | 
			
		||||
			}
 | 
			
		||||
		case db.IsErrNameReserved(err):
 | 
			
		||||
			ctx.RenderWithErr(ctx.Tr("repo.form.name_reserved", err.(db.ErrNameReserved).Name), tplFork, &form)
 | 
			
		||||
		case db.IsErrNamePatternNotAllowed(err):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user