Skip to content

Commit 34810c7

Browse files
authored
Support cycloneDx format (#204)
Signed-off-by: jiyeong.seok <[email protected]>
1 parent 7129361 commit 34810c7

File tree

3 files changed

+24
-21
lines changed

3 files changed

+24
-21
lines changed

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ numpy>=1.22.2; python_version >= '3.8'
1515
npm
1616
requests
1717
GitPython
18-
cyclonedx-python-lib==8.5.0
18+
cyclonedx-python-lib==8.5.*;sys_platform=="linux"

src/fosslight_util/output_format.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,14 +183,15 @@ def write_output_file(output_file_without_ext: str, file_extension: str, scan_it
183183
success, msg = write_opossum(result_file, scan_item)
184184
elif format == 'yaml':
185185
success, msg, _ = write_yaml(result_file, scan_item, False)
186-
elif format.startswith('spdx'):
186+
elif format.startswith('spdx') or format.startswith('cyclonedx'):
187187
if platform.system() == 'Windows' or platform.system() == 'Darwin':
188188
success = False
189189
msg = f'{platform.system()} not support spdx format.'
190190
else:
191-
success, msg, _ = write_spdx(output_file_without_ext, file_extension, scan_item, spdx_version)
192-
elif format.startswith('cyclonedx'):
193-
success, msg, _ = write_cyclonedx(output_file_without_ext, file_extension, scan_item)
191+
if format.startswith('spdx'):
192+
success, msg, _ = write_spdx(output_file_without_ext, file_extension, scan_item, spdx_version)
193+
elif format.startswith('cyclonedx'):
194+
success, msg, _ = write_cyclonedx(output_file_without_ext, file_extension, scan_item)
194195
else:
195196
if file_extension == '.xlsx':
196197
success, msg = write_result_to_excel(result_file, scan_item, extended_header, hide_header)

src/fosslight_util/write_cyclonedx.py

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -17,22 +17,24 @@
1717
from fosslight_util.oss_item import CHECKSUM_NULL, get_checksum_sha1
1818
from packageurl import PackageURL
1919
import traceback
20-
from cyclonedx.builder.this import this_component as cdx_lib_component
21-
from cyclonedx.exception import MissingOptionalDependencyException
22-
from cyclonedx.factory.license import LicenseFactory
23-
from cyclonedx.model import XsUri, ExternalReferenceType
24-
from cyclonedx.model.bom import Bom
25-
from cyclonedx.model.component import Component, ComponentType, HashAlgorithm, HashType, ExternalReference
26-
from cyclonedx.model.contact import OrganizationalEntity
27-
from cyclonedx.output import make_outputter, BaseOutput
28-
from cyclonedx.output.json import JsonV1Dot6
29-
from cyclonedx.schema import OutputFormat, SchemaVersion
30-
from cyclonedx.validation import make_schemabased_validator
31-
from cyclonedx.validation.json import JsonStrictValidator
32-
from cyclonedx.output.json import Json as JsonOutputter
33-
from cyclonedx.output.xml import Xml as XmlOutputter
34-
from cyclonedx.validation.xml import XmlValidator
35-
20+
try:
21+
from cyclonedx.builder.this import this_component as cdx_lib_component
22+
from cyclonedx.exception import MissingOptionalDependencyException
23+
from cyclonedx.factory.license import LicenseFactory
24+
from cyclonedx.model import XsUri, ExternalReferenceType
25+
from cyclonedx.model.bom import Bom
26+
from cyclonedx.model.component import Component, ComponentType, HashAlgorithm, HashType, ExternalReference
27+
from cyclonedx.model.contact import OrganizationalEntity
28+
from cyclonedx.output import make_outputter, BaseOutput
29+
from cyclonedx.output.json import JsonV1Dot6
30+
from cyclonedx.schema import OutputFormat, SchemaVersion
31+
from cyclonedx.validation import make_schemabased_validator
32+
from cyclonedx.validation.json import JsonStrictValidator
33+
from cyclonedx.output.json import Json as JsonOutputter
34+
from cyclonedx.output.xml import Xml as XmlOutputter
35+
from cyclonedx.validation.xml import XmlValidator
36+
except Exception:
37+
logger.info('No import cyclonedx-python-lib')
3638
logger = logging.getLogger(LOGGER_NAME)
3739

3840

0 commit comments

Comments
 (0)