feat: add Open Plugins v1.0.0 plugin manifest and command files - #4
Conversation
Add .plugin/plugin.json and commands/*.md so that CherryPi and other conformant agent tools can discover and install gor as an Open Plugins plugin. Each command file teaches the AI agent how to invoke gor for a specific domain (PRs, issues, repos, CI, releases, search, etc.). - .plugin/plugin.json — Plugin manifest (name, version, metadata) - commands/auth.md — Authentication (login, logout, status, token) - commands/repo.md — Repository management (CRUD, fork, clone, sync) - commands/pr.md — Pull requests (list, view, create, merge, review) - commands/issue.md — Issues (CRUD, lock, pin, transfer) - commands/release.md — Releases (CRUD, upload, download) - commands/search.md — Search (repos, issues, PRs, code, commits) - commands/ci.md — Actions workflows, runs, and caches - commands/codespace.md — Codespaces (list, create, stop, delete, SSH) - commands/gist.md — Gists (CRUD, clone) - commands/secrets.md — Secrets, variables, SSH keys, GPG keys - commands/label.md — Labels (CRUD, clone) - commands/other.md — Browse, API, config, orgs, projects, etc. AGENTS.md: document plugin structure and installation instructions.
|
Warning Review limit reached
Next review available in: 47 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (12)
📝 WalkthroughWalkthroughAdds an Open Plugins manifest and integration guidance, then introduces command documentation covering authentication, CI, Codespaces, secrets, repositories, collaboration workflows, search, and additional gor operations. ChangesOpen Plugins command documentation
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.plugin/plugin.json:
- Line 3: The published plugin version is inconsistent between the manifest and
documentation. Update .plugin/plugin.json and AGENTS.md lines 318-320 to use the
same version, preferably changing the manifest from 0.1.0 to 1.0.0 and aligning
the guide with it, or consistently update both to the chosen release contract.
In `@AGENTS.md`:
- Line 324: Update the tree code fence in AGENTS.md to declare the text
language, using ```text instead of an unannotated fence while preserving the
existing listing.
In `@commands/auth.md`:
- Around line 1-2: Update the auth command documentation to include an example
and brief usage description for the existing `gor auth setup-git` command,
alongside the login, logout, status, and token-management commands. Keep the
documentation aligned with the `AuthCommand::SetupGit` CLI route without
changing implementation behavior.
- Around line 40-46: Remove the raw-token disclosure example and its “for
debugging” description from the View token section. If token inspection must
remain documented, replace it with an explicit non-echoing workflow and a strong
warning against exposing credentials in terminal history, logs, or agent output.
In `@commands/gist.md`:
- Line 2: Synchronize the gist guide with the implemented commands and options:
in the gist documentation, replace the unsupported --description option with
--desc, and remove or rewrite the --remove example and clone section because the
CLI only supports list, create, view, edit, and delete as defined by the gist
command implementation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: b8fcdbb2-d161-4839-ad6b-c65168059931
📒 Files selected for processing (14)
.plugin/plugin.jsonAGENTS.mdcommands/auth.mdcommands/ci.mdcommands/codespace.mdcommands/gist.mdcommands/issue.mdcommands/label.mdcommands/other.mdcommands/pr.mdcommands/release.mdcommands/repo.mdcommands/search.mdcommands/secrets.md
| @@ -0,0 +1,12 @@ | |||
| { | |||
| "name": "gor", | |||
| "version": "0.1.0", | |||
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Keep the published plugin version consistent across metadata and documentation.
.plugin/plugin.json#L3: change the version to1.0.0or update the stated release contract.AGENTS.md#L318-L320: make the guide match the chosen manifest version.
📍 Affects 2 files
.plugin/plugin.json#L3-L3(this comment)AGENTS.md#L318-L320
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.plugin/plugin.json at line 3, The published plugin version is inconsistent
between the manifest and documentation. Update .plugin/plugin.json and AGENTS.md
lines 318-320 to use the same version, preferably changing the manifest from
0.1.0 to 1.0.0 and aligning the guide with it, or consistently update both to
the chosen release contract.
There was a problem hiding this comment.
Pull request overview
This PR adds an Open Plugins v1.0.0 plugin manifest plus a set of commands/*.md “agent command” documentation files so compatible agent tools can discover and use gor as an installable plugin, and documents the structure in AGENTS.md.
Changes:
- Add
.plugin/plugin.jsonOpen Plugins manifest for thegorplugin. - Add 12
commands/*.mdfiles with usage-oriented examples for each command domain. - Document plugin structure + installation guidance in
AGENTS.md.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 15 comments.
Show a summary per file
| File | Description |
|---|---|
.plugin/plugin.json |
Adds the Open Plugins manifest and metadata for plugin discovery. |
AGENTS.md |
Documents the Open Plugins layout and installation steps. |
commands/auth.md |
Agent-facing usage examples for authentication commands. |
commands/repo.md |
Agent-facing usage examples for repository commands. |
commands/pr.md |
Agent-facing usage examples for pull request commands. |
commands/issue.md |
Agent-facing usage examples for issue commands. |
commands/release.md |
Agent-facing usage examples for release commands. |
commands/search.md |
Agent-facing usage examples for search commands. |
commands/ci.md |
Agent-facing usage examples for workflow/run/cache commands. |
commands/codespace.md |
Agent-facing usage examples for Codespaces commands. |
commands/gist.md |
Agent-facing usage examples for gist commands. |
commands/label.md |
Agent-facing usage examples for label commands. |
commands/secrets.md |
Agent-facing usage examples for secrets/variables and key management. |
commands/other.md |
Agent-facing usage examples for additional command groups (api/config/projects/etc.). |
Comments suppressed due to low confidence (18)
commands/codespace.md:19
gor codespace ssh/stopuse the codespace name as a positional argument; there is no--codespaceflag.
gor codespace ssh
gor codespace ssh --codespace my-codespace-name
gor codespace stop --codespace my-codespace-name
commands/codespace.md:22
gor codespace deleterequires a positional codespace name and has no--allflag; use--yesto skip the prompt.
gor codespace delete --codespace my-codespace-name
gor codespace delete --all
commands/repo.md:27
gor repo createdoes not have a--publicflag; public is the default (use--privatefor private repos).
gor repo create my-new-repo --description "A great project" --public
commands/repo.md:42
gor repo cloneuses--directory(not--target) for the destination directory.
gor repo clone owner/repo
gor repo clone owner/repo --target ./my-dir
**commands/repo.md:51**
* `gor repo edit` requires `-R/--repo` (it doesn’t take `owner/repo` positionally), and `repo archive`/`repo rename` are not present in the current CLI.
gor repo edit owner/repo --description "New description"
gor repo archive owner/repo
gor repo rename owner/repo new-name
gor repo delete owner/repo
gor repo sync
**commands/ci.md:24**
* `gor run list` does not support `--status`; only `--workflow`, `--branch`, and `-R/--repo` filters are available.
gor run list -R owner/repo --status failure --branch main
**commands/ci.md:28**
* `gor run rerun` uses `--failed-jobs` (not `--failed`).
gor run rerun 1234567890 -R owner/repo --failed
**commands/ci.md:37**
* `gor cache delete` takes the cache key as a positional argument (exact match) or supports `--key-prefix`; it does not accept `--key`.
gor cache delete --key "node-modules-" -R owner/repo
**commands/release.md:34**
* `gor release upload` uses `--name` to override the asset name; there is no `--label` flag.
gor release upload v1.0.0 -R owner/repo ./binary.tar.gz --label "Linux binary"
**commands/gist.md:20**
* `gor gist edit` does not have a `--remove` option; the edit surface currently supports `--desc`, `--add`, and `--filename` (rename).
gor gist edit GIST_ID --remove old_file.rs
**commands/gist.md:25**
* There is no `gor gist clone` subcommand in the current CLI, so these examples will fail.
gor gist clone GIST_ID
gor gist clone GIST_ID --target ./my-gist
**commands/label.md:17**
* `gor label clone` takes the source repository positionally, and the target repository is specified via `-R/--repo`; there is no `--target` flag.
gor label clone -R source/repo --target target/repo
**commands/secrets.md:22**
* `gor variable` examples use `-R owner/repo`, but the CLI does not accept `-R` for variables. Also, `variable set` requires a value via `--body` or `--file`.
gor variable list -R owner/repo
gor variable set MY_VAR -R owner/repo
gor variable delete MY_VAR -R owner/repo
**commands/secrets.md:38**
* `gor gpg-key add` takes the armored key via `--file` or `--body` (it doesn’t take a positional path).
gor gpg-key list
gor gpg-key add ~/.gnupg/pubkey.asc
gor gpg-key delete KEY_ID
**commands/issue.md:53**
* `gor issue transfer` takes the destination repository as a positional argument, and there is no `gor issue delete` subcommand in the current CLI.
gor issue transfer 123 -R owner/repo --target-repo target-owner/target-repo
gor issue delete 123 -R owner/repo
**commands/search.md:27**
* `gor search code` uses `--language` (not `--lang`) and doesn’t support `--path`/`-R`; use `--repo` and/or GitHub search qualifiers in the query string.
gor search code "fn main" --lang rust
gor search code "TODO" -R owner/repo --path src/
**commands/search.md:33**
* `gor search commits` uses `--repo` to scope the search; it does not accept `-R`.
gor search commits "fix clippy" -R owner/repo
**commands/search.md:42**
* `gor search prs` isn’t a valid subcommand, and `search code` uses `--language` (not `--lang`). Update the qualifier examples to match the implemented CLI surface.
gor search issues "label:bug is:open"
gor search prs "author:username"
gor search issues "created:>2024-01-01"
gor search code "class Repository" --lang python
</details>
---
💡 <a href="/kerryhatcher/gor/new/main?filename=.github/instructions/*.instructions.md" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Add Copilot custom instructions</a> for smarter, more guided reviews. <a href="https://docs.github.com/en/copilot/customizing-copilot/adding-repository-custom-instructions-for-github-copilot" class="Link--inTextBlock" target="_blank" rel="noopener noreferrer">Learn how to get started</a>.
| gor codespace create -R owner/repo | ||
| gor codespace create -R owner/repo --branch feature-branch |
| # API — arbitrary REST calls | ||
| gor api /repos/owner/repo | ||
| gor api /repos/owner/repo/issues --method POST --field title="Bug" | ||
| gor api graphql -f query="query { viewer { login } }" |
| # Config | ||
| gor config list | ||
| gor config set --host github.com git_protocol ssh | ||
|
|
| # Projects (GitHub Projects v2) | ||
| gor project list -R owner/repo | ||
| gor project view PROJECT_NUMBER -R owner/repo | ||
| gor project item-add PROJECT_NUMBER -R owner/repo --title "Task" |
| # Classroom | ||
| gor classroom list | ||
| gor classroom view ASSIGNMENT_ID |
| gor label list -R owner/repo --json name,color,description | ||
|
|
||
| gor label create bug -R owner/repo --color d73a4a --description "Bug report" | ||
| gor label edit bug -R owner/repo --name bug --color d73a4a |
| gor secret list -R owner/repo | ||
| gor secret set MY_SECRET -R owner/repo | ||
| gor secret delete MY_SECRET -R owner/repo |
| gor ssh-key list | ||
| gor ssh-key add ~/.ssh/id_ed25519.pub --title "My laptop" | ||
| gor ssh-key delete KEY_ID |
| gor repo list | ||
| gor repo list --org my-org | ||
| gor repo list --type fork --sort updated |
| gor search issues "bug in login" -R owner/repo | ||
| gor search prs "state:open label:enhancement" -R owner/repo |
- .plugin/plugin.json: bump version to 1.0.0 - AGENTS.md: annotate code fence with text language tag - commands/auth.md: add setup-git subcommand docs, add --secure token flag, add token disclosure warning - commands/gist.md: fix --desc flag (was --description), remove nonexistent --remove and clone subcommands
Align all commands/*.md examples with the actual CLI surface on main: - commands/codespace.md: ssh/stop/delete use positional name arg, not --codespace; delete has --yes not --all - commands/repo.md: create uses --private (not --public); clone uses --directory (not --target); edit uses -R/--repo not positional; remove nonexistent archive/rename subcommands - commands/ci.md: run list has no --status; run rerun uses --failed-jobs not --failed; cache delete uses --key (exact match) or --all - commands/release.md: upload uses --name not --label - commands/label.md: clone takes positional source + -R/--repo target - commands/secrets.md: secret/variable are org/env-scoped (no -R); gpg-key add uses --file not positional path - commands/issue.md: transfer takes positional destination repo; remove nonexistent issue delete - commands/search.md: code uses --language (not --lang); no --path/-R; no search prs subcommand; commits uses --repo not -R
Summary
Adds an Open Plugins v1.0.0 plugin manifest and command files so that conformant agent tools like CherryPi can discover and install
goras a plugin.Changes
.plugin/plugin.json— Plugin manifest with name, version, metadatacommands/*.md— 12 command files teaching AI agents how to invokegorfor each domain:auth— Login, logout, status, tokenrepo— View, list, create, fork, clone, edit, deletepr— List, view, create, merge, review, checkout, commentissue— CRUD, lock, pin, transferrelease— CRUD, upload, download assetssearch— Repos, issues, PRs, code, commitsci— Workflows, runs, cachescodespace— List, create, stop, delete, SSHgist— CRUD, clonesecrets— Secrets, variables, SSH keys, GPG keyslabel— CRUD, cloneother— Browse, API, config, orgs, projects, rulesets, etc.AGENTS.md— Documented the plugin structure and installation instructionsHow it works
AI agent tools discover the plugin by scanning the
.plugin/plugin.jsonmanifest. Each.mdfile incommands/is loaded as a namespaced command available at/gor:<name>(e.g./gor:pr). The markdown files contain practical usage examples with--jsonflags so agents can consume structured output.Installation
No changes to
gorsource code are needed — these are purely configuration files.Summary by CodeRabbit
New Features
gorto be distributed and discovered as a plugin.Documentation