Skip to content

feat: Exhort dependency triage for SPDX multi-component uploads#228

Draft
batzionb wants to merge 3 commits into
RHEcosystemAppEng:mainfrom
batzionb:withexhort
Draft

feat: Exhort dependency triage for SPDX multi-component uploads#228
batzionb wants to merge 3 commits into
RHEcosystemAppEng:mainfrom
batzionb:withexhort

Conversation

@batzionb
Copy link
Copy Markdown
Collaborator

Summary

This pull request implements Trustify Dependency Analytics (Exhort) for SPDX whole-product processing: per-component CycloneDX analysis, CVE-in-tree gating, a whole-product health probe that sets dependencyTriageUnavailable when Exhort is unreachable, excludedComponents outcomes (error vs dependency_not_present), and componentDependencyTriageFailed on persisted reports when Exhort fails while triage is active—aligned with OpenSpec:

Notable changes

  • Backend: ExhortService REST client, ExhortHealthProbe (POST /api/v5/analysis minimal CycloneDX), ExhortResponseParser, ComponentProcessingService pipeline updates, product/report models and persistence (excluded_components, dependency_triage_unavailable, componentDependencyTriageFailed), WireMock mappings and REST tests (including Exhort-down profile).
  • Frontend: reports and repository tables, finding display (getProductFinding / exclusions), report page alert for product-level triage unavailable, OpenAPI and generated client updates.
  • Dev / CI: Exhort scripts, test fixtures, and related pipeline assets present on this branch.

Commits

  1. exhort — main integration (HEAD subject on the feature commit).
  2. fix: harden Exhort client and component processing — rethrow ExhortCveGateException without double-wrapping; credential injection log message; minor formatting.

Testing

  • ./mvnw test (REST tests with WireMock / profiles as configured in the repo).
  • Manual: quarkus dev with devservices products/reports and optional WireMock for Exhort.

@batzionb batzionb marked this pull request as draft May 12, 2026 19:09
Rethrow ExhortCveGateException without wrapping; guard credential injection log;
trim ExhortCveGateException formatting; ensure Product record ends with newline.

Co-authored-by: Cursor <cursoragent@cursor.com>
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.

1 participant