Skip to content

Commit 49915ed

Browse files
Merge branch 'main' into feat/scanoss/parse-ort-yml-file-on-scanoss-integration-cherry-pick
2 parents e45cf6e + 5fb6ccb commit 49915ed

File tree

207 files changed

+3776
-2368
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

207 files changed

+3776
-2368
lines changed

.github/ISSUE_TEMPLATE/bug.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ No screenshots of plain text please, to keep text searchable.
3434

3535
### Environment
3636

37-
Output of the `ort requirements -l commands` command:
37+
Output of the `ort requirements` command:
3838

3939
```
4040
<copy & paste console output to here; no screenshots please>

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
./cli/build/distributions/ort-$ORT_VERSION.{tgz,zip}* \
5959
./helper-cli/build/distributions/orth-$ORT_VERSION.{tgz,zip}*
6060
- name: Attest Build Provenance
61-
uses: actions/attest-build-provenance@bd77c077858b8d561b7a36cbe48ef4cc642ca39d # v2
61+
uses: actions/attest-build-provenance@c074443f1aee8d4aeeae555aebba3282517141b2 # v2
6262
with:
6363
subject-path: |
6464
./cli/build/distributions/ort-${{ env.ORT_VERSION }}.tgz

advisor/src/main/kotlin/Advisor.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import org.ossreviewtoolkit.model.Package
3737
import org.ossreviewtoolkit.model.config.AdvisorConfiguration
3838
import org.ossreviewtoolkit.model.vulnerabilities.Vulnerability
3939
import org.ossreviewtoolkit.model.vulnerabilities.VulnerabilityReference
40-
import org.ossreviewtoolkit.plugins.api.PluginConfig
40+
import org.ossreviewtoolkit.plugins.api.orEmpty
4141
import org.ossreviewtoolkit.utils.ort.Environment
4242

4343
/**
@@ -81,7 +81,7 @@ class Advisor(
8181
} else {
8282
val providers = providerFactories.map {
8383
val providerConfig = config.config?.get(it.descriptor.id)
84-
it.create(PluginConfig(providerConfig?.options.orEmpty(), providerConfig?.secrets.orEmpty()))
84+
it.create(providerConfig.orEmpty())
8585
}
8686

8787
providers.map { provider ->

analyzer/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ plugins {
2727

2828
dependencies {
2929
api(projects.model)
30+
api(projects.plugins.api)
3031

3132
implementation(projects.downloader)
3233
implementation(projects.utils.configUtils)

analyzer/src/funTest/kotlin/PackageManagerFunTest.kt

Lines changed: 45 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import java.io.File
3535
import org.ossreviewtoolkit.model.config.Excludes
3636
import org.ossreviewtoolkit.model.config.PathExclude
3737
import org.ossreviewtoolkit.model.config.PathExcludeReason
38+
import org.ossreviewtoolkit.plugins.api.PluginConfig
3839

3940
class PackageManagerFunTest : WordSpec({
4041
val definitionFiles = listOf(
@@ -72,92 +73,87 @@ class PackageManagerFunTest : WordSpec({
7273
)
7374

7475
val projectDir = tempdir()
76+
val packageManagers = PackageManagerFactory.ALL.values.map { it.create(PluginConfig.EMPTY) }
7577

7678
beforeSpec {
7779
definitionFiles.writeFiles(projectDir)
7880
}
7981

8082
"findManagedFiles" should {
8183
"find all managed files" {
82-
val managedFiles = PackageManager.findManagedFiles(projectDir)
84+
val managedFiles = PackageManager.findManagedFiles(projectDir, packageManagers)
8385

8486
// The test project contains at least one file per package manager, so the result should also contain an
8587
// entry for each package manager.
86-
val unmanagedPackageManagerFactory = PackageManagerFactory.ALL.getValue("Unmanaged")
87-
managedFiles.keys shouldContainExactlyInAnyOrder PackageManagerFactory.ENABLED_BY_DEFAULT.filterNot {
88-
it == unmanagedPackageManagerFactory
89-
}
88+
managedFiles.keys.map { it.descriptor.id } shouldContainExactlyInAnyOrder
89+
PackageManagerFactory.ALL.values.map { it.descriptor.id }.filterNot { it == "Unmanaged" }
9090

91-
val managedFilesByName = managedFiles.groupByName(projectDir)
91+
val managedFilesById = managedFiles.groupById(projectDir)
9292

9393
assertSoftly {
94-
managedFilesByName["Bazel"] should containExactly("bazel/MODULE.bazel")
95-
managedFilesByName["Bower"] should containExactly("bower/bower.json")
96-
managedFilesByName["Bundler"] should containExactly("bundler/Gemfile")
97-
managedFilesByName["Cargo"] should containExactly("cargo/Cargo.toml")
98-
managedFilesByName["Carthage"] should containExactly("carthage/Cartfile.resolved")
99-
managedFilesByName["CocoaPods"] should containExactly("cocoapods/Podfile")
100-
managedFilesByName["Composer"] should containExactly("composer/composer.json")
101-
managedFilesByName["Conan"] should containExactlyInAnyOrder(
94+
managedFilesById["Bazel"] should containExactly("bazel/MODULE.bazel")
95+
managedFilesById["Bower"] should containExactly("bower/bower.json")
96+
managedFilesById["Bundler"] should containExactly("bundler/Gemfile")
97+
managedFilesById["Cargo"] should containExactly("cargo/Cargo.toml")
98+
managedFilesById["Carthage"] should containExactly("carthage/Cartfile.resolved")
99+
managedFilesById["CocoaPods"] should containExactly("cocoapods/Podfile")
100+
managedFilesById["Composer"] should containExactly("composer/composer.json")
101+
managedFilesById["Conan"] should containExactlyInAnyOrder(
102102
"conan-py/conanfile.py",
103103
"conan-txt/conanfile.txt"
104104
)
105-
managedFilesByName["GoMod"] should containExactly("gomod/go.mod")
106-
managedFilesByName["GradleInspector"] should containExactlyInAnyOrder(
105+
managedFilesById["GoMod"] should containExactly("gomod/go.mod")
106+
managedFilesById["GradleInspector"] should containExactlyInAnyOrder(
107107
"gradle-groovy/build.gradle",
108108
"gradle-kotlin/build.gradle.kts"
109109
)
110-
managedFilesByName["Maven"] should containExactly("maven/pom.xml")
111-
managedFilesByName["NPM"] should containExactly("npm-pnpm-and-yarn/package.json")
112-
managedFilesByName["NuGet"] should containExactlyInAnyOrder(
110+
managedFilesById["Maven"] should containExactly("maven/pom.xml")
111+
managedFilesById["NPM"] should containExactly("npm-pnpm-and-yarn/package.json")
112+
managedFilesById["NuGet"] should containExactlyInAnyOrder(
113113
"dotnet/test.csproj",
114114
"nuget/packages.config"
115115
)
116-
managedFilesByName["PIP"] should containExactlyInAnyOrder(
116+
managedFilesById["PIP"] should containExactlyInAnyOrder(
117117
"pip-requirements/requirements.txt",
118118
"pip-setup/setup.py"
119119
)
120-
managedFilesByName["Pipenv"] should containExactly("pipenv/Pipfile.lock")
121-
managedFilesByName["PNPM"] should containExactly("npm-pnpm-and-yarn/package.json")
122-
managedFilesByName["Poetry"] should containExactly("poetry/poetry.lock")
123-
managedFilesByName["Pub"] should containExactly("pub/pubspec.yaml")
124-
managedFilesByName["SBT"] should containExactly("sbt/build.sbt")
125-
managedFilesByName["SpdxDocumentFile"] should containExactlyInAnyOrder(
120+
managedFilesById["Pipenv"] should containExactly("pipenv/Pipfile.lock")
121+
managedFilesById["PNPM"] should containExactly("npm-pnpm-and-yarn/package.json")
122+
managedFilesById["Poetry"] should containExactly("poetry/poetry.lock")
123+
managedFilesById["Pub"] should containExactly("pub/pubspec.yaml")
124+
managedFilesById["SBT"] should containExactly("sbt/build.sbt")
125+
managedFilesById["SpdxDocumentFile"] should containExactlyInAnyOrder(
126126
"spdx-package/package.spdx.yml",
127127
"spdx-project/project.spdx.yml"
128128
)
129-
managedFilesByName["SwiftPM"] should containExactlyInAnyOrder(
129+
managedFilesById["SwiftPM"] should containExactlyInAnyOrder(
130130
"spm-app/Package.resolved",
131131
"spm-lib/Package.swift"
132132
)
133-
managedFilesByName["Stack"] should containExactly("stack/stack.yaml")
134-
managedFilesByName["Yarn"] should containExactly("npm-pnpm-and-yarn/package.json")
133+
managedFilesById["Stack"] should containExactly("stack/stack.yaml")
134+
managedFilesById["Yarn"] should containExactly("npm-pnpm-and-yarn/package.json")
135135
}
136136
}
137137

138138
"find only files for active package managers" {
139139
val managedFiles = PackageManager.findManagedFiles(
140140
projectDir,
141-
setOf(
142-
PackageManagerFactory.ALL.getValue("GradleInspector"),
143-
PackageManagerFactory.ALL.getValue("Pip"),
144-
PackageManagerFactory.ALL.getValue("Sbt")
145-
)
141+
packageManagers.filter { it.descriptor.id in setOf("GradleInspector", "PIP", "SBT") }
146142
)
147143

148144
managedFiles shouldHaveSize 3
149145

150-
val managedFilesByName = managedFiles.groupByName(projectDir)
146+
val managedFilesById = managedFiles.groupById(projectDir)
151147

152-
managedFilesByName["GradleInspector"] should containExactlyInAnyOrder(
148+
managedFilesById["GradleInspector"] should containExactlyInAnyOrder(
153149
"gradle-groovy/build.gradle",
154150
"gradle-kotlin/build.gradle.kts"
155151
)
156-
managedFilesByName["PIP"] should containExactlyInAnyOrder(
152+
managedFilesById["PIP"] should containExactlyInAnyOrder(
157153
"pip-requirements/requirements.txt",
158154
"pip-setup/setup.py"
159155
)
160-
managedFilesByName["SBT"] should containExactly("sbt/build.sbt")
156+
managedFilesById["SBT"] should containExactly("sbt/build.sbt")
161157
}
162158

163159
"find no files if no package managers are active" {
@@ -176,31 +172,32 @@ class PackageManagerFunTest : WordSpec({
176172
val pathExclude = PathExclude("$tempDir**", PathExcludeReason.TEST_OF)
177173
val excludes = Excludes(paths = listOf(pathExclude))
178174

179-
val managedFilesByName = PackageManager.findManagedFiles(rootDir, excludes = excludes).groupByName(rootDir)
175+
val managedFilesById = PackageManager.findManagedFiles(rootDir, packageManagers, excludes = excludes)
176+
.groupById(rootDir)
180177

181-
managedFilesByName["GradleInspector"] should containExactlyInAnyOrder(
178+
managedFilesById["GradleInspector"] should containExactlyInAnyOrder(
182179
"gradle-groovy/build.gradle",
183180
"gradle-kotlin/build.gradle.kts"
184181
)
185-
managedFilesByName["Maven"] should containExactly("maven/pom.xml")
186-
managedFilesByName["SBT"] should containExactly("sbt/build.sbt")
182+
managedFilesById["Maven"] should containExactly("maven/pom.xml")
183+
managedFilesById["SBT"] should containExactly("sbt/build.sbt")
187184
}
188185

189186
"handle specific excluded definition files" {
190187
val pathExclude = PathExclude("gradle-groovy/build.gradle", PathExcludeReason.OTHER)
191188
val excludes = Excludes(paths = listOf(pathExclude))
192189

193-
val managedFiles = PackageManager.findManagedFiles(projectDir, excludes = excludes)
194-
val managedFilesByName = managedFiles.groupByName(projectDir)
190+
val managedFiles = PackageManager.findManagedFiles(projectDir, packageManagers, excludes = excludes)
191+
val managedFilesById = managedFiles.groupById(projectDir)
195192

196-
managedFilesByName["GradleInspector"] should containExactly(
193+
managedFilesById["GradleInspector"] should containExactly(
197194
"gradle-kotlin/build.gradle.kts"
198195
)
199196
}
200197

201198
"fail if the provided file is not a directory" {
202199
shouldThrow<IllegalArgumentException> {
203-
PackageManager.findManagedFiles(projectDir.resolve("pom.xml"))
200+
PackageManager.findManagedFiles(projectDir.resolve("pom.xml"), packageManagers)
204201
}
205202
}
206203
}
@@ -211,9 +208,9 @@ class PackageManagerFunTest : WordSpec({
211208
* package managers can be easily accessed. The keys in expected and actual maps of definition files are different
212209
* instances of package manager factories. So to compare values use the package manager types as keys instead.
213210
*/
214-
private fun ManagedProjectFiles.groupByName(projectDir: File) =
211+
private fun ManagedProjectFiles.groupById(projectDir: File) =
215212
map { (manager, files) ->
216-
manager.type to files.map { it.relativeTo(projectDir).invariantSeparatorsPath }
213+
manager.descriptor.id to files.map { it.relativeTo(projectDir).invariantSeparatorsPath }
217214
}.toMap()
218215

219216
/**

0 commit comments

Comments
 (0)