aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--custom/conf/app.example.ini8
-rw-r--r--models/unit/unit.go40
-rw-r--r--modules/setting/repository.go4
-rw-r--r--services/repository/create.go7
4 files changed, 58 insertions, 1 deletions
diff --git a/custom/conf/app.example.ini b/custom/conf/app.example.ini
index f201ff1d19..7d5b3961bc 100644
--- a/custom/conf/app.example.ini
+++ b/custom/conf/app.example.ini
@@ -1007,6 +1007,14 @@ LEVEL = Info
;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
;DEFAULT_FORK_REPO_UNITS = repo.code,repo.pulls
;;
+;; Comma separated list of default mirror repo units.
+;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
+;DEFAULT_MIRROR_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.wiki,repo.projects,repo.packages
+;;
+;; Comma separated list of default template repo units.
+;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
+;DEFAULT_TEMPLATE_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki,repo.projects,repo.packages
+;;
;; Prefix archive files by placing them in a directory named after the repository
;PREFIX_ARCHIVE_FILES = true
;;
diff --git a/models/unit/unit.go b/models/unit/unit.go
index 3b62e5f982..c816fc6c68 100644
--- a/models/unit/unit.go
+++ b/models/unit/unit.go
@@ -80,6 +80,27 @@ var (
TypePullRequests,
}
+ // DefaultMirrorRepoUnits contains the default unit types for mirrors
+ DefaultMirrorRepoUnits = []Type{
+ TypeCode,
+ TypeIssues,
+ TypeReleases,
+ TypeWiki,
+ TypeProjects,
+ TypePackages,
+ }
+
+ // DefaultTemplateRepoUnits contains the default unit types for templates
+ DefaultTemplateRepoUnits = []Type{
+ TypeCode,
+ TypeIssues,
+ TypePullRequests,
+ TypeReleases,
+ TypeWiki,
+ TypeProjects,
+ TypePackages,
+ }
+
// NotAllowedDefaultRepoUnits contains units that can't be default
NotAllowedDefaultRepoUnits = []Type{
TypeExternalWiki,
@@ -147,6 +168,7 @@ func LoadUnitConfig() error {
if len(DefaultRepoUnits) == 0 {
return errors.New("no default repository units found")
}
+ // default fork repo units
setDefaultForkRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultForkRepoUnits...)
if len(invalidKeys) > 0 {
log.Warn("Invalid keys in default fork repo units: %s", strings.Join(invalidKeys, ", "))
@@ -155,6 +177,24 @@ func LoadUnitConfig() error {
if len(DefaultForkRepoUnits) == 0 {
return errors.New("no default fork repository units found")
}
+ // default mirror repo units
+ setDefaultMirrorRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultMirrorRepoUnits...)
+ if len(invalidKeys) > 0 {
+ log.Warn("Invalid keys in default mirror repo units: %s", strings.Join(invalidKeys, ", "))
+ }
+ DefaultMirrorRepoUnits = validateDefaultRepoUnits(DefaultMirrorRepoUnits, setDefaultMirrorRepoUnits)
+ if len(DefaultMirrorRepoUnits) == 0 {
+ return errors.New("no default mirror repository units found")
+ }
+ // default template repo units
+ setDefaultTemplateRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultTemplateRepoUnits...)
+ if len(invalidKeys) > 0 {
+ log.Warn("Invalid keys in default template repo units: %s", strings.Join(invalidKeys, ", "))
+ }
+ DefaultTemplateRepoUnits = validateDefaultRepoUnits(DefaultTemplateRepoUnits, setDefaultTemplateRepoUnits)
+ if len(DefaultTemplateRepoUnits) == 0 {
+ return errors.New("no default template repository units found")
+ }
return nil
}
diff --git a/modules/setting/repository.go b/modules/setting/repository.go
index 8656ebc7ec..14cf5805c0 100644
--- a/modules/setting/repository.go
+++ b/modules/setting/repository.go
@@ -43,6 +43,8 @@ var (
DisabledRepoUnits []string
DefaultRepoUnits []string
DefaultForkRepoUnits []string
+ DefaultMirrorRepoUnits []string
+ DefaultTemplateRepoUnits []string
PrefixArchiveFiles bool
DisableMigrations bool
DisableStars bool `ini:"DISABLE_STARS"`
@@ -161,6 +163,8 @@ var (
DisabledRepoUnits: []string{},
DefaultRepoUnits: []string{},
DefaultForkRepoUnits: []string{},
+ DefaultMirrorRepoUnits: []string{},
+ DefaultTemplateRepoUnits: []string{},
PrefixArchiveFiles: true,
DisableMigrations: false,
DisableStars: false,
diff --git a/services/repository/create.go b/services/repository/create.go
index 261ac7fccc..0207f12a33 100644
--- a/services/repository/create.go
+++ b/services/repository/create.go
@@ -381,8 +381,13 @@ func CreateRepositoryByExample(ctx context.Context, doer, u *user_model.User, re
// insert units for repo
defaultUnits := unit.DefaultRepoUnits
- if isFork {
+ switch {
+ case isFork:
defaultUnits = unit.DefaultForkRepoUnits
+ case repo.IsMirror:
+ defaultUnits = unit.DefaultMirrorRepoUnits
+ case repo.IsTemplate:
+ defaultUnits = unit.DefaultTemplateRepoUnits
}
units := make([]repo_model.RepoUnit, 0, len(defaultUnits))
for _, tp := range defaultUnits {