@@ -1133,6 +1133,9 @@ func IsUsableRepoAlias(name string) error { | |||||
// CreateRepository creates a repository for the user/organization. | // CreateRepository creates a repository for the user/organization. | ||||
func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, opts ...CreateRepoOptions) (err error) { | func CreateRepository(ctx DBContext, doer, u *User, repo *Repository, opts ...CreateRepoOptions) (err error) { | ||||
if repo.Alias == "" { | |||||
repo.Alias = repo.Name | |||||
} | |||||
repo.LowerAlias = strings.ToLower(repo.Alias) | repo.LowerAlias = strings.ToLower(repo.Alias) | ||||
if err = IsUsableRepoName(repo.Name); err != nil { | if err = IsUsableRepoName(repo.Name); err != nil { | ||||
return err | return err | ||||
@@ -100,6 +100,10 @@ type CreateRepoOption struct { | |||||
// required: true | // required: true | ||||
// unique: true | // unique: true | ||||
Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"` | Name string `json:"name" binding:"Required;AlphaDashDot;MaxSize(100)"` | ||||
// Alias of the repository to create | |||||
// required: false | |||||
// unique: true | |||||
Alias string `json:"alias" binding:"AlphaDashDotChinese;MaxSize(100)"` | |||||
// Description of the repository to create | // Description of the repository to create | ||||
Description string `json:"description" binding:"MaxSize(255)"` | Description string `json:"description" binding:"MaxSize(255)"` | ||||
// Whether the repository is private | // Whether the repository is private | ||||
@@ -128,6 +128,9 @@ func addAlphaDashDotChineseRule() { | |||||
return strings.HasPrefix(rule, "AlphaDashDotChinese") | return strings.HasPrefix(rule, "AlphaDashDotChinese") | ||||
}, | }, | ||||
IsValid: func(errs binding.Errors, name string, val interface{}) (bool, binding.Errors) { | IsValid: func(errs binding.Errors, name string, val interface{}) (bool, binding.Errors) { | ||||
if val == "" { | |||||
return true, errs | |||||
} | |||||
if !ValidAlphaDashDotChinese(fmt.Sprintf("%v", val)) { | if !ValidAlphaDashDotChinese(fmt.Sprintf("%v", val)) { | ||||
errs.Add([]string{name}, ErrAlphaDashDotChinese, "ErrAlphaDashDotChinese") | errs.Add([]string{name}, ErrAlphaDashDotChinese, "ErrAlphaDashDotChinese") | ||||
return false, errs | return false, errs | ||||
@@ -232,6 +232,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *models.User, opt api.CreateR | |||||
} | } | ||||
repo, err := repo_service.CreateRepository(ctx.User, owner, models.CreateRepoOptions{ | repo, err := repo_service.CreateRepository(ctx.User, owner, models.CreateRepoOptions{ | ||||
Name: opt.Name, | Name: opt.Name, | ||||
Alias: opt.Alias, | |||||
Description: opt.Description, | Description: opt.Description, | ||||
IssueLabels: opt.IssueLabels, | IssueLabels: opt.IssueLabels, | ||||
Gitignores: opt.Gitignores, | Gitignores: opt.Gitignores, | ||||