Skip to content

Conversation

@maennchen
Copy link
Contributor

@maennchen maennchen commented Jan 15, 2026

See individual commits.

@maennchen maennchen requested a review from a team as a code owner January 15, 2026 19:47

#------------------------------------------------------------------------
# Elixir (Mix SBoM)
FROM base AS mix_sbom_build

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 5: containerImage not pinned by hash
Click Remediation section below to solve this issue

#------------------------------------------------------------------------
# Erlang (Rebar3 SBoM wrapped in Bombom)
FROM base AS rebar3_sbom_build

Check warning

Code scanning / Scorecard

Pinned-Dependencies Medium

score is 5: containerImage not pinned by hash
Click Remediation section below to solve this issue
* It converts a [PurlType] enum value to the corresponding ORT
* type string format.
*/
fun PurlType.toOrtType(): String =

Check warning

Code scanning / QDJVM

Unused symbol Warning

Function "toOrtType" is never used
@maennchen maennchen force-pushed the sosef/m7 branch 2 times, most recently from bf91d9a to 0bb4a3d Compare January 15, 2026 20:10
@codecov
Copy link

codecov bot commented Jan 15, 2026

Codecov Report

❌ Patch coverage is 71.08434% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.86%. Comparing base (7bfdcbf) to head (4fc12f4).

Files with missing lines Patch % Lines
model/src/main/kotlin/utils/PurlExtensions.kt 0.00% 21 Missing ⚠️
model/src/main/kotlin/utils/PurlUtils.kt 95.00% 1 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #11319      +/-   ##
============================================
+ Coverage     57.78%   57.86%   +0.08%     
  Complexity     1711     1711              
============================================
  Files           347      347              
  Lines         12904    12987      +83     
  Branches       1238     1257      +19     
============================================
+ Hits           7456     7515      +59     
- Misses         5000     5022      +22     
- Partials        448      450       +2     
Flag Coverage Δ
funTest-external-tools 13.99% <0.00%> (-0.15%) ⬇️
test-ubuntu-24.04 42.77% <71.08%> (+0.26%) ⬆️
test-windows-2025 42.75% <71.08%> (+0.26%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sschuberth
Copy link
Member

As I was just reading this article about workspace support in package managers, something to double-check during the review is whether "Mix (Elixir) [...] umbrella projects" are handled properly.

@maennchen
Copy link
Contributor Author

@sschuberth The way Mix does this is called “Umbrella” applications. I have added a test specifically for that.

@maennchen
Copy link
Contributor Author

Rebased on latest main (detekt update fixes)

--build-context "base=docker-image://${DOCKER_IMAGE_ROOT}/ort/base:latest" \
"$@"

# Bombom (Erlang/Rebar3)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Looks like there is a blank line between footer lines in the commit message, which should not be.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar in other commits.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the line, but now the commit linter is complaining.


ENV MIX_SBOM_HOME=/opt/mix_sbom

# Download cosign binary, verify mix_sbom binary signature, then clean up
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just wondering: If we had gh available, would there be a way to simplify this via gh release download / gh release verify(-asset) commands?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that would take slightly less options in the command.
If you’d like, I can do a follow up PR and also change that for gleam.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, let's keep that in mind for a follow-up PR, this one has already grown big enough. Esp. if there are also other places in the Dockerfile that would benefit from this simplification.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll have a look as a follow up 👍

maennchen and others added 2 commits February 10, 2026 17:55
Install mix_sbom binary with sigstore signature verification using cosign.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
Install rebar3_sbom binary using the bombom wrapper with
sigstore signature verification using cosign,

Co-authored-by: Jonatan Männchen<jonatan@maennchen.ch>
Signed-off-by: GwendalLaurent <gwendal.laurent@stritzinger.com>
IciaCarroBarallobre and others added 7 commits February 10, 2026 18:01
Add a new utils/cyclonedx module that provides reusable functionality
for analyzing CycloneDX SBOMs. This enables multiple package managers
to analyze CycloneDX SBOMs by extending the shared
CycloneDxPackageManager class.

The new module includes:
- CycloneDxPackageManager abstract base class for SBOM analysis
- CycloneDxSbom for parsing CycloneDX JSON files
- CycloneDxDependencyHandler for dependency translation
- CycloneDxDependency for dependency representation
- Comprehensive test coverage for CycloneDX utilities

Relates to oss-review-toolkit#9878.

Co-authored-by: Barbara Chassoul <barbara.chassoul@stritzinger.com>
Co-authored-by: Jonatan Männchen<jonatan@maennchen.ch>
Signed-off-by: IciaC <iciacarrobarallobre@gmail.com>
Signed-off-by: Barbara Chassoul <barbara.chassoul@stritzinger.com>
Signed-off-by: Barbara Chassoul <barbara.chassoul@stritzinger.com>
Add support for analyzing Elixir projects using mix_sbom for CycloneDX
SBOM generation. Supports single projects and umbrella workspaces with
proper handling of Hex packages.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
Add support for analyzing Erlang projects using bombom for CycloneDX
SBOM generation. Supports single projects with proper handling of
Hex packages.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
Add Mix and Rebar3 to the list of known package managers in the
analyzer configuration and JSON schema.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
Add Mix & Rebar3 to the analyzer documentation listing supported
package managers.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
/**
* Get the type as a [PurlType] enum, or null if the type is unknown.
*/
fun getPurlType(): PurlType? = runCatching { PurlType.fromString(type.lowercase()) }.getOrNull()

Check warning

Code scanning / QDJVM

Unused symbol Warning

Function "getPurlType" is never used
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants