CopilotKit / CopilotKit/outpost
Register GitHub adapter in the worker (outbound sync currently Linear-only)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7
- Forks
- 3
- Avg merge
- 7d 16h
- Merged PRs (30d)
- 15
Description
Context
From #95. `apps/worker/src/build-sync-engine.ts`'s `buildSyncEngine()` only registers the Linear adapter via `initializeSyncEngine`. `GitHubAdapter` exists (`packages/outpost/shared/src/sync/adapters/github.ts`) and is exported, but nothing in the worker process ever constructs or registers it.
Net effect: a `TRACKER_SYNC` job targeting `plugin: 'github'` (e.g. via bulk force-sync) will enqueue fine but fail at the handler with "Plugin is not registered" — same as Linear was before #95, just not fixed for GitHub yet.
Why this wasn't done in #95
`GitHubAdapter` needs an authenticated Octokit instance (`GitHubAdapterConfig.octokit`). Today that's only constructed inside `apps/github-app` (a separate process) via `createAppAuth` + the GitHub App's private key (`apps/github-app/src/lib/github-client.ts`). The worker process has no access to those credentials/construction logic.
Fix
- Extract Octokit-with-`createAppAuth` construction out of `apps/github-app/src/lib/github-client.ts` into a shared module (or duplicate it into the worker — extraction is cleaner)
- Wire the GitHub App credentials (`GITHUB_APP_ID`, `GITHUB_PRIVATE_KEY`, `GITHUB_INSTALLATION_ID`) into the worker's environment
- Register `GitHubAdapter` in `buildSyncEngine()` alongside the Linear adapter, following the same env-gated pattern (`initializeSyncEngine` already has the registration slot, per `packages/outpost/shared/src/sync/init.ts`)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with apps/worker/src/build-sync-engine.ts and packages/outpost/shared/src/sync/init.ts to trace the existing Linear registration, then compare it with apps/github-app/src/lib/github-client.ts and packages/outpost/shared/src/sync/adapters/github.ts. Verify how the three GitHub App environment variables reach the worker. Done means a TRACKER_SYNC job targeting plugin: 'github' finds a registered adapter and no longer fails with "Plugin is not registered".
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github, typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 58/100