jasperblues/pack-github

GitHub via OpenAPI 3 — typed-response sibling of pack-github (MCP-backed). Workspace pack for embabel/assistant.

★ 0Forks 0GitHub ↗Compare

README

pack-github

GitHub via the official OpenAPI 3 spec — gives the LLM full request and response types so it doesn't have to guess pagination shape, field names, or wrapper-vs-array.

Why

Untyped GitHub tooling forces the LLM to shape-probe on every call. Common failures observed in production traces:

  • .forEach on the listIssues result (it's {issues, totalCount, pageInfo}, not a bare array)
  • i.user.login vs i.author.login field-name guessing
  • q vs query argument-name confusion

This pack reads the canonical GitHub OpenAPI 3 spec from github/rest-api-description and surfaces it via the assistant's existing OpenAPI learner. The LLM gets full typed interfaces.ts including pagination wrappers and response field names.

Namespace

Methods land under gateway.gh. E.g.:

  • gateway.gh.issues_list_for_repo({owner, repo, ...})
  • gateway.gh.users_get_by_username({username})
  • gateway.gh.search_issues({q})
  • gateway.gh.issues_create({owner, repo, title, body})

See prompts/examples.md for usage patterns.

Auth

Set GITHUB_PERSONAL_ACCESS_TOKEN in the credential store or environment. Fine-grained PATs and classic PATs both work (Bearer auth).

Tag filter

The full spec is 600+ operations. This pack filters to five high-value tags: issues, pulls, repos, users, search. Edit apis/apis.yml to add more (e.g. actions, git, code-scanning).

Contributors

johnsonr

Issues