-t TAGS, --tags TAGS Comma separated list of tags to attach to the project
--parent-collection-logic{NONE,ALL,TAG,LATEST}
Set up how the parent aggregates its direct children (ALL: all, TAG: with tag matching --parent-collection-logic-tag, LATEST: flagged as latest, NONE: disable), default is ALL (DT version >= 4.13.0)
> :bulb: you may decide to overwrite the path separator (ex: double slash `//`) if you want your project names to contain slashes.
### Project collection logic
Since [4.13.0 version](https://docs.dependencytrack.org/changelog/#v4-13-0), Dependency Track supports the concept of [collection project](https://docs.dependencytrack.org/usage/collection-projects/).
A collection project won't be able to host a SBOM, however it will display all vulnerabilities and policy violations of its children.
`sbom-scanner` will set the collection logic with the `--parent-collection-logic` optional argument (default value is `ALL`).
| `--parent-collection-logic` value | Dependency Track API value | Explanation |
| `ALL` | `AGGREGATE_DIRECT_CHILDREN` | Parent project will collect metrics from all its direct children |
| `TAG` | `AGGREGATE_DIRECT_CHILDREN_WITH_TAG` | Parent project will collect metrics from direct children specified by a tag (which can be different from tags on the parent project itself) |
| `LATEST` | `AGGREGATE_LATEST_VERSION_CHILDREN` | Parent project will collect metrics from direct children flagged as latest |
| `NONE` | `NONE` | Parent project will behave like a normal project |
:information_source: since `sbom-scanner` do not update existing projects, collection logic will only be configured on parent project created by `sbom-scanner`
See [Dependency Track documentation about collection project](https://docs.dependencytrack.org/usage/collection-projects/) for more details.
## Developers
`sbom-scanner` is implemented in Python and relies on [Poetry](https://python-poetry.org/) for its packaging and dependency management.
help="Set up how the parent aggregates its direct children (ALL: all, TAG: with tag matching --parent-collection-logic-tag, LATEST: flagged as latest, NONE: disable), default is ALL (DT version >= 4.13.0)",
f"You need to specify a tag with --parent-collection-logic-tag (or DEPTRACK_PARENT_COLLECTION_LOGIC_TAG env var) if parent collection logic has been set to {CollectionLogic.TAG.name}"