GitHub SDK
Install, authenticate, and automate GitHub with Effect-native REST operations.
Public package OpenAPI 3 1,167 operationsThe GitHub SDK generates the versioned REST surface from GitHub’s official OpenAPI bundle while keeping authentication, errors, rate-limit handling, and retries in a small handwritten boundary.
Install
npm install @kevinmichaelchen/distilled-github effectpnpm add @kevinmichaelchen/distilled-github effectbun add @kevinmichaelchen/distilled-github effectAuthentication
| Variable | Purpose |
|---|---|
GITHUB_TOKEN |
Fine-grained personal token, installation token, or Actions token |
GITHUB_API_URL |
Optional GitHub Enterprise Server API URL |
GITHUB_API_VERSION |
Optional explicit REST API version |
Quickstart
List recently updated open issues carrying the bug label:
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
import {
CredentialsFromEnv,
issuesListForRepo,
} from "@kevinmichaelchen/distilled-github";
const GitHubLive = Layer.mergeAll(FetchHttpClient.layer, CredentialsFromEnv);
const program = issuesListForRepo({
owner: "acme",
repo: "payments",
state: "open",
labels: "bug",
sort: "updated",
direction: "desc",
per_page: 50,
});
const issues = await Effect.runPromise(Effect.provide(program, GitHubLive));
Source and package
npm package
Public package, generated source, declarations, and release history.
Implementation (private)
GitHub-specific runtime policy and committed REST operations.
Specification (private)
Exact versioned GitHub REST bundle consumed by generation.
Slash-delimited operation IDs become lower camelCase exports such as reposGet, issuesListForRepo, and pullsCreate.