Skip to content
← Public packages

@kody/github

Call GitHub REST, GraphQL, and pull requests with a GitHub OAuth App or a personal access token.

src/index.ts

55 lines · 1.8 KB · TypeScript
export type * from "./types"
export {
  BUILTIN_GITHUB_ALLOWED_SCOPES,
  BUILTIN_GITHUB_DEFAULT_SCOPES,
  DEFAULT_GITHUB_INTEGRATION_NAME,
  DEFAULT_GITHUB_SECRET_NAME,
  GITHUB_API_BASE_URL,
  GITHUB_API_HOST,
  GITHUB_BYO_OAUTH_CONNECT_URL,
  GITHUB_OAUTH_CONNECT_URL,
  GITHUB_PAT_SETUP_URL,
  GITHUB_UPLOADS_HOST,
  GitHubRequestError,
  accounts,
  getViewer,
  graphql,
  paginate,
  request,
  resolveGithubAuth,
} from "./core"

import {
  DEFAULT_GITHUB_INTEGRATION_NAME,
  GITHUB_BYO_OAUTH_CONNECT_URL,
  GITHUB_PAT_SETUP_URL,
  accounts,
} from "./core"

/**
 * Describe the GitHub package and its documented export surface.
 */
export default async function describeGithubPackage() {
  return {
    package: "@kody/github",
    kodyId: "github",
    formerly: ["github-toolkit", "github-pr-tools"],
    purpose:
      "GitHub REST, GraphQL, and pull request helpers for Kody agents, using a GitHub OAuth App you register or a personal access token.",
    defaultIntegrationName: DEFAULT_GITHUB_INTEGRATION_NAME,
    oauthConnectUrl: GITHUB_BYO_OAUTH_CONNECT_URL,
    patSetupUrl: GITHUB_PAT_SETUP_URL,
    accounts: accounts(),
    exports: {
      request: "Make a normalized GitHub REST request.",
      graphql: "Make a normalized GitHub GraphQL request.",
      paginate: "Follow GitHub REST Link pagination for array endpoints.",
      getViewer: "Verify which GitHub identity the selected integration or PAT uses.",
      accounts: "List OAuth vs PAT lanes and selection guidance.",
      "pr/get-info": "Fetch pull request details.",
      "pr/get-checks": "Fetch check-run status for a pull request's head commit.",
      "pr/merge": "Merge a pull request (dryRun or confirm).",
      "pr/set-review-status": "Set a pull request to draft, ready-for-review, or toggle (dryRun or confirm).",
    },
  }
}