nc://github-refs

v0.1.0Pinned
ThomSharktools/nodecode-github-refs: Reads a public GitHub issue or pull request, with its description and newest comments, as one tool call. - a rewrite of EloquentBrush0x/hermes-context-refs (MIT), credited to EloquentBrush0x181dc4c· 9 Nov1 commit
test2 filesreference.lisp17.9 KBwire.lisp10.2 KB

nodecode-github-refs

GitHub references: a public issue or pull request, with its description and latest comments, as one model tool. A Nodecode rewrite of EloquentBrush0x/hermes-context-refs by EloquentBrush0x.

The original turns @gh:owner/repo#123 in a Hermes message into that issue or pull request attached to the turn. There is no @-reference seam in Nodecode, so here the same block arrives as a tool call:

Tool What it does
github_reference Reads a public GitHub issue or pull request and answers it as one block: title and url, state (merged, open, draft, closed with its reason), who opened it and when, the comment count, labels, assignees and milestone, the description, and the newest comments oldest first. A pull request also gets its branches, commits and change size.

And /gh owner/repo#123 for the operator, answered the same way.

Get it

Tell the agent "add the github-refs cell", or run nodecode add nc://github-refs.

Set it up

Nothing is required. The cell reads public repositories through GitHub's REST API without a token, which is 60 requests an hour per IP address, shared by everything on that address. Say /gh owner/repo#123 to try it.

Three optional members, in /settings or in the github-refs section of config.jsonc:

{ "github-refs": { "max_chars": 6000, "max_comments": 10, "timeout_seconds": 10 } }
Member Default Notes
max_chars 6000 the longest description attached per reference (200 to 50000); longer text is cut at a word boundary
max_comments 10 how many of the newest comments arrive (0 to 50; 0 attaches none)
timeout_seconds 10 how long one reference, its follow-up requests included, may wait (1 to 30)

A member of the wrong shape refuses the start and says which one; the tool is not offered until it is right. Then (restart-cells "nodecode-github-refs").

Use it

Ask about an issue or a pull request by name: "what does octo/tools#42 say, and what did they answer?" The model calls github_reference and reads the block. A private repository, a number that does not exist, or a used-up anonymous limit all come back as a refusal naming the reason.

From eval, the same call:

(gh-ref:reference "octo/tools#42")                                  ; an issue or a pull request
(gh-ref:reference "https://github.com/octo/tools/pull/77")           ; a copied url
(gh-ref:reference "octo/tools#42" :max-comments 50 :max-chars 20000) ; more of it

(help :gh-ref) answers the same guidance the model reads; *primer* is the text, so a layer can reword it.

What it does not bring: the diff, review comments on lines, or timeline events (commits, label changes). What it does bring is text anyone who can comment on the repository wrote, so the block ends by saying it is quoted reference material, not instructions.

Add nc://github-refs

  1. 1

    Install Nodecode

    Once per machine.

    $ curl -fsSL https://nodecode.ai/install.sh | sh
  2. 2

    Add the cell

    Pinned at 181dc4c.

    $ nodecode add nc://github-refs

    Or tell the agent add the github refs cell.