summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author赵智超 <1012112796@qq.com>2020-09-25 13:18:37 +0800
committerGitHub <noreply@github.com>2020-09-25 13:18:37 +0800
commit3c360801b3547cba80766403c0ee2835cb81272d (patch)
treeede959cb670140686ac8fcd7000f06fd50bac382
parent7a7f56044ae0b94d9f5e733d863821dbe222a395 (diff)
downloadgitea-3c360801b3547cba80766403c0ee2835cb81272d.tar.gz
gitea-3c360801b3547cba80766403c0ee2835cb81272d.zip
Add IsTemplate option in create repo ui and api (#12942)
Signed-off-by: a1012112796 <1012112796@qq.com> Co-authored-by: Lauris BH <lauris@nix.lv>
-rw-r--r--integrations/api_helper_for_declarative_test.go1
-rw-r--r--models/repo.go1
-rw-r--r--modules/auth/repo_form.go1
-rw-r--r--modules/repository/create.go1
-rw-r--r--modules/structs/repo.go2
-rw-r--r--routers/api/v1/repo/repo.go1
-rw-r--r--routers/repo/repo.go1
-rw-r--r--templates/repo/create.tmpl7
-rw-r--r--templates/swagger/v1_json.tmpl5
9 files changed, 20 insertions, 0 deletions
diff --git a/integrations/api_helper_for_declarative_test.go b/integrations/api_helper_for_declarative_test.go
index ec7f1d7496..51335c8216 100644
--- a/integrations/api_helper_for_declarative_test.go
+++ b/integrations/api_helper_for_declarative_test.go
@@ -48,6 +48,7 @@ func doAPICreateRepository(ctx APITestContext, empty bool, callback ...func(*tes
Description: "Temporary repo",
Name: ctx.Reponame,
Private: true,
+ Template: true,
Gitignores: "",
License: "WTFPL",
Readme: "Default",
diff --git a/models/repo.go b/models/repo.go
index 96b359bca4..46f91fc7df 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -1083,6 +1083,7 @@ type CreateRepoOptions struct {
DefaultBranch string
IsPrivate bool
IsMirror bool
+ IsTemplate bool
AutoInit bool
Status RepositoryStatus
TrustModel TrustModelType
diff --git a/modules/auth/repo_form.go b/modules/auth/repo_form.go
index e8809136c9..039b0cb583 100644
--- a/modules/auth/repo_form.go
+++ b/modules/auth/repo_form.go
@@ -38,6 +38,7 @@ type CreateRepoForm struct {
IssueLabels string
License string
Readme string
+ Template bool
RepoTemplate int64
GitContent bool
diff --git a/modules/repository/create.go b/modules/repository/create.go
index e6a3e7081d..1408637815 100644
--- a/modules/repository/create.go
+++ b/modules/repository/create.go
@@ -40,6 +40,7 @@ func CreateRepository(doer, u *models.User, opts models.CreateRepoOptions) (*mod
OriginalServiceType: opts.GitServiceType,
IsPrivate: opts.IsPrivate,
IsFsckEnabled: !opts.IsMirror,
+ IsTemplate: opts.IsTemplate,
CloseIssuesViaCommitInAnyBranch: setting.Repository.DefaultCloseIssuesViaCommitsInAnyBranch,
Status: opts.Status,
IsEmpty: !opts.AutoInit,
diff --git a/modules/structs/repo.go b/modules/structs/repo.go
index c86b19dfd0..a8ca823ef6 100644
--- a/modules/structs/repo.go
+++ b/modules/structs/repo.go
@@ -109,6 +109,8 @@ type CreateRepoOption struct {
IssueLabels string `json:"issue_labels"`
// Whether the repository should be auto-intialized?
AutoInit bool `json:"auto_init"`
+ // Whether the repository is template
+ Template bool `json:"template"`
// Gitignores to use
Gitignores string `json:"gitignores"`
// License to use
diff --git a/routers/api/v1/repo/repo.go b/routers/api/v1/repo/repo.go
index b8a24e2532..116e413125 100644
--- a/routers/api/v1/repo/repo.go
+++ b/routers/api/v1/repo/repo.go
@@ -245,6 +245,7 @@ func CreateUserRepo(ctx *context.APIContext, owner *models.User, opt api.CreateR
AutoInit: opt.AutoInit,
DefaultBranch: opt.DefaultBranch,
TrustModel: models.ToTrustModel(opt.TrustModel),
+ IsTemplate: opt.Template,
})
if err != nil {
if models.IsErrRepoAlreadyExist(err) {
diff --git a/routers/repo/repo.go b/routers/repo/repo.go
index 12434747eb..883d30a5d9 100644
--- a/routers/repo/repo.go
+++ b/routers/repo/repo.go
@@ -250,6 +250,7 @@ func CreatePost(ctx *context.Context, form auth.CreateRepoForm) {
IsPrivate: form.Private || setting.Repository.ForcePrivate,
DefaultBranch: form.DefaultBranch,
AutoInit: form.AutoInit,
+ IsTemplate: form.Template,
TrustModel: models.ToTrustModel(form.TrustModel),
})
if err == nil {
diff --git a/templates/repo/create.tmpl b/templates/repo/create.tmpl
index 47f5406574..d1f847b79f 100644
--- a/templates/repo/create.tmpl
+++ b/templates/repo/create.tmpl
@@ -181,6 +181,13 @@
</div>
</div>
</div>
+ <div class="inline field">
+ <label>{{.i18n.Tr "repo.template"}}</label>
+ <div class="ui checkbox">
+ <input class="hidden" name="template" type="checkbox" tabindex="0">
+ <label>{{.i18n.Tr "repo.template_helper"}}</label>
+ </div>
+ </div>
</div>
<br/>
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index e383448933..51a618ae4d 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -12063,6 +12063,11 @@
"type": "string",
"x-go-name": "Readme"
},
+ "template": {
+ "description": "Whether the repository is template",
+ "type": "boolean",
+ "x-go-name": "Template"
+ },
"trust_model": {
"description": "TrustModel of the repository",
"type": "string",