Skip to content

Commit b1f42a0

Browse files
authored
Add DEFAULT_MIRROR_REPO_UNITS and DEFAULT_TEMPLATE_REPO_UNITS options (#32416)
Resolve #30350 The action unit of mirrors and templates should be disabled by default. This PR adds `DEFAULT_MIRROR_REPO_UNITS` and `DEFAULT_TEMPLATE_REPO_UNITS` options to allow users to specify default units for mirrors and templates. Thanks to @lng2020 for the [idea](#30350 (comment))
1 parent a910abb commit b1f42a0

File tree

4 files changed

+58
-1
lines changed

4 files changed

+58
-1
lines changed

Diff for: custom/conf/app.example.ini

+8
Original file line numberDiff line numberDiff line change
@@ -1007,6 +1007,14 @@ LEVEL = Info
10071007
;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
10081008
;DEFAULT_FORK_REPO_UNITS = repo.code,repo.pulls
10091009
;;
1010+
;; Comma separated list of default mirror repo units.
1011+
;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
1012+
;DEFAULT_MIRROR_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.wiki,repo.projects,repo.packages
1013+
;;
1014+
;; Comma separated list of default template repo units.
1015+
;; The set of allowed values and rules are the same as DEFAULT_REPO_UNITS.
1016+
;DEFAULT_TEMPLATE_REPO_UNITS = repo.code,repo.releases,repo.issues,repo.pulls,repo.wiki,repo.projects,repo.packages
1017+
;;
10101018
;; Prefix archive files by placing them in a directory named after the repository
10111019
;PREFIX_ARCHIVE_FILES = true
10121020
;;

Diff for: models/unit/unit.go

+40
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,27 @@ var (
8080
TypePullRequests,
8181
}
8282

83+
// DefaultMirrorRepoUnits contains the default unit types for mirrors
84+
DefaultMirrorRepoUnits = []Type{
85+
TypeCode,
86+
TypeIssues,
87+
TypeReleases,
88+
TypeWiki,
89+
TypeProjects,
90+
TypePackages,
91+
}
92+
93+
// DefaultTemplateRepoUnits contains the default unit types for templates
94+
DefaultTemplateRepoUnits = []Type{
95+
TypeCode,
96+
TypeIssues,
97+
TypePullRequests,
98+
TypeReleases,
99+
TypeWiki,
100+
TypeProjects,
101+
TypePackages,
102+
}
103+
83104
// NotAllowedDefaultRepoUnits contains units that can't be default
84105
NotAllowedDefaultRepoUnits = []Type{
85106
TypeExternalWiki,
@@ -147,6 +168,7 @@ func LoadUnitConfig() error {
147168
if len(DefaultRepoUnits) == 0 {
148169
return errors.New("no default repository units found")
149170
}
171+
// default fork repo units
150172
setDefaultForkRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultForkRepoUnits...)
151173
if len(invalidKeys) > 0 {
152174
log.Warn("Invalid keys in default fork repo units: %s", strings.Join(invalidKeys, ", "))
@@ -155,6 +177,24 @@ func LoadUnitConfig() error {
155177
if len(DefaultForkRepoUnits) == 0 {
156178
return errors.New("no default fork repository units found")
157179
}
180+
// default mirror repo units
181+
setDefaultMirrorRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultMirrorRepoUnits...)
182+
if len(invalidKeys) > 0 {
183+
log.Warn("Invalid keys in default mirror repo units: %s", strings.Join(invalidKeys, ", "))
184+
}
185+
DefaultMirrorRepoUnits = validateDefaultRepoUnits(DefaultMirrorRepoUnits, setDefaultMirrorRepoUnits)
186+
if len(DefaultMirrorRepoUnits) == 0 {
187+
return errors.New("no default mirror repository units found")
188+
}
189+
// default template repo units
190+
setDefaultTemplateRepoUnits, invalidKeys := FindUnitTypes(setting.Repository.DefaultTemplateRepoUnits...)
191+
if len(invalidKeys) > 0 {
192+
log.Warn("Invalid keys in default template repo units: %s", strings.Join(invalidKeys, ", "))
193+
}
194+
DefaultTemplateRepoUnits = validateDefaultRepoUnits(DefaultTemplateRepoUnits, setDefaultTemplateRepoUnits)
195+
if len(DefaultTemplateRepoUnits) == 0 {
196+
return errors.New("no default template repository units found")
197+
}
158198
return nil
159199
}
160200

Diff for: modules/setting/repository.go

+4
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ var (
4343
DisabledRepoUnits []string
4444
DefaultRepoUnits []string
4545
DefaultForkRepoUnits []string
46+
DefaultMirrorRepoUnits []string
47+
DefaultTemplateRepoUnits []string
4648
PrefixArchiveFiles bool
4749
DisableMigrations bool
4850
DisableStars bool `ini:"DISABLE_STARS"`
@@ -161,6 +163,8 @@ var (
161163
DisabledRepoUnits: []string{},
162164
DefaultRepoUnits: []string{},
163165
DefaultForkRepoUnits: []string{},
166+
DefaultMirrorRepoUnits: []string{},
167+
DefaultTemplateRepoUnits: []string{},
164168
PrefixArchiveFiles: true,
165169
DisableMigrations: false,
166170
DisableStars: false,

Diff for: services/repository/create.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -381,8 +381,13 @@ func CreateRepositoryByExample(ctx context.Context, doer, u *user_model.User, re
381381

382382
// insert units for repo
383383
defaultUnits := unit.DefaultRepoUnits
384-
if isFork {
384+
switch {
385+
case isFork:
385386
defaultUnits = unit.DefaultForkRepoUnits
387+
case repo.IsMirror:
388+
defaultUnits = unit.DefaultMirrorRepoUnits
389+
case repo.IsTemplate:
390+
defaultUnits = unit.DefaultTemplateRepoUnits
386391
}
387392
units := make([]repo_model.RepoUnit, 0, len(defaultUnits))
388393
for _, tp := range defaultUnits {

0 commit comments

Comments
 (0)