scanoss 1.26.1__tar.gz → 1.26.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {scanoss-1.26.1/src/scanoss.egg-info → scanoss-1.26.3}/PKG-INFO +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/__init__.py +1 -1
- scanoss-1.26.3/src/scanoss/data/build_date.txt +1 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/copyleft.py +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/inspect_base.py +28 -9
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/license_summary.py +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/policy_check.py +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/undeclared_component.py +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3/src/scanoss.egg-info}/PKG-INFO +1 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_policy_inspect.py +30 -12
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_spdxlite.py +2 -2
- scanoss-1.26.1/src/scanoss/data/build_date.txt +0 -1
- {scanoss-1.26.1 → scanoss-1.26.3}/LICENSE +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/PACKAGE.md +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/README.md +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/pyproject.toml +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/setup.cfg +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/options/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/options/annotations_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/options/annotations_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/options/openapiv2_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/protoc_gen_swagger/options/openapiv2_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/common/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/common/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/common/v2/scanoss_common_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/common/v2/scanoss_common_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/components/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/components/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/components/v2/scanoss_components_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/components/v2/scanoss_components_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/cryptography/v2/scanoss_cryptography_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/cryptography/v2/scanoss_cryptography_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/v2/scanoss_dependencies_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/v2/scanoss_dependencies_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/v2/scanoss_geoprovenance_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/v2/scanoss_geoprovenance_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/scanning/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/scanning/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/scanning/v2/scanoss_scanning_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/scanning/v2/scanoss_scanning_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/semgrep/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/semgrep/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/semgrep/v2/scanoss_semgrep_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/semgrep/v2/scanoss_semgrep_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/vulnerabilities/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/vulnerabilities/v2/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2_grpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/cli.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/components.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/constants.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/cryptography.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/csvoutput.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/cyclonedx.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/data/scanoss-settings-schema.json +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/data/spdx-exceptions.json +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/data/spdx-licenses.json +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/file_filters.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/filecount.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/component_summary.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/inspection/utils/license_utils.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/results.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scancodedeps.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanner.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanners/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanners/container_scanner.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanners/folder_hasher.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanners/scanner_config.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanners/scanner_hfh.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanoss_settings.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanossapi.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanossbase.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanossgrpc.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scanpostprocessor.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/scantype.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/spdxlite.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/threadeddependencies.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/threadedscanning.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/utils/__init__.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/utils/abstract_presenter.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/utils/crc64.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/utils/file.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/utils/simhash.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/winnowing.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss.egg-info/SOURCES.txt +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss.egg-info/dependency_links.txt +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss.egg-info/entry_points.txt +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss.egg-info/requires.txt +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss.egg-info/top_level.txt +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_csv_output.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_file_filters.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_scan_post_processor.py +0 -0
- {scanoss-1.26.1 → scanoss-1.26.3}/tests/test_winnowing.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
date: 20250626171827, utime: 1750958307
|
|
@@ -66,7 +66,7 @@ class InspectBase(ScanossBase):
|
|
|
66
66
|
def __init__( # noqa: PLR0913
|
|
67
67
|
self,
|
|
68
68
|
debug: bool = False,
|
|
69
|
-
trace: bool =
|
|
69
|
+
trace: bool = False,
|
|
70
70
|
quiet: bool = False,
|
|
71
71
|
filepath: str = None,
|
|
72
72
|
output: str = None,
|
|
@@ -152,9 +152,6 @@ class InspectBase(ScanossBase):
|
|
|
152
152
|
'declared': 1 if status == 'identified' else 0,
|
|
153
153
|
'undeclared': 1 if status == 'pending' else 0
|
|
154
154
|
}
|
|
155
|
-
if not new_component.get('licenses'):
|
|
156
|
-
self.print_debug(f'WARNING: Results missing licenses. Skipping: {new_component}')
|
|
157
|
-
return components
|
|
158
155
|
|
|
159
156
|
## Append license to component
|
|
160
157
|
self._append_license_to_component(components, new_component, component_key)
|
|
@@ -179,6 +176,11 @@ class InspectBase(ScanossBase):
|
|
|
179
176
|
new_component: Component whose licenses need to be processed
|
|
180
177
|
component_key: purl + version of the component to be updated
|
|
181
178
|
"""
|
|
179
|
+
# If not licenses are present
|
|
180
|
+
if not new_component.get('licenses'):
|
|
181
|
+
self.print_debug(f'WARNING: Results missing licenses. Skipping: {new_component}')
|
|
182
|
+
return
|
|
183
|
+
|
|
182
184
|
licenses_order_by_source_priority = self._get_licenses_order_by_source_priority(new_component['licenses'])
|
|
183
185
|
# Process licenses for this component
|
|
184
186
|
for license_item in licenses_order_by_source_priority:
|
|
@@ -393,14 +395,31 @@ class InspectBase(ScanossBase):
|
|
|
393
395
|
"""
|
|
394
396
|
component_licenses: dict = {}
|
|
395
397
|
for component in components:
|
|
396
|
-
|
|
397
|
-
|
|
398
|
+
purl = component.get('purl', '')
|
|
399
|
+
status = component.get('status', '')
|
|
400
|
+
licenses = component.get('licenses', [])
|
|
401
|
+
|
|
402
|
+
# Component without license
|
|
403
|
+
if not licenses:
|
|
404
|
+
key = f'{purl}-unknown'
|
|
405
|
+
component_licenses[key] = {
|
|
406
|
+
'purl': purl,
|
|
407
|
+
'spdxid': 'unknown',
|
|
408
|
+
'status': status,
|
|
409
|
+
'copyleft': False,
|
|
410
|
+
'url': '-',
|
|
411
|
+
}
|
|
412
|
+
continue
|
|
413
|
+
|
|
414
|
+
# Iterate over licenses component licenses
|
|
415
|
+
for lic in licenses:
|
|
416
|
+
spdxid = lic.get('spdxid', 'unknown')
|
|
398
417
|
if spdxid not in component_licenses:
|
|
399
|
-
key = f'{
|
|
418
|
+
key = f'{purl}-{spdxid}'
|
|
400
419
|
component_licenses[key] = {
|
|
401
|
-
'purl':
|
|
420
|
+
'purl': purl,
|
|
402
421
|
'spdxid': spdxid,
|
|
403
|
-
'status':
|
|
422
|
+
'status': status,
|
|
404
423
|
'copyleft': lic['copyleft'],
|
|
405
424
|
'url': lic['url'],
|
|
406
425
|
}
|
|
@@ -181,11 +181,14 @@ class MyTestCase(unittest.TestCase):
|
|
|
181
181
|
status, results = undeclared.run()
|
|
182
182
|
details = json.loads(results['details'])
|
|
183
183
|
summary = results['summary']
|
|
184
|
-
expected_summary_output = """
|
|
184
|
+
expected_summary_output = """3 undeclared component(s) were found.
|
|
185
185
|
Add the following snippet into your `sbom.json` file
|
|
186
186
|
```json
|
|
187
187
|
{
|
|
188
188
|
"components":[
|
|
189
|
+
{
|
|
190
|
+
"purl": "pkg:github/scanoss/jenkins-pipeline-example"
|
|
191
|
+
},
|
|
189
192
|
{
|
|
190
193
|
"purl": "pkg:github/scanoss/scanner.c"
|
|
191
194
|
},
|
|
@@ -195,7 +198,7 @@ class MyTestCase(unittest.TestCase):
|
|
|
195
198
|
]
|
|
196
199
|
}```
|
|
197
200
|
"""
|
|
198
|
-
self.assertEqual(len(details['components']),
|
|
201
|
+
self.assertEqual(len(details['components']), 4)
|
|
199
202
|
self.assertEqual(
|
|
200
203
|
re.sub(r'\s|\\(?!`)|\\(?=`)', '', summary), re.sub(r'\s|\\(?!`)|\\(?=`)', '', expected_summary_output)
|
|
201
204
|
)
|
|
@@ -216,14 +219,18 @@ class MyTestCase(unittest.TestCase):
|
|
|
216
219
|
expected_details_output = """ ### Undeclared components
|
|
217
220
|
| Component | License |
|
|
218
221
|
| - | - |
|
|
222
|
+
| pkg:github/scanoss/jenkins-pipeline-example | unknown |
|
|
219
223
|
| pkg:github/scanoss/scanner.c | GPL-2.0-only |
|
|
220
224
|
| pkg:github/scanoss/wfp | GPL-2.0-only | """
|
|
221
225
|
|
|
222
|
-
expected_summary_output = """
|
|
226
|
+
expected_summary_output = """3 undeclared component(s) were found.
|
|
223
227
|
Add the following snippet into your `sbom.json` file
|
|
224
228
|
```json
|
|
225
229
|
{
|
|
226
230
|
"components":[
|
|
231
|
+
{
|
|
232
|
+
"purl": "pkg:github/scanoss/jenkins-pipeline-example"
|
|
233
|
+
},
|
|
227
234
|
{
|
|
228
235
|
"purl": "pkg:github/scanoss/scanner.c"
|
|
229
236
|
},
|
|
@@ -256,16 +263,20 @@ class MyTestCase(unittest.TestCase):
|
|
|
256
263
|
expected_details_output = """ ### Undeclared components
|
|
257
264
|
| Component | License |
|
|
258
265
|
| - | - |
|
|
266
|
+
| pkg:github/scanoss/jenkins-pipeline-example | unknown |
|
|
259
267
|
| pkg:github/scanoss/scanner.c | GPL-2.0-only |
|
|
260
268
|
| pkg:github/scanoss/wfp | GPL-2.0-only | """
|
|
261
269
|
|
|
262
|
-
expected_summary_output = """
|
|
270
|
+
expected_summary_output = """3 undeclared component(s) were found.
|
|
263
271
|
Add the following snippet into your `scanoss.json` file
|
|
264
272
|
|
|
265
273
|
```json
|
|
266
274
|
{
|
|
267
275
|
"bom": {
|
|
268
276
|
"include": [
|
|
277
|
+
{
|
|
278
|
+
"purl": "pkg:github/scanoss/jenkins-pipeline-example"
|
|
279
|
+
},
|
|
269
280
|
{
|
|
270
281
|
"purl": "pkg:github/scanoss/scanner.c"
|
|
271
282
|
},
|
|
@@ -296,13 +307,16 @@ class MyTestCase(unittest.TestCase):
|
|
|
296
307
|
status, results = undeclared.run()
|
|
297
308
|
details = json.loads(results['details'])
|
|
298
309
|
summary = results['summary']
|
|
299
|
-
expected_summary_output = """
|
|
310
|
+
expected_summary_output = """3 undeclared component(s) were found.
|
|
300
311
|
Add the following snippet into your `scanoss.json` file
|
|
301
312
|
|
|
302
313
|
```json
|
|
303
314
|
{
|
|
304
315
|
"bom": {
|
|
305
316
|
"include": [
|
|
317
|
+
{
|
|
318
|
+
"purl": "pkg:github/scanoss/jenkins-pipeline-example"
|
|
319
|
+
},
|
|
306
320
|
{
|
|
307
321
|
"purl": "pkg:github/scanoss/scanner.c"
|
|
308
322
|
},
|
|
@@ -314,7 +328,7 @@ class MyTestCase(unittest.TestCase):
|
|
|
314
328
|
}
|
|
315
329
|
```"""
|
|
316
330
|
self.assertEqual(status, 0)
|
|
317
|
-
self.assertEqual(len(details['components']),
|
|
331
|
+
self.assertEqual(len(details['components']), 4)
|
|
318
332
|
self.assertEqual(
|
|
319
333
|
re.sub(r'\s|\\(?!`)|\\(?=`)', '', summary), re.sub(r'\s|\\(?!`)|\\(?=`)', '', expected_summary_output)
|
|
320
334
|
)
|
|
@@ -328,15 +342,19 @@ class MyTestCase(unittest.TestCase):
|
|
|
328
342
|
details = results['details']
|
|
329
343
|
summary = results['summary']
|
|
330
344
|
expected_details_output = """|*Component*|*License*|
|
|
345
|
+
|pkg:github/scanoss/jenkins-pipeline-example|unknown|
|
|
331
346
|
|pkg:github/scanoss/scanner.c|GPL-2.0-only|
|
|
332
347
|
|pkg:github/scanoss/wfp|GPL-2.0-only|
|
|
333
348
|
"""
|
|
334
|
-
expected_summary_output = """
|
|
349
|
+
expected_summary_output = """3 undeclared component(s) were found.
|
|
335
350
|
Add the following snippet into your `scanoss.json` file
|
|
336
351
|
{code:json}
|
|
337
352
|
{
|
|
338
353
|
"bom": {
|
|
339
354
|
"include": [
|
|
355
|
+
{
|
|
356
|
+
"purl": "pkg:github/scanoss/jenkins-pipeline-example"
|
|
357
|
+
},
|
|
340
358
|
{
|
|
341
359
|
"purl": "pkg:github/scanoss/scanner.c"
|
|
342
360
|
},
|
|
@@ -373,7 +391,7 @@ Add the following snippet into your `scanoss.json` file
|
|
|
373
391
|
input_file_name = os.path.join(script_dir, 'data', file_name)
|
|
374
392
|
i_license_summary = LicenseSummary(filepath=input_file_name)
|
|
375
393
|
license_summary = i_license_summary.run()
|
|
376
|
-
self.assertEqual(license_summary['detectedLicenses'],
|
|
394
|
+
self.assertEqual(license_summary['detectedLicenses'], 3)
|
|
377
395
|
self.assertEqual(license_summary['detectedLicensesWithCopyleft'], 1)
|
|
378
396
|
|
|
379
397
|
def test_inspect_license_summary_with_empty_result(self):
|
|
@@ -393,11 +411,11 @@ Add the following snippet into your `scanoss.json` file
|
|
|
393
411
|
i_component_summary = ComponentSummary(filepath=input_file_name)
|
|
394
412
|
component_summary = i_component_summary.run()
|
|
395
413
|
print(component_summary)
|
|
396
|
-
self.assertEqual(component_summary['totalComponents'],
|
|
397
|
-
self.assertEqual(component_summary['undeclaredComponents'],
|
|
414
|
+
self.assertEqual(component_summary['totalComponents'], 4)
|
|
415
|
+
self.assertEqual(component_summary['undeclaredComponents'], 3)
|
|
398
416
|
self.assertEqual(component_summary['declaredComponents'], 1)
|
|
399
|
-
self.assertEqual(component_summary['totalFilesDetected'],
|
|
400
|
-
self.assertEqual(component_summary['totalFilesUndeclared'],
|
|
417
|
+
self.assertEqual(component_summary['totalFilesDetected'], 10)
|
|
418
|
+
self.assertEqual(component_summary['totalFilesUndeclared'], 8)
|
|
401
419
|
self.assertEqual(component_summary['totalFilesDeclared'], 2)
|
|
402
420
|
|
|
403
421
|
def test_inspect_component_summary_empty_result(self):
|
|
@@ -58,8 +58,8 @@ class MyTestCase(unittest.TestCase):
|
|
|
58
58
|
self.assertEqual(name, "SCANOSS-SBOM")
|
|
59
59
|
self.assertEqual(organization, "Organization: SCANOSS")
|
|
60
60
|
self.assertEqual(creation_info_comment, "SBOM Build information - SBOM Type: Build")
|
|
61
|
-
self.assertEqual(len(document_describes),
|
|
62
|
-
self.assertEqual(len(packages),
|
|
61
|
+
self.assertEqual(len(document_describes), 6)
|
|
62
|
+
self.assertEqual(len(packages), 6)
|
|
63
63
|
|
|
64
64
|
for package in packages:
|
|
65
65
|
for checksum in package.get("checksums", []):
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
date: 20250623123500, utime: 1750682100
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/components/v2/scanoss_components_pb2_grpc.py
RENAMED
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/cryptography/v2/scanoss_cryptography_pb2.py
RENAMED
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/cryptography/v2/scanoss_cryptography_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/v2/scanoss_dependencies_pb2.py
RENAMED
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/dependencies/v2/scanoss_dependencies_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/v2/scanoss_geoprovenance_pb2.py
RENAMED
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/geoprovenance/v2/scanoss_geoprovenance_pb2_grpc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scanoss-1.26.1 → scanoss-1.26.3}/src/scanoss/api/vulnerabilities/v2/scanoss_vulnerabilities_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|