Skip to content

Commit 991d476

Browse files
nnobelismnonnenmacher
authored andcommitted
feat(reporter): Take in account the scope includes
Signed-off-by: Nicolas Nobelis <nicolas.nobelis@bosch.com>
1 parent 7c28392 commit 991d476

2 files changed

Lines changed: 19 additions & 4 deletions

File tree

plugins/reporters/opossum/src/main/kotlin/OpossumReporter.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import org.ossreviewtoolkit.model.Package
3636
import org.ossreviewtoolkit.model.Project
3737
import org.ossreviewtoolkit.model.ScanResult
3838
import org.ossreviewtoolkit.model.VcsInfo
39+
import org.ossreviewtoolkit.model.utils.isScopeIncluded
3940
import org.ossreviewtoolkit.model.utils.toPurl
4041
import org.ossreviewtoolkit.plugins.api.OrtPlugin
4142
import org.ossreviewtoolkit.plugins.api.OrtPluginOption
@@ -309,8 +310,8 @@ class OpossumReporter(
309310

310311
addSignal(signalFromProject, setOf(definitionFilePath))
311312

312-
val scopeNames = ortResult.dependencyNavigator.scopeNames(project).filterNot {
313-
ortResult.getExcludes().isScopeExcluded(it)
313+
val scopeNames = ortResult.dependencyNavigator.scopeNames(project).filter {
314+
isScopeIncluded(it, ortResult.getExcludes(), ortResult.getIncludes())
314315
}
315316

316317
scopeNames.forEach { scopeName ->

reporter/src/main/kotlin/StatisticsCalculator.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ package org.ossreviewtoolkit.reporter
2222
import java.time.Duration
2323
import java.time.Instant
2424

25+
import kotlin.collections.filterNot
2526
import kotlin.time.toKotlinDuration
2627

2728
import org.ossreviewtoolkit.model.Identifier
@@ -33,6 +34,7 @@ import org.ossreviewtoolkit.model.config.RuleViolationResolution
3334
import org.ossreviewtoolkit.model.licenses.LicenseInfoResolver
3435
import org.ossreviewtoolkit.model.licenses.LicenseView
3536
import org.ossreviewtoolkit.model.licenses.ResolvedLicenseInfo
37+
import org.ossreviewtoolkit.model.utils.isScopeIncluded
3638

3739
/**
3840
* This class calculates [Statistics] for a given [OrtResult] and the applicable [IssueResolution]s and
@@ -94,15 +96,27 @@ object StatisticsCalculator {
9496
.flatMap { project ->
9597
val scopes = ortResult.dependencyNavigator.scopeNames(project)
9698
MutableList(scopes.size) { project }.zip(scopes)
97-
}.filterNot { (_, scope) -> ignoreExcluded && ortResult.repository.config.excludes.isScopeExcluded(scope) }
99+
}.filterNot { (_, scope) ->
100+
ignoreExcluded && !isScopeIncluded(
101+
scope,
102+
ortResult.repository.config.excludes,
103+
ortResult.repository.config.includes
104+
)
105+
}
98106
.maxOfOrNull { (project, scope) -> ortResult.dependencyNavigator.dependencyTreeDepth(project, scope) } ?: 0
99107

100108
private fun getIncludedScopes(ortResult: OrtResult): Set<String> =
101109
ortResult
102110
.getProjects()
103111
.filterNot { project -> ortResult.isExcluded(project.id) }
104112
.flatMap { project -> ortResult.dependencyNavigator.scopeNames(project) }
105-
.filterNot { scope -> ortResult.repository.config.excludes.isScopeExcluded(scope) }
113+
.filter { scope ->
114+
isScopeIncluded(
115+
scope,
116+
ortResult.repository.config.excludes,
117+
ortResult.repository.config.includes
118+
)
119+
}
106120
.toSet()
107121

108122
private fun getExcludedScopes(ortResult: OrtResult): Set<String> =

0 commit comments

Comments
 (0)