"Support object-based `source` (e.g. `git-subdir`) in marketplace.json plugin entries
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 2.1k
- Forks
- 157
- PR merge metrics
- No merged PRs in 30d
Description
Feature summary
Support git-subdir-style object sources in marketplace.json plugins[].source
What problem are you trying to solve?
When adding a Git-based plugin marketplace, the desktop app's marketplace.json validator only accepts a plain string for plugins[].source (e.g. "./plugins/foo"). A marketplace whose plugin lives in a subdirectory of a different repo — with a pinned ref/sha and tag pattern — needs a source object (e.g. {"source": "git-subdir", "url": "...", "path": "...", "ref": "...", "sha": "...", "tag_pattern": "..."}) instead of a bare path. Adding such a marketplace fails outright with Invalid marketplace.json: plugins.0.source: Invalid input, with no indication of what's wrong or how to work around it.
Proposed solution
Accept an object form for source (in addition to the existing string form) that supports at minimum: source: "git-subdir", url, path, ref/sha, similar to what's used by other plugin-manager ecosystems (e.g. Claude's marketplace format).
Workflow impact
Any team maintaining a marketplace that vendors plugins from a separate source repo (rather than committing plugin code directly into the marketplace repo) can't add that marketplace to Copilot desktop at all today. Affects internal/enterprise marketplace authors who want to reuse plugin code across multiple marketplace listings without duplicating it.
Installation context
No response
Additional context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the desktop app's marketplace.json validator and trace how plugins[].source is parsed and used during marketplace installation. Verify the existing string form remains valid, add support for the described git-subdir object fields, and confirm that a marketplace using the example object no longer fails validation.
Written by the indexing model from the issue text.
Assessment
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100