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>;
};