Skip to content

feat: add Open Plugins v1.0.0 plugin manifest and command files - #4

Merged
kerryhatcher merged 3 commits into
mainfrom
feat/open-plugins
Jul 26, 2026
Merged

feat: add Open Plugins v1.0.0 plugin manifest and command files#4
kerryhatcher merged 3 commits into
mainfrom
feat/open-plugins

Conversation

@kerryhatcher

@kerryhatcher kerryhatcher commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Summary

Adds an Open Plugins v1.0.0 plugin manifest and command files so that conformant agent tools like CherryPi can discover and install gor as a plugin.

Changes

  • .plugin/plugin.json — Plugin manifest with name, version, metadata
  • commands/*.md — 12 command files teaching AI agents how to invoke gor for each domain:
    • auth — Login, logout, status, token
    • repo — View, list, create, fork, clone, edit, delete
    • pr — List, view, create, merge, review, checkout, comment
    • issue — CRUD, lock, pin, transfer
    • release — CRUD, upload, download assets
    • search — Repos, issues, PRs, code, commits
    • ci — Workflows, runs, caches
    • codespace — List, create, stop, delete, SSH
    • gist — CRUD, clone
    • secrets — Secrets, variables, SSH keys, GPG keys
    • label — CRUD, clone
    • other — Browse, API, config, orgs, projects, rulesets, etc.
  • AGENTS.md — Documented the plugin structure and installation instructions

How it works

AI agent tools discover the plugin by scanning the .plugin/plugin.json manifest. Each .md file in commands/ is loaded as a namespaced command available at /gor:<name> (e.g. /gor:pr). The markdown files contain practical usage examples with --json flags so agents can consume structured output.

Installation

# Users link the repo into their agent plugin directory:
ln -s /path/to/gor ~/.local/share/cherrypi/plugins/gor

No changes to gor source code are needed — these are purely configuration files.

Summary by CodeRabbit

  • New Features

    • Added Open Plugins metadata, enabling gor to be distributed and discovered as a plugin.
    • Added comprehensive command documentation for authentication, repositories, pull requests, issues, releases, gists, Codespaces, Actions, labels, search, secrets, and more.
  • Documentation

    • Documented plugin installation, discovery, directory structure, and maintenance guidelines.
    • Added examples covering common CLI workflows, JSON output, GitHub Enterprise usage, and advanced operations.

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.
Copilot AI review requested due to automatic review settings July 26, 2026 17:58
@coderabbitai

coderabbitai Bot commented Jul 26, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@kerryhatcher, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 47 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1d61f35c-3e3b-49fa-bfe7-d0f837176551

📥 Commits

Reviewing files that changed from the base of the PR and between 51caacc and 1204a61.

📒 Files selected for processing (12)
  • .plugin/plugin.json
  • AGENTS.md
  • commands/auth.md
  • commands/ci.md
  • commands/codespace.md
  • commands/gist.md
  • commands/issue.md
  • commands/label.md
  • commands/release.md
  • commands/repo.md
  • commands/search.md
  • commands/secrets.md
📝 Walkthrough

Walkthrough

Adds an Open Plugins manifest and integration guidance, then introduces command documentation covering authentication, CI, Codespaces, secrets, repositories, collaboration workflows, search, and additional gor operations.

Changes

Open Plugins command documentation

Layer / File(s) Summary
Plugin manifest and integration guidance
.plugin/plugin.json, AGENTS.md
Adds plugin metadata and documents the expected plugin structure, discovery/install behavior, and command documentation alignment.
Authentication and automation command guides
commands/auth.md, commands/ci.md, commands/codespace.md, commands/secrets.md
Documents authentication, GitHub Actions, Codespaces, secrets, variables, SSH keys, and GPG keys.
Repository and collaboration command guides
commands/gist.md, commands/issue.md, commands/label.md, commands/pr.md, commands/release.md, commands/repo.md
Documents gist, issue, label, pull request, release, and repository workflows.
Search and additional command guides
commands/search.md, commands/other.md
Documents search domains and qualifiers plus additional API, configuration, organization, project, ruleset, extension, attestation, Copilot, and Classroom commands.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: copilot

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding an Open Plugins v1.0.0 manifest and command files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/open-plugins

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 9a01ee7 and 51caacc.

📒 Files selected for processing (14)
  • .plugin/plugin.json
  • AGENTS.md
  • commands/auth.md
  • commands/ci.md
  • commands/codespace.md
  • commands/gist.md
  • commands/issue.md
  • commands/label.md
  • commands/other.md
  • commands/pr.md
  • commands/release.md
  • commands/repo.md
  • commands/search.md
  • commands/secrets.md

Comment thread .plugin/plugin.json Outdated
@@ -0,0 +1,12 @@
{
"name": "gor",
"version": "0.1.0",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Keep the published plugin version consistent across metadata and documentation.

  • .plugin/plugin.json#L3: change the version to 1.0.0 or 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.

Comment thread AGENTS.md Outdated
Comment thread commands/auth.md Outdated
Comment thread commands/auth.md
Comment thread commands/gist.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.json Open Plugins manifest for the gor plugin.
  • Add 12 commands/*.md files 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/stop use the codespace name as a positional argument; there is no --codespace flag.
gor codespace ssh
gor codespace ssh --codespace my-codespace-name

gor codespace stop --codespace my-codespace-name

commands/codespace.md:22

  • gor codespace delete requires a positional codespace name and has no --all flag; use --yes to skip the prompt.
gor codespace delete --codespace my-codespace-name
gor codespace delete --all

commands/repo.md:27

  • gor repo create does not have a --public flag; public is the default (use --private for private repos).
gor repo create my-new-repo --description "A great project" --public

commands/repo.md:42

  • gor repo clone uses --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>.

Comment thread commands/codespace.md Outdated
Comment on lines +13 to +14
gor codespace create -R owner/repo
gor codespace create -R owner/repo --branch feature-branch
Comment thread commands/other.md
Comment on lines +14 to +17
# 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 } }"
Comment thread commands/other.md
Comment on lines +19 to +22
# Config
gor config list
gor config set --host github.com git_protocol ssh

Comment thread commands/other.md
Comment on lines +27 to +30
# 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"
Comment thread commands/other.md
Comment on lines +47 to +49
# Classroom
gor classroom list
gor classroom view ASSIGNMENT_ID
Comment thread commands/label.md
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
Comment thread commands/secrets.md Outdated
Comment on lines +12 to +14
gor secret list -R owner/repo
gor secret set MY_SECRET -R owner/repo
gor secret delete MY_SECRET -R owner/repo
Comment thread commands/secrets.md
Comment on lines +28 to +30
gor ssh-key list
gor ssh-key add ~/.ssh/id_ed25519.pub --title "My laptop"
gor ssh-key delete KEY_ID
Comment thread commands/repo.md
Comment on lines +19 to +21
gor repo list
gor repo list --org my-org
gor repo list --type fork --sort updated
Comment thread commands/search.md Outdated
Comment on lines +19 to +20
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
@kerryhatcher
kerryhatcher merged commit 8261371 into main Jul 26, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants