github / github/app

"Support object-based `source` (e.g. `git-subdir`) in marketplace.json plugin entries

Open
#3,767 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

triage
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.