Skip to content

feat(connector-github): GitHub connector on @gemstack/connectors#93

Merged
suleimansh merged 1 commit into
mainfrom
feat/connector-github
Jun 30, 2026
Merged

feat(connector-github): GitHub connector on @gemstack/connectors#93
suleimansh merged 1 commit into
mainfrom
feat/connector-github

Conversation

@suleimansh

Copy link
Copy Markdown
Member

Closes #88. The first real connector on the kit (epic #86), built right after the kit (#87 / #91) landed.

@gemstack/connector-github reads and acts on GitHub issues, pull requests, and repo files over the GitHub REST API (global fetch, no SDK dependency).

Tools

Tool Kind
get-repo, list-issues, get-issue, list-pull-requests, get-pull-request, get-file, search-issues read (annotated readOnly)
comment-on-issue, create-issue write

Responses are slimmed to the fields an agent needs (no raw API envelopes) to keep token usage down.

Auth

Declares auth: { type: 'pat', env: 'GITHUB_TOKEN' } and consumes a bearer token from ctx.auth.token — a PAT or an OAuth bearer, both sent as Authorization: Bearer. The connector does no OAuth handshake itself; the orchestrator supplies the token via the mount credentials seam (and can protect a web endpoint with @gemstack/mcp's oauth2McpMiddleware).

Verify

pnpm --filter @gemstack/connector-github test — 7 tests over a mocked fetch: PR filtering, base64 file decode, POST bodies for comment/create, and the missing-token + non-2xx error paths.

Next: @gemstack/connector-google-drive (#89) on the same contract.

First real connector (epic #86, #88). Read and act on GitHub issues,
PRs, and repo files over the REST API via global fetch (no SDK dep).

Tools: get-repo, list-issues, get-issue, list-pull-requests,
get-pull-request, get-file, search-issues, comment-on-issue,
create-issue. Reads annotated readOnly; writes are not. Responses are
slimmed to the fields an agent needs.

Consumes a bearer token (PAT or OAuth) from ctx.auth.token via the mount
credentials seam; declares auth { type: pat, env: GITHUB_TOKEN }.

7 tests over a mocked fetch (filtering, base64 decode, POST bodies,
missing-token + non-2xx errors).
@suleimansh suleimansh added enhancement New feature or request priority: high Should be addressed soon labels Jun 30, 2026
@suleimansh suleimansh self-assigned this Jun 30, 2026
@suleimansh suleimansh merged commit f360932 into main Jun 30, 2026
1 check passed
@suleimansh suleimansh deleted the feat/connector-github branch June 30, 2026 20:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request priority: high Should be addressed soon

Projects

None yet

Development

Successfully merging this pull request may close these issues.

connectors: @gemstack/connector-github — first real connector

1 participant