• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

opendefensecloud / solution-arsenal / 38716292664
79%

Build:
DEFAULT BRANCH: main
Ran 15 Oct 2026 10:15AM UTC
Jobs 1
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Oct 2026 09:53AM UTC coverage: 79.423% (+0.2%) from 79.177%
38716292664

push

github

web-flow
feat(api)!: remove Component API type (#859)

## What
Removes the `Component` API type and moves its data onto
`ComponentVersion`, which can now be filtered by component name and tag
with field selectors.
Closes #790

## Why
Component was not used beyond holding source info that belongs to each
version, and keeping it in sync took a dedicated GC controller with
finalizers. Filtering versions by component name or tag now happens in
the apiserver, so clients no longer list everything and filter locally.

## Testing
- Unit and envtest: `make test`
- New envtest cases for field selectors on ComponentVersion and
ReleaseBinding
- Web: vitest, `tsc` build
- e2e: `make test-e2e` (28/28), `make ui-test-e2e` (33/33), `make
chaining-test-e2e` (passed)
- Manual check of the Components, versions and release detail pages
against seeded demo data

## Notes for reviewers
- **API change:** `ComponentVersion.spec.componentRef` is replaced by
`componentName`, `scheme`, `registry` and `repository`. The `components`
resource is gone.
- **New field selectors:** `spec.componentName` and `spec.tag` on
ComponentVersion, `spec.releaseRef.name` on ReleaseBinding.
- **RBAC:** `components` and `components/finalizers` rules removed from
the controller, discovery and chaining roles.
- **Controllers:** `ComponentReconciler` and the
`solar.opendefense.cloud/component-ref` finalizer are removed.
- **Dedup key:** `effectiveUniqueName` falls back to the sanitized
`componentName`. For discovered versions this equals the old Component
name, so existing keys do not change.
- **UI:** the BFF passes `fieldSelector` through to the apiserver. The
Components page groups versions by namespace and component name.
- **Upgrade path:** existing ComponentVersions do not get the new fields
on their own, because discovery skips create events for versions that
already exist. After upgrading, delete the stored ComponentVersions so
discovery recreates them. Leftover Component objects stay in etcd but
are ... (continued)

72 of 72 new or added lines in 10 files covered. (100.0%)

3 existing lines in 2 files now uncovered.

5180 of 6522 relevant lines covered (79.42%)

31.76 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
86.64
-0.43% pkg/controller/rendertask_controller.go
1
88.66
-1.03% pkg/discovery/runner.go
Jobs
ID Job ID Ran Files Coverage
1 38716292664.1 15 Oct 2026 10:15AM UTC 95
79.42
GitHub Action Run
Source Files on build 38716292664
  • Tree
  • List 95
  • Changed 20
  • Source Changed 17
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38716292664
  • f6586c25 on github
  • Prev Build on main (#38539357058)
  • Next Build on main (#38726163838)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc