FabricFabricHarness
EcosystemChannels

GitHub

Dispatch signed GitHub issue and pull-request events to a persistent agent.

.fabricharness/channels/github.ts
import { createGitHubChannel } from '@fabric-harness/channels/github';

export const channel = createGitHubChannel({
  secret: process.env.GITHUB_WEBHOOK_SECRET!,
  agent: 'triage',
});

The server mounts the channel at POST /channels/github/webhook. GitHub's X-GitHub-Delivery becomes the dispatch deduplication key, and the conversation key identifies the repository issue or pull request.

Use commentOnGitHubIssue(ref, { token }) as an outbound tool on the persistent agent. Keep the token in GITHUB_TOKEN, scope it to the repositories and write operations the agent needs, and require approval for comment or mutation tools through the agent capability policy.

For read-oriented repository access instead of event ingress, use githubSource() from @fabric-harness/connectors/github or the github-mcp connector guide.