-
Notifications
You must be signed in to change notification settings - Fork 155
marketplace doctor: warn when package dependencies bypass marketplace #847
Copy link
Copy link
Open
Labels
area/docs-sitedocs/src/content (Starlight), README, doc generation.docs/src/content (Starlight), README, doc generation.area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.status/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/securitySecure by default. Content scanning, lockfile integrity, MCP trust boundaries.Secure by default. Content scanning, lockfile integrity, MCP trust boundaries.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Metadata
Metadata
Assignees
Labels
area/docs-sitedocs/src/content (Starlight), README, doc generation.docs/src/content (Starlight), README, doc generation.area/marketplacemarketplace.json schema, federation, authoring suite, source parity.marketplace.json schema, federation, authoring suite, source parity.status/acceptedDirection approved, safe to start work.Direction approved, safe to start work.status/triagedInitial agentic triage complete; pending maintainer ratification (silence = approval).Initial agentic triage complete; pending maintainer ratification (silence = approval).theme/securitySecure by default. Content scanning, lockfile integrity, MCP trust boundaries.Secure by default. Content scanning, lockfile integrity, MCP trust boundaries.type/featureNew capability, new flag, new primitive.New capability, new flag, new primitive.
Type
Projects
Status
In Progress
Problem
When a marketplace author lists packages that have
dependencies.apmentries using direct repo paths (e.g.owner/repo/path/to/pkg), those dependencies are resolved at consumer install time via direct git clone -- completely bypassing the marketplace catalogue.This creates a supply-chain consistency gap:
Example
The consumer gets
code-qualityat the pinned SHA, butconventionsandstandardsat whatever HEAD happens to be -- defeating the purpose of marketplace version control.Proposed solution
apm marketplace doctorshould add a check: for each package inmarketplace.yml, fetch itsapm.ymland inspectdependencies.apm. Warn when dependencies use direct repo paths instead ofname@marketplaceformat.Documentation should guide marketplace authors to use marketplace refs in their package dependencies:
Context
Discovered during manual testing of the marketplace maintainer UX (PR #790). The
DependencyReference.parse()path for direct repo paths creates a virtual subdirectory package that resolves via git clone, while theparse_marketplace_ref()path forname@marketplaceformat resolves through the catalogue with proper version pinning.Related to #722.