feat: add Cloudsmith listPackages and promotePackages components#5658
feat: add Cloudsmith listPackages and promotePackages components#5658felixgateru wants to merge 11 commits into
Conversation
|
👋 Commands for maintainers:
|
PR Risk ReviewRisk: 25/100 (low) SummaryWell-structured addition of two new Cloudsmith integration components (listPackages and promotePackage) with comprehensive tests, documentation, and frontend mappers following existing patterns. Concerns
|
e7dbf5b to
76620e7
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 76620e7. Configure here.
- ListPackages: lists packages in a repository with optional filtering by sync status (fully synchronised / awaiting / failed), quarantine status, and vulnerability scan result; emits cloudsmith.packages.listed - PromotePackage: copies or moves a package to another repository within the same namespace; emits cloudsmith.package.promoted - Extends Client with ListPackagesWithFilters, CopyPackage, MovePackage - Frontend mappers, spec tests, event-state registry entries and icon wiring - Integration instructions updated: Admin privilege required on both source and destination repos for PromotePackage - Component docs regenerated Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
- Payload now emits a single object with a packages[] array instead of one payload per package; each entry carries only description, display_name, format, is_quarantined, license, policy_violated, repository, slug_perm, stage_str, status_str and tags - Details panel shows Packages Found, Quarantined count, and Vulnerable (policy_violated) count instead of per-package Format/Status/Security Scan/Repository URL which only reflected the first package - Added TrimmedPackageData and ListPackagesData types in types.ts - Updated example payload and regenerated component docs Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
…vulnerable count - security_scan_status added to TrimmedPackage and TrimmedPackageData so the scan result is available per package in the output - Vulnerable count now checks security_scan_status == "Scan Detected Vulnerabilities" instead of policy_violated, which was incorrect Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
…e metadata - Custom EventStateRegistry reads execution.configuration.mode to return "copied" or "moved" state so the badge shows COPIED or MOVED instead of a generic PROMOTED - buildMetadata now includes destination repository (arrow-right icon) and the action being performed — Copy or Move (copy icon) — alongside the existing source repository and package entries Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
…spec Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
…uests Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
…slug Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
Signed-off-by: Felix Gateru <felix.gateru@gmail.com>
7269017 to
b75d9f8
Compare
|
Risk: 35/100 (low) SummaryAdds two new Cloudsmith integration components — ListPackages (with optional sync/quarantine/vulnerability filtering) and PromotePackage (copy or move a package between same-namespace repositories) — including backend Go implementations, frontend TypeScript mappers, tests, and documentation. Concerns
Recommended reviewers: bender-rodriguez-unit1 |

What changed
Extended the Cloudsmith integration with two new action components: ListPackages and PromotePackage.
Why
ListPackages — to give pipelines visibility into the state of packages in a repository.
PromotePackage — to automate the copy or move of a package from one repository to another within the same namespace (e.g. staging → production).
How
Backend
Extended pkg/integrations/cloudsmith/ with:
Frontend
Added web_src/src/pages/app/mappers/cloudsmith/: