Skip to content

Commit e24e2d6

Browse files
Juli0qsschuberth
authored andcommitted
feat(fossid): Add parameter to disable content deletion after scan
This allows users to retain content when needed for debugging or analysis purposes while maintaining the default cleanup behavior. Signed-off-by: Julian Olderdissen <[email protected]>
1 parent 7cb6818 commit e24e2d6

File tree

5 files changed

+18
-5
lines changed

5 files changed

+18
-5
lines changed

model/src/main/resources/reference.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,8 @@ ort:
279279

280280
treatPendingIdentificationsAsError: false
281281

282+
deleteUploadedArchiveAfterScan: true
283+
282284
secrets:
283285
user: user
284286
apiKey: XYZ

model/src/test/kotlin/config/OrtConfigurationTest.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,8 @@ class OrtConfigurationTest : WordSpec({
260260
"timeout" to "60",
261261
"urlMappings" to urlMapping,
262262
"sensitivity" to "10",
263-
"treatPendingIdentificationsAsError" to "false"
263+
"treatPendingIdentificationsAsError" to "false",
264+
"deleteUploadedArchiveAfterScan" to "true"
264265
)
265266

266267
secrets should containExactlyEntries(

plugins/scanners/fossid/src/main/kotlin/FossIdConfig.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,14 @@ data class FossIdConfig(
135135

136136
/** Treat pending identifications as errors instead of hints. */
137137
@OrtPluginOption(defaultValue = "false")
138-
val treatPendingIdentificationsAsError: Boolean
138+
val treatPendingIdentificationsAsError: Boolean,
139+
140+
/**
141+
* Whether to delete uploaded content after scan completion. When set to false, archives remain on the
142+
* FossID server, which can help diagnose archive upload issues.
143+
*/
144+
@OrtPluginOption(defaultValue = "true")
145+
val deleteUploadedArchiveAfterScan: Boolean
139146
) {
140147
init {
141148
require(deltaScanLimit > 0) {

plugins/scanners/fossid/src/main/kotlin/events/UploadArchiveHandler.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,10 @@ class UploadArchiveHandler(
129129
}
130130

131131
override suspend fun afterCheckScan(scanCode: String) {
132-
service.removeUploadedContent(config.user.value, config.apiKey.value, scanCode)
133-
.checkResponse("remove previously uploaded content 2", false)
132+
if (config.deleteUploadedArchiveAfterScan) {
133+
service.removeUploadedContent(config.user.value, config.apiKey.value, scanCode)
134+
.checkResponse("remove previously uploaded content 2", false)
135+
}
134136
}
135137

136138
internal fun deleteExcludedFiles(path: File, includes: Includes?, excludes: Excludes?) {

plugins/scanners/fossid/src/test/kotlin/TestUtils.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,8 @@ internal fun createConfig(
153153
writeToStorage = false,
154154
logRequests = false,
155155
isArchiveMode = isArchiveMode,
156-
treatPendingIdentificationsAsError = false
156+
treatPendingIdentificationsAsError = false,
157+
deleteUploadedArchiveAfterScan = true
157158
)
158159

159160
val namingProvider = createNamingProviderMock()

0 commit comments

Comments
 (0)