Reference

The following reference documentation describes the data types available in the GitHub GraphQL API schema in Typescript format (compatible with .js client frameworks such as React).

import { gql } from '@apollo/client'; export type Maybe<T> = T | null; export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string; String: string; Boolean: boolean; Int: number; Float: number; /** An ISO 8601-encoded datetime */ ISO8601DateTime: any; /** Represents untyped JSON */ JSON: any; URL: any; }; /** An Object */ export type Attachment = { __typename?: 'Attachment'; fileContentType?: Maybe<Scalars['String']>; fileDownloadCount?: Maybe<Scalars['Int']>; fileFingerprint?: Maybe<Scalars['String']>; fileName?: Maybe<Scalars['String']>; fileSize?: Maybe<Scalars['Int']>; fileUpdatedAt?: Maybe<Scalars['ISO8601DateTime']>; fileUrl?: Maybe<Scalars['URL']>; fileUrlExpiresAt?: Maybe<Scalars['ISO8601DateTime']>; name?: Maybe<Scalars['String']>; }; /** An object with an ID. */ export type NodeInterface = { /** ID of the object. */ id: Scalars['ID']; /** The relative path of the object. */ path: Scalars['URL']; /** The url of the object. */ url: Scalars['URL']; }; /** A node in the graph */ export type Organization = PersistedResourceInterface & NodeInterface & { __typename?: 'Organization'; /** The app logo associated with the Organization */ appLogo: Attachment; closedAt?: Maybe<Scalars['ISO8601DateTime']>; /** Identifies the date and time when the object was created. */ createdAt?: Maybe<Scalars['ISO8601DateTime']>; /** Identifies the primary key from the data store. */ databaseId?: Maybe<Scalars['String']>; /** ID of the object. */ id: Scalars['ID']; name?: Maybe<Scalars['String']>; /** The relative path of the object. */ path: Scalars['URL']; /** The settings associated with the Organization */ settings: Scalars['JSON']; slug?: Maybe<Scalars['String']>; /** Identifies the date and time when the object was last updated. */ updatedAt?: Maybe<Scalars['ISO8601DateTime']>; /** The url of the object. */ url: Scalars['URL']; /** A list of users associated with the Organization */ users?: Maybe<UserConnection>; /** The web logo associated with the Organization */ webLogo: Attachment; }; /** A node in the graph */ export type OrganizationUsersArgs = { after?: Maybe<Scalars['String']>; before?: Maybe<Scalars['String']>; first?: Maybe<Scalars['Int']>; last?: Maybe<Scalars['Int']>; }; /** translation missing: en.gql.v2.descriptions.connections.organization_connection._object */ export type OrganizationConnection = { __typename?: 'OrganizationConnection'; /** A list of edges. */ edges?: Maybe<Array<Maybe<OrganizationEdge>>>; /** A list of nodes. */ nodes?: Maybe<Array<Maybe<Organization>>>; /** Information to aid in pagination. */ pageInfo: PageInfo; /** The number of items returned in this response */ totalCount?: Maybe<Scalars['Int']>; }; /** An edge in a connection. */ export type OrganizationEdge = { __typename?: 'OrganizationEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe<Organization>; }; /** Information about pagination in a connection. */ export type PageInfo = { __typename?: 'PageInfo'; /** When paginating forwards, the cursor to continue. */ endCursor?: Maybe<Scalars['String']>; /** When paginating forwards, are there more items? */ hasNextPage: Scalars['Boolean']; /** When paginating backwards, are there more items? */ hasPreviousPage: Scalars['Boolean']; /** When paginating backwards, the cursor to continue. */ startCursor?: Maybe<Scalars['String']>; }; /** Represents a resource saved to a data store. */ export type PersistedResourceInterface = { /** Identifies the date and time when the object was created. */ createdAt?: Maybe<Scalars['ISO8601DateTime']>; /** Identifies the primary key from the data store. */ databaseId?: Maybe<Scalars['String']>; /** Identifies the date and time when the object was last updated. */ updatedAt?: Maybe<Scalars['ISO8601DateTime']>; }; /** A node in the graph */ export type ProductRelease = PersistedResourceInterface & NodeInterface & { __typename?: 'ProductRelease'; content: Attachment; /** Identifies the date and time when the object was created. */ createdAt?: Maybe<Scalars['ISO8601DateTime']>; /** Identifies the primary key from the data store. */ databaseId?: Maybe<Scalars['String']>; externalData?: Maybe<Scalars['JSON']>; flags: Scalars['JSON']; /** ID of the object. */ id: Scalars['ID']; name?: Maybe<Scalars['String']>; /** The relative path of the object. */ path: Scalars['URL']; slug?: Maybe<Scalars['String']>; /** Identifies the date and time when the object was last updated. */ updatedAt?: Maybe<Scalars['ISO8601DateTime']>; /** The url of the object. */ url: Scalars['URL']; version?: Maybe<Scalars['String']>; }; /** translation missing: en.gql.v2.descriptions.connections.product_release_connection._object */ export type ProductReleaseConnection = { __typename?: 'ProductReleaseConnection'; /** A list of edges. */ edges?: Maybe<Array<Maybe<ProductReleaseEdge>>>; /** A list of nodes. */ nodes?: Maybe<Array<Maybe<ProductRelease>>>; /** Information to aid in pagination. */ pageInfo: PageInfo; /** The number of items returned in this response */ totalCount?: Maybe<Scalars['Int']>; }; /** An edge in a connection. */ export type ProductReleaseEdge = { __typename?: 'ProductReleaseEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe<ProductRelease>; }; /** A query into the graph */ export type Query = { __typename?: 'Query'; /** Fetches an object given its ID. */ node?: Maybe<NodeInterface>; /** Lookup nodes by a list of IDs. */ nodes?: Maybe<Array<NodeInterface>>; /** A list of organizations associated with the currently authenticated user's session. */ organizations: OrganizationConnection; /** A list of Product Releases. */ productReleases: ProductReleaseConnection; /** The currently authenticated user. */ viewer: User; }; /** A query into the graph */ export type QueryNodeArgs = { id: Scalars['ID']; }; /** A query into the graph */ export type QueryNodesArgs = { ids: Array<Scalars['ID']>; }; /** A query into the graph */ export type QueryOrganizationsArgs = { after?: Maybe<Scalars['String']>; before?: Maybe<Scalars['String']>; first?: Maybe<Scalars['Int']>; last?: Maybe<Scalars['Int']>; }; /** A query into the graph */ export type QueryProductReleasesArgs = { after?: Maybe<Scalars['String']>; before?: Maybe<Scalars['String']>; first?: Maybe<Scalars['Int']>; last?: Maybe<Scalars['Int']>; }; /** A node in the graph */ export type User = PersistedResourceInterface & NodeInterface & { __typename?: 'User'; avatar: Attachment; confirmationSentAt?: Maybe<Scalars['ISO8601DateTime']>; confirmedAt?: Maybe<Scalars['ISO8601DateTime']>; /** Identifies the date and time when the object was created. */ createdAt?: Maybe<Scalars['ISO8601DateTime']>; currentSignInAt?: Maybe<Scalars['ISO8601DateTime']>; currentSignInIp?: Maybe<Scalars['String']>; /** Identifies the primary key from the data store. */ databaseId?: Maybe<Scalars['String']>; email?: Maybe<Scalars['String']>; failedSignInAttempts?: Maybe<Scalars['Int']>; firstName?: Maybe<Scalars['String']>; forcePasswordReset?: Maybe<Scalars['Boolean']>; formattedPhoneNumber?: Maybe<Scalars['String']>; /** ID of the object. */ id: Scalars['ID']; jobTitle?: Maybe<Scalars['String']>; lastName?: Maybe<Scalars['String']>; lockedAt?: Maybe<Scalars['ISO8601DateTime']>; passwordResetSentAt?: Maybe<Scalars['ISO8601DateTime']>; /** The relative path of the object. */ path: Scalars['URL']; phone?: Maybe<Scalars['String']>; /** The settings associated with the User */ settings: Scalars['JSON']; signInCount?: Maybe<Scalars['Int']>; /** Identifies the date and time when the object was last updated. */ updatedAt?: Maybe<Scalars['ISO8601DateTime']>; /** The url of the object. */ url: Scalars['URL']; }; /** translation missing: en.gql.v2.descriptions.connections.user_connection._object */ export type UserConnection = { __typename?: 'UserConnection'; /** A list of edges. */ edges?: Maybe<Array<Maybe<UserEdge>>>; /** A list of nodes. */ nodes?: Maybe<Array<Maybe<User>>>; /** Information to aid in pagination. */ pageInfo: PageInfo; /** The number of items returned in this response */ totalCount?: Maybe<Scalars['Int']>; }; /** An edge in a connection. */ export type UserEdge = { __typename?: 'UserEdge'; /** A cursor for use in pagination. */ cursor: Scalars['String']; /** The item at the end of the edge. */ node?: Maybe<User>; };