Skip to content
Eight Effect-native API SDKs are live.Explore the catalog
Distilled
Esc
navigateopen⌘Jpreview
On this page

GitHub SDK

Install, authenticate, and automate GitHub with Effect-native REST operations.

Public package OpenAPI 3 1,167 operations

The 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 effect
pnpm add @kevinmichaelchen/distilled-github effect
bun add @kevinmichaelchen/distilled-github effect

Authentication

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

Slash-delimited operation IDs become lower camelCase exports such as reposGet, issuesListForRepo, and pullsCreate.

Last updated on July 15, 2026

Was this page helpful?