mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Handle missing README in create repos API (#23387)
				
					
				
			Close #22934 In `/user/repos` API (and other APIs related to creating repos), user can specify a readme template for auto init. At present, if the specified template does not exist, a `500` will be returned . This PR improved the logic and will return a `400` instead of `500`.
This commit is contained in:
		@@ -231,6 +231,13 @@ func CreateUserRepo(ctx *context.APIContext, owner *user_model.User, opt api.Cre
 | 
			
		||||
	if opt.AutoInit && opt.Readme == "" {
 | 
			
		||||
		opt.Readme = "Default"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// If the readme template does not exist, a 400 will be returned.
 | 
			
		||||
	if opt.AutoInit && len(opt.Readme) > 0 && !util.SliceContains(repo_module.Readmes, opt.Readme) {
 | 
			
		||||
		ctx.Error(http.StatusBadRequest, "", fmt.Errorf("readme template does not exist, available templates: %v", repo_module.Readmes))
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	repo, err := repo_service.CreateRepository(ctx, ctx.Doer, owner, repo_module.CreateRepoOptions{
 | 
			
		||||
		Name:          opt.Name,
 | 
			
		||||
		Description:   opt.Description,
 | 
			
		||||
@@ -283,6 +290,8 @@ func Create(ctx *context.APIContext) {
 | 
			
		||||
	// responses:
 | 
			
		||||
	//   "201":
 | 
			
		||||
	//     "$ref": "#/responses/Repository"
 | 
			
		||||
	//   "400":
 | 
			
		||||
	//     "$ref": "#/responses/error"
 | 
			
		||||
	//   "409":
 | 
			
		||||
	//     description: The repository with the same name already exists.
 | 
			
		||||
	//   "422":
 | 
			
		||||
@@ -464,6 +473,8 @@ func CreateOrgRepo(ctx *context.APIContext) {
 | 
			
		||||
	// responses:
 | 
			
		||||
	//   "201":
 | 
			
		||||
	//     "$ref": "#/responses/Repository"
 | 
			
		||||
	//   "400":
 | 
			
		||||
	//     "$ref": "#/responses/error"
 | 
			
		||||
	//   "404":
 | 
			
		||||
	//     "$ref": "#/responses/notFound"
 | 
			
		||||
	//   "403":
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user