export type Blob = { readonly content: string readonly encoding: Encoding readonly url: string readonly sha: string readonly size: number } export type BlobCreated = { readonly url: string readonly sha: string } export type BlobForm = { readonly content: string readonly encoding: Encoding } export type Commit = { readonly sha: string readonly url: string readonly html_url: string readonly author: Person readonly committer: Person readonly tree: TreeSummary readonly message: string readonly parents: readonly CommitSummary[] } export type CommitForm = { readonly message: string readonly tree: string readonly parents: readonly string[] readonly author: Person readonly committer: Person } export type CommitResponse = { readonly sha: string readonly url: string readonly author: Person readonly committer: Person readonly message: string readonly tree: TreeSummary readonly parents: readonly TreeSummary[] } export type CommitSummary = { readonly sha: string readonly url: string } export type Contents = { readonly type: ContentsType readonly encoding: Encoding readonly size: number readonly name: string readonly path: string readonly content?: string readonly sha: string readonly url: string readonly git_url: string readonly html_url: string readonly download_url: string } export type CreateTreeForm = { readonly base_tree: string readonly tree: readonly TreeForm[] } export type CreateTreeResponse = { readonly sha: string readonly url: string readonly tree_result: Tree } export type Error = { readonly resource: string readonly field: string readonly code: string } export type GithubObject = { readonly type: string readonly sha: string readonly url: string } export type Hook = { readonly id: number readonly url: string readonly test_url: string readonly ping_url: string readonly name: string readonly events: readonly HookEvent[] readonly active: boolean readonly config: HookConfig readonly updated_at: string readonly created_at: string } export type HookConfig = { readonly url?: string readonly content_type?: string } export type HookForm = { readonly name: string readonly config: HookConfig readonly events: readonly HookEvent[] readonly active: boolean } export type Node = { readonly path: string readonly mode: string readonly type: NodeType readonly size: number readonly sha: string readonly url: string } export type NodeForm = { readonly path: string readonly mode: string readonly type: NodeType readonly sha: string } export type Person = { readonly name: string readonly email: string readonly date: string } export type PullRequest = { readonly id: number readonly url: string readonly number: number readonly html_url: string readonly head: PullRequestHead } export type PullRequestForm = { readonly title: string readonly head: string readonly base: string readonly body?: string } export type PullRequestHead = { readonly ref: string } export type Ref = { readonly ref: string readonly url: string readonly object: GithubObject } export type RefForm = { readonly ref: string readonly sha: string } export type RefUpdateForm = { readonly sha: string } export type Repository = { readonly id: number readonly owner: User readonly name: string readonly full_name: string readonly private: boolean readonly description?: string readonly url: string readonly html_url: string readonly default_branch: string } export type Tag = { readonly tag: string readonly sha: string readonly url: string readonly message: string readonly tagger: Tagger readonly object: GithubObject } export type TagForm = { readonly tag: string readonly message: string readonly object: string readonly type: string readonly tagger: Tagger } export type TagSummary = { readonly name: string readonly commit: CommitSummary } export type Tagger = { readonly name: string readonly email: string readonly date: string } export type Tree = { readonly sha: string readonly url: string readonly truncated: boolean readonly tree: readonly Node[] } export type TreeForm = { readonly path: string readonly mode: string readonly type: NodeType readonly sha?: string readonly content?: string } export type TreeResult = { readonly path: string readonly mode: string readonly type: NodeType readonly size: number readonly sha: string readonly url: string } export type TreeSummary = { readonly url: string readonly sha: string } export type UnprocessableEntity = { readonly message: string readonly errors?: readonly Error[] } export type User = { readonly id: number readonly login: string readonly name?: string readonly email?: string readonly avatar_url?: string readonly gravatar_id?: string readonly url: string readonly html_url: string readonly type: OwnerType } export type UserEmail = { readonly email: string readonly verified: boolean readonly primary: boolean } export type UserOrg = { readonly login: string } export type ContentsType = 'file' | 'dir' | 'symlink' | 'submodule' export type Encoding = 'base64' | 'utf-8' export type HookEvent = 'push' | 'pull_request' export type NodeType = 'blob' | 'tree' | 'commit' export type OwnerType = 'User' export type Visibility = 'all' | 'public' | 'private' export type JSONValue = | string | number | boolean | { readonly [x: string]: JSONValue } | readonly JSONValue[]