Skip to content

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

Description

@NathanTarbert

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: syncBidirectional sync engine + mappingsroadmapTracked on the Outpost roadmaproadmap: nextRoadmap horizon: after launch path clears

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions