Add validation constraints for repository creation fields (#36671) (#36757)

Backport #36671 by @lunny

Adds validation constraints to repository creation inputs, enforcing
max-length limits for labels/license/readme and enum validation for
trust model and object format. Updates both the API option struct and
the web form struct to keep validation consistent.

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
This commit is contained in:
Giteabot
2026-02-25 20:43:00 +00:00
committed by GitHub
co-authored by Lunny Xiao
parent d1bd84f8cf
commit b3bc79262d
4 changed files with 12 additions and 9 deletions
+4 -4
View File
@@ -27,9 +27,9 @@ type CreateRepoForm struct {
DefaultBranch string `binding:"GitRefName;MaxSize(100)"`
AutoInit bool
Gitignores string
IssueLabels string
License string
Readme string
IssueLabels string `binding:"MaxSize(255)"`
License string `binding:"MaxSize(100)"`
Readme string `binding:"MaxSize(255)"`
Template bool
RepoTemplate int64
@@ -41,7 +41,7 @@ type CreateRepoForm struct {
Labels bool
ProtectedBranch bool
ForkSingleBranch string
ForkSingleBranch string `binding:"MaxSize(255)"`
ObjectFormatName string
}
+3
View File
@@ -229,6 +229,9 @@ func CreateRepositoryDirectly(ctx context.Context, doer, owner *user_model.User,
if opts.ObjectFormatName == "" {
opts.ObjectFormatName = git.Sha1ObjectFormat.Name()
}
if opts.ObjectFormatName != git.Sha1ObjectFormat.Name() && opts.ObjectFormatName != git.Sha256ObjectFormat.Name() {
return nil, fmt.Errorf("unsupported object format: %s", opts.ObjectFormatName)
}
repo := &repo_model.Repository{
OwnerID: owner.ID,