Skip to content

Commit 10cea87

Browse files
Make repos defined in project.yml implicitly allowed
Repositories defined in project.yml should be allowed by default (even if omitted on allowed list) unless ignored explicitly.
1 parent fa83de6 commit 10cea87

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

.github/newt_upgrade/allowed-ignored/expected.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ arm-CMSIS_5
44
mcuboot
55
nordic-nrfx
66
stm-stm32g4xx_hal_driver
7+
tinyusb

newt/project/project.go

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,10 @@ func (proj *Project) patternsMatch(patterns *[]*regexp.Regexp, repoName string)
192192
return false
193193
}
194194

195+
func (proj *Project) isRepoIgnored(repoName string) bool {
196+
return proj.patternsMatch(&proj.reposIgnoredRe, repoName)
197+
}
198+
195199
func (proj *Project) isRepoAllowed(repoName string) bool {
196200
if (len(proj.reposAllowedRe) == 0) || proj.patternsMatch(&proj.reposAllowedRe, repoName) {
197201
return !proj.patternsMatch(&proj.reposIgnoredRe, repoName)
@@ -219,6 +223,10 @@ func (proj *Project) GetPkgRepos() error {
219223
fields, err := pkg.PkgConfig().GetValStringMapString(k, nil)
220224
util.OneTimeWarningError(err)
221225

226+
if !proj.isRepoAllowed(repoName) {
227+
continue
228+
}
229+
222230
r, err := proj.loadRepo(repoName, fields)
223231
if err != nil {
224232
// if `repository.yml` does not exist, it is not an error; we
@@ -437,10 +445,6 @@ func (proj *Project) InfoIf(predicate func(r *repo.Repo) bool,
437445
// @return error Error on failure.
438446
func (proj *Project) loadRepo(name string, fields map[string]string) (
439447
*repo.Repo, error) {
440-
441-
if !proj.isRepoAllowed(name) {
442-
return nil, nil
443-
}
444448
// First, read the repo description from the supplied fields.
445449
if fields["type"] == "" {
446450
return nil,
@@ -523,6 +527,11 @@ func (proj *Project) loadRepoDeps(download bool) error {
523527
depRepo := proj.repos[dep.Name]
524528
if depRepo == nil {
525529
var err error
530+
531+
if !proj.isRepoAllowed(dep.Name) {
532+
continue
533+
}
534+
526535
depRepo, err = proj.loadRepo(dep.Name, dep.Fields)
527536
if err != nil {
528537
// if `repository.yml` does not exist, it is not an
@@ -720,13 +729,13 @@ func (proj *Project) loadConfig(download bool) error {
720729

721730
reposAllowed, err = yc.GetValStringSlice("project.repositories.allowed", nil)
722731
util.OneTimeWarningError(err)
723-
proj.reposAllowedRe, err = proj.createRegexpPatterns(reposAllowed)
732+
proj.reposAllowedRe, err = proj.createRegexpPatterns(util.UniqueStrings(reposAllowed))
724733
util.OneTimeWarningError(err)
725734

726735
reposIgnored, err = yc.GetValStringSlice("project.repositories.ignored", nil)
727736
util.OneTimeWarningError(err)
728737
reposIgnored = append(reposIgnored, newtutil.NewtIgnore...)
729-
proj.reposIgnoredRe, err = proj.createRegexpPatterns(reposIgnored)
738+
proj.reposIgnoredRe, err = proj.createRegexpPatterns(util.UniqueStrings(reposIgnored))
730739
util.OneTimeWarningError(err)
731740

732741
if !proj.isRepoAllowed("apache-mynewt-core") {
@@ -754,6 +763,10 @@ func (proj *Project) loadConfig(download bool) error {
754763
fields, err := yc.GetValStringMapString(k, nil)
755764
util.OneTimeWarningError(err)
756765

766+
if proj.isRepoIgnored(repoName) {
767+
continue
768+
}
769+
757770
r, err := proj.loadRepo(repoName, fields)
758771
if err != nil {
759772
// if `repository.yml` does not exist, it is not an error; we

0 commit comments

Comments
 (0)