convoy: GitHub kb sources#384
Conversation
…ledge Base Sources
…ledge Base Sources
|
/build |
|
📦 PR Workspace Image Built Successfully Default (amd64): Optional arm64: |
|
📦 PR Image Built Successfully Default (amd64): Optional arm64: |
Deep review — patterns, security, bugs, performanceFull pass over the branch: read every changed file plus the surrounding connector/spawner architecture, ran the whole web test suite, Overall: this follows the per-connector architecture with real discipline (dedicated 1. 🔴 Blocker — GitHub connectors cannot be edited after creation
Suggested fix (either):
2. 🟠 Security — document that
|
| Check | Result |
|---|---|
vitest (full web suite) |
1609 tests, all green — 6 initial failures were environmental (prisma-desktop client not generated; pass after prisma:generate:all) |
tsc --noEmit |
0 errors in PR code (repo-wide pre-existing errors in test files only) |
eslint (all 39 changed files) |
Clean |
| GitHub CI | 6/6 checks passing |
| Workspace image (podman) | Builds OK with OpenCode 1.17.9; container smoke test OK (git 2.54, node 24, opencode, workspace-agent, init-workspace.sh present). No image changes needed — the GitHub MCP is type: remote, consumed over HTTP by OpenCode |
Bottom line: item 1 is the only blocker; items 3–5 are <20 lines combined. With those fixed and the description corrected, this is a clean example of how to extend the connector architecture.
Resolves ixjosemi's review on PR #384: - Preserve stored PAT in mergeConnectorConfigWithPreservedOAuth so GitHub connectors can be edited (e.g. add a pinned repo) after creation. - Persist normalized parsed config on create/PATCH (trimmed PAT, deduped repos, dropped stray keys); remove the now-redundant host special-case. - Dedupe pinned repos case-insensitively (GitHub repo names are). - Remove unreachable `return null` in mcp/server-url.ts to keep the connector-type switch exhaustive. - Log before falling back to [] in getLinkedRepositoriesForOwner. - Commit a valid pending repo input on save instead of dropping it. - Document pinned-repos-as-advisory as an accepted risk in ARCHITECTURE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
After initial setup, users had no way to add or remove pinned repositories from an existing GitHub connector. This adds a dedicated settings dialog (following the Zendesk/Meta Ads pattern) that loads the current config, lets users manage pinned repos via chips, and saves via PATCH without resending the PAT. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The AGENTS.md linked repositories section referenced compare_commits as a GitHub MCP tool, but it does not exist in the GitHub Copilot MCP server's tool inventory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…lure Update the withLinkedRepositories test to match the corrected tool list. Add reportOnFailure to shared vitest coverage config so coverage reports are written even when a test fails. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
@ixjosemi do another pass buddy! |
Follow-up review — post-review commitsReviewed the 4 commits pushed after the previous review (everything since TL;DR: All 6 items from the earlier review are addressed — including the blocker — with correct, well-tested implementations. 105/105 tests green across the affected files and tsc clean on all PR code. Good to approve, with two minor non-blocking notes. Extra (not from the review): Verification performed
Two minor notes (non-blocking)
Nice work turning the review around cleanly. |
Summary
Add a GitHub connector that wires GitHub's hosted remote MCP server (
api.githubcopilot.com/mcp/) into a workspace as a knowledge base source. No repositories are cloned — agents read source over GitHub's hosted MCP using an encrypted personal access token.What it does
lib/connectors/github.ts) with config parsing/validation, sanitizer, connection test, and spawner MCP config.AGENTS.md) to guide agents toward the most relevant source. They are advisory, not an enforcement boundary — the real boundary is the token's scope (seeARCHITECTURE.md).Review follow-ups addressed
return nullinmcp/server-url.tsto keep the connector-type switch exhaustive.ARCHITECTURE.md.