Skip to content

Erlang & Elixir Package Manager Plugins#11319

Open
maennchen wants to merge 9 commits intooss-review-toolkit:mainfrom
erlef:sosef/m7
Open

Erlang & Elixir Package Manager Plugins#11319
maennchen wants to merge 9 commits intooss-review-toolkit:mainfrom
erlef:sosef/m7

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
* Get the type as a [PurlType] enum, or null if the type is unknown.
*/
@Suppress("SwallowedException")
fun getPurlType(): PurlType? =

Check warning

Code scanning / QDJVM

Unused symbol Warning

Function "getPurlType" 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 68.60465% with 27 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.85%. Comparing base (222c28c) to head (f7cdd50).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
model/src/main/kotlin/utils/PurlExtensions.kt 0.00% 21 Missing ⚠️
model/src/main/kotlin/utils/PurlUtils.kt 90.47% 4 Missing and 2 partials ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #11319      +/-   ##
============================================
+ Coverage     57.77%   57.85%   +0.07%     
  Complexity     1714     1714              
============================================
  Files           346      346              
  Lines         12901    12987      +86     
  Branches       1235     1253      +18     
============================================
+ Hits           7454     7513      +59     
- Misses         5001     5026      +25     
- Partials        446      448       +2     
Flag Coverage Δ
funTest-external-tools 13.98% <0.00%> (-0.16%) ⬇️
test-ubuntu-24.04 42.75% <68.60%> (+0.24%) ⬆️

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)

Install mix_sbom binary with sigstore signature verification using cosign.

Signed-off-by: Jonatan Männchen <jonatan@maennchen.ch>
GwendalLaurent and others added 8 commits January 26, 2026 17:54
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>
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

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>
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