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`)
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