Skip to content

Commit 1c78d0b

Browse files
committed
feat: add bom.definitions
for #697 Signed-off-by: Hakan Dilek <[email protected]>
1 parent c72d5f4 commit 1c78d0b

File tree

4 files changed

+785
-0
lines changed

4 files changed

+785
-0
lines changed

Diff for: cyclonedx/model/bom.py

+20
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
from .bom_ref import BomRef
4242
from .component import Component
4343
from .contact import OrganizationalContact, OrganizationalEntity
44+
from .definition import DefinitionRepository, _DefinitionRepositoryHelper
4445
from .dependency import Dependable, Dependency
4546
from .license import License, LicenseExpression, LicenseRepository
4647
from .service import Service
@@ -317,6 +318,7 @@ def __init__(
317318
dependencies: Optional[Iterable[Dependency]] = None,
318319
vulnerabilities: Optional[Iterable[Vulnerability]] = None,
319320
properties: Optional[Iterable[Property]] = None,
321+
definitions: Optional[DefinitionRepository] = None,
320322
) -> None:
321323
"""
322324
Create a new Bom that you can manually/programmatically add data to later.
@@ -333,6 +335,7 @@ def __init__(
333335
self.vulnerabilities = vulnerabilities or [] # type:ignore[assignment]
334336
self.dependencies = dependencies or [] # type:ignore[assignment]
335337
self.properties = properties or [] # type:ignore[assignment]
338+
self.definitions = definitions or DefinitionRepository()
336339

337340
@property
338341
@serializable.type_mapping(UrnUuidHelper)
@@ -520,6 +523,23 @@ def vulnerabilities(self) -> 'SortedSet[Vulnerability]':
520523
def vulnerabilities(self, vulnerabilities: Iterable[Vulnerability]) -> None:
521524
self._vulnerabilities = SortedSet(vulnerabilities)
522525

526+
@property
527+
@serializable.type_mapping(_DefinitionRepositoryHelper)
528+
@serializable.view(SchemaVersion1Dot6)
529+
@serializable.xml_sequence(90)
530+
def definitions(self) -> Optional[DefinitionRepository]:
531+
"""
532+
The repository for definitions
533+
534+
Returns:
535+
`DefinitionRepository`
536+
"""
537+
return self._definitions
538+
539+
@definitions.setter
540+
def definitions(self, definitions: DefinitionRepository) -> None:
541+
self._definitions = definitions
542+
523543
# @property
524544
# ...
525545
# @serializable.view(SchemaVersion1Dot5)

0 commit comments

Comments
 (0)