mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-12 12:15:12 +00:00
Support external plugins in marketplace.json generation (#876)
The marketplace currently only includes plugins that live as local directories in plugins/. This makes it impossible to list plugins hosted in external GitHub repos, npm packages, or other git URLs. Add plugins/external.json as a hand-curated list of external plugin entries following the Claude Code plugin marketplace spec. The generate-marketplace script now reads this file and merges external entries as-is into the generated marketplace.json, sorted by name. Changes: - Add plugins/external.json (empty array, ready for entries) - Update eng/generate-marketplace.mjs to load, merge, and sort external plugins; warn on duplicate names; log counts - Document the external plugin workflow in CONTRIBUTING.md and AGENTS.md Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -152,6 +152,34 @@ plugins/my-plugin-id/
|
||||
- **Clear purpose**: The plugin should solve a specific problem or workflow
|
||||
- **Validate before submitting**: Run `npm run plugin:validate` to ensure your plugin is valid
|
||||
|
||||
#### Adding External Plugins
|
||||
|
||||
External plugins are plugins hosted outside this repository (e.g., in a GitHub repo, npm package, or git URL). They are listed in `plugins/external.json` and merged into the generated `marketplace.json` during build.
|
||||
|
||||
To add an external plugin, append an entry to `plugins/external.json` following the [Claude Code plugin marketplace spec](https://code.claude.com/docs/en/plugin-marketplaces#plugin-entries). Each entry requires `name`, `source`, `description`, and `version`:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "my-external-plugin",
|
||||
"source": {
|
||||
"source": "github",
|
||||
"repo": "owner/plugin-repo"
|
||||
},
|
||||
"description": "Description of the external plugin",
|
||||
"version": "1.0.0"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
Supported source types:
|
||||
- **GitHub**: `{ "source": "github", "repo": "owner/repo", "ref": "v1.0.0" }`
|
||||
- **Git URL**: `{ "source": "url", "url": "https://gitlab.com/team/plugin.git" }`
|
||||
- **npm**: `{ "source": "npm", "package": "@scope/package", "version": "1.0.0" }`
|
||||
- **pip**: `{ "source": "pip", "package": "package-name", "version": "1.0.0" }`
|
||||
|
||||
After editing `plugins/external.json`, run `npm run build` to regenerate `marketplace.json`.
|
||||
|
||||
### Adding Hooks
|
||||
|
||||
Hooks enable automated workflows triggered by specific events during GitHub Copilot coding agent sessions, such as session start, session end, user prompts, and tool usage.
|
||||
|
||||
Reference in New Issue
Block a user