CopilotKit / CopilotKit/outpost

Register GitHub adapter in the worker (outbound sync currently Linear-only)

Open
#98 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: sync roadmap roadmap: next
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.