@flowwright/provider-github
v0.1.1
Published
FlowWright GitHub App source-control provider adapter — install, repository discovery, and short-lived checkout credentials via Octokit.
Downloads
250
Readme
@flowwright/provider-github
The GitHub source-control adapter for FlowWright — a GitHub App integration (built on Octokit) that handles installation, repository discovery, webhook-driven runs, commit-status reporting, and short-lived checkout credentials. It implements the provider-neutral adapter contract so the control plane stays SDK-free.
FlowWright · Server · GitLab provider
Use it
import { buildGitHubProvider } from "@flowwright/provider-github";
const provider = buildGitHubProvider({
appId: process.env.FW_GITHUB_APP_ID!,
privateKey: process.env.FW_GITHUB_PRIVATE_KEY!,
webhookSecret: process.env.FW_GITHUB_WEBHOOK_SECRET!,
});
const repos = await provider.listRepositories(installationId, null);
const cred = await provider.checkoutCredential(installationId, repositoryId);
await provider.createRunStatus(/* run → commit status */);The control plane resolves and injects the provider through the source-control registry; you rarely construct it directly outside tests.
Public surface
| Area | Main exports |
|---|---|
| Provider | GitHubAppProvider, buildGitHubProvider, GitHubAppProviderConfig |
Key adapter methods: completeInstallation / refreshInstallation, listRepositories,
getRepository, listBranches, listPullRequests, checkoutCredential, and
createRunStatus.
Design boundary
- Implements the source-control adapter contract from the control plane against the GitHub App API — one of the interchangeable providers registered in the SCM registry.
- Normalizes GitHub payloads into FlowWright's provider-neutral shapes; the control plane never imports Octokit.
- Checkout credentials are short-lived and redacted; no secrets are persisted here.
Development
$ pnpm --filter @flowwright/provider-github typecheck
$ pnpm --filter @flowwright/provider-github test
$ pnpm --filter @flowwright/provider-github buildRequires Node.js 24+. Licensed under MIT.
